/* taxi.sc · concept B "The Island Map" (Sam + Salifa, 10 Nov 2026). SBC palette + Fraunces/Inter. */
:root{--teal:#0E6E6B;--teal-d:#0B5754;--ink:#16201D;--ink2:#22302C;--mute:#5F6E66;--sand:#EFE7D5;--sand2:#F6F0E3;--line:#E2D8C3;--paper:#FFFDF8;--coral:#C98A7D;--coral-d:#A8685B;--sea:#DCEBE6;--wa:#1FAF5A}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink2);font:400 16px/1.62 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--teal)}img{max-width:100%;height:auto}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:400;color:var(--ink);letter-spacing:-.01em}
h1{font-size:clamp(36px,5.4vw,66px);line-height:1.04;margin:10px 0 16px;letter-spacing:-.025em}h1 i{color:var(--teal)}
h2{font-size:clamp(26px,3vw,36px);line-height:1.15;margin:0 0 14px}h3{font-size:21px;margin:0 0 8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
.kick{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-d);font-weight:600}
.lede{font-size:18px;max-width:58ch;color:var(--ink2)}
.small{font-size:14px;color:var(--mute)}
/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(255,253,248,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:22px;height:62px}
.logo{font:500 25px Fraunces,serif;color:var(--ink);text-decoration:none;letter-spacing:-.02em}.logo b{color:var(--teal);font-weight:500}
.nav{display:flex;gap:18px;margin-left:auto}.nav a{color:var(--ink2);text-decoration:none;font-size:14.5px}.nav a:hover,.nav a[aria-current]{color:var(--teal)}
.hdr-wa{background:var(--wa);color:#fff;text-decoration:none;padding:8px 15px;border-radius:999px;font-weight:600;font-size:14px}
.crumbs{max-width:1180px;margin:14px auto 0;padding:0 20px;font-size:13.5px;color:var(--mute)}.crumbs a{color:var(--mute)}.crumbs span{margin:0 4px}
/* buttons */
.btn{display:inline-block;padding:14px 24px;border-radius:999px;font-weight:600;text-decoration:none;font-size:15.5px;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px)}.b1{background:var(--teal);color:#fff}.b1:hover{background:var(--teal-d)}
.b2{border:1.5px solid var(--wa);color:#168a47;background:#fff}
.fbtns{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 6px}
.more{font-weight:600;text-decoration:none}
/* map */
.map{width:100%;height:auto;display:block}
.map .land path{fill:#F7F1E3;stroke:#cdbf9f;stroke-width:1.3;stroke-linejoin:round}
.map .roads path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.map .rm{stroke:#e2d3b2;stroke-width:1.6}.map .rn{stroke:#ece2cc;stroke-width:.9}
.map .route{fill:none;stroke:var(--coral);stroke-width:3.2;stroke-dasharray:1 6;stroke-linecap:round;stroke-linejoin:round}
.map .pin circle{fill:var(--paper);stroke:var(--teal);stroke-width:3;transition:fill .2s,stroke .2s,r .2s}
.map .pin .hit{fill:transparent;stroke:none}
.map .pin text{font:500 12.5px Inter,sans-serif;fill:var(--ink);paint-order:stroke;stroke:#F7F1E3;stroke-width:3.5px;stroke-linejoin:round}
.map .pin text.f{font-weight:600;fill:var(--teal)}
.map .pin{cursor:pointer;outline:none}.map .pin:hover circle:not(.hit),.map .pin:focus circle:not(.hit){stroke:var(--coral)}
.map .pin.on circle:not(.hit){fill:var(--coral);stroke:var(--coral)}
.map .pin.air circle{fill:var(--teal);stroke:var(--paper);stroke-width:3}.map .pin.air text{font-weight:600}
/* home hero */
.hhero{display:grid;grid-template-columns:.92fr 1.08fr;gap:44px;align-items:center;padding-top:34px;padding-bottom:20px}
.hmap{background:var(--sea);border-radius:28px;padding:14px;position:relative}
.mhint{position:absolute;top:18px;right:22px;margin:0;font-size:12.5px;color:var(--mute);background:rgba(255,253,248,.85);padding:4px 10px;border-radius:999px}
.pick{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 18px 16px;margin-top:20px;box-shadow:0 18px 40px -28px rgba(14,40,38,.35)}
.plab{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pval{font:500 24px Fraunces,serif;color:var(--ink);margin:2px 0 0}.pmeta{font-size:14px;color:var(--mute);margin-bottom:8px}
.pcars{list-style:none;margin:0 0 12px;padding:0}.pcars li{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-top:1px solid var(--sand)}
.pcars small{display:block;font-size:12.5px;color:var(--mute)}.pcars b{font:600 18px Inter;font-variant-numeric:tabular-nums;color:var(--ink)}
.pcars li[data-v=Standard] b{color:var(--teal);font-size:21px}
.pbtn{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pl{font-size:14.5px;font-weight:500}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:26px;margin-bottom:10px}
.strip div{padding:16px 18px;border-left:1px solid var(--line)}.strip div:first-child{border-left:0}
.strip b{display:block;font:500 21px Fraunces,serif;color:var(--ink)}.strip span{font-size:14px;color:var(--mute)}
.book{padding-top:46px;padding-bottom:20px;scroll-margin-top:70px}.bhead{text-align:center;max-width:640px;margin:0 auto 6px}.bhead p{color:var(--mute)}
/* blocks */
.block{padding-top:46px;padding-bottom:10px}.two{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.phead{padding-top:30px;padding-bottom:6px}
.regs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 30px;margin-top:18px}
.reg h3{font-size:19px;border-bottom:1px solid var(--line);padding-bottom:6px}
.reg a{display:flex;justify-content:space-between;text-decoration:none;color:var(--ink2);padding:5px 0;font-size:15px;border-bottom:1px dashed #eee4cf}
.reg a:hover span{color:var(--teal)}.reg a b{color:var(--teal);font-weight:600}
.steps{padding-left:20px}.steps li{margin-bottom:10px}.carl{padding-left:18px}.carl li{margin-bottom:6px}
/* destination */
.dhero{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start;padding-top:14px}
.dmap{background:var(--sea);border-radius:24px;padding:12px;position:sticky;top:80px}
.fcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin-top:18px}
.fhead{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding-bottom:6px}
.fares{list-style:none;margin:0;padding:0}.fares li{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--sand)}
.fares .cn{font-weight:500}.fares small{display:block;font-weight:400;font-size:12.5px;color:var(--mute)}
.fares b{font:600 19px Inter;font-variant-numeric:tabular-nums;color:var(--ink)}.fares li:nth-child(2) b{color:var(--teal);font-size:22px}
.fnote{font-size:13px;color:var(--mute);margin:8px 0 0}
.t{width:100%;border-collapse:collapse;font-size:15px}.t th{text-align:left;font-weight:600;font-size:13px;color:var(--mute);border-bottom:2px solid var(--line);padding:8px 10px 8px 0}
.t td{border-bottom:1px solid var(--sand);padding:9px 10px 9px 0;font-variant-numeric:tabular-nums}.tw{overflow-x:auto}.t.full td:first-child a{text-decoration:none;font-weight:500}
.facts{list-style:none;padding:0;margin:0}.facts li{padding:7px 0;border-bottom:1px solid var(--sand)}.facts b{display:inline-block;min-width:130px;color:var(--ink)}
.tip{background:var(--sand2);border-left:3px solid var(--coral);padding:12px 14px;border-radius:0 10px 10px 0}
.near{list-style:none;padding:0}.near li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--sand)}.near span{color:var(--mute);font-size:14px}
.ngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.ncard{display:grid;grid-template-columns:1fr auto;gap:2px 10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px;text-decoration:none;color:var(--ink2);transition:border-color .15s,transform .15s}
.ncard:hover{border-color:var(--teal);transform:translateY(-1px)}.ncard span{font-weight:500}.ncard b{color:var(--teal)}.ncard small{grid-column:1/-1;color:var(--mute);font-size:13px}
.cars{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.car{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.car img{border-radius:10px;aspect-ratio:16/10;object-fit:cover;width:100%;background:var(--sand2)}.car em{font:italic 14px Fraunces,serif;color:var(--coral-d)}.car p{margin:4px 0;font-size:14.5px}
/* faq */
.faq{padding-top:46px;padding-bottom:30px;max-width:860px}
details{border-top:1px solid var(--line);padding:14px 0}details:last-child{border-bottom:1px solid var(--line)}
summary{font:500 19px Fraunces,serif;color:var(--ink);cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
summary:after{content:"+";float:right;color:var(--teal);font-family:Inter}details[open] summary:after{content:"–"}details p{margin:8px 0 0}
/* footer */
.foot{background:var(--sand);margin-top:60px;padding:40px 0 22px;font-size:14.5px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}.foot h4{margin:4px 0 10px;font:600 13px Inter;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.foot a{display:block;color:var(--ink2);text-decoration:none;padding:3px 0}.foot p a{display:inline;color:var(--teal)}.foot .logo{display:inline}
.legal{margin-top:26px;font-size:12.5px;color:var(--mute)}.legal a{display:inline;color:var(--mute);text-decoration:underline}
/* engine fit */
.sbx{max-width:900px}
@media(max-width:960px){.hhero,.dhero,.two{grid-template-columns:1fr}.hhero{gap:18px}.hmap{order:2}.dmap{position:static}.regs{grid-template-columns:1fr 1fr}.fgrid{grid-template-columns:1fr 1fr}.nav{display:none}}
@media(max-width:620px){.wrap{padding:0 16px}.strip{grid-template-columns:1fr 1fr}.strip div{border-left:0;border-top:1px solid var(--line)}.regs{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr}.lede{font-size:17px}.mhint{display:none}.map .pin text{font-size:15px}.t{font-size:14px}}
/* phones: headline, map, then the fare card (the map is the product) */
@media(max-width:960px){.hhero{display:flex;flex-direction:column}.hcopy{display:contents}.hcopy>.kick,.hcopy>h1,.hcopy>.lede{order:1;margin-bottom:0}.hmap{order:2;margin-top:6px}.pick{order:3;margin-top:4px}.hhero .lede{font-size:16px}}
/* simple hero card (Sam 10 Nov): type or tap, one price, book */
.pick{max-width:470px}
.pqw{position:relative;margin:6px 0 4px}
#pq{width:100%;font:500 24px Fraunces,Georgia,serif;color:var(--ink);border:0;border-bottom:1.5px solid var(--line);background:transparent;padding:4px 0 8px;outline:none}
#pq:focus{border-bottom-color:var(--teal)}
.psug{position:absolute;left:-10px;right:-10px;top:100%;z-index:30;list-style:none;margin:6px 0 0;padding:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px -20px rgba(14,40,38,.35)}
.psug li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:15.5px}
.psug li.on,.psug li:hover{background:var(--sand2)}.psug b{color:var(--teal)}.psug li.oth{font-size:13.5px;color:var(--mute)}
.pprice{display:flex;align-items:center;gap:14px;margin:16px 0 18px}
.pprice b{font:400 56px/1 Fraunces,Georgia,serif;color:var(--teal);letter-spacing:-.02em}
.pprice span{font-size:15px;color:var(--ink2);line-height:1.35}.pprice small{color:var(--mute);font-size:13.5px}
.pbook{display:block;text-align:center}
.pfoot{font-size:13.5px;color:var(--mute);margin:12px 0 0}
.map .dot{fill:var(--coral);stroke:var(--paper);stroke-width:3;pointer-events:none;transition:cx .35s,cy .35s}

/* even hotel grid (Sam 10 Nov: uniformity, symmetry) */
.hgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.hc{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:3px 10px;min-height:76px;align-content:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;text-decoration:none;color:var(--ink2);transition:border-color .15s,transform .15s}
.hc:hover{border-color:var(--teal);transform:translateY(-1px)}.hc span{font-weight:500;line-height:1.3}.hc b{color:var(--teal);font-weight:600;align-self:start}.hc small{grid-column:1/-1;color:var(--mute);font-size:12.5px}
@media(max-width:1000px){.hgrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.hgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.hgrid{grid-template-columns:1fr}}

/* card v3 (Sam 10 Nov): BMW big, other cars small but prices pronounced */
.pprice strong{font-weight:600;color:var(--ink)}.pprice span{font-size:14.5px}
.oc{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.oc li{background:var(--sand2);border-radius:10px;padding:8px 6px;text-align:center;line-height:1.2}
.oc span{display:block;font-size:11.5px;color:var(--mute);letter-spacing:.02em}.oc b{display:block;font:600 18px Inter,sans-serif;color:var(--ink);margin-top:3px;font-variant-numeric:tabular-nums}
.pfoot a{font-weight:500}.psug small{display:block;font-size:12px;color:var(--mute)}
.hgrid{grid-auto-rows:1fr}
.oc{grid-auto-rows:1fr}.oc span{white-space:nowrap}

/* card actions (Sam 10 Nov): instant booking + free quote, side by side */
.pacts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pacts .btn{text-align:center;padding:11px 10px;line-height:1.2;border-radius:16px}
.pacts small{display:block;font-weight:400;font-size:12px;opacity:.85;margin-top:2px}
