/* PunyaPaths design system v6 — ultra-simple light theme.
   White + ink + ONE maroon accent. No gradients, no gaudy colors.
   Plus Jakarta Sans throughout. Generous whitespace. */
:root{
  --bg:#FFFFFF; --surface:#FFFFFF;
  --ink:#1B1B1B; --body:#454545; --muted:#707070; --faint:#A6A6A6;
  --line:#E8E8E8; --line-soft:#F3F3F3;
  --maroon:#8C2F1B; --maroon-deep:#6E2413; --maroon-soft:#F9F0EA;
  --gold:#8C2F1B;
  --footer:#161616; --footer-line:#2A2A2A; --footer-muted:#A8A8A8;
  --radius:18px; --radius-s:12px;
  --shadow:0 10px 32px rgba(0,0,0,.08);
  --shadow-soft:0 4px 16px rgba(0,0,0,.06);
  --font:"Plus Jakarta Sans","Noto Sans Devanagari",system-ui,-apple-system,"Segoe UI",sans-serif;
  --header-h:64px;
  --maxw:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--body);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:#F3E9E2}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
img{max-width:100%;display:block}
a{color:var(--maroon);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--maroon);outline-offset:2px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--font);line-height:1.25;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:#fff;padding:10px 16px;z-index:200;border-radius:8px;box-shadow:var(--shadow)}
/* reading progress + scroll reveal */
#readProgress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--maroon);z-index:300}
.reveal{opacity:0;transform:translateY(18px)}
.reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
.muted{color:var(--muted)} .small{font-size:14px} .ok{color:#2F7D32;font-weight:600}

/* ---------- header : solid maroon bar, like OpenFerry's blue bar ---------- */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line)}
.header-in{display:flex;align-items:center;gap:20px;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);flex-shrink:0}
.brand:hover{text-decoration:none}
.brand-name{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1}
.brand-name em{font-style:normal;color:var(--maroon)}
.main-nav{display:flex;align-items:center;gap:2px;margin:0 auto}
.nav-link{color:var(--ink);font-weight:600;font-size:15.5px;padding:10px 16px;border-radius:10px;white-space:nowrap}
.nav-link:hover{color:var(--maroon);text-decoration:none;background:#F7F7F7}
.nav-item{position:relative}
.nav-drop{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,8px);min-width:300px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:10px;opacity:0;visibility:hidden;transition:all .22s ease;z-index:120}
.nav-item:hover .nav-drop,.nav-item:focus-within .nav-drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-drop a{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:10px;color:var(--ink)}
.nav-drop a:hover{background:var(--maroon-soft);text-decoration:none}
.nav-drop strong{display:block;font-size:15px;font-weight:700}
.nav-drop span{display:block;font-size:13px;color:var(--muted)}
.nav-caret{font-size:11px;margin-left:5px;opacity:.8}
.header-cta{margin-left:0;background:var(--maroon)!important;color:#fff!important}
.header-cta:hover{background:var(--maroon-deep)!important}
/* buttons : primary = orange rounded-rect (not pill) ; secondary = outlined pill */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--maroon);color:#fff!important;font-weight:700;padding:14px 30px;border-radius:var(--radius-s);border:0;cursor:pointer;font-size:16px;font-family:var(--font);transition:background .18s,transform .18s;box-shadow:none}
.btn:hover{background:var(--maroon-deep);text-decoration:none;transform:translateY(-1px)}
.btn-small{padding:11px 22px;font-size:14.5px}
.btn-pill{border-radius:999px}
.btn-outline{background:#fff;color:var(--maroon)!important;border:2px solid var(--maroon);box-shadow:none}
.btn-outline:hover{background:var(--maroon-soft);transform:none}
.btn .arr{transition:transform .18s}
.btn:hover .arr{transform:translateX(3px)}
.hamburger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:10px}
.hamburger span{display:block;width:24px;height:2.5px;background:var(--ink);border-radius:2px;margin:5px 0;transition:.25s}
.mobile-menu{display:none}

/* ---------- hero : LIGHT illustrated, like OpenFerry ---------- */
.hero{position:relative;overflow:hidden;background:#fff}
.hero-art{position:absolute;inset:0;pointer-events:none}
.hero-art svg{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:min(1240px,150%);height:auto}
.hero-in{position:relative;z-index:2;text-align:center;padding:88px 0 88px;max-width:880px;margin:0 auto}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);color:var(--maroon);font-size:13px;font-weight:700;padding:8px 18px;border-radius:999px;margin-bottom:20px;box-shadow:var(--shadow-soft)}
.hero-badge .dot{width:8px;height:8px;border-radius:50%;background:#2F9E44}
.hero h1{font-size:clamp(36px,4.6vw,54px);font-weight:800;margin:0 0 14px;color:var(--ink)}
.hero h1 .hl{color:var(--maroon-deep)}
.hero .sub{font-size:clamp(16px,2vw,19px);color:var(--muted);margin:0 auto 34px;max-width:34em}
/* search widget : big white rounded card with divider-separated fields */
.search-card{background:#fff;border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.10);padding:10px;display:flex;align-items:stretch;gap:0;text-align:left;max-width:920px;margin:0 auto;flex-wrap:wrap;border:1px solid var(--line)}
.sc-field{flex:1;min-width:150px;padding:10px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}
.sc-field:last-of-type{border-right:0}
.sc-field label{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:3px}
.sc-field select{border:0;background:transparent;font-size:16.5px;font-weight:700;font-family:var(--font);color:var(--ink);outline:none;cursor:pointer;padding:4px 22px 4px 0;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238C2F1B' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;width:100%}
.search-card .btn{border-radius:14px;margin:4px;white-space:nowrap}
.search-note{margin:16px 0 0;font-size:13.5px;color:var(--muted)}
.hero-stats{display:flex;justify-content:center;gap:56px;margin-top:44px;flex-wrap:wrap}
.hero-stats div{text-align:center}
.hero-stats strong{display:block;font-size:30px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.hero-stats span{font-size:14px;color:var(--muted)}

/* ---------- status strip : light ---------- */
.status-strip{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;overflow:hidden}
.status-strip .wrap{display:flex;gap:28px;align-items:center;padding-top:11px;padding-bottom:11px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.status-strip .wrap::-webkit-scrollbar{display:none}
.status-label{font-weight:800;letter-spacing:.08em;font-size:12px;text-transform:uppercase;color:var(--maroon);flex-shrink:0}
.status-item{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;color:var(--body)}
.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ---------- sections : centered H2, no eyebrow, generous rhythm ---------- */
.section{padding:96px 0}
.sec-head{text-align:center;max-width:640px;margin:0 auto 52px}
.sec-head h2{font-size:clamp(28px,3.4vw,38px);font-weight:800;margin:0 0 12px}
.sec-head p{margin:0;color:var(--muted);font-size:18px}
.sec-more{text-align:center;margin-top:36px}

/* destination cards : photo + pill badge + frosted bottom panel (OpenFerry) */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.dest-card{position:relative;display:block;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .25s,box-shadow .25s;color:#fff;aspect-ratio:4/4.6;background:#E8DCC6}
.dest-card:hover{text-decoration:none;transform:translateY(-6px);box-shadow:var(--shadow)}
.dest-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.dest-card:hover>img{transform:scale(1.05)}
.dest-badge{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.96);color:var(--ink);font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.dest-panel{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:14px;padding:14px 18px;color:var(--ink)}
.dest-panel .dc-cat{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--maroon-deep)}
.dest-panel h3{margin:2px 0;font-size:20px;font-weight:800}
.dest-panel p{margin:0;font-size:13.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* route/tool cards : white minimal, hairline border */
.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tool-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.tool-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.tool-card>img{width:100%;aspect-ratio:16/9;object-fit:cover}
.tool-body{padding:26px;display:flex;flex-direction:column;gap:10px;flex:1}
.tool-ico{width:50px;height:50px;border-radius:14px;background:#F4F4F4;display:flex;align-items:center;justify-content:center}
.tool-body h3{margin:0;font-size:21px;font-weight:800}
.tool-body p{margin:0;color:var(--muted);font-size:15px;flex:1}
.tool-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line-soft);padding-top:16px;margin-top:6px}
.tool-foot .from{font-size:13.5px;color:var(--muted)}
.tool-foot .go{font-weight:800;color:var(--maroon-deep);font-size:15px}

/* trust : 3x2 editorial grid, NO card containers (OpenFerry) */
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 36px}
.trust-item{text-align:left}
.trust-item .tic{width:46px;height:46px;border-radius:14px;background:#F4F4F4;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.trust-item h3{margin:0 0 8px;font-size:18px;font-weight:800}
.trust-item p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.65}

/* newsletter band : light blue-grey like their app band */
.news-band{background:#FAFAFA;border:1px solid var(--line);border-radius:24px;padding:60px 56px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.news-band h2{margin:0 0 10px;font-size:clamp(26px,3vw,34px);font-weight:800}
.news-band p{margin:0;color:var(--muted);font-size:16px}
.news-form{display:flex;background:#fff;border:2px solid var(--line);border-radius:14px;padding:6px}
.news-form input{flex:1;border:0;background:transparent;padding:12px 18px;font-size:15.5px;outline:none;min-width:0;color:var(--ink);font-family:var(--font)}

/* ---------- footer : dark, 4 zones (OpenFerry) ---------- */
.site-footer{background:var(--footer);color:var(--footer-muted);margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding:68px 0 44px}
.footer-brand .brand-name{color:#fff}
.footer-brand p{font-size:14.5px;max-width:26em;margin:16px 0 20px}
.socials{display:flex;gap:10px}
.socials a{width:38px;height:38px;border-radius:10px;background:#2A2019;display:flex;align-items:center;justify-content:center;color:#D8CFC2}
.socials a:hover{background:var(--maroon);color:#fff;text-decoration:none}
.site-footer h4{color:#fff;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px;font-weight:800}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.site-footer ul a{color:var(--footer-muted);font-size:14.5px;font-weight:500}
.site-footer ul a:hover{color:#fff}
.footer-bottom{border-top:1px solid var(--footer-line);padding:24px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13.5px}

/* ---------- custom illustrated route map ---------- */
.route-map-sec{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft);padding:48px;margin:56px 0;overflow:hidden}
.rm-head{text-align:center;max-width:620px;margin:0 auto 30px}
.rm-head h2{font-size:clamp(26px,3.2vw,36px);font-weight:800;margin:0 0 10px}
.rm-overview{display:flex;align-items:center;justify-content:flex-start;gap:0;overflow-x:auto;padding:18px 8px;margin-bottom:36px;scrollbar-width:thin}
.rm-ov-stop{flex-shrink:0;font-size:13px;font-weight:700;background:#F4F4F4;border-radius:999px;padding:8px 16px;color:var(--ink);white-space:nowrap}
.rm-ov-stop.first{background:var(--ink);color:#fff}
.rm-ov-stop.last{background:var(--maroon);color:#fff}
.rm-ov-line{flex-shrink:0;width:34px;height:2px;background:var(--line);position:relative}
.rm-ov-line::after{content:"";position:absolute;right:0;top:-3px;border-left:7px solid #CFCFCF;border-top:4px solid transparent;border-bottom:4px solid transparent}
.rm-journey{position:relative;padding-left:6px}
.rm-journey::before{content:"";position:absolute;left:33px;top:14px;bottom:14px;width:3px;background:repeating-linear-gradient(180deg,var(--line) 0 10px,transparent 10px 20px);border-radius:2px}
.rm-leg{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 6px 74px}
.rm-leg-pill{display:inline-flex;align-items:center;gap:8px;background:#F7F7F7;border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-size:13.5px;color:var(--body)}
.rm-leg-pill strong{color:var(--maroon)}
.rm-leg-pill svg{color:var(--maroon);flex-shrink:0}
.rm-leg-mode{font-size:12.5px;color:var(--faint);font-weight:600}
.rm-stop{display:grid;grid-template-columns:60px 1fr;gap:18px;margin:18px 0;position:relative}
.rm-node{position:relative;display:flex;flex-direction:column;align-items:center}
.rm-num{width:36px;height:36px;border-radius:50%;background:var(--maroon);color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 6px #fff;position:relative;z-index:2}
.rm-icon{margin-top:10px;width:46px;height:46px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft);position:relative;z-index:2}
.rm-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:grid;grid-template-columns:200px 1fr;box-shadow:var(--shadow-soft);transition:transform .25s,box-shadow .25s}
.rm-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.rm-photo{width:100%;height:100%;min-height:190px;object-fit:cover}
.rm-body{padding:24px 26px}
.rm-tag{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--maroon);margin-bottom:4px}
.rm-body h3{margin:0 0 8px;font-size:22px;font-weight:800}
.rm-manyata{margin:0 0 16px;font-size:15px;color:var(--body);line-height:1.65}
.rm-k{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.rm-f{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:7px 0;border-top:1px dashed var(--line-soft);font-size:14.5px}
.rm-fname{font-weight:700;color:var(--ink)}
.rm-rate{font-weight:700;color:#B7791F;font-size:13.5px}
.rm-fnote{color:var(--muted);font-size:13.5px;flex-basis:100%}
.rm-stay{margin-top:12px;font-size:14px;color:var(--body);background:#FAFAFA;border-radius:10px;padding:10px 14px}
.rm-stay .rm-k{margin:0 6px 0 0}
@media(max-width:760px){
  .route-map-sec{padding:28px 18px;margin:40px 0}
  .rm-journey::before{left:24px}
  .rm-stop{grid-template-columns:42px 1fr;gap:12px}
  .rm-num{width:30px;height:30px;font-size:13px}
  .rm-icon{width:38px;height:38px}
  .rm-leg{margin-left:54px}
  .rm-card{grid-template-columns:1fr}
  .rm-photo{min-height:0;aspect-ratio:16/9}
}

/* ---------- article ---------- */
.crumbs{font-size:13.5px;color:var(--muted);margin:28px 0 20px}
.crumbs a{color:var(--muted)} .crumbs a:hover{color:var(--maroon)}
.article-hero{border-radius:20px;overflow:hidden;margin:0;box-shadow:var(--shadow-soft)}
.article-hero img{width:100%;aspect-ratio:21/9;object-fit:cover}
.img-credit{font-size:12.5px;color:var(--faint);text-align:right;margin:8px 2px 0}
.article-head{max-width:800px;margin:36px auto 0;text-align:center}
.article-head h1{font-size:clamp(32px,4.4vw,50px);font-weight:800;margin:0 0 16px}
.article-head .dek{font-size:18px;color:var(--muted);margin:0 auto;max-width:36em}
.byline{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;color:var(--muted);margin-top:22px}
.byline .avatar{width:42px;height:42px;border-radius:50%;background:var(--maroon);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
.byline strong{color:var(--ink)}
.article-layout{display:grid;grid-template-columns:240px minmax(0,760px);gap:60px;max-width:1240px;margin:0 auto;padding:40px 28px 90px;align-items:start;justify-content:center}
.toc{position:sticky;top:calc(var(--header-h) + 24px);font-size:14px;border-left:2px solid var(--line);padding-left:18px}
.toc strong{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.toc a{display:block;color:var(--muted);padding:5px 0;line-height:1.45;font-weight:500}
.toc a:hover{color:var(--maroon)}
.prose{font-size:17px;line-height:1.8;color:#2E2A24;min-width:0}
.prose h2{font-size:29px;font-weight:800;margin:48px 0 14px;padding-top:8px}
.prose h3{font-size:22px;font-weight:700;margin:34px 0 10px}
.prose p{margin:0 0 20px}
.prose ul,.prose ol{margin:0 0 22px;padding-left:24px}
.prose li{margin-bottom:8px}
.prose table{width:100%;border-collapse:collapse;margin:26px 0;font-size:15px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-soft)}
.prose th{background:var(--ink);color:#fff;text-align:left;padding:13px 16px;font-weight:700;font-size:14px}
.prose td{padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.prose tr:last-child td{border-bottom:0}
.prose tr:nth-child(even) td{background:#FDFBF6}
.prose blockquote{border-left:4px solid var(--maroon);margin:28px 0;padding:6px 0 6px 22px;font-size:20px;color:var(--ink);font-weight:600}
.answer-box{background:var(--maroon-soft);border:1px solid #EAD9C8;border-radius:16px;padding:24px 26px;margin:32px 0}
.answer-box .k{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--maroon-deep);margin-bottom:8px}
.answer-box p{margin:0;font-size:17.5px;line-height:1.7;color:var(--ink)}
.faq{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;background:#fff;overflow:hidden}
.faq summary{cursor:pointer;font-weight:700;padding:17px 20px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;color:var(--maroon-deep);font-weight:400;flex-shrink:0}
.faq[open] summary::after{content:"–"}
.faq .faq-a{padding:0 20px 18px;color:var(--muted);font-size:15.5px}
.article-tags{display:flex;gap:10px;flex-wrap:wrap;margin:40px 0 0;justify-content:center}
.article-tags span{background:var(--maroon-soft);border-radius:999px;padding:7px 16px;font-size:13.5px;color:var(--maroon);font-weight:600}
.related{margin-top:70px}
.related h2{font-size:30px;font-weight:800;margin:0 0 28px;text-align:center}
.route-sec{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft);padding:32px;margin:48px 0}
.route-sec h2{margin:0 0 6px;font-size:26px;font-weight:800}
#routeMap{height:380px;border-radius:14px;border:1px solid var(--line);z-index:1;margin-top:18px}
.route-stops{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:16px}
.route-stop{display:flex;gap:10px;align-items:flex-start;font-size:14px;background:#FDFBF6;border:1px solid var(--line-soft);border-radius:12px;padding:10px 12px}
.route-stop b{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--maroon);color:#fff;font-size:12px;flex-shrink:0;font-weight:800}
.share-row{display:flex;gap:12px;flex-wrap:wrap;margin:36px 0 0;justify-content:center}
.wa-btn{display:inline-flex;align-items:center;gap:10px;background:#1FA855;color:#fff!important;font-weight:700;padding:14px 28px;border-radius:var(--radius-s);font-size:15.5px}
.wa-btn:hover{text-decoration:none;background:#188A45}

/* ---------- planner / tools ---------- */
.planner-hero{text-align:center;padding:70px 0 26px;max-width:720px;margin:0 auto}
.planner-hero h1{font-size:clamp(32px,4.4vw,50px);font-weight:800;margin:0 0 14px}
.yatra-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:30px 0}
.yatra-pick button{border:2px solid var(--line);border-radius:16px;background:#fff;padding:0;cursor:pointer;overflow:hidden;text-align:left;transition:all .2s;font-family:var(--font)}
.yatra-pick button.on{border-color:var(--maroon);box-shadow:0 8px 22px rgba(140,47,27,.16)}
.yatra-pick img{width:100%;aspect-ratio:16/8;object-fit:cover}
.yatra-pick .yp-b{padding:12px 14px;display:block}
.yatra-pick strong{display:block;font-size:15px;color:var(--ink);font-weight:700}
.yatra-pick span{font-size:12.5px;color:var(--muted)}
.planner-controls{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft);padding:30px;margin:26px 0}
.ctl-row{display:flex;gap:26px;flex-wrap:wrap;align-items:flex-end}
.ctl{flex:1;min-width:200px}
.ctl label{display:block;font-weight:700;font-size:14px;margin-bottom:10px}
.seg{display:flex;gap:10px;flex-wrap:wrap}
.seg button{flex:1;min-width:130px;padding:13px;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:15px;font-weight:700;font-family:var(--font);color:var(--body);transition:all .18s}
.seg button.on{border-color:var(--maroon);background:var(--maroon-soft);color:var(--maroon)}
.stepper{display:flex;align-items:center;gap:14px}
.stepper button{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);background:#fff;font-size:20px;cursor:pointer;color:var(--maroon);font-weight:800}
.stepper button:hover{border-color:var(--maroon)}
.stepper strong{font-size:20px;min-width:30px;text-align:center}
#map{height:440px;border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow-soft);z-index:1}
.map-note{font-size:13px;color:var(--muted);margin-top:10px}
.timeline{position:relative;margin:10px 0 0;padding-left:36px}
.timeline::before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl-day{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:18px;box-shadow:var(--shadow-soft)}
.tl-day::before{content:attr(data-day);position:absolute;left:-36px;top:22px;width:26px;height:26px;border-radius:50%;background:var(--maroon);color:#fff;font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tl-day h3{margin:0 0 4px;font-size:20px;font-weight:800}
.tl-travel{font-size:13.5px;color:var(--maroon-deep);font-weight:700;margin-bottom:10px}
.tl-day ul{margin:8px 0;padding-left:20px;font-size:15px}
.tl-day li{margin-bottom:5px}
.tl-stay{font-size:14px;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px;margin-top:10px}
.budget-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft);padding:32px;margin-top:8px}
.budget-card table{width:100%;border-collapse:collapse;font-size:15.5px}
.budget-card td{padding:12px 6px;border-bottom:1px solid var(--line-soft)}
.budget-card td:last-child{text-align:right;font-weight:700}
.budget-total td{border-bottom:0;font-size:19px;font-weight:800}
.budget-total td:last-child{font-size:30px;color:var(--maroon);font-weight:800;letter-spacing:-.02em}
.quote-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:30px 0 10px;background:var(--maroon-soft);border:1px solid #EAD9C8;border-radius:18px;padding:28px 32px}
.tool-shell{max-width:880px;margin:0 auto}
.calc{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft);padding:40px}
.field{margin-bottom:22px}
.field label{display:block;font-weight:700;margin-bottom:10px;font-size:15px}
.field select,.field input[type=number]{width:100%;padding:14px 16px;border:2px solid var(--line);border-radius:12px;font-size:16px;font-family:var(--font);background:#fff;color:var(--ink)}
.field select:focus,.field input:focus{border-color:var(--maroon);outline:none}
.result{background:var(--ink);color:#F5EDDD;border-radius:16px;padding:34px;margin-top:28px;display:none}
.result.show{display:block;animation:fadeUp .4s ease}
.result .amt{font-size:52px;color:#fff;margin:6px 0 4px;font-weight:800;letter-spacing:-.02em}
.result table{width:100%;font-size:15px;border-collapse:collapse;margin-top:16px}
.result td{padding:9px 4px;border-bottom:1px solid rgba(255,255,255,.14)}
.result td:last-child{text-align:right;font-weight:700}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.visa-form{display:grid;grid-template-columns:1fr auto;gap:12px;margin:26px 0}
.visa-form select{padding:14px 16px;border:2px solid var(--line);border-radius:12px;font-size:16px;font-family:var(--font);background:#fff}
.visa-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow-soft);display:none}
.visa-card.show{display:block;animation:fadeUp .4s ease}
.visa-verdict{font-size:26px;margin:0 0 10px;font-weight:800}

/* about */
.about-hero{text-align:center;padding:76px 0 20px;max-width:720px;margin:0 auto}
.about-hero h1{font-size:clamp(34px,4.6vw,52px);font-weight:800;margin:0 0 16px}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.team-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;text-align:center;box-shadow:var(--shadow-soft)}
.team-card .avatar{width:72px;height:72px;border-radius:50%;background:var(--maroon);color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;margin:0 auto 16px}

/* 404 */
.e404{text-align:center;padding:100px 0}
.e404 h1{font-size:90px;margin:0;color:var(--maroon);font-weight:800}

/* admin */
.admin-shell{max-width:1060px;margin:0 auto;padding:40px 24px 80px}
.login-card{max-width:430px;margin:70px auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:44px 40px;text-align:center}
.login-card h1{font-size:30px;margin:18px 0 8px;font-weight:800}
.login-card input{width:100%;padding:14px 16px;border:2px solid var(--line);border-radius:12px;font-size:16px;margin:10px 0;font-family:var(--font)}
.login-card input:focus{border-color:var(--maroon);outline:none}
.login-err{background:#FDECEA;color:#A4261F;border-radius:10px;padding:12px;margin-bottom:8px;font-size:14.5px}
.dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;flex-wrap:wrap;gap:14px}
.post-row{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:12px}
.post-row .meta{font-size:13.5px;color:var(--muted)}
.post-row .acts{display:flex;gap:8px;flex-shrink:0}
.icon-btn{padding:9px 16px;border-radius:9px;font-size:14px;font-weight:700;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;display:inline-block;font-family:var(--font)}
.icon-btn:hover{background:var(--maroon-soft);text-decoration:none}
.icon-btn.danger{color:#A4261F;border-color:#F0C9C4}
.icon-btn.danger:hover{background:#FDECEA}
.editor-grid{display:grid;grid-template-columns:1fr;gap:18px}
.editor-grid input[type=text],.editor-grid textarea,.editor-grid select{width:100%;padding:13px 15px;border:2px solid var(--line);border-radius:10px;font-size:15.5px;font-family:var(--font)}
.editor-grid textarea{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;line-height:1.65}
.editor-grid label{font-weight:700;font-size:14.5px}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .route-grid{grid-template-columns:repeat(2,1fr)}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .article-layout{grid-template-columns:1fr;gap:0}
  .toc{display:none}
  .news-band{grid-template-columns:1fr;padding:44px 32px}
}
@media(max-width:760px){
  body{font-size:15.5px}
  .wrap{padding:0 18px}
  .main-nav{display:none}
  .header-cta{display:none}
  .hamburger{display:block}
  .mobile-menu{display:block;position:fixed;top:var(--header-h);left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:12px 20px 22px;transform:translateY(-115%);transition:transform .3s ease;z-index:99}
  .mobile-menu.open{transform:none}
  .mobile-menu a{display:block;padding:13px 6px;font-weight:700;font-size:16.5px;color:var(--ink);border-bottom:1px solid var(--line-soft)}
  .mobile-menu a:last-child{border-bottom:0}
  .card-grid,.route-grid{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:1fr;gap:32px}
  .hero-in{padding:60px 0 190px}
  .search-card{flex-direction:column;border-radius:16px}
  .sc-field{border-right:0;border-bottom:1px solid var(--line-soft);padding:12px 16px}
  .search-card .btn{border-radius:12px;margin:6px 2px 2px}
  .hero-stats{gap:28px}
  .section{padding:64px 0}
  .calc{padding:26px 20px}
  .footer-grid{grid-template-columns:1fr;gap:32px;padding:52px 0 32px}
  .news-form{flex-direction:column;background:transparent;border:0;gap:10px;padding:0}
  .news-form input{background:#fff;border:2px solid var(--line);border-radius:12px;padding:14px 18px}
  .visa-form{grid-template-columns:1fr}
  .article-hero img{aspect-ratio:16/10}
  .yatra-pick{grid-template-columns:repeat(2,1fr)}
  #map{height:320px}
  .quote-cta{padding:24px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* ---------- Complete Yatra Blueprint (v9) : visual day-by-day mapping ---------- */
.bp{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:34px;margin:44px 0}
.bp > h2{margin:0 0 8px;font-size:27px}
.bp-intro{margin:0 0 26px;max-width:70ch}
.bp-day{border:1px solid var(--line);border-radius:var(--radius-s);margin:0 0 22px;overflow:hidden}
.bp-day:last-child{margin-bottom:0}
.bp-day-head{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--maroon-soft);border-bottom:1px solid var(--line)}
.bp-day-num{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:74px;height:34px;padding:0 14px;border-radius:999px;background:var(--maroon);color:#fff;font-weight:700;font-size:14px}
.bp-day-head h3{margin:0;font-size:19px}
.bp-day-body{padding:20px}
.bp-travel{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 16px;border:1px dashed var(--line);border-radius:10px;margin-bottom:16px;background:#FFFEFB}
.bp-leg{font-weight:700;color:var(--ink);font-size:16px}
.bp-leg .arrow{color:var(--maroon);margin:0 8px}
.bp-pills{display:flex;flex-wrap:wrap;gap:8px}
.bp-pill{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--body);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 13px}
.bp-pill b{color:var(--maroon)}
.bp-sec-title{font-size:15px;font-weight:700;color:var(--ink);margin:20px 0 10px;display:flex;align-items:center;gap:8px}
.bp-sec-title .ico{width:26px;height:26px;border-radius:8px;background:var(--maroon-soft);display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.bp-temple{border-left:3px solid var(--maroon);background:#FFFEFB;border-radius:0 10px 10px 0;padding:12px 16px;margin:0 0 10px}
.bp-temple h4{margin:0 0 4px;font-size:16.5px}
.bp-temple p{margin:4px 0;font-size:14.5px}
.bp-temple .meta{font-size:13.5px;color:var(--muted)}
.bp-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bp-card{border:1px solid var(--line);border-radius:10px;padding:13px 15px;margin:0 0 10px;background:#fff}
.bp-card:last-child{margin-bottom:0}
.bp-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.bp-card h4{margin:0;font-size:15.5px}
.bp-rating{display:inline-flex;align-items:center;gap:4px;font-size:13.5px;font-weight:700;color:var(--ink);background:#F6F6F6;border:1px solid var(--line-soft);border-radius:8px;padding:3px 9px;white-space:nowrap}
.bp-rating .star{color:#B7791F}
.bp-price{font-size:14px;font-weight:700;color:var(--maroon);margin:6px 0 2px}
.bp-note{font-size:13.5px;color:var(--muted);margin:2px 0}
.bp-tag{display:inline-block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--maroon);background:var(--maroon-soft);border-radius:6px;padding:2px 8px;margin-bottom:6px}
.bp-veg{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:2px solid #2F7D32;border-radius:3px;margin-right:6px;vertical-align:-2px}
.bp-veg::after{content:"";width:7px;height:7px;border-radius:50%;background:#2F7D32}
.bp-nonveg{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:2px solid #A83232;border-radius:50%;margin-right:6px;vertical-align:-2px}
.bp-nonveg::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid #A83232}
.bp-must{font-size:13.5px;margin:6px 0 0}
.bp-must b{color:var(--ink)}
.bp-tips{margin:16px 0 0;padding:0;list-style:none}
.bp-tips li{position:relative;font-size:14.5px;padding:7px 0 7px 28px;border-top:1px dashed var(--line-soft)}
.bp-tips li::before{content:"✓";position:absolute;left:4px;top:8px;color:var(--maroon);font-weight:700}
@media(max-width:760px){
  .bp{padding:22px 16px}
  .bp-cols{grid-template-columns:1fr}
  .bp-day-body{padding:14px}
  .bp-day-head{flex-wrap:wrap}
}
