/* Sarasota Savings — "Gulf Coast editorial" theme
   Bright beach-morning: white page, light airy header, sky-gradient hero,
   sea-glass accents. Teal #0e7c86 is a restrained accent; dark tones live
   only in text. Nautical-chart contour texture, barely there.
   Palette: teal #0e7c86 (accent), aqua, sky blue, seafoam, sea ink (text).
   Type: Fraunces (display serif) + Source Sans 3 (humanist sans). Mobile-first. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Source+Sans+3:wght@400;600;700&display=swap');

:root{
  --sand:#ffffff;             /* page background — clean white */
  --sand-deep:#ece2c9;        /* warm hairline for rules, chips */
  --paper:#fffdf9;            /* card surface — a whisper of warmth */
  --teal:#0e7c86;             /* brand primary */
  --teal-deep:#0a5f66;        /* darker teal for text accents */
  --sea:#123a40;              /* deep sea ink — headings, footer */
  --sea-deep:#0d2b31;         /* footer background */
  --ink:#16323a;              /* body text */
  --muted:#5c6b73;            /* secondary text (passes on white) */
  --coral:#c2512c;            /* legacy warm accent — barely used now */
  --coral-bright:#e8704a;     /* legacy bright accent — barely used now */
  --gold:#f2b134;             /* kept for the barest sunlit details only */
  --aqua:#7fd1c8;             /* seafoam aqua — secondary accent */
  --sky:#bfe3f2;              /* gulf sky blue — highlights */
  --ocean:#0a4f5e;            /* deep ocean — hover depth */
  --seagreen:#0b6e5f;         /* sea-green button hover */
  --line:#e4d8bc;             /* card borders — a touch stronger for white */
  --radius:14px;
  --shadow-sm:0 1px 3px rgba(18,58,64,.10),0 1px 2px rgba(18,58,64,.06);
  --shadow-md:0 12px 28px rgba(18,58,64,.16),0 2px 6px rgba(18,58,64,.08);
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1rem;
  color:var(--ink);
  line-height:1.65;
  background-color:#ffffff;
  /* Layered white: faint sea-glass glow bleeding down from top-center,
     over a barely-there nautical-chart contour tile. Texture felt, not seen. */
  background-image:
    radial-gradient(1150px 560px at 50% -120px, rgba(127,209,200,.10), rgba(127,209,200,.03) 45%, transparent 72%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480' viewBox='0 0 480 480'%3E%3Cg fill='none' stroke='%238a9aa0' stroke-opacity='0.05' stroke-width='1.25'%3E%3Cpath d='M-20,120 C80,90 160,150 260,120 C360,90 420,140 500,110'/%3E%3Cpath d='M-20,170 C90,140 170,200 270,170 C370,140 430,190 500,160'/%3E%3Cpath d='M-20,220 C100,190 180,250 280,220 C380,190 440,240 500,210'/%3E%3Cpath d='M-20,270 C110,240 190,300 290,270 C390,240 450,290 500,260'/%3E%3Cpath d='M-20,320 C120,290 200,350 300,320 C400,290 460,340 500,310'/%3E%3Cellipse cx='360' cy='88' rx='70' ry='42'/%3E%3Cellipse cx='360' cy='88' rx='96' ry='61'/%3E%3Cellipse cx='360' cy='88' rx='124' ry='82'/%3E%3Cellipse cx='118' cy='402' rx='60' ry='36'/%3E%3Cellipse cx='118' cy='402' rx='86' ry='55'/%3E%3C/g%3E%3C/svg%3E");
  background-size:auto,480px 480px;
  background-repeat:no-repeat,repeat;
}
::selection{background:rgba(14,124,134,.22)}
:focus-visible{outline:3px solid #6fc3d8;outline-offset:2px;border-radius:4px}

h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.22;letter-spacing:-.01em}
img{max-width:100%;height:auto}
.wrap{max-width:960px;margin:0 auto;padding:0 1rem}

/* Content links: teal ink, coral on hover (default blue is gone) */
main p a,main li a{color:var(--teal-deep);text-underline-offset:2px;text-decoration-thickness:1px}
main p a:hover,main li a:hover{color:var(--ocean)}

/* ---------- Header: the statement piece ---------- */
.site-header{
  position:sticky;top:0;z-index:10;color:var(--ink);overflow:clip;
  /* beach-morning: white header melting into a breath of sky tint */
  background:linear-gradient(180deg,#ffffff 0%,#f2fafb 78%,#e9f5f6 100%);
  box-shadow:0 2px 12px rgba(18,58,64,.10);
}
/* thin aqua-to-blue keyline along the header's bottom edge */
.site-header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;pointer-events:none;
  background:linear-gradient(90deg,var(--aqua) 0%,var(--sky) 45%,#2b93a4 100%);
}
.site-header::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(420px 200px at 12% 130%, rgba(127,209,200,.20), transparent 70%);
}
.site-header .wrap{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding:.7rem 1rem}
.brand{color:var(--sea);font-family:var(--font-display);font-weight:700;font-size:1.35rem;text-decoration:none;letter-spacing:.2px}
.brand span{
  color:var(--teal);
  background:linear-gradient(180deg,#17a7b4 0%,var(--teal) 55%,var(--ocean) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.site-nav{display:flex;flex-wrap:wrap;gap:.15rem;margin-left:auto}
.site-nav a{color:var(--sea);text-decoration:none;padding:.45rem .55rem;border-radius:6px;font-size:.95rem;font-weight:600;position:relative}
.site-nav a::after{content:"";position:absolute;left:.55rem;right:.55rem;bottom:.18rem;height:2px;border-radius:2px;
  background:var(--aqua);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.site-nav a:hover,.site-nav a:focus-visible{background:rgba(14,124,134,.09);color:var(--ocean)}
.site-nav a:hover::after,.site-nav a:focus-visible::after{transform:scaleX(1)}

/* ---------- Hero ---------- */
.hero{position:relative;color:var(--sea);padding:3rem 0 3.75rem;overflow:clip;
  background:
    /* morning sun, soft in a bright sky */
    radial-gradient(360px 360px at 82% 16%, rgba(255,253,242,.95), rgba(255,246,221,.45) 45%, transparent 70%),
    radial-gradient(1000px 600px at 50% -30%, rgba(255,255,255,.7), transparent 60%),
    linear-gradient(180deg,#eaf7fc 0%,#ddf1f0 55%,#c9e9e2 100%)}
/* back wave — pale sea-glass teal, offset phase */
.hero::before{content:"";position:absolute;left:0;right:0;bottom:9px;height:30px;pointer-events:none;opacity:.85;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 32' preserveAspectRatio='none'%3E%3Cpath d='M0,19 C220,4 420,31 640,17 C860,4 1040,29 1200,15 L1200,32 L0,32 Z' fill='%23b5dcd4'/%3E%3C/svg%3E") repeat-x left bottom/1200px 30px}
/* front wave — white page with a gold crest keyline */
.hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:27px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30' preserveAspectRatio='none'%3E%3Cpath d='M0,14 C200,28 400,2 600,14 C800,26 1000,2 1200,14 L1200,30 L0,30 Z' fill='%23ffffff'/%3E%3Cpath d='M0,14 C200,28 400,2 600,14 C800,26 1000,2 1200,14' fill='none' stroke='%237fd1c8' stroke-opacity='0.55' stroke-width='2'/%3E%3C/svg%3E") repeat-x left bottom/1200px 27px}
.hero .kicker{text-transform:uppercase;letter-spacing:2.5px;font-size:.75rem;color:var(--teal-deep);font-weight:700;margin:0 0 .4rem}
.hero h1{margin:.25rem 0 .5rem;font-size:2.3rem;color:var(--sea)}
.hero p.lede{font-size:1.1rem;max-width:34rem;margin:.25rem 0 1.35rem;color:var(--ink)}
.hero p.updated{color:var(--muted);font-style:normal;font-size:.85rem;margin:0 0 .6rem}
@media(min-width:700px){.hero h1{font-size:3rem}.hero{padding:3.75rem 0 4.5rem}}

.btn{display:inline-block;background:var(--teal);color:#fff;text-decoration:none;font-weight:700;
  padding:.72rem 1.4rem;border-radius:999px;border:0;cursor:pointer;font-size:1rem;font-family:var(--font-body);
  box-shadow:0 2px 8px rgba(14,124,134,.35);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.btn:hover{background:var(--seagreen);transform:translateY(-1px);box-shadow:0 5px 14px rgba(11,110,95,.4);color:#fff}
.btn.ghost,.btn-ghost{display:inline-block;background:transparent;border:2px solid #fff;color:#fff;margin-left:.5rem;
  text-decoration:none;font-weight:700;padding:.62rem 1.3rem;border-radius:999px;cursor:pointer;font-size:1rem;font-family:var(--font-body);
  transition:background .15s ease,transform .15s ease}
.btn.ghost:hover,.btn-ghost:hover{background:rgba(255,255,255,.16);transform:translateY(-1px);color:#fff}
/* ghost buttons on the light hero */
.hero .btn.ghost{border-color:var(--teal);color:var(--teal-deep);margin-left:.5rem}
.hero .btn.ghost:hover{background:rgba(14,124,134,.10);color:var(--ocean)}
/* ghost buttons on light backgrounds (quiz, share row) */
main .btn-ghost{border-color:var(--teal);color:var(--teal-deep);background:var(--paper);margin-left:0}
main .btn-ghost:hover{background:var(--teal);border-color:var(--teal);color:#fff}

/* ---------- Cards ---------- */
.section{padding:2.1rem 0}
.section:first-child{padding-top:1.25rem}
.section h2{margin:0 0 .25rem;color:var(--sea);font-size:1.55rem}
.section .sub{color:var(--muted);margin:.1rem 0 1rem;font-size:1rem}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
@media(min-width:700px){.cards{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.cards{grid-template-columns:repeat(4,1fr)}}
.card{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:.85rem .9rem;text-decoration:none;color:inherit;display:block;box-shadow:var(--shadow-sm);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;opacity:0;transition:opacity .18s ease;
  background:linear-gradient(90deg,var(--teal) 0%,var(--aqua) 55%,var(--sky) 100%)}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--teal)}
.card:hover::before{opacity:1}
.card h3{margin:.1rem 0 .3rem;color:var(--sea);font-size:1rem;line-height:1.25}
.card p{margin:.15rem 0 .45rem;font-size:.85rem;line-height:1.4;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .go{color:var(--teal-deep);font-weight:700;font-size:.82rem;white-space:nowrap}
@media(max-width:699px){.card h3{font-size:.92rem}.card p{font-size:.78rem}}
.card .go{color:var(--teal-deep);font-weight:700;font-size:.92rem}
.card:hover .go{color:var(--ocean)}
.card .emoji{font-size:1.7rem}

/* ---------- Content pages ---------- */
.crumbs{font-size:.85rem;color:var(--muted);margin:1.25rem 0 .25rem}
.crumbs a{color:var(--teal-deep);text-decoration:none}
.page h1{color:var(--sea);margin:.2rem 0 .6rem;font-size:1.9rem}
.page h2{color:var(--sea);margin:1.9rem 0 .45rem;font-size:1.4rem}
.page h3{color:var(--teal-deep);margin:1.3rem 0 .3rem;font-size:1.12rem;font-family:var(--font-body);font-weight:700}
.page p,.page li{max-width:44rem}
.page ul.tips{padding-left:1.2rem}
.page ul.tips li{margin:.4rem 0}
.page ul.tips li::marker{color:var(--teal-deep)}

/* Callouts: tinted panels with accent edges */
.aff-note{background:#fffaf0;border:1px solid #e8d3a0;border-left:5px solid var(--teal-deep);border-radius:0 var(--radius) var(--radius) 0;
  padding:.9rem 1.1rem;font-size:.93rem;margin:1.35rem 0;max-width:44rem;box-shadow:var(--shadow-sm)}
.verify-note{background:#eef7f8;border:1px solid #cde6e9;border-left:5px solid var(--teal);
  padding:.75rem 1.1rem;font-size:.9rem;color:var(--teal-deep);border-radius:0 10px 10px 0;margin:1.1rem 0;max-width:44rem}

/* ---------- Deals ---------- */
.deal-grid{display:grid;grid-template-columns:1fr;gap:1.1rem;margin-top:.75rem}
@media(min-width:640px){.deal-grid{grid-template-columns:repeat(2,1fr)}}
.deal{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem;
  box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}
.deal:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.deal h3{margin:.1rem 0 .3rem;font-size:1.08rem;font-family:var(--font-body);font-weight:700}
.deal h3 a{color:var(--sea);text-decoration:none}
.deal h3 a:hover{color:var(--ocean)}
.deal p{font-size:.93rem;color:var(--muted);margin:.25rem 0 .6rem}
.deal .tag{display:inline-block;background:#e2f4f1;border:1px solid #bfe0da;color:#0a4a56;font-size:.75rem;
  font-weight:700;padding:.18rem .65rem;border-radius:999px;margin-bottom:.4rem;letter-spacing:.4px;text-transform:uppercase}

/* ---------- Events ---------- */
.event-group{margin-bottom:1.75rem}
.event-group h2{border-bottom:2px solid var(--sand-deep);padding-bottom:.35rem}
.event{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:10px;
  padding:.75rem 1.05rem;margin:.75rem 0;box-shadow:var(--shadow-sm)}
.event .date{display:inline-block;background:rgba(14,124,134,.1);color:var(--teal-deep);font-weight:700;
  font-size:.85rem;padding:.16rem .65rem;border-radius:999px;margin-bottom:.3rem}
.event p{margin:.15rem 0}

/* ---------- Signup panel ---------- */
.signup{position:relative;overflow:hidden;border-radius:18px;padding:2rem 1.75rem;margin:2.25rem 0;color:var(--ink);
  background:linear-gradient(160deg,#f2fbf9 0%,#ddf1ec 100%);
  border:1px solid #bfe0da;box-shadow:var(--shadow-md)}
.signup::before{content:"";position:absolute;width:360px;height:360px;right:-120px;top:-120px;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.85),transparent 70%)}
.signup::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;
  background:linear-gradient(90deg,var(--teal),var(--aqua),var(--sky))}
.signup h2{color:var(--sea);margin:0 0 .35rem;font-size:1.45rem;position:relative}
.signup p{color:var(--muted);font-size:.96rem;max-width:36rem;position:relative}
.signup form{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem;position:relative}
.signup input[type=email]{flex:1 1 220px;padding:.7rem 1rem;border-radius:999px;border:2px solid var(--line);
  font-size:1rem;font-family:var(--font-body);background:#fff;color:var(--ink)}
.signup input[type=email]:focus{border-color:var(--teal);outline:none}

/* ---------- Forms (quote / contact) ---------- */
.quote-box{background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--teal);border-radius:0 0 var(--radius) var(--radius);
  padding:1.6rem 1.5rem;margin:2rem 0;box-shadow:var(--shadow-sm)}
.quote-box h2{margin-top:0}
.quote-form{display:grid;gap:.95rem;max-width:34rem;margin-top:1rem}
.quote-form label{font-weight:600;font-size:.95rem;display:grid;gap:.32rem;color:var(--sea)}
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:10px;padding:.65rem .85rem;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--teal);outline:3px solid rgba(14,124,134,.18);outline-offset:1px}
.privacy-note{font-size:.85rem;color:var(--muted);max-width:34rem}
.form-success{background:#f0faf8;border:1px solid var(--line);border-radius:12px;
  padding:1.5rem;max-width:34rem;margin-top:1rem}
.form-success h3{margin:0 0 .4rem;color:var(--teal-deep)}
.form-success p{margin:0;color:var(--muted)}

/* ---------- Map page ---------- */
.map-filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.1rem 0 1.2rem}
.map-filters button{border:2px solid var(--line);background:var(--paper);border-radius:999px;
  padding:.45rem 1.05rem;font-weight:700;color:var(--ink);cursor:pointer;font-size:.95rem;font-family:var(--font-body);
  transition:border-color .15s ease,background .15s ease,transform .15s ease}
.map-filters button:hover{border-color:var(--teal);transform:translateY(-1px)}
.map-filters button.active{background:var(--teal);border-color:var(--teal);color:#fff;box-shadow:0 2px 8px rgba(14,124,134,.35)}
.map-fallback{font-size:.9rem;color:var(--muted)}
.place-list{list-style:none;padding:0;display:grid;gap:.65rem;margin-top:1.25rem}
.place-list li{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.65rem .95rem;box-shadow:var(--shadow-sm)}
.place-list li a{font-weight:700}
.place-list .desc{color:var(--muted);font-size:.9rem}

/* ---------- Footer ---------- */
.site-footer{background:#f2faf8;color:var(--muted);margin-top:2.75rem;padding:2rem 0 2.5rem;font-size:.9rem;
  border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--aqua),var(--sky),#2b93a4) 1}
.site-footer a{color:var(--teal-deep);text-decoration:none}
.site-footer a:hover{color:var(--ocean);text-decoration:underline;text-underline-offset:3px}
.foot-nav{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;margin:.8rem 0}
.foot-small{color:var(--muted);font-size:.82rem;max-width:44rem}

/* ---------- Freshness line ---------- */
p.updated{font-size:.85rem;color:var(--muted);margin:-.5rem 0 1rem;font-style:italic}

/* ---------- FAQ ---------- */
.faq{margin:2.25rem 0 0;border-top:2px solid var(--sand-deep);padding-top:.75rem}
.faq h2{color:var(--sea)}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.85rem 1.05rem;margin:.65rem 0;
  box-shadow:var(--shadow-sm);transition:border-color .15s ease}
.faq details:hover{border-color:var(--teal)}
.faq details[open]{border-color:var(--teal)}
.faq summary{font-weight:700;color:var(--sea);cursor:pointer;font-size:1rem}
.faq summary::marker{color:var(--teal)}
.faq details p{margin:.55rem 0 0;color:var(--ink)}

/* ---------- Site search ---------- */
.search-box{display:flex;gap:.55rem;margin:1.1rem 0 1.6rem}
.search-box input{flex:1;padding:.72rem 1.05rem;border:1px solid var(--line);border-radius:999px;font-size:1rem;background:#fff}
.results .result{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.95rem 1.15rem;
  margin:.65rem 0;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease}
.results .result:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.results .result h3{margin:0 0 .25rem;font-size:1.06rem;font-family:var(--font-body);font-weight:700}
.results .result h3 a{color:var(--sea);text-decoration:none}
.results .result h3 a:hover{color:var(--ocean)}
.results .result p{margin:0;font-size:.92rem;color:var(--muted)}
.result-count{color:var(--muted);font-size:.9rem}

/* ---------- Quiz (harmonizes with the page's inline styles, which load after this file) ---------- */
.quiz-wrap{max-width:680px;margin:1rem auto}
.quiz-card{border-top:5px solid var(--teal)}
.quiz-q{font-family:var(--font-display);color:var(--sea)}
.quiz-bar span{background:linear-gradient(90deg,var(--teal),var(--aqua))}
.quiz-a:hover{border-color:var(--teal)}
.quiz-email .signup{margin-top:2.5rem}
.result-emoji{line-height:1}
.result-name{font-family:var(--font-display);color:var(--sea)}
.share-row{gap:.75rem}
.qfade{transition:opacity .25s ease,transform .25s ease}
.qfade.out{opacity:0;transform:translateY(8px)}
.big{line-height:1}

/* ---------- Embeds (e.g. beach-cam iframes) ---------- */
.page iframe{width:100%;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff}

/* ---------- Homepage live-cam section ---------- */
.cam-live .cam-grid{display:grid;grid-template-columns:1fr;gap:1.1rem}
@media(min-width:700px){.cam-live .cam-grid{grid-template-columns:1fr 1fr}}
.cam-live-card{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.cam-frame{position:relative;aspect-ratio:16/9;background:var(--sea-deep)}
.cam-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cam-live-card figcaption{padding:.9rem 1rem 1rem}
.cam-live-card figcaption strong{display:block;color:var(--sea);font-family:var(--font-display);font-size:1.08rem}
.cam-live-card .cam-loc{display:block;color:var(--muted);font-size:.9rem;margin:.15rem 0 .45rem}
.cam-live-card .cam-fallback{font-size:.92rem;font-weight:600}
.cam-more{margin:1rem 0 0}

/* ---------- Mobile-first spacing (small screens) ---------- */
body{overflow-x:clip}
main{overflow-wrap:break-word}
button{font-family:var(--font-body)}

@media (max-width:639px){
  .wrap{padding:0 1rem}                       /* 16px gutters */
  .hero{padding:2.25rem 0 3rem}
  .hero h1{font-size:1.9rem}
  .hero p.lede{font-size:1.02rem;margin-bottom:1.15rem}
  .section{padding:1.5rem 0}
  .section .sub{margin-bottom:1rem}
  .cards{gap:.7rem}
  .page h1{font-size:1.6rem}
  .page h2{margin:1.4rem 0 .35rem;font-size:1.28rem}
  .page h3{margin:1.1rem 0 .25rem}
  .deal-grid{gap:.85rem}
  .event-group{margin-bottom:1.25rem}
  .signup{padding:1.5rem 1.2rem;margin:1.6rem 0}
  .signup input[type=email]{flex:1 1 100%}
  .signup form .btn{width:100%;margin-left:0}
  .quote-box{padding:1.25rem 1.1rem;margin:1.6rem 0}
  .faq details{padding:.75rem .9rem}
  .site-header .wrap{padding:.6rem 1rem;gap:.35rem .75rem}
  .map-filters{gap:.45rem;margin:.9rem 0 1rem}
  .crumbs{margin:1rem 0 .25rem}
}

/* ---------- Tap targets: minimum 44px ---------- */
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.site-nav a{min-height:44px;display:inline-flex;align-items:center}
.map-filters button{min-height:44px}
.quiz-a{min-height:56px}
.faq summary{padding:.35rem 0}
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea,.search-box input{min-height:44px}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
}

/* ---------- Homepage visuals (Sep 2026 refresh) ---------- */
.hero-grid{display:grid;gap:1.5rem;align-items:center}
@media(min-width:800px){.hero-grid{grid-template-columns:1.02fr .98fr}}
.hero-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-md);display:block}

/* Card thumbnails bleed to the card's top edge (card padding: .85rem .9rem) */
.card-img{display:block;width:calc(100% + 1.8rem);max-width:none;margin:-.85rem -.9rem .6rem;aspect-ratio:16/10;object-fit:cover;border-bottom:1px solid var(--line)}

/* Featured deals band */
.deals-band{display:grid;gap:1.25rem;align-items:center;
  background:linear-gradient(135deg,#e9f8f2 0%,#e2f2fb 100%);
  border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow-sm)}
.deals-band img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:calc(var(--radius) - 4px);border:1px solid var(--line);display:block}
.deals-band h2{margin:.55rem 0 .4rem;color:var(--sea);font-size:1.6rem}
.deals-band p{margin:0 0 1rem;color:var(--ink);max-width:34rem}
@media(min-width:760px){.deals-band{grid-template-columns:minmax(220px,300px) 1fr;padding:1.6rem 1.8rem}}
.pill-badge{display:inline-block;background:var(--teal);color:#fff;font-weight:700;font-size:.8rem;padding:.3rem .85rem;border-radius:999px;letter-spacing:.4px}

/* Quiz feature banner */
.quiz-banner{display:grid;gap:1.1rem;align-items:center;
  background:linear-gradient(135deg,#e7f5fd 0%,#eefbf3 100%);
  border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;text-decoration:none;color:inherit;
  box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}
.quiz-banner:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);color:inherit}
.quiz-banner img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:calc(var(--radius) - 4px);border:1px solid var(--line);display:block}
.quiz-banner h2{margin:0 0 .35rem;color:var(--sea);font-size:1.6rem}
.quiz-banner p{margin:0 0 1rem;color:var(--ink)}
.quiz-banner .btn{margin:0}
@media(min-width:760px){.quiz-banner{grid-template-columns:minmax(220px,300px) 1fr;padding:1.4rem 1.8rem}}

/* Commercial badge on the Get Featured card */
.biz-badge{position:absolute;top:.7rem;right:.7rem;background:var(--teal-deep);color:#fff;font-size:.7rem;font-weight:700;
  letter-spacing:.6px;text-transform:uppercase;padding:.28rem .7rem;border-radius:999px;box-shadow:var(--shadow-sm)}

/* ---------- Partner side rails (desktop only, homepage) ---------- */
.rail{display:none}
@media(min-width:1400px){
  .rail{display:block;position:fixed;top:104px;width:180px;z-index:60;
    max-height:calc(100vh - 124px);overflow-y:auto;scrollbar-width:thin;padding-bottom:.25rem}
  .rail-left{left:calc(50% - 480px - 204px)}
  .rail-right{right:calc(50% - 480px - 204px)}
  .rail-kicker{display:block;font-size:.66rem;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
    color:var(--muted);margin-bottom:.45rem;text-align:center}
  .rail-card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--shadow-sm);padding:.7rem;text-decoration:none;color:inherit;
    transition:transform .18s ease,box-shadow .18s ease}
  .rail-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);color:inherit}
  .rail-card + .rail-card{margin-top:.8rem}
  .rail-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--radius) - 6px);
    display:block;margin:.45rem 0 .55rem;border:1px solid var(--line)}
  .rail-card strong{display:block;color:var(--sea);font-size:.92rem;line-height:1.3;margin-bottom:.15rem}
  .rail-sub{display:block;font-size:.76rem;color:var(--muted);line-height:1.45;margin-bottom:.45rem}
  .rail-cta{display:inline-block;font-size:.78rem;font-weight:700;color:var(--teal-deep)}
  .rail-house{background:linear-gradient(135deg,#e9f8f2 0%,#e2f2fb 100%)}
}

/* ---- Mobile ad strip (visible <1400px, where rails are hidden) ---- */
.rail-mobile{display:none}
@media (max-width:1399px){
  .rail-mobile{display:block;margin:0 0 28px}
  .rail-mobile .mkicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:block;margin:0 20px 10px}
  .mstrip{display:flex;gap:12px;overflow-x:auto;padding:4px 20px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .mstrip::-webkit-scrollbar{display:none}
  .mstrip .rail-card{min-width:230px;max-width:230px;scroll-snap-align:start;margin:0}
}
