[hidden]{display:none!important}
:root{--paper:#fffdf6;--green:#076b5d;--deep:#123a38;--gold:#ffd689;--muted:#435f5b}
html{scroll-padding-top:1rem}
body{letter-spacing:-.012em}
.hero{background:radial-gradient(ellipse at 8% 12%,#ffdfaa8a,transparent 51%),linear-gradient(136deg,#fffaf0 8%,#d8f2e8 95%)}
.hero-panel{border-radius:32px;box-shadow:0 18px 38px #123a3828}
.hero-copy h1{letter-spacing:-.077em}
.btn,.assistant-launch{transition:transform .24s cubic-bezier(.2,.8,.28,1.35),background .2s,border-color .2s,box-shadow .2s}
.btn:active,.assistant-launch:active,.town-card:active{transform:translateY(2px) scale(.98)}
.subhero{background:radial-gradient(ellipse at 14% 0%,#ffe2b1 0%,transparent 51%),linear-gradient(132deg,#fffaf0,#e2f4e9);padding:1.4rem 0 clamp(2.2rem,6vw,4.9rem)}
.subhero h1{font-size:clamp(2.3rem,5.2vw,5.3rem);max-width:15ch;margin-bottom:1.05rem;overflow-wrap:anywhere}
.subhero h1 em{display:inline}
.subhero h1 em::after{display:none}
.subhero-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);align-items:center;gap:clamp(1.3rem,5vw,4.3rem)}
.crumb{margin-bottom:clamp(1.3rem,4vw,2.8rem);display:flex;flex-wrap:wrap;gap:.5rem;font-size:.76rem;color:var(--muted);font-weight:620}
.crumb a{text-decoration:underline;text-underline-offset:3px}
.lead{max-width:58ch;color:var(--muted);font-size:clamp(.96rem,1.42vw,1.11rem);margin-bottom:1.25rem}
.town-tamil{font:700 clamp(1.02rem,2vw,1.34rem)/1.42 RayaanTamil,serif;color:var(--deep);margin:-.3rem 0 .8rem}
.route-ticket{position:relative;display:grid;justify-items:start;isolation:isolate;gap:.6rem;padding:clamp(1.1rem,3vw,1.8rem);border:1px solid #95c8b8;border-radius:26px;background:#dbf0e4 url(/assets/route-grid.svg) center/cover;box-shadow:0 12px 30px #193b331a;animation:ticket-in .55s cubic-bezier(.2,.8,.2,1) both}
.route-ticket::before{content:"";position:absolute;inset:0;background:linear-gradient(#eaf9efdd,transparent 85%);border-radius:inherit;z-index:-1}
.route-ticket strong{font-size:clamp(1.25rem,2.55vw,2rem);line-height:1.18;letter-spacing:-.052em;max-width:19ch}
.ticket-label,.map-art span{display:inline-flex;align-items:center;gap:.42rem;padding:.3rem .62rem;background:#fffdf0;border:1px solid #b3d9ca;border-radius:999px;font-size:.62rem;letter-spacing:.12em;font-weight:800;color:var(--deep)}
.route-ticket img{height:auto;width:min(80%,335px);margin:0 auto;filter:drop-shadow(0 8px 5px #10393335)}
.route-ticket small{padding:.28rem .56rem;background:#fffdf1e8;border-radius:8px;font-size:.68rem}
.town-band{background:#edf8ef;border-block:1px solid #d0e8da}
.town-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.72rem}
.town-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.64rem;padding:.76rem;background:#fffefa;border:1px solid #bbd9cd;border-radius:17px;min-height:66px;transition:transform .24s,background .2s,border-color .2s}
.town-card:hover,.town-card:focus-visible{border-color:#5a9e8b;background:#f4fbef}
.town-card>svg:first-child,.guide-grid article>svg{box-sizing:content-box;padding:.52rem;border-radius:12px;background:#dff2e6;color:var(--green)}
.town-card>svg:last-child{font-size:.83rem;color:var(--green);transition:transform .2s}
.town-card:hover>svg:last-child{transform:translateX(3px)}
.town-card strong,.town-card small{display:block;line-height:1.22}
.town-card strong{font-size:.96rem}
.town-card small{font-size:.68rem;color:var(--muted);margin-top:.27rem}
.town-actions{margin-top:1.15rem}
.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1.5rem}
.guide-grid article{background:#fff7e7;border:1px solid #ead2ac;border-radius:21px;padding:1.15rem}
.guide-grid article:nth-child(2){background:#fff0e5;border-color:#edcdbc}
.guide-grid article:nth-child(3){background:#e8f5e9;border-color:#c5dfcf}
.guide-grid article>svg{margin-bottom:.75rem;background:#fffefa}
.guide-grid p{color:var(--muted);margin-bottom:0}
.guide-grid .text-link{margin-top:.72rem}
.planner-hero{padding-bottom:clamp(1.2rem,3.7vw,3rem)}
.tool-section{padding-top:clamp(1rem,3vw,2rem)}
.tool-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);align-items:start;gap:1.1rem}
.tool-card{border:1px solid #c4dfd2;border-radius:23px;background:#fffefa;padding:clamp(.93rem,2.7vw,1.55rem);box-shadow:0 8px 22px #123a380d}
.tool-card h2{font-size:clamp(1.3rem,2.45vw,2.18rem);line-height:1.12;letter-spacing:-.05em}
.tool-card form{scroll-margin-top:1rem}
.tool-card .form-grid{gap:.72rem}
.tool-card .form-grid label{font-size:.83rem}
.tool-card .form-grid input,.tool-card .form-grid select,.tool-card textarea,.stop-row input{min-height:46px;padding-inline:.68rem;background:#fcfff9}
.tool-card .add-stop{min-height:43px;margin:0 0 .92rem}
.tool-card .add-stop:disabled{opacity:.55;cursor:default;transform:none}
.stop-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.55rem;margin-bottom:.62rem}
.stop-row .iconbtn{display:grid;font-size:1.4rem}
.book-fields{border-top:1px dashed #b4cec3;padding-top:.8rem}
.tool-result .map-art{aspect-ratio:2.12;margin-bottom:1rem;border-radius:15px;padding:.65rem;background:#e3f4eb url(/assets/route-grid.svg) center 60%/cover}
.tool-result>p{color:var(--muted)}
.route-list{list-style:none;padding:0;margin:0 0 1rem;animation:ticket-in .31s ease-out}
.route-list li{display:grid;grid-template-columns:6.4rem minmax(0,1fr);gap:.5rem;border-top:1px dashed #c7dcd0;padding:.47rem .1rem;font-size:.83rem}
.route-list li:last-child{border-bottom:1px dashed #c7dcd0}
.route-list span{color:var(--green);font-weight:750}
.route-list strong{overflow-wrap:anywhere}
.result-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.result-actions .btn{text-align:left}
.assistant-launch{position:fixed;z-index:6;right:max(14px,env(safe-area-inset-right));bottom:18px;display:flex;align-items:center;gap:.45rem;padding:.25rem .8rem .25rem .25rem;background:#fff7e5;border:1px solid #bc9856;border-radius:999px;color:var(--deep);box-shadow:0 5px 20px #14363138;font-size:.79rem;font-weight:810}
.assistant-launch:hover{background:#ffe5ad;transform:translateY(-2px)}
.assistant-launch img{width:42px;height:42px}
.assistant-dialog{width:min(440px,calc(100% - 20px));padding:.8rem;background:#fbfff9}
.assistant-top{display:flex;align-items:center;gap:.58rem;padding:.12rem .2rem .7rem;border-bottom:1px solid #d0e3d7}
.assistant-top img{width:50px;height:50px}
.assistant-top h2{font-size:1.42rem;margin:0 0 .15rem;letter-spacing:-.05em;padding:0}
.assistant-top p{margin:0;color:var(--muted);font-size:.71rem}
.assistant-close{margin-left:auto;display:grid;align-self:start;font-size:1.35rem}
.assistant-log{height:min(41dvh,340px);min-height:118px;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:.54rem;padding:.72rem .3rem}
.assistant-bubble{align-self:flex-start;background:#e6f4e8;border-radius:13px 13px 13px 3px;padding:.55rem .65rem;max-width:88%;overflow-wrap:anywhere;margin:0;font-size:.83rem;animation:ticket-in .26s both}
.assistant-bubble a{display:block;color:var(--green);text-decoration:underline;text-underline-offset:2px;margin-top:.35rem;font-weight:780}
.visitor-bubble{align-self:flex-end;background:#ffefd3;border-radius:13px 13px 3px 13px}
.assistant-topics{display:flex;gap:.32rem;flex-wrap:wrap;margin:.2rem 0 .55rem}
.assistant-topics button{padding:.31rem .53rem;min-height:36px;border:1px solid #bad7ca;background:#fffefa;color:var(--deep);border-radius:999px;font-size:.71rem;font-weight:730}
.assistant-topics button:hover{background:#d9f2e4}
.assistant-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.37rem}
.assistant-form .btn{min-height:44px;padding-inline:.8rem}
@keyframes ticket-in{from{opacity:.52;transform:translateY(8px) scale(.986)}to{opacity:1;transform:none}}
@media(max-width:1020px){.town-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:740px){
 .hero-panel{border-radius:21px}.subhero-grid,.guide-grid,.tool-grid{grid-template-columns:minmax(0,1fr)}
 .assistant-launch{bottom:calc(67px + env(safe-area-inset-bottom));right:11px}
 .assistant-launch img{width:36px;height:36px}
 .assistant-launch span{font-size:.73rem}
 .route-ticket img{width:min(63%,250px)}
 .route-ticket strong{max-width:none}
}
@media(max-width:420px){
 .town-grid{grid-template-columns:minmax(0,1fr)}
 .tool-card .form-grid:not(.book-fields){grid-template-columns:minmax(0,1fr)}
 .route-list li{grid-template-columns:5.25rem minmax(0,1fr)}
 .assistant-launch{padding:.21rem .55rem .21rem .21rem}
}
.fleet-note .film-link{display:inline-flex;align-items:center;gap:.42rem;border:1px solid #bbd9cc;border-radius:999px;background:#f1fbf4;padding:.52rem .75rem;min-height:43px}

.footer-credit{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;padding:1rem 0 1.3rem;border-top:1px solid #8cbaaa44;font-size:.72rem;color:#d9eee3}
.footer-credit a{color:#ffe0a3;text-underline-offset:4px}.footer-credit a:hover{text-decoration:underline}
nav a[aria-current=page]{background:var(--mint);color:var(--green)}
.tool-card:focus-within{border-color:#6fa891}
.tool-card input:focus,.tool-card select:focus,.tool-card textarea:focus{box-shadow:0 0 0 4px #138b6a13}
@media(max-width:740px){.footer-credit{align-items:flex-start;flex-direction:column;gap:.75rem}.assistant-launch{max-width:calc(100vw - 24px)}}
