/* Pet Taxi & Spa · © WEBA (webaservices.com) */
:root{
  --char:#33393e;      /* logo disc / shop sign */
  --char-2:#4a5258;
  --cape:#f6c21c;      /* superhero cape */
  --cape-d:#d9a400;
  --teal:#2bb3ae;      /* shop walls */
  --teal-d:#1b8f8b;
  --teal-l:#d9f3f1;
  --blue:#2f5fd0;      /* painted flowers */
  --coral:#ff5d8f;     /* harness pink */
  --paper:#fbf7ef;
  --ink:#1f2427;
  --muted:#5d666c;
  --line:#e7e0d2;
  --r:22px;
  --shadow:0 18px 40px -18px rgba(31,36,39,.35);
  --round:"M PLUS Rounded 1c",system-ui,sans-serif;
  --sans:"Noto Sans",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--round);font-weight:800;line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h2{font-size:clamp(30px,4.4vw,52px)}
h3{font-size:21px}
p{margin:0 0 1em}
.muted{color:var(--muted)}
.small{font-size:14px}
.eyebrow{font:800 13px/1 var(--round);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-d);margin-bottom:14px;display:inline-flex;align-items:center;gap:8px}
.eyebrow::before{content:"";width:22px;height:10px;border-radius:0 10px 10px 0;background:var(--cape)}


/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;text-decoration:none;font:800 16px/1 var(--round);padding:16px 24px;border-radius:999px;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-yellow{background:var(--cape);color:var(--char);box-shadow:0 6px 0 var(--cape-d)}
.btn-yellow:hover{box-shadow:0 8px 0 var(--cape-d)}
.btn-dark{background:var(--char);color:#fff;box-shadow:0 6px 0 #1c2023}
.btn-ghost{background:transparent;color:var(--char);box-shadow:inset 0 0 0 2.5px var(--char)}
.btn-ghost:hover{background:var(--char);color:#fff}
.btn:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* header */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;padding:12px clamp(16px,4vw,48px);background:rgba(251,247,239,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{width:46px;height:46px;flex:none}
.brand-word{font:800 20px/1 var(--round);color:var(--char);letter-spacing:.02em}
.brand-word b{color:var(--cape-d)}
.brand-word small{display:block;font:700 11px/1.4 var(--round);letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{text-decoration:none;font:700 15px/1 var(--round);padding:10px 14px;border-radius:999px}
.nav a:hover{background:var(--teal-l)}
.btn-call{padding:12px 18px;background:var(--char);color:#fff;font-size:15px}
.btn-call svg{width:18px;height:18px;fill:var(--cape)}
.menu-btn{display:none;width:44px;height:44px;border:0;border-radius:12px;background:var(--char);cursor:pointer;padding:0 11px;flex-direction:column;justify-content:center;gap:6px}
.menu-btn span{display:block;height:2.5px;background:#fff;border-radius:2px;transition:.2s}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(4.25px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-4.25px) rotate(-45deg)}

/* painted flowers (filled by JS) */
.flowers{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.flowers svg{position:absolute;opacity:.9}

/* hero */
.hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding:clamp(40px,6vw,80px) clamp(16px,5vw,64px) 90px;background:var(--teal);color:#fff;overflow:hidden}
.hero-copy,.hero-art{position:relative;z-index:1}
.hero .kicker{font:700 15px/1 var(--round);display:inline-flex;gap:10px;align-items:center;background:rgba(0,0,0,.18);padding:10px 14px;border-radius:999px;margin-bottom:22px}
.stars{color:var(--cape);letter-spacing:2px}
.hero h1{font-size:clamp(40px,5.4vw,74px);color:#fff;text-shadow:0 3px 0 rgba(0,0,0,.12)}
.hero h1 em{font-style:normal;color:var(--cape);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.16em;background:var(--coral);border-radius:9px;z-index:-1;transform:skewX(-12deg)}
.lead{font-size:clamp(18px,1.6vw,21px);max-width:34em;opacity:.95}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0 30px}
.hero .btn-ghost{color:#fff;box-shadow:inset 0 0 0 2.5px #fff}
.hero .btn-ghost:hover{background:#fff;color:var(--char)}
.hero-points{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 22px;font:700 15px/1.3 var(--round)}
.hero-points b{margin-right:4px}
/* hero logo reveal (their logo, traced into layers: disc, cape, dog) */
.hero-art{display:flex;flex-direction:column;align-items:center;text-align:center}
.stage{position:relative;width:min(100%,480px);aspect-ratio:1;border:0;padding:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.stage:focus-visible{outline:3px dashed #fff;outline-offset:8px;border-radius:50%}
.logo-slot,.logo-slot svg,.logo-slot img{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
.stage-glow{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,rgba(246,194,28,.55),rgba(246,194,28,0) 68%);filter:blur(10px);opacity:0}
.play .stage-glow{animation:glow 3.6s 1.1s ease-in-out infinite}
@keyframes glow{0%,100%{opacity:.35;transform:scale(.95)}50%{opacity:.7;transform:scale(1.08)}}

.logo-slot svg .lg-disc,.logo-slot svg .lg-ring,.logo-slot svg .lg-clipc,.logo-slot svg .lg-dog,.logo-slot svg .lg-cape,.logo-slot svg .lg-spark{transform-box:fill-box;transform-origin:center}
.logo-slot svg .lg-dog{transform-origin:50% 100%}
.logo-slot svg .lg-cape{transform-origin:94% 12%}
.logo-slot svg .lg-ring{fill:none;stroke:var(--cape);stroke-width:16;opacity:0}
.logo-slot svg .lg-spark{fill:var(--cape);opacity:0}
.logo-slot svg .lg-spark.w{fill:#fff}

.play .lg-disc{animation:disc .9s cubic-bezier(.3,1.55,.5,1) both}
.play .lg-ring{animation:ring 1.1s .5s ease-out both}
.play .lg-dog{animation:rise 1s .45s cubic-bezier(.22,1,.36,1) both,breathe 3.2s 2.6s ease-in-out infinite}
.play .lg-clipc{animation:clipgrow .55s 1.15s cubic-bezier(.3,1.4,.5,1) both}
.play .lg-cape{animation:capeOpen .8s 1.3s cubic-bezier(.2,1.5,.4,1) both,flutter 2.4s 2.1s ease-in-out infinite}
.play .lg-spark{animation:spark .9s calc(1.35s + var(--i) * 70ms) ease-out both}
@keyframes disc{from{transform:scale(0) rotate(-30deg)}to{transform:none}}
@keyframes ring{0%{opacity:.95;transform:scale(.92)}100%{opacity:0;transform:scale(1.5)}}
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
@keyframes clipgrow{from{transform:scale(1)}to{transform:scale(2.4)}}
@keyframes capeOpen{from{transform:scaleX(0) rotate(25deg)}to{transform:none}}
@keyframes flutter{0%,100%{transform:none}35%{transform:rotate(-3.5deg) skewY(-2deg) scaleX(1.03)}70%{transform:rotate(1.5deg) skewY(1deg) scaleX(.98)}}
@keyframes breathe{0%,100%{transform:none}50%{transform:scaleY(1.012)}}
@keyframes spark{0%{opacity:0;transform:scale(0) rotate(0)}35%{opacity:1;transform:scale(1.25) rotate(40deg)}100%{opacity:0;transform:scale(.2) rotate(110deg)}}

.bark{position:absolute;top:2%;right:4%;background:#fff;color:var(--char);font:800 20px/1 var(--round);padding:12px 16px;border-radius:18px 18px 18px 4px;box-shadow:0 8px 20px rgba(0,0,0,.2);opacity:0;transform:scale(0);transform-origin:0 100%;pointer-events:none}
.play .bark{animation:bark 1.3s 1.7s ease both}
/* a tap pets the dog: hand strokes his head, he leans in with a happy eye and a blush, wiggles, hearts float up */
.logo-slot svg .lg-pet{transform-box:fill-box;transform-origin:50% 100%}
.logo-slot svg .lg-hand,.logo-slot svg .lg-face,.logo-slot svg .lg-heart{opacity:0}
.logo-slot svg .lg-heart{fill:var(--coral);stroke:#fff;stroke-width:4;transform-box:fill-box;transform-origin:center}
.pet .lg-hand{animation:petHand 3.6s cubic-bezier(.45,0,.55,1) both}
.pet .lg-pet{animation:petLean 3.6s ease-in-out both}
.pet .lg-face{animation:petFace 3.6s linear both}
.pet .lg-heart{animation:petHeart 1.4s calc(1.2s + var(--i) * .38s) ease-out both}
@keyframes petHand{0%{opacity:0;transform:translate(900px,-300px)}12%{opacity:1;transform:translate(660px,60px)}20%{transform:translate(650px,84px)}33%{transform:translate(480px,102px)}46%{transform:translate(650px,84px)}59%{transform:translate(480px,102px)}72%{transform:translate(650px,84px)}82%{opacity:1;transform:translate(700px,30px)}100%{opacity:0;transform:translate(950px,-320px)}}
@keyframes petLean{0%,18%{transform:none}26%{transform:rotate(-1.4deg) scaleY(.985)}39%{transform:rotate(1deg) scaleY(.985)}52%{transform:rotate(-1.4deg) scaleY(.985)}65%{transform:rotate(1deg) scaleY(.985)}76%{transform:rotate(-1deg)}84%{transform:rotate(3deg) translateY(-6px)}89%{transform:rotate(-3deg) translateY(-10px)}94%{transform:rotate(2deg)}100%{transform:none}}
@keyframes petFace{0%,20%{opacity:0}25%,92%{opacity:1}100%{opacity:0}}
@keyframes petHeart{0%{opacity:0;transform:translateY(0) scale(.2)}25%{opacity:1;transform:translateY(-30px) scale(1.1)}100%{opacity:0;transform:translateY(-120px) scale(.8) rotate(12deg)}}
@keyframes bark{0%{opacity:0;transform:scale(0)}20%{opacity:1;transform:scale(1.15) rotate(-6deg)}35%{transform:scale(1)}80%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.6) translateY(-10px)}}

.wordmark{margin:4px 0 6px;font:800 clamp(34px,4.4vw,58px)/1 var(--round);color:#fff;letter-spacing:.02em;text-shadow:0 4px 0 rgba(0,0,0,.14);white-space:nowrap}
.wm-ch{display:inline-block;opacity:0}
.wm-ch.y{color:var(--cape)}
.wm-ch.sp{width:.28em}
.play-wm .wm-ch{animation:drop .65s calc(1.6s + var(--i) * 45ms) cubic-bezier(.2,1.6,.4,1) both}
@keyframes drop{from{opacity:0;transform:translateY(-80%) rotate(-14deg)}to{opacity:1;transform:none}}
.wm-sub{margin:6px 0 0;font:800 13px/1.4 var(--round);letter-spacing:.16em;text-transform:uppercase;color:var(--char);background:var(--cape);padding:8px 14px;border-radius:999px;box-shadow:0 5px 0 var(--cape-d);opacity:0}
.play-wm .wm-sub{animation:fadeUp .6s 2.35s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero-copy>*{animation:fadeUp .7s both}
.hero-copy>:nth-child(1){animation-delay:.1s}
.hero-copy>:nth-child(2){animation-delay:.22s}
.hero-copy>:nth-child(3){animation-delay:.34s}
.hero-copy>:nth-child(4){animation-delay:.46s}
.hero-copy>:nth-child(5){animation-delay:.58s}
.no-anim .wm-ch,.no-anim .wm-sub{opacity:1}

/* strip */
.strip{background:var(--char);color:var(--cape);overflow:hidden;padding:16px 0;font:800 clamp(18px,2vw,24px)/1 var(--round)}
.strip-track{display:flex;gap:28px;width:max-content;animation:marq 26s linear infinite;white-space:nowrap}
.strip i{font-style:normal;color:var(--teal)}
@keyframes marq{to{transform:translateX(-50%)}}

/* sections */
section{padding:clamp(60px,8vw,110px) clamp(16px,5vw,64px);position:relative;overflow-x:clip}
.sec-head{max-width:760px;margin-bottom:44px;position:relative;z-index:1}
.sec-head p:last-child{font-size:18px;color:var(--muted)}
.card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:28px}

/* taxi */
.taxi-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:start}
.route-card{background:var(--char);color:#fff;border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
.route-controls{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:end}
.route-controls label{font:700 13px/1 var(--round);letter-spacing:.08em;text-transform:uppercase;color:var(--cape);display:grid;gap:8px}
.route-controls select{appearance:none;width:100%;font:700 17px/1 var(--round);padding:14px 16px;border-radius:14px;border:0;background:#454d53 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' stroke='%23f6c21c' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center;color:#fff;cursor:pointer}
.swap{width:46px;height:46px;border-radius:50%;border:0;background:var(--cape);color:var(--char);font:800 20px/1 var(--round);cursor:pointer;transition:transform .3s}
.swap:hover{transform:rotate(180deg)}
.route-map{width:100%;height:auto;display:block;margin:10px 0 0}
.route-map .city circle{fill:#5d676e;transition:fill .2s,r .2s}
.route-map .city text{fill:#aab3b9;font:700 15px var(--round)}
.route-map .city{cursor:pointer}
.route-map .city:hover circle{fill:#fff}
.route-map .city.on circle{fill:var(--cape)}
.route-map .city.on text{fill:#fff}
.route-map .city.home circle{fill:var(--teal)}
.route-map .road{fill:none;stroke:var(--cape);stroke-width:4;stroke-linecap:round;stroke-dasharray:2 12}
.route-map .road-glow{fill:none;stroke:rgba(246,194,28,.18);stroke-width:14;stroke-linecap:round}
.route-map .sea{fill:#3c444a;font:800 64px var(--round);letter-spacing:.3em}
.route-out{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline;border-top:1px solid #4a5258;padding-top:16px;font-family:var(--round)}
.route-out b{font-size:30px;color:var(--cape)}
.route-out span{color:#c7cfd4;font-size:14px}
.route-out em{font-style:normal;font-size:12px;color:#8d979d;flex-basis:100%}
.taxi-uses{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.taxi-uses li{background:var(--teal-l);border-radius:18px;padding:20px}
.taxi-uses b{display:block;font:800 18px/1.2 var(--round);margin-bottom:6px}
.taxi-uses span{color:var(--muted);font-size:15px}

/* forms */
.form{display:grid;gap:14px}
.form h3{margin:0}
.form label{display:grid;gap:6px;font:700 14px/1.2 var(--round);color:var(--char)}
.form input:not([type=radio]):not([type=checkbox]),.form select{font:500 16px/1.2 var(--sans);padding:13px 14px;border-radius:12px;border:2px solid var(--line);background:#fffdf8;color:var(--ink);width:100%}
.form input:focus,.form select:focus{border-color:var(--teal)}
.form .invalid{border-color:var(--coral)!important;background:#fff4f7!important}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex!important;grid-template-columns:none;align-items:center;gap:10px!important;font-weight:600!important;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--teal-d)}
.pick{display:flex;gap:8px}
.pick.wrap{flex-wrap:wrap}
.pick label{display:block;cursor:pointer}
.pick input{position:absolute;opacity:0;pointer-events:none}
.pick span{display:block;padding:11px 16px;border-radius:999px;border:2px solid var(--line);font:700 15px/1 var(--round);background:#fff;transition:.15s;white-space:nowrap}
.pick label:hover span{border-color:var(--teal)}
.pick input:checked+span{background:var(--char);border-color:var(--char);color:var(--cape)}
.pick input:focus-visible+span{outline:3px solid var(--blue);outline-offset:2px}

/* spa */
.spa{background:#fff;overflow:hidden}
.spa .sec-head h2{color:var(--char)}
.spa-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center;position:relative;z-index:1}
.ba{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:636/750;box-shadow:var(--shadow);--p:0;background:var(--char)}
.ba>img,.ba-before img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{position:absolute;inset:0;opacity:calc(1 - var(--p))}
.ba-tag{position:absolute;top:16px;z-index:2;border:0;cursor:pointer;font:800 13px/1 var(--round);letter-spacing:.12em;text-transform:uppercase;background:rgba(31,36,39,.75);color:#fff;padding:9px 13px;border-radius:999px;transition:.2s}
.ba-tag.l{left:16px;background:var(--cape);color:var(--char)}
.ba-tag.r{right:16px}
.ba.is-after .ba-tag.l{background:rgba(31,36,39,.75);color:#fff}
.ba.is-after .ba-tag.r{background:var(--cape);color:var(--char)}
.ba-name{position:absolute;left:0;right:0;bottom:0;margin:0;padding:60px 18px 70px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font:800 16px var(--round);pointer-events:none}
.ba input{position:absolute;left:18px;right:18px;bottom:22px;z-index:2;width:calc(100% - 36px);margin:0;appearance:none;height:10px;border-radius:9px;background:rgba(255,255,255,.35);cursor:pointer}
.ba input::-webkit-slider-thumb{appearance:none;width:34px;height:34px;border-radius:50%;background:var(--cape);border:4px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.ba input::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--cape);border:4px solid #fff}
.services{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.svc{background:var(--paper);border-radius:18px;padding:20px;border:2px solid transparent;transition:.2s}
.svc:hover{border-color:var(--teal);transform:translateY(-3px)}
.svc h3{font-size:18px;margin-bottom:6px}
.svc p{margin:0;font-size:15px;color:var(--muted)}
.svc-feature{grid-column:1/-1;background:var(--char);color:#fff;position:relative}
.svc-feature p{color:#d5dbdf}
.svc-badge{position:absolute;top:-12px;right:18px;background:var(--coral);color:#fff;font:800 12px/1 var(--round);padding:8px 12px;border-radius:999px;letter-spacing:.06em}
.gift{grid-column:1/-1;margin:4px 0 0;font:700 16px var(--round);color:var(--teal-d)}
.book{margin-top:56px;position:relative;z-index:1;border:3px solid var(--char);box-shadow:10px 10px 0 var(--cape)}
.book-head{scroll-margin-top:100px}
.book-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}
fieldset{border:0;padding:0;margin:0;display:grid;gap:12px;min-width:0}
legend{font:800 13px/1 var(--round);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-d);margin-bottom:12px;padding:0}
.days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.day{flex:none;width:66px;padding:10px 0;border-radius:16px;border:2px solid var(--line);background:#fff;cursor:pointer;text-align:center;font-family:var(--round);transition:.15s}
.day b{display:block;font-size:22px;line-height:1.1}
.day small{display:block;font-size:12px;font-weight:700;color:var(--muted)}
.day i{display:block;font-style:normal;font-size:10px;color:var(--teal-d);font-weight:700;margin-top:3px}
.day:hover{border-color:var(--teal)}
.day[aria-pressed="true"]{background:var(--char);border-color:var(--char);color:#fff}
.day[aria-pressed="true"] small,.day[aria-pressed="true"] i{color:var(--cape)}
.day:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.book>.btn{justify-self:start}

/* shop */
.shop{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:center;background:var(--teal-l)}
.shop-img{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transform:rotate(-1.5deg);border:10px solid #fff}
.tags{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:8px}
.tags li{background:#fff;border-radius:999px;padding:8px 14px;font:700 14px/1 var(--round)}
/* the pup runs in, jumps for a bone and runs off with it (sprite frames, played by main.js) */
.treat{margin-top:22px}
.treat p{font:800 clamp(18px,2vw,22px)/1.25 var(--round);margin:4px 0 0}
.runner{width:100%;aspect-ratio:900/420}
.runner svg{display:block;width:100%;height:100%;overflow:hidden}

/* rescue */
.rescue{background:var(--char);color:#fff}
.rescue .eyebrow{color:var(--cape)}
.rescue-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,5vw,60px);align-items:start}
.rescue-pics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:sticky;top:110px}
.rescue-pics figure{margin:0;position:relative;border-radius:16px;overflow:hidden;aspect-ratio:424/750}
.rescue-pics figure:nth-child(2){transform:translateY(30px)}
.rescue-pics img{width:100%;height:100%;object-fit:cover}
.rescue-pics figcaption{position:absolute;left:8px;right:8px;bottom:8px;background:var(--cape);color:var(--char);font:800 13px/1.2 var(--round);padding:8px 10px;border-radius:10px;text-align:center}
.rescue-copy p{font-size:18px;color:#dde3e6}
.rescue-hug{margin:6px 0 20px;border-radius:16px;overflow:hidden}
.wish{font:800 20px/1.35 var(--round)!important;color:var(--cape)!important}
.rescue .btn-ghost{color:#fff;box-shadow:inset 0 0 0 2.5px #fff}
.rescue .btn-ghost:hover{background:#fff;color:var(--char)}

/* reviews */
.reviews .big{font-size:1.5em;color:var(--teal-d)}
.reviews small{font-size:16px;color:var(--muted);font-family:var(--sans);font-weight:500}
.rev-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px}
.rev{margin:0;background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--shadow);position:relative}
.rev::before{content:"“";position:absolute;top:-18px;left:18px;font:800 80px/1 var(--round);color:var(--cape)}
.rev p{font-size:16px}
.rev b{background:linear-gradient(transparent 60%,rgba(246,194,28,.55) 60%)}
.rev cite{font:800 14px var(--round);font-style:normal;color:var(--teal-d)}

/* gallery */
.gallery{padding-top:0}
.gal{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:14px;align-items:end}
.gal figure{margin:0;position:relative;border-radius:18px;overflow:hidden}
.gal img{width:100%;height:340px;object-fit:cover;transition:transform .5s}
.gal figure:hover img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:12px;bottom:12px;background:#fff;font:800 13px/1 var(--round);padding:8px 12px;border-radius:999px}
.ig-link{display:inline-block;margin-top:22px;font:800 16px var(--round);color:var(--teal-d)}

/* visit */
.visit{display:grid;grid-template-columns:1fr 1.15fr;gap:28px;background:var(--cape);align-items:stretch}
.visit-card{background:#fff;border-radius:var(--r);padding:clamp(24px,3vw,40px);box-shadow:var(--shadow)}
.visit h2{font-size:clamp(28px,3.4vw,40px)}
.visit h2 small{font-size:18px;color:var(--muted);font-family:var(--sans);font-weight:500}
.open{display:inline-flex;align-items:center;gap:8px;font:800 15px var(--round);padding:8px 14px;border-radius:999px;background:var(--teal-l);color:var(--teal-d)}
.open::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}
.open.closed{background:#ffe7ee;color:#c2335f}
.hours{width:100%;border-collapse:collapse;margin:10px 0 24px;font-size:16px}
.hours th{text-align:left;font-weight:600}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours th,.hours td{padding:9px 6px;border-bottom:1px dashed var(--line)}
.hours tr.today{background:var(--teal-l);font-weight:800}
.hours tr.today th,.hours tr.today td{font-family:var(--round)}
.phones{display:flex;flex-wrap:wrap;gap:10px}
.phones .btn{padding:13px 18px;font-size:15px}
.map{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);min-height:380px;border:6px solid var(--char)}
.map iframe{width:100%;height:100%;border:0;display:block;min-height:380px}

/* footer */
.foot{--ease:cubic-bezier(.2,.8,.2,1);background:var(--char);color:#c7cfd4;padding:44px clamp(16px,5vw,64px) 30px;display:grid;gap:14px}
.foot-brand{display:flex;gap:14px;align-items:center}
.foot-brand img{width:56px;height:56px}
.foot-brand p{margin:0;font-size:14px}
.foot-brand b{font:800 18px var(--round);color:#fff}
.foot-meta{margin:0;font-size:14px}
.foot a{color:inherit;text-decoration-color:rgba(246,194,28,.6);text-underline-offset:3px}
.foot-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:10px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.foot-copy{margin:0;font-size:13px;color:#9aa4ab}

/* WEBA credit badge: same on every WEBA site */
.madeby{display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 8px;border-radius:999px;border:1px solid rgba(142,229,255,.2);background:rgba(255,255,255,.03);color:#e3eef9;text-decoration:none;transition:border-color .3s,box-shadow .3s,transform .3s var(--ease)}
.madeby:hover{border-color:rgba(142,229,255,.5);box-shadow:0 0 34px -8px rgba(110,226,255,.55);transform:translateY(-2px)}
.madeby__label{font-size:13px;color:#93a7bd}
.madeby__logo{width:auto;height:30px;filter:drop-shadow(0 0 8px rgba(110,226,255,.3));transition:filter .3s,transform .6s var(--ease)}
.madeby:hover .madeby__logo{filter:drop-shadow(0 0 14px rgba(110,226,255,.7));transform:translateY(-2px)}
.madeby__url{font-size:13px;color:#8ee5ff}
@media (max-width:560px){
  .madeby{flex-wrap:wrap;border-radius:18px;padding:12px 16px;row-gap:8px}
  .madeby__label{flex-basis:100%}
}

/* forms: spam trap (hidden from people) and the privacy note */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.consent{margin:10px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}
.consent a{color:inherit}
.toast.bad{border-left-color:var(--coral)}
.toast a{color:var(--cape)}

.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%);background:var(--char);color:#fff;padding:16px 22px;border-radius:16px;font:700 15px/1.4 var(--round);box-shadow:0 18px 40px rgba(0,0,0,.35);z-index:70;max-width:min(92vw,520px);transition:transform .35s cubic-bezier(.2,.8,.2,1),visibility 0s .35s;border-left:6px solid var(--cape);visibility:hidden}
.toast.show{transform:translate(-50%,0);visibility:visible;transition:transform .35s cubic-bezier(.2,.8,.2,1)}

/* responsive */
@media (max-width:1080px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--paper);padding:10px 16px 18px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:14px}
  .menu-btn{display:flex;margin-left:auto}
  .btn-call{margin-left:0}
  .taxi-uses{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .hero,.taxi-grid,.spa-grid,.shop,.rescue-grid,.visit{grid-template-columns:1fr}
  .hero-art{order:-1}
  .stage{width:min(78vw,400px)}
  .rev-grid{grid-template-columns:1fr}
  .gal{grid-template-columns:1fr 1fr}
  .gal img{height:240px}
  .book-grid{grid-template-columns:1fr}
  .ba{max-width:520px}
}
@media (max-width:560px){
  body{font-size:16px}
  .btn-call span{display:none}
  .btn-call{padding:12px}
  .brand-word{font-size:17px}
  .services{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .taxi-uses{grid-template-columns:1fr}
  .route-controls{grid-template-columns:1fr}
  .swap{justify-self:center;transform:rotate(90deg)}
  .swap:hover{transform:rotate(270deg)}
  .rescue-pics figure:nth-child(2){transform:translateY(16px)}
  .hero-cta .btn{flex:1 1 100%}
  .stage{width:min(66vw,300px)}
  .wordmark{font-size:clamp(28px,8.4vw,36px)}
  .wm-sub{font-size:11px;letter-spacing:.1em;padding:7px 12px}
  .route-map .city text{font-size:22px}
  .book{box-shadow:6px 6px 0 var(--cape)}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
