/*
 * Florida 30A canonical site stylesheet.
 * Generated from the retained layout primitives and one authoritative component system.
 * Do not add page-level styles or additional theme stylesheets.
 */
@layer utilities, compatibility;
@layer utilities {
/* Generated static utility layer - replaces the Tailwind CDN runtime compiler. */
:root{--beach-sand:#F4EDE4;--beach-ocean:#0077be;--beach-teal:#20B2AA;--beach-coral:#FF7F50;--beach-sun:#FFD700;}
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb;}
.font-bold{font-weight:700;}
.text-xs{font-size:.75rem;line-height:1rem;}
.text-beach-ocean{color:#0077be;}
.underline{text-decoration-line:underline;}
.border{border-width:1px;border-style:solid;}
.uppercase{text-transform:uppercase;}
.hover\:text-white:hover{color:#fff;}
.text-beach-teal{color:#20B2AA;}
.font-heading{font-family:'Montserrat',sans-serif;}
.items-center{align-items:center;}
.rounded-2xl{border-radius:1rem;}
.rounded-lg{border-radius:.5rem;}
.py-2{padding-top:.5rem;padding-bottom:.5rem;}
.px-3{padding-left:.75rem;padding-right:.75rem;}
.mb-1{margin-bottom:.25rem;}
.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05);}
.border-white\/80{border-color:rgba(255,255,255,0.8);}
.tracking-\[\.18em\]{letter-spacing:.18em;}
.text-slate-700{color:#334155;}
.py-3{padding-top:.75rem;padding-bottom:.75rem;}
.hover\:bg-sky-50:hover{background-color:#f0f9ff;}
.justify-center{justify-content:center;}
.mt-1{margin-top:.25rem;}
.rounded-xl{border-radius:.75rem;}
.inline-flex{display:inline-flex;}
.flex{display:flex;}
.text-sm{font-size:.875rem;line-height:1.25rem;}
.text-white{color:#fff;}
.transition-colors{transition-property:color,background-color,border-color;transition-duration:.15s;}
.px-5{padding-left:1.25rem;padding-right:1.25rem;}
.text-slate-600{color:#475569;}
.leading-snug{line-height:1.375;}
.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);}
.p-5{padding:1.25rem;}
.transition-all{transition-property:all;transition-duration:.2s;}
.px-4{padding-left:1rem;padding-right:1rem;}
.flex-wrap{flex-wrap:wrap;}
.p-4{padding:1rem;}
.block{display:block;}
.hover\:-translate-y-1:hover{transform:translateY(-.25rem);}
.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);}
.mx-auto{margin-left:auto;margin-right:auto;}
.text-slate-800{color:#1e293b;}
.font-semibold{font-weight:600;}
.max-w-7xl{max-width:80rem;}
.gap-3{gap:.75rem;}
.grid{display:grid;}
.rounded-3xl{border-radius:1.5rem;}
.bg-sky-50{background-color:#f0f9ff;}
.bg-teal-50{background-color:#f0fdfa;}
.gap-4{gap:1rem;}
.tracking-\[\.25em\]{letter-spacing:.25em;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}
.gap-2{gap:.5rem;}
.relative{position:relative;}
.bg-orange-50{background-color:#fff7ed;}
.bg-amber-50{background-color:#fffbeb;}
.mb-2{margin-bottom:.5rem;}
.leading-relaxed{line-height:1.625;}
.text-center{text-align:center;}
.text-xl{font-size:1.25rem;line-height:1.75rem;}
.bg-white{background-color:#fff;}
.justify-between{justify-content:space-between;}
.gap-6{gap:1.5rem;}
.p-6{padding:1.5rem;}
.mt-4{margin-top:1rem;}
.mt-2{margin-top:.5rem;}
.font-extrabold{font-weight:800;}
.mb-3{margin-bottom:.75rem;}
.text-slate-400{color:#94a3b8;}
.bg-beach-ocean{background-color:#0077be;}
.bg-beach-teal{background-color:#20B2AA;}
.absolute{position:absolute;}
.leading-tight{line-height:1.25;}
.inset-0{top:0;right:0;bottom:0;left:0;}
.decoration-white\/50{text-decoration-color:rgba(255,255,255,0.5);}
.hover\:decoration-white:hover{text-decoration-color:#fff;}
.mx-2{margin-left:.5rem;margin-right:.5rem;}
.text-white\/70{color:rgba(255,255,255,0.7);}
.mt-8{margin-top:2rem;}
.hover\:bg-sky-700:hover{background-color:#0369a1;}
.hover\:bg-teal-700:hover{background-color:#0f766e;}
.bg-beach-coral{background-color:#FF7F50;}
.hover\:bg-orange-600:hover{background-color:#ea580c;}
.flex-col{flex-direction:column;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.mb-6{margin-bottom:1.5rem;}
.bg-white\/90{background-color:rgba(255,255,255,0.9);}
.mb-4{margin-bottom:1rem;}
.border-white\/70{border-color:rgba(255,255,255,0.7);}
.w-full{width:100%;}
.bg-white\/95{background-color:rgba(255,255,255,0.95);}
.text-base{font-size:1rem;line-height:1.5rem;}
.overflow-hidden{overflow:hidden;}
.items-start{align-items:flex-start;}
.text-3xl{font-size:1.875rem;line-height:2.25rem;}
.rounded-full{border-radius:9999px;}
.bg-slate-800{background-color:#1e293b;}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem;}
.border-t-4{border-top-width:4px;border-top-style:solid;}
.border-beach-teal{border-color:#20B2AA;}
.h-full{height:100%;}
.object-contain{object-fit:contain;}
.border-slate-200{border-color:#e2e8f0;}
.border-b{border-bottom-width:1px;border-bottom-style:solid;}
.object-cover{object-fit:cover;}
.top-0{top:0;}
.py-1{padding-top:.25rem;padding-bottom:.25rem;}
.text-\[11px\]{font-size:11px;}
.mt-5{margin-top:1.25rem;}
.p-3{padding:.75rem;}
.max-w-3xl{max-width:48rem;}
.mb-5{margin-bottom:1.25rem;}
.tracking-\[\.24em\]{letter-spacing:.24em;}
.z-10{z-index:10;}
.sticky{position:sticky;}
.z-40{z-index:40;}
.backdrop-blur{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.h-14{height:3.5rem;}
.w-14{width:3.5rem;}
.p-1\.5{padding:.375rem;}
.py-16{padding-top:4rem;padding-bottom:4rem;}
.bg-white\/20{background-color:rgba(255,255,255,0.2);}
.border-white\/30{border-color:rgba(255,255,255,0.3);}
.text-4xl{font-size:2.25rem;line-height:2.5rem;}
.drop-shadow-lg{filter:drop-shadow(0 10px 8px rgba(0,0,0,.04)) drop-shadow(0 4px 3px rgba(0,0,0,.1));}
.text-white\/95{color:rgba(255,255,255,0.95);}
.max-w-2xl{max-width:42rem;}
.-mt-8{margin-top:-2rem;}
.pb-12{padding-bottom:3rem;}
.border-sky-100{border-color:#e0f2fe;}
.border-teal-100{border-color:#ccfbf1;}
.border-orange-100{border-color:#ffedd5;}
.border-amber-100{border-color:#fef3c7;}
.space-y-5{--tw-space-y:1.25rem; > :not([hidden]) ~ :not([hidden]){margin-top:var(--tw-space-y);}}
.pb-14{padding-bottom:3.5rem;}
.text-slate-500{color:#64748b;}
.border-white\/90{border-color:rgba(255,255,255,0.9);}
.hover\:underline:hover{text-decoration-line:underline;}
.mt-3{margin-top:.75rem;}
.muted{color:#64748b;}
.bg-sky-50\/80{background-color:rgba(240,249,255,0.8);}
.bg-teal-50\/80{background-color:rgba(240,253,250,0.8);}
.bg-orange-50\/80{background-color:rgba(255,247,237,0.8);}
.bg-yellow-50\/80{background-color:rgba(254,252,232,0.8);}
.pill{}
.no-print{}
.px-8{padding-left:2rem;padding-right:2rem;}
.border-slate-200\/50{border-color:rgba(226,232,240,0.5);}
.hover\:bg-white:hover{background-color:#fff;}
.text-\[\#0077be\]{color:#0077be;}
.max-w-\[1600px\]{max-width:1600px;}
.mt-6{margin-top:1.5rem;}
.font-black{font-weight:900;}
.border-slate-100{border-color:#f1f5f9;}
.transition-transform{transition-property:transform;transition-duration:.2s;}
.flex-1{flex:1 1 0%;}
.max-w-4xl{max-width:56rem;}
.h-28{height:7rem;}
.font-sans{font-family:'Open Sans',sans-serif;}
.cursor-pointer{cursor:pointer;}
.tracking-wider{letter-spacing:.05em;}
.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;}
.text-beach-coral{color:#FF7F50;}
.text-slate-900{color:#0f172a;}
.py-1\.5{padding-top:.375rem;padding-bottom:.375rem;}
.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);}
.group{}
.list-none{list-style-type:none;}
.leading-none{line-height:1;}
.group[open] .group-open\:rotate-45{transform:rotate(45deg);}
.flex-none{flex:none;}
.z-50{z-index:50;}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem;}
.min-w-\[130px\]{min-width:130px;}
.text-\[10px\]{font-size:10px;}
.text-sky-200{color:#bae6fd;}
.gap-1{gap:.25rem;}
.my-1{margin-top:.25rem;margin-bottom:.25rem;}
.font-medium{font-weight:500;}
.text-white\/90{color:rgba(255,255,255,0.9);}
.capitalize{text-transform:capitalize;}
.text-blue-100{color:#dbeafe;}
.w-32{width:8rem;}
.h-32{height:8rem;}
.overflow-visible{overflow:visible;}
.p-0{padding:0;}
.bg-beach-ocean\/20{background-color:rgba(0,119,190,0.2);}
.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.pb-4{padding-bottom:1rem;}
.pt-3{padding-top:.75rem;}
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);}
.m-4{margin:1rem;}
.h-screen{height:100vh;}
.hover\:scale-\[1\.02\]:hover{transform:scale(1.02);}
.flex-grow{flex-grow:1;}
.pb-8{padding-bottom:2rem;}
.min-h-screen{min-height:100vh;}
.scale-105{transform:scale(1.05);}
.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);}
.border-2{border-width:2px;border-style:solid;}
.focus\:border-beach-teal:focus{border-color:#20B2AA;}
.outline-none{outline:2px solid transparent;outline-offset:2px;}
.space-y-2{--tw-space-y:.5rem; > :not([hidden]) ~ :not([hidden]){margin-top:var(--tw-space-y);}}
.duration-300{transition-duration:.3s;}
.mr-1\.5{margin-right:.375rem;}
.gap-1\.5{gap:.375rem;}
.bg-beach-sand{background-color:#F4EDE4;}
.bg-\[\#F4EDE4\]{background-color:#F4EDE4;}
.overflow-y-auto{overflow-y:auto;}
.py-8{padding-top:2rem;padding-bottom:2rem;}
.tracking-wide{letter-spacing:.025em;}
.hover\:brightness-95:hover{filter:brightness(.95);}
.items-end{align-items:flex-end;}
.appearance-none{appearance:none;}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem;}
.py-20{padding-top:5rem;padding-bottom:5rem;}
.h-44{height:11rem;}
.bg-slate-200{background-color:#e2e8f0;}
.left-0{left:0;}
.bg-beach-teal\/80{background-color:rgba(32,178,170,0.8);}
.rounded-br-lg{border-bottom-right-radius:.5rem;}
.mb-1\.5{margin-bottom:.375rem;}
.space-y-1{--tw-space-y:.25rem; > :not([hidden]) ~ :not([hidden]){margin-top:var(--tw-space-y);}}
.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.text-\[9px\]{font-size:9px;}
.px-2{padding-left:.5rem;padding-right:.5rem;}
.py-0\.5{padding-top:.125rem;padding-bottom:.125rem;}
.rounded{border-radius:.25rem;}
.hover\:bg-beach-teal:hover{background-color:#20B2AA;}
.border-beach-teal\/20{border-color:rgba(32,178,170,0.2);}
.mt-auto{margin-top:auto;}
.pt-2{padding-top:.5rem;}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.hover\:bg-beach-sand:hover{background-color:#F4EDE4;}
.bg-white\/10{background-color:rgba(255,255,255,0.1);}
.hover\:bg-white\/15:hover{background-color:rgba(255,255,255,0.15);}
.border-white\/15{border-color:rgba(255,255,255,0.15);}
.space-y-8{--tw-space-y:2rem; > :not([hidden]) ~ :not([hidden]){margin-top:var(--tw-space-y);}}
.tracking-\[\.22em\]{letter-spacing:.22em;}
.max-w-\[1200px\]{max-width:1200px;}
.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.25);}
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops));}
.from-beach-ocean{--tw-gradient-from:#0077be;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(255,255,255,0));}
.via-beach-teal{--tw-gradient-stops:var(--tw-gradient-from),#20B2AA,var(--tw-gradient-to,rgba(255,255,255,0));}
.to-beach-coral{--tw-gradient-to:#FF7F50;}
.text-white\/80{color:rgba(255,255,255,0.8);}
.text-white\/92{color:rgba(255,255,255,0.92);}
.space-y-4{--tw-space-y:1rem; > :not([hidden]) ~ :not([hidden]){margin-top:var(--tw-space-y);}}
.bg-slate-900{background-color:#0f172a;}
.text-slate-300{color:#cbd5e1;}
.max-w-5xl{max-width:64rem;}
.text-sky-100{color:#e0f2fe;}
.text-blue-50{color:#eff6ff;}
.text-blue-50\/90{color:rgba(239,246,255,0.9);}
@media (min-width:640px){
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:768px){
  .md\:p-8{padding:2rem;}
  .md\:col-span-2{grid-column:span 2 / span 2;}
  .md\:flex-row{flex-direction:row;}
  .md\:text-left{text-align:left;}
  .md\:text-lg{font-size:1.125rem;line-height:1.75rem;}
  .md\:text-xl{font-size:1.25rem;line-height:1.75rem;}
  .md\:text-3xl{font-size:1.875rem;line-height:2.25rem;}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .md\:py-24{padding-top:6rem;padding-bottom:6rem;}
  .md\:text-6xl{font-size:3.75rem;line-height:1;}
  .md\:p-7{padding:1.75rem;}
  .md\:justify-between{justify-content:space-between;}
  .md\:text-base{font-size:1rem;line-height:1.5rem;}
  .md\:items-center{align-items:center;}
  .md\:p-6{padding:1.5rem;}
  .md\:text-5xl{font-size:3rem;line-height:1;}
  .md\:h-36{height:9rem;}
  .md\:w-40{width:10rem;}
  .md\:h-40{height:10rem;}
  .md\:p-10{padding:2.5rem;}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .md\:w-auto{width:auto;}
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem;}
  .md\:text-sm{font-size:.875rem;line-height:1.25rem;}
  .md\:items-end{align-items:flex-end;}
}
@media (min-width:1024px){
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .lg\:grid-cols-\[1fr\_360px\]{grid-template-columns:1fr 360px;}
  .lg\:grid-cols-\[1\.25fr\_\.75fr\]{grid-template-columns:1.25fr .75fr;}
  .lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}
  .lg\:flex-row{flex-direction:row;}
  .lg\:items-end{align-items:flex-end;}
  .lg\:justify-between{justify-content:space-between;}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (min-width:1280px){
  .xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (min-width:1536px){
  .\32 xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr));}
}

}
@layer compatibility {
/* tpl-bike-hub.css: scoped compatibility layout only */

body.canonical-tpl-bike-hub{--ocean:#006da8;--ocean-dark:#004f7d;--teal:#0f766e;--coral:#b9470d;--sand:#fff7df;--ink:#183247;--muted:#526b7d;--line:rgba(15,118,110,.25);--glass:rgba(255,255,255,.88)}
body.canonical-tpl-bike-hub *{box-sizing:border-box}body.canonical-tpl-bike-hub{margin:0}body.canonical-tpl-bike-hub .bike-shell{min-height:100vh}body.canonical-tpl-bike-hub .bike-top{padding:18px}body.canonical-tpl-bike-hub .bike-header{max-width:1500px;margin:auto;display:grid;grid-template-columns:120px 1fr 90px;gap:18px;align-items:center}body.canonical-tpl-bike-hub .bike-header img{max-width:100%;height:auto}body.canonical-tpl-bike-hub .bike-header-copy{text-align:center}body.canonical-tpl-bike-hub .bike-header-copy p{margin:.2rem 0}body.canonical-tpl-bike-hub .bike-header-copy h1{font-size:clamp(1.7rem,4vw,3.25rem);line-height:1.05;margin:.35rem 0}body.canonical-tpl-bike-hub .bike-nav{position:sticky;top:0;z-index:1000}body.canonical-tpl-bike-hub .bike-nav-inner{max-width:1500px;margin:auto;display:flex;gap:.55rem;overflow-x:auto;padding:.65rem 1rem}body.canonical-tpl-bike-hub .bike-nav a{font-weight:700;white-space:nowrap;padding:.55rem .8rem}body.canonical-tpl-bike-hub .bike-main{max-width:1500px;margin:auto;padding:1.25rem}body.canonical-tpl-bike-hub .bike-hero,
body.canonical-tpl-bike-hub .bike-section{margin:0 0 1.25rem;padding:clamp(1.2rem,3vw,2.25rem)}body.canonical-tpl-bike-hub .bike-hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:1.2rem;align-items:start}body.canonical-tpl-bike-hub .bike-kicker,
body.canonical-tpl-bike-hub .bike-badge{display:inline-block;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;padding:.48rem .75rem}body.canonical-tpl-bike-hub .bike-title{font-size:clamp(2rem,4vw,4rem);line-height:1.02;margin:.8rem 0}body.canonical-tpl-bike-hub .lead{font-size:1.08rem;line-height:1.75}body.canonical-tpl-bike-hub .section-title{font-size:clamp(1.55rem,3vw,2.35rem);margin:0 0 .8rem}body.canonical-tpl-bike-hub .bike-copy{max-width:1080px}body.canonical-tpl-bike-hub .bike-copy p{line-height:1.78;margin:0 0 1rem}body.canonical-tpl-bike-hub .quick-grid,
body.canonical-tpl-bike-hub .trail-grid,
body.canonical-tpl-bike-hub .rental-grid,
body.canonical-tpl-bike-hub .gear-grid,
body.canonical-tpl-bike-hub .source-grid{display:grid;gap:1rem}body.canonical-tpl-bike-hub .quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body.canonical-tpl-bike-hub .trail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.canonical-tpl-bike-hub .rental-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body.canonical-tpl-bike-hub .gear-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body.canonical-tpl-bike-hub .source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.canonical-tpl-bike-hub .quick-card,
body.canonical-tpl-bike-hub .trail-card,
body.canonical-tpl-bike-hub .rental-card,
body.canonical-tpl-bike-hub .gear-card,
body.canonical-tpl-bike-hub .source-card,
body.canonical-tpl-bike-hub .booking-card{padding:1rem}body.canonical-tpl-bike-hub .trail-card h3,
body.canonical-tpl-bike-hub .rental-card h3,
body.canonical-tpl-bike-hub .gear-card h3{margin:.45rem 0}body.canonical-tpl-bike-hub .trail-card p,
body.canonical-tpl-bike-hub .rental-card p,
body.canonical-tpl-bike-hub .gear-card p,
body.canonical-tpl-bike-hub .source-card p{line-height:1.6}body.canonical-tpl-bike-hub .trail-card dl{display:grid;grid-template-columns:100px 1fr;gap:.35rem .65rem;margin:.7rem 0}body.canonical-tpl-bike-hub .trail-card dt{font-weight:800}body.canonical-tpl-bike-hub .trail-card dd{margin:0}body.canonical-tpl-bike-hub .btn-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}body.canonical-tpl-bike-hub .bike-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem 1rem;font-weight:800}body.canonical-tpl-bike-hub .map-wrap{overflow:hidden}body.canonical-tpl-bike-hub .map-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.75rem}body.canonical-tpl-bike-hub .map-toolbar button{padding:.55rem .8rem;font-weight:800;cursor:pointer}body.canonical-tpl-bike-hub .map-note{font-size:.88rem;margin-left:auto}body.canonical-tpl-bike-hub .bike-map{height:600px;min-height:420px}body.canonical-tpl-bike-hub .legend{display:flex;flex-wrap:wrap;gap:.75rem;padding:.8rem 1rem}body.canonical-tpl-bike-hub .legend span{display:inline-flex;gap:.4rem;align-items:center;font-size:.88rem}body.canonical-tpl-bike-hub .legend i{width:12px;height:12px;display:inline-block}body.canonical-tpl-bike-hub .rental-card{display:flex;flex-direction:column}body.canonical-tpl-bike-hub .rental-card .address{font-size:.9rem}body.canonical-tpl-bike-hub .rental-card .meta{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}body.canonical-tpl-bike-hub .rental-card .btn-row{margin-top:auto}

/* Rental-card color treatment */
body.canonical-tpl-bike-hub .rental-card{position:relative;overflow:hidden}
body.canonical-tpl-bike-hub .rental-card::before{position:absolute;left:0;top:0;right:0;height:5px}
body.canonical-tpl-bike-hub .rental-card .meta{display:inline-block;padding:.35rem .55rem}
body.canonical-tpl-bike-hub .rental-card h3{margin-top:.85rem}
body.canonical-tpl-bike-hub .search-row{display:grid;grid-template-columns:1fr 240px;gap:.8rem;margin:1rem 0}body.canonical-tpl-bike-hub .search-row label{font-weight:800}body.canonical-tpl-bike-hub .search-row input,
body.canonical-tpl-bike-hub .search-row select{width:100%;padding:.75rem;font-size:1rem}body.canonical-tpl-bike-hub .notice{padding:1rem;line-height:1.65}body.canonical-tpl-bike-hub .affiliate-note{font-size:.86rem;padding:.75rem}body.canonical-tpl-bike-hub .source-card a,
body.canonical-tpl-bike-hub .official-link{font-weight:800}body.canonical-tpl-bike-hub .footer{padding:2rem 1rem}body.canonical-tpl-bike-hub .footer-inner{max-width:1500px;margin:auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}body.canonical-tpl-bike-hub .skip-link{position:absolute;left:-9999px;top:0}body.canonical-tpl-bike-hub .skip-link:focus{left:12px;top:12px;padding:.8rem;z-index:3000}body.canonical-tpl-bike-hub .number-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-weight:800}body.canonical-tpl-bike-hub .leaflet-popup-content{line-height:1.45}body.canonical-tpl-bike-hub .leaflet-popup-content a{font-weight:800}body.canonical-tpl-bike-hub .hidden-card{display:none}
@media(max-width:1000px){body.canonical-tpl-bike-hub .quick-grid{grid-template-columns:repeat(2,1fr)}body.canonical-tpl-bike-hub .rental-grid,
body.canonical-tpl-bike-hub .gear-grid{grid-template-columns:repeat(2,1fr)}body.canonical-tpl-bike-hub .bike-hero-grid{grid-template-columns:1fr}body.canonical-tpl-bike-hub .bike-map{height:520px}}
@media(max-width:680px){body.canonical-tpl-bike-hub .bike-header{grid-template-columns:70px 1fr 58px;gap:8px}body.canonical-tpl-bike-hub .bike-top{padding:10px}body.canonical-tpl-bike-hub .bike-header-copy p{font-size:.78rem}body.canonical-tpl-bike-hub .bike-main{padding:.75rem}body.canonical-tpl-bike-hub .quick-grid,
body.canonical-tpl-bike-hub .trail-grid,
body.canonical-tpl-bike-hub .rental-grid,
body.canonical-tpl-bike-hub .gear-grid,
body.canonical-tpl-bike-hub .source-grid{grid-template-columns:1fr}body.canonical-tpl-bike-hub .search-row{grid-template-columns:1fr}body.canonical-tpl-bike-hub .bike-map{height:430px}body.canonical-tpl-bike-hub .map-note{width:100%;margin-left:0}body.canonical-tpl-bike-hub .trail-card dl{grid-template-columns:1fr}body.canonical-tpl-bike-hub .trail-card dd{margin-bottom:.35rem}}

/* Site-audit card color consistency for supporting bike sections */
body.canonical-tpl-bike-hub .quick-grid>*,
body.canonical-tpl-bike-hub .trail-grid>*,
body.canonical-tpl-bike-hub .gear-grid>*,
body.canonical-tpl-bike-hub .source-grid>*{position:relative;overflow:hidden}
body.canonical-tpl-bike-hub .quick-grid>*::before,
body.canonical-tpl-bike-hub .trail-grid>*::before,
body.canonical-tpl-bike-hub .gear-grid>*::before,
body.canonical-tpl-bike-hub .source-grid>*::before{position:absolute;left:0;right:0;top:0;height:5px}


/* tpl-category.css: scoped compatibility layout only */

        body.canonical-tpl-category [v-cloak] { display: none; }
        body.canonical-tpl-category .skip-link { position:absolute; left:-999px; top:.5rem; z-index:1000; padding:.65rem 1rem; font-weight:700; }
        body.canonical-tpl-category .skip-link:focus { left:.5rem; }
        body.canonical-tpl-category .custom-scrollbar::-webkit-scrollbar { width:8px; }
        body.canonical-tpl-category .site-top { flex:0 0 auto; z-index:50; }
        body.canonical-tpl-category .results-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; }
        @media (max-width: 767px) {
            body.canonical-tpl-category,
body.canonical-tpl-category { height:100%; min-height:100%; overflow:hidden; }
            body.canonical-tpl-category #app { height:100dvh; min-height:100dvh; overflow:hidden; }
            body.canonical-tpl-category .mobile-header { padding:.45rem .45rem; }
            body.canonical-tpl-category .mobile-header-row { flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:.35rem; }
            body.canonical-tpl-category .mobile-header-row > * { min-width:0; }
            body.canonical-tpl-category .mobile-left-logo { order:1; width:3rem; height:3rem; min-width:3rem; }
            body.canonical-tpl-category .mobile-center-title { order:2; flex:1 1 auto; min-width:0; max-width:none; padding:0 .15rem; }
            body.canonical-tpl-category .mobile-main-logo { width:3.35rem; height:3.35rem; margin-bottom:.1rem; padding:.2rem; }
            body.canonical-tpl-category .mobile-title-text { font-size:clamp(.92rem,4vw,1.12rem); line-height:1.05; margin-bottom:.05rem; }
            body.canonical-tpl-category .mobile-subtitle-text { font-size:.58rem; line-height:.72rem; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
            body.canonical-tpl-category .mobile-right-pack { order:3; flex-direction:row; gap:.25rem; min-width:6.1rem; }
            body.canonical-tpl-category .mobile-weather-box { width:2.9rem; height:3rem; min-width:2.9rem; padding:.2rem; }
            body.canonical-tpl-category .mobile-weather-location,
body.canonical-tpl-category .mobile-weather-condition { display:none; }
            body.canonical-tpl-category .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-category .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-category .mobile-right-logo { width:2.9rem; height:3rem; min-width:2.9rem; padding:.15rem; }
            body.canonical-tpl-category .mobile-controls-area { padding:.35rem .45rem .45rem; }
            body.canonical-tpl-category .mobile-controls-inner { gap:.35rem; }
            body.canonical-tpl-category .mobile-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:.4rem; width:100%; padding-bottom:.15rem; }
            body.canonical-tpl-category .mobile-tabs::-webkit-scrollbar { display:none; }
            body.canonical-tpl-category .mobile-tab { flex:0 0 auto; width:auto; min-width:0; justify-content:center; white-space:nowrap; padding:.5rem .85rem; font-size:.72rem; line-height:1; gap:.3rem; min-height:2.3rem; }
            body.canonical-tpl-category .mobile-tab span { font-size:.72rem; }
            body.canonical-tpl-category .mobile-search-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:.35rem; align-items:end; padding:.45rem; }
            body.canonical-tpl-category .mobile-search-panel label { font-size:.62rem; line-height:.75rem; margin-bottom:.1rem; }
            body.canonical-tpl-category .mobile-search-panel input,
body.canonical-tpl-category .mobile-search-panel select { min-height:2rem; padding:.35rem .45rem; font-size:.72rem; }
            body.canonical-tpl-category .mobile-reset { width:auto; white-space:nowrap; padding:.43rem .55rem; min-height:2rem; font-size:.68rem; }
            body.canonical-tpl-category .mobile-main { padding:.65rem .65rem 1rem; }
            body.canonical-tpl-category .mobile-grid { gap:.85rem; }
            body.canonical-tpl-category .mobile-card-image { height:10.25rem; }
            body.canonical-tpl-category .florida-logo-box.mobile-right-logo { width:3.15rem; height:3.15rem; min-width:3.15rem; padding:.2rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-category .mobile-left-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-category .mobile-main-logo { width:2.95rem; height:2.95rem; }
            body.canonical-tpl-category .mobile-right-pack { min-width:5.55rem; }
            body.canonical-tpl-category .mobile-weather-box,
body.canonical-tpl-category .mobile-right-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-category .mobile-subtitle-text { display:none; }
            body.canonical-tpl-category .mobile-tab { font-size:.68rem; padding:.45rem .7rem; }
            body.canonical-tpl-category .mobile-tab span { display:inline; }
            body.canonical-tpl-category .mobile-search-panel { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
            body.canonical-tpl-category .mobile-reset { grid-column:1/-1; width:100%; }
            body.canonical-tpl-category .florida-logo-box.mobile-right-logo { width:2.9rem; height:2.9rem; min-width:2.9rem; }
        }


        /* Current responsive header format */
        body.canonical-tpl-category .header-hero {
            position: relative;
            overflow: hidden;
            isolation: isolate;
        }
        body.canonical-tpl-category .header-banner-media {
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: .2rem 0;
            max-height: 100%;
        }
        body.canonical-tpl-category .header-banner-media img {
            width: 100%;
            height: 100%;
            max-height: 220px;
            object-fit: contain;
            object-position: center;
        }
        body.canonical-tpl-category .header-hero::after {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
        }
        body.canonical-tpl-category .header-hero-content {
            position: relative;
            z-index: 2;
            display: grid;
            grid-template-columns: minmax(132px, 160px) minmax(0, 1fr) minmax(112px, 148px);
            align-items: center;
            gap: 1rem;
            min-height: 210px;
        }
        body.canonical-tpl-category .weather-source-link {
            font-size: .62rem;
            line-height: .72rem;
            font-weight: 900;
            white-space: nowrap;
        }
        body.canonical-tpl-category .weather-link-row {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: .36rem;
            flex-wrap: nowrap;
            margin-top: .2rem;
        }
        body.canonical-tpl-category .header-title-wrap {
            max-width: min(960px, 100%);
            min-width: 0;
            margin: 0 auto;
            padding: .18rem .5rem;
            text-align: center;
        }
        body.canonical-tpl-category .header-kicker,
body.canonical-tpl-category .header-title-wrap h1,
body.canonical-tpl-category .header-title-wrap p {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-category .header-kicker {
            font-size: .72rem;
            line-height: 1;
            letter-spacing: .28em;
            text-transform: uppercase;
            font-weight: 900;
            margin-bottom: .38rem;
        }
        body.canonical-tpl-category .header-title-wrap h1 {
            font-size: clamp(1.65rem, 4vw, 3.1rem);
            line-height: .98;
            font-weight: 900;
            letter-spacing: -.02em;
            margin-bottom: .22rem;
        }
        body.canonical-tpl-category .header-title-wrap p {
            font-size: clamp(.78rem, 1.5vw, 1.08rem);
            line-height: 1.18;
            font-weight: 800;
        }
        body.canonical-tpl-category .header-florida-wrap {
            justify-self: end;
            padding: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-category .header-hero { padding-top: .45rem; padding-bottom: .45rem; }
            body.canonical-tpl-category .header-hero-content.mobile-header-row {
                grid-template-columns: 78px minmax(0, 1fr) 78px;
                align-items: center;
                gap: .35rem;
                min-height: 112px;
            }
            body.canonical-tpl-category .header-banner-media img { max-height: 126px; }
            body.canonical-tpl-category .mobile-center-title {
                order: 2;
                width: 100%;
                max-width: none;
                min-width: 0;
                padding: 0 .05rem;
            }
            body.canonical-tpl-category .mobile-weather-box {
                order: 1;
                width: 3.15rem;
                height: 4rem;
                min-width: 3.15rem;
                padding: .2rem;
            }
            body.canonical-tpl-category .mobile-right-logo {
                order: 3;
                width: 3.15rem;
                height: 3.15rem;
                min-width: 3.15rem;
                padding: 0;
            }
            body.canonical-tpl-category .header-title-wrap {
                padding: .05rem .02rem;
            }
            body.canonical-tpl-category .header-kicker {
                display: none;
            }
            body.canonical-tpl-category .mobile-title-text {
                font-size: clamp(.76rem, 3.25vw, 1rem);
                line-height: .98;
                margin-bottom: 0;
                font-weight: 900;
                letter-spacing: -.03em;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            body.canonical-tpl-category .mobile-subtitle-text {
                display: none;
            }
            body.canonical-tpl-category .mobile-weather-location,
body.canonical-tpl-category .mobile-weather-condition { display:none; }
            body.canonical-tpl-category .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-category .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-category .weather-link-row { flex-direction: column; gap: .02rem; margin-top: .08rem; }
            body.canonical-tpl-category .weather-source-link { font-size: .48rem; line-height: .58rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-category .header-hero-content.mobile-header-row {
                grid-template-columns: 66px minmax(0, 1fr) 66px;
                min-height: 104px;
            }
            body.canonical-tpl-category .mobile-weather-box { width: 2.8rem; height: 3.55rem; min-width: 2.8rem; }
            body.canonical-tpl-category .mobile-right-logo { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; }
            body.canonical-tpl-category .mobile-title-text { font-size: clamp(.7rem, 3.05vw, .88rem); }
        }


        /* Header repair patch: clean text and stable weather widget */
        body.canonical-tpl-category .header-hero-content {
            grid-template-columns: minmax(118px, 150px) minmax(0, 1fr) minmax(96px, 132px);
            gap: clamp(.55rem, 1.6vw, 1rem);
        }
        body.canonical-tpl-category .header-side-widget {
            overflow: hidden;
            position: relative;
            z-index: 3;
        }
        body.canonical-tpl-category .weather-current-row {
            width: 100%;
            min-width: 0;
            flex-wrap: nowrap;
        }
        body.canonical-tpl-category .mobile-weather-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.9rem;
            min-width: 1.9rem;
            font-size: 1.45rem;
            line-height: 1;
        }
        body.canonical-tpl-category .mobile-weather-temp {
            font-size: .95rem;
            line-height: 1.05;
            white-space: nowrap;
            max-width: 4.8rem;
            overflow: hidden;
            text-overflow: clip;
        }
        body.canonical-tpl-category .mobile-weather-condition {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-category .weather-link-row {
            max-width: 100%;
            gap: .28rem;
        }
        body.canonical-tpl-category .weather-source-link {
            font-size: .58rem;
            line-height: .7rem;
        }
        body.canonical-tpl-category .header-title-wrap {
            max-width: min(900px, 100%);
            padding: .4rem .9rem;
        }
        body.canonical-tpl-category .header-kicker {
            font-size: clamp(.58rem, .85vw, .76rem);
            line-height: 1.05;
            letter-spacing: .34em;
            font-weight: 800;
        }
        body.canonical-tpl-category .header-title-wrap h1,
body.canonical-tpl-category .mobile-title-text {
            font-size: clamp(1.55rem, 3.35vw, 2.95rem);
            line-height: 1.04;
            font-weight: 800;
            letter-spacing: -.035em;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-category .header-title-wrap p,
body.canonical-tpl-category .mobile-subtitle-text {
            font-size: clamp(.72rem, 1.25vw, 1rem);
            line-height: 1.16;
            font-weight: 700;
            letter-spacing: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-category .header-hero-content.mobile-header-row {
                grid-template-columns: 72px minmax(0,1fr) 72px;
                gap: .28rem;
                min-height: 108px;
            }
            body.canonical-tpl-category .mobile-weather-box {
                width: 4.2rem;
                height: 3.8rem;
                min-width: 4.2rem;
                padding: .22rem;
            }
            body.canonical-tpl-category .mobile-weather-location,
body.canonical-tpl-category .mobile-weather-condition { display: none; }
            body.canonical-tpl-category .mobile-weather-icon {
                width: 1.3rem;
                min-width: 1.3rem;
                font-size: 1rem;
            }
            body.canonical-tpl-category .mobile-weather-temp {
                font-size: .68rem;
                max-width: 2.7rem;
            }
            body.canonical-tpl-category .weather-link-row { flex-direction: row; gap: .12rem; margin-top: .1rem; }
            body.canonical-tpl-category .weather-source-link { font-size: .42rem; line-height: .5rem; }
            body.canonical-tpl-category .header-kicker { display: none; }
            body.canonical-tpl-category .header-title-wrap h1,
body.canonical-tpl-category .mobile-title-text {
                font-size: clamp(.74rem, 3.6vw, 1.05rem);
                line-height: 1.02;
            }
            body.canonical-tpl-category .mobile-subtitle-text { display: none; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-category .header-hero-content.mobile-header-row {
                grid-template-columns: 64px minmax(0,1fr) 64px;
                min-height: 100px;
            }
            body.canonical-tpl-category .mobile-weather-box {
                width: 3.95rem;
                height: 3.4rem;
                min-width: 3.95rem;
            }
            body.canonical-tpl-category .header-title-wrap h1,
body.canonical-tpl-category .mobile-title-text { font-size: clamp(.66rem, 3.25vw, .88rem); }
        }


        body.canonical-tpl-category .category-tab-logo { width: 1.85rem; height: 1.85rem; object-fit: contain; flex-shrink: 0; }
        body.canonical-tpl-category .category-card-logo { width: 5.25rem; height: 5.25rem; object-fit: contain; }
        body.canonical-tpl-category .category-card-logo-wrap { position: relative; overflow: hidden; }
        body.canonical-tpl-category .category-intro-content { display: flex; align-items: center; gap: 1.5rem; }
        body.canonical-tpl-category .category-intro-logo-wrap { flex: 0 0 auto; width: 7.75rem; height: 7.75rem; display: flex; align-items: center; justify-content: center; }
        body.canonical-tpl-category .category-intro-logo { width: 6.65rem; height: 6.65rem; object-fit: contain; }
        @media (max-width: 767px) {
            body.canonical-tpl-category .category-tab-logo { width: 1.5rem; height: 1.5rem; }
            body.canonical-tpl-category .category-card-logo { width: 4.45rem; height: 4.45rem; }
            body.canonical-tpl-category .category-intro-content { flex-direction: column; align-items: flex-start; gap: 1rem; }
            body.canonical-tpl-category .category-intro-logo-wrap { width: 6.25rem; height: 6.25rem; }
            body.canonical-tpl-category .category-intro-logo { width: 5.4rem; height: 5.4rem; }
        }

    
        body.canonical-tpl-category .category-logo-picture { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 0; }
        @media (max-width: 640px) {
            body.canonical-tpl-category .category-logo-picture .category-tab-logo { width: 1.35rem; height: 1.35rem; }
            body.canonical-tpl-category .category-logo-picture .category-card-logo { width: 4rem; height: 4rem; }
            body.canonical-tpl-category .category-logo-picture .category-intro-logo { width: 3.9rem; height: 3.9rem; }
            body.canonical-tpl-category .category-intro-logo-wrap { width: 4.75rem; height: 4.75rem; }
            body.canonical-tpl-category .category-intro-content { gap: .9rem; align-items: flex-start; }
            body.canonical-tpl-category .guide-hero-logo,
body.canonical-tpl-category .guides-hero-logo,
body.canonical-tpl-category .category-guides-logo { max-width: 4.75rem; max-height: 4.75rem; }
        }
        @media (max-width: 430px) {
            body.canonical-tpl-category .category-intro-content { flex-direction: row; }
            body.canonical-tpl-category .category-intro-copy h1,
body.canonical-tpl-category .category-intro-copy h2 { font-size: 1.35rem; line-height: 1.15; }
            body.canonical-tpl-category .category-intro-copy p { font-size: .9rem; }
        }

    
        body.canonical-tpl-category .affiliate-disclosure-note { font-size: .78rem; line-height: 1.45; }
        body.canonical-tpl-category .affiliate-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 800; padding: .8rem 1.2rem; }
        @media print { body.canonical-tpl-category .affiliate-cta-card,
body.canonical-tpl-category .affiliate-cta-button { display: none; } }

    

                /* v20 premium surface system - one consistent surface + hairline border + accent bar, color used sparingly */
        body.canonical-tpl-category {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --hairline-strong: rgba(21,48,61,.22);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --shadow-lift: 0 2px 4px rgba(21,48,61,.06), 0 22px 40px rgba(21,48,61,.13);
            --accent-1: #0077be;
            --accent-2: #20B2AA;
            --accent-3: #FF7F50;
            --accent-4: #C9A227;
            --glow-1: rgba(0,119,190,.16);
            --glow-2: rgba(32,178,170,.16);
            --glow-3: rgba(255,127,80,.16);
            --glow-4: rgba(201,162,39,.18);
        }
        body.canonical-tpl-category .glass-panel,
body.canonical-tpl-category .travel-card,
body.canonical-tpl-category .map-section-card,
body.canonical-tpl-category .booking-link-card,
body.canonical-tpl-category .airport-card,
body.canonical-tpl-category .travel-info-card,
body.canonical-tpl-category .affiliate-cta-card,
body.canonical-tpl-category .bg-white,
body.canonical-tpl-category .bg-white\/90,
body.canonical-tpl-category .bg-white\/95,
body.canonical-tpl-category .bg-white\/80,
body.canonical-tpl-category .bg-white\/70,
body.canonical-tpl-category .bg-white\/60,
body.canonical-tpl-category article.bg-white,
body.canonical-tpl-category section.bg-white,
body.canonical-tpl-category div.bg-white {
            position: relative;
        }
        body.canonical-tpl-category .glass-panel::before,
body.canonical-tpl-category .travel-card::before,
body.canonical-tpl-category .map-section-card::before,
body.canonical-tpl-category .booking-link-card::before,
body.canonical-tpl-category .airport-card::before,
body.canonical-tpl-category .travel-info-card::before,
body.canonical-tpl-category .rounded-2xl.bg-white::before,
body.canonical-tpl-category .rounded-3xl.bg-white::before,
body.canonical-tpl-category .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-category .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-category .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-category .rounded-3xl.bg-white\/95::before,
body.canonical-tpl-category .rounded-2xl.bg-white\/80::before,
body.canonical-tpl-category .rounded-3xl.bg-white\/80::before,
body.canonical-tpl-category .rounded-2xl.bg-white\/70::before,
body.canonical-tpl-category .rounded-3xl.bg-white\/70::before,
body.canonical-tpl-category .rounded-2xl.bg-white\/60::before,
body.canonical-tpl-category .rounded-3xl.bg-white\/60::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        body.canonical-tpl-category .category-map-shell.map-panel-food::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-category .category-map-shell.map-panel-lodging::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-category .category-map-shell.map-panel-attractions::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-category .category-map-shell.map-panel-shopping::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-category .category-map-shell { position:relative; }
        @media print {
            body.canonical-tpl-category .glass-panel::before,
body.canonical-tpl-category .travel-card::before,
body.canonical-tpl-category .map-section-card::before,
body.canonical-tpl-category .bg-white::before,
body.canonical-tpl-category .bg-white\/90::before,
body.canonical-tpl-category .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }


    
/* Header logo visibility hotfix — 2026-07-28
   The page-title panel previously used a dark translucent background plus
   backdrop blur, which obscured the centered 30A banner logo. */
@media (min-width: 768px) {
  body.canonical-tpl-category .header-title-wrap {
    padding: .28rem .55rem;
  }
}


/* tpl-detail-lite.css: scoped compatibility layout only */

    body.canonical-tpl-detail-lite {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --accent-1: #0077be;
            --accent-2: #20B2AA;
            --accent-3: #FF7F50;
            --accent-4: #C9A227;
        }
        /* v20 premium surface system - one consistent surface + hairline border + accent bar */
        body.canonical-tpl-detail-lite .glass,
body.canonical-tpl-detail-lite .bg-white,
body.canonical-tpl-detail-lite .bg-white\/90,
body.canonical-tpl-detail-lite .bg-white\/95,
body.canonical-tpl-detail-lite .bg-white\/80,
body.canonical-tpl-detail-lite .bg-white\/70,
body.canonical-tpl-detail-lite .bg-white\/60,
body.canonical-tpl-detail-lite article.bg-white,
body.canonical-tpl-detail-lite section.bg-white,
body.canonical-tpl-detail-lite div.bg-white {
            position: relative;
        }
        body.canonical-tpl-detail-lite .rounded-2xl.glass::before,
body.canonical-tpl-detail-lite .rounded-3xl.glass::before,
body.canonical-tpl-detail-lite .rounded-2xl.bg-white::before,
body.canonical-tpl-detail-lite .rounded-3xl.bg-white::before,
body.canonical-tpl-detail-lite .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-detail-lite .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-detail-lite .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-detail-lite .rounded-3xl.bg-white\/95::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        @media print {
            body.canonical-tpl-detail-lite .glass::before,
body.canonical-tpl-detail-lite .bg-white::before,
body.canonical-tpl-detail-lite .bg-white\/90::before,
body.canonical-tpl-detail-lite .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }
        body.canonical-tpl-detail-lite .rounded-2xl.bg-sky-50,
body.canonical-tpl-detail-lite .rounded-2xl.bg-teal-50,
body.canonical-tpl-detail-lite .rounded-2xl.bg-orange-50,
body.canonical-tpl-detail-lite .rounded-2xl.bg-amber-50 {
            position: relative;
        }
        body.canonical-tpl-detail-lite .rounded-2xl.bg-sky-50::before,
body.canonical-tpl-detail-lite .rounded-2xl.bg-teal-50::before,
body.canonical-tpl-detail-lite .rounded-2xl.bg-orange-50::before,
body.canonical-tpl-detail-lite .rounded-2xl.bg-amber-50::before {
            position: absolute;
            top: 0; left: 0; bottom: 0;
            width: 3px;
        }
    

/* tpl-detail.css: scoped compatibility layout only */

    body.canonical-tpl-detail .category-logo-picture { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 0; }
        @media (max-width: 640px) {
            body.canonical-tpl-detail .category-logo-picture .category-tab-logo { width: 1.35rem; height: 1.35rem; }
            body.canonical-tpl-detail .category-logo-picture .category-card-logo { width: 4rem; height: 4rem; }
            body.canonical-tpl-detail .category-logo-picture .category-intro-logo { width: 3.9rem; height: 3.9rem; }
            body.canonical-tpl-detail .category-intro-logo-wrap { width: 4.75rem; height: 4.75rem; }
            body.canonical-tpl-detail .category-intro-content { gap: .9rem; align-items: flex-start; }
            body.canonical-tpl-detail .guide-hero-logo,
body.canonical-tpl-detail .guides-hero-logo,
body.canonical-tpl-detail .category-guides-logo { max-width: 4.75rem; max-height: 4.75rem; }
        }
        @media (max-width: 430px) {
            body.canonical-tpl-detail .category-intro-content { flex-direction: row; }
            body.canonical-tpl-detail .category-intro-copy h1,
body.canonical-tpl-detail .category-intro-copy h2 { font-size: 1.35rem; line-height: 1.15; }
            body.canonical-tpl-detail .category-intro-copy p { font-size: .9rem; }
        }

    
        body.canonical-tpl-detail .affiliate-disclosure-note { font-size: .78rem; line-height: 1.45; }
        body.canonical-tpl-detail .affiliate-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 800; padding: .8rem 1.2rem; }
        @media print { body.canonical-tpl-detail .affiliate-cta-card,
body.canonical-tpl-detail .affiliate-cta-button { display: none; } }

    

                /* v20 premium surface system - one consistent surface + hairline border + accent bar, color used sparingly */
        body.canonical-tpl-detail {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --hairline-strong: rgba(21,48,61,.22);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --shadow-lift: 0 2px 4px rgba(21,48,61,.06), 0 22px 40px rgba(21,48,61,.13);
            --accent-1: #0077be;
            --accent-2: #20B2AA;
            --accent-3: #FF7F50;
            --accent-4: #C9A227;
            --glow-1: rgba(0,119,190,.16);
            --glow-2: rgba(32,178,170,.16);
            --glow-3: rgba(255,127,80,.16);
            --glow-4: rgba(201,162,39,.18);
        }
        body.canonical-tpl-detail .glass-panel,
body.canonical-tpl-detail .travel-card,
body.canonical-tpl-detail .map-section-card,
body.canonical-tpl-detail .booking-link-card,
body.canonical-tpl-detail .airport-card,
body.canonical-tpl-detail .travel-info-card,
body.canonical-tpl-detail .affiliate-cta-card,
body.canonical-tpl-detail .bg-white,
body.canonical-tpl-detail .bg-white\/90,
body.canonical-tpl-detail .bg-white\/95,
body.canonical-tpl-detail .bg-white\/80,
body.canonical-tpl-detail .bg-white\/70,
body.canonical-tpl-detail .bg-white\/60,
body.canonical-tpl-detail article.bg-white,
body.canonical-tpl-detail section.bg-white,
body.canonical-tpl-detail div.bg-white {
            position: relative;
        }
        body.canonical-tpl-detail .glass-panel::before,
body.canonical-tpl-detail .travel-card::before,
body.canonical-tpl-detail .map-section-card::before,
body.canonical-tpl-detail .booking-link-card::before,
body.canonical-tpl-detail .airport-card::before,
body.canonical-tpl-detail .travel-info-card::before,
body.canonical-tpl-detail .rounded-2xl.bg-white::before,
body.canonical-tpl-detail .rounded-3xl.bg-white::before,
body.canonical-tpl-detail .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-detail .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-detail .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-detail .rounded-3xl.bg-white\/95::before,
body.canonical-tpl-detail .rounded-2xl.bg-white\/80::before,
body.canonical-tpl-detail .rounded-3xl.bg-white\/80::before,
body.canonical-tpl-detail .rounded-2xl.bg-white\/70::before,
body.canonical-tpl-detail .rounded-3xl.bg-white\/70::before,
body.canonical-tpl-detail .rounded-2xl.bg-white\/60::before,
body.canonical-tpl-detail .rounded-3xl.bg-white\/60::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        body.canonical-tpl-detail .category-map-shell.map-panel-food::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-detail .category-map-shell.map-panel-lodging::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-detail .category-map-shell.map-panel-attractions::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-detail .category-map-shell.map-panel-shopping::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-detail .category-map-shell { position:relative; }
        @media print {
            body.canonical-tpl-detail .glass-panel::before,
body.canonical-tpl-detail .travel-card::before,
body.canonical-tpl-detail .map-section-card::before,
body.canonical-tpl-detail .bg-white::before,
body.canonical-tpl-detail .bg-white\/90::before,
body.canonical-tpl-detail .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }
        /* v20 premium treatment for the listing-detail fact boxes (Category / Phone / Address / Map coordinates) */
        body.canonical-tpl-detail .rounded-2xl.bg-sky-50,
body.canonical-tpl-detail .rounded-2xl.bg-teal-50,
body.canonical-tpl-detail .rounded-2xl.bg-orange-50,
body.canonical-tpl-detail .rounded-2xl.bg-amber-50 {
            position: relative;
        }
        body.canonical-tpl-detail .rounded-2xl.bg-sky-50::before,
body.canonical-tpl-detail .rounded-2xl.bg-teal-50::before,
body.canonical-tpl-detail .rounded-2xl.bg-orange-50::before,
body.canonical-tpl-detail .rounded-2xl.bg-amber-50::before {
            position: absolute;
            top: 0; left: 0; bottom: 0;
            width: 3px;
        }


    

/* tpl-events.css: scoped compatibility layout only */
body.canonical-tpl-events{
  --ocean:#0077be;--ocean-dark:#005f99;--teal:#0f766e;--teal-bright:#20b2aa;
  --coral:#b9470d;--sun:#c9a227;--navy:#14324a;--sand:#fff7df;
  --ink:#24364b;--muted:#526b80;--line:rgba(20,50,74,.18);
  --glass:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,251,242,.58));
  --glass-ocean:linear-gradient(135deg,rgba(224,242,254,.72),rgba(255,255,255,.62));
  --glass-teal:linear-gradient(135deg,rgba(204,251,241,.66),rgba(255,255,255,.62));
  --glass-coral:linear-gradient(135deg,rgba(255,237,213,.67),rgba(255,255,255,.64));
  --glass-sun:linear-gradient(135deg,rgba(254,243,199,.72),rgba(255,255,255,.64));
  --shadow:0 1px 2px rgba(20,50,74,.05),0 16px 34px rgba(20,50,74,.12);
}
body.canonical-tpl-events *{box-sizing:border-box}
body.canonical-tpl-events{
  margin:0;min-height:100vh;
}
body.canonical-tpl-events .skip-link{position:absolute;left:-9999px}body.canonical-tpl-events .skip-link:focus{left:1rem;top:1rem;z-index:99;padding:.7rem 1rem}
body.canonical-tpl-events .events-shell{min-height:100vh}body.canonical-tpl-events .events-site-top{position:relative;z-index:40}
body.canonical-tpl-events .events-header-hero{position:relative;overflow:hidden;isolation:isolate;padding:1rem 1.25rem}
body.canonical-tpl-events .events-header-banner-media{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;padding:.2rem 0;pointer-events:none}
body.canonical-tpl-events .events-header-banner-media img{width:100%;height:100%;max-height:225px;object-fit:contain;object-position:center}
body.canonical-tpl-events .events-header-hero::after{position:absolute;inset:0;z-index:1;pointer-events:none}
body.canonical-tpl-events .events-header-content{position:relative;z-index:2;max-width:1600px;margin:auto;display:grid;grid-template-columns:minmax(132px,160px) minmax(0,1fr) minmax(112px,148px);gap:1rem;align-items:center;min-height:205px}
body.canonical-tpl-events .events-header-widget{min-height:128px;padding:.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.2rem}
body.canonical-tpl-events .events-widget-kicker{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900}body.canonical-tpl-events .events-widget-icon{font-size:2rem}body.canonical-tpl-events .events-header-widget strong{font-size:1.05rem}body.canonical-tpl-events .events-header-widget span:last-child{font-size:.76rem;font-weight:700}
body.canonical-tpl-events .events-header-copy{text-align:center}body.canonical-tpl-events .events-header-copy p{margin:.25rem 0;font-weight:700}body.canonical-tpl-events .events-header-copy h1{font-size:clamp(2.2rem,4.8vw,4rem);line-height:1;margin:.35rem 0 .45rem;font-weight:900}body.canonical-tpl-events .events-header-copy p:last-child{font-size:clamp(.9rem,1.7vw,1.12rem)}
body.canonical-tpl-events .events-florida-logo{height:142px;display:flex;align-items:center;justify-content:center;padding:.35rem}body.canonical-tpl-events .events-florida-logo img{width:100%;height:100%;object-fit:contain}
body.canonical-tpl-events .events-nav-inner{max-width:1600px;margin:auto;display:flex;justify-content:center;flex-wrap:wrap;gap:.55rem;padding:.75rem 1rem}
body.canonical-tpl-events .events-nav a{display:inline-flex;align-items:center;gap:.42rem;font-weight:800;padding:.64rem .82rem}
body.canonical-tpl-events .events-nav a img{width:1.45rem;height:1.45rem;object-fit:contain}
body.canonical-tpl-events .events-main{max-width:1500px;margin:auto;padding:1.4rem 1.25rem 3rem}
body.canonical-tpl-events .events-hero,
body.canonical-tpl-events .events-panel,
body.canonical-tpl-events .event-card,
body.canonical-tpl-events .source-card,
body.canonical-tpl-events .booking-card{position:relative;overflow:hidden}
body.canonical-tpl-events .events-hero::before,
body.canonical-tpl-events .events-panel::before,
body.canonical-tpl-events .event-card::before,
body.canonical-tpl-events .source-card::before,
body.canonical-tpl-events .booking-card::before{position:absolute;top:0;left:0;right:0;height:4px;pointer-events:none}
body.canonical-tpl-events .events-hero{padding:clamp(1.35rem,3vw,2.6rem);display:grid;grid-template-columns:1.4fr .6fr;gap:1.5rem}
body.canonical-tpl-events .events-panel{padding:1.35rem;margin-top:1.25rem}
body.canonical-tpl-events .events-kicker,
body.canonical-tpl-events .event-tags span{display:inline-flex;font-weight:900;text-transform:uppercase;letter-spacing:.09em;font-size:.75rem;padding:.4rem .7rem}
body.canonical-tpl-events .events-title{font-size:clamp(2rem,4vw,3.35rem);line-height:1.05;margin:.8rem 0}body.canonical-tpl-events .lead{font-size:1.05rem;line-height:1.75}
body.canonical-tpl-events .hero-stats{display:grid;gap:.75rem}body.canonical-tpl-events .metric{padding:1rem}body.canonical-tpl-events .metric strong{display:block;font-size:1.8rem}
body.canonical-tpl-events .section-title{font-size:clamp(1.55rem,3vw,2.3rem);margin:.15rem 0 1rem}body.canonical-tpl-events .filter-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:.8rem}body.canonical-tpl-events .filter-grid label{font-weight:800;font-size:.9rem}body.canonical-tpl-events .filter-grid input,
body.canonical-tpl-events .filter-grid select{display:block;width:100%;margin-top:.35rem;padding:.76rem;font-size:1rem}
body.canonical-tpl-events .calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1rem}body.canonical-tpl-events .calendar-actions{display:flex;gap:.5rem}body.canonical-tpl-events .calendar-actions button,
body.canonical-tpl-events .event-actions button,
body.canonical-tpl-events .event-actions a,
body.canonical-tpl-events .booking-card a{font-weight:900;padding:.67rem .9rem;cursor:pointer}
body.canonical-tpl-events .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.38rem}body.canonical-tpl-events .dow{text-align:center;font-weight:900;padding:.45rem}body.canonical-tpl-events .calendar-day{min-height:112px;padding:.45rem}body.canonical-tpl-events .day-number{font-weight:900;margin-bottom:.35rem}body.canonical-tpl-events .calendar-event{display:block;width:100%;text-align:left;padding:.3rem .35rem;margin:.25rem 0;font-size:.76rem;font-weight:800;cursor:pointer}body.canonical-tpl-events .more-count{font-size:.75rem;font-weight:800}

body.canonical-tpl-events .events-town-legend-wrap{margin:0 0 1rem}body.canonical-tpl-events .legend-intro{margin:0 0 .6rem;font-weight:700}body.canonical-tpl-events .events-town-legend{display:flex;flex-wrap:wrap;gap:.55rem .75rem}body.canonical-tpl-events .legend-item{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .72rem;font-weight:900}body.canonical-tpl-events .legend-swatch{width:.95rem;height:.95rem;display:inline-block}
body.canonical-tpl-events .event-card .town-badge{font-size:.67rem;padding:.28rem .5rem}
@media(max-width:640px){body.canonical-tpl-events .legend-intro{font-size:.88rem}body.canonical-tpl-events .legend-item{padding:.34rem .58rem;font-size:.77rem}body.canonical-tpl-events .legend-swatch{width:.8rem;height:.8rem}}

body.canonical-tpl-events .event-list{display:grid;gap:1rem}body.canonical-tpl-events .event-card{padding:1rem;display:grid;grid-template-columns:72px 1fr;gap:1rem}
body.canonical-tpl-events .event-date-block{text-align:center;padding:.55rem}body.canonical-tpl-events .event-date-block span{display:block;text-transform:uppercase;font-weight:900;font-size:.78rem}body.canonical-tpl-events .event-date-block strong{font-size:2rem}body.canonical-tpl-events .event-copy h3{font-size:1.3rem;margin:.55rem 0}body.canonical-tpl-events .event-copy p{line-height:1.6;margin:.45rem 0}body.canonical-tpl-events .event-tags{display:flex;gap:.4rem;flex-wrap:wrap}body.canonical-tpl-events .event-tags span{font-size:.67rem;padding:.28rem .5rem}body.canonical-tpl-events .event-meta{font-weight:800}body.canonical-tpl-events .event-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.75rem}body.canonical-tpl-events .verified{font-size:.8rem}
body.canonical-tpl-events .source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}body.canonical-tpl-events .source-card{padding:1rem}body.canonical-tpl-events .source-card h3{margin:.2rem 0}body.canonical-tpl-events .source-card a{font-weight:900}body.canonical-tpl-events .planning-copy{columns:2;column-gap:2rem;line-height:1.75}
body.canonical-tpl-events .booking-card{padding:1.35rem;margin-top:1.25rem}body.canonical-tpl-events .booking-card strong{font-size:1.25rem}body.canonical-tpl-events .affiliate-note{font-size:.82rem}
body.canonical-tpl-events .events-footer{margin-top:0;padding:1.5rem}body.canonical-tpl-events .events-footer-inner{max-width:1500px;margin:auto;display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap}body.canonical-tpl-events .result-line{font-weight:900;margin:.25rem 0 1rem}
@media(max-width:900px){body.canonical-tpl-events .events-header-content{grid-template-columns:94px minmax(0,1fr) 82px;min-height:150px}body.canonical-tpl-events .events-header-widget{min-height:96px;padding:.45rem}body.canonical-tpl-events .events-widget-kicker,
body.canonical-tpl-events .events-header-widget span:last-child{font-size:.56rem}body.canonical-tpl-events .events-widget-icon{font-size:1.35rem}body.canonical-tpl-events .events-header-widget strong{font-size:.8rem}body.canonical-tpl-events .events-florida-logo{height:98px}body.canonical-tpl-events .events-header-banner-media img{max-height:158px}body.canonical-tpl-events .events-hero{grid-template-columns:1fr}body.canonical-tpl-events .filter-grid{grid-template-columns:1fr 1fr}body.canonical-tpl-events .source-grid{grid-template-columns:1fr 1fr}body.canonical-tpl-events .planning-copy{columns:1}body.canonical-tpl-events .calendar-day{min-height:88px}}
@media(max-width:640px){body.canonical-tpl-events .events-header-hero{padding:.45rem}body.canonical-tpl-events .events-header-content{grid-template-columns:58px minmax(0,1fr) 58px;gap:.35rem;min-height:92px}body.canonical-tpl-events .events-header-widget{min-height:58px;padding:.2rem}body.canonical-tpl-events .events-widget-kicker,
body.canonical-tpl-events .events-header-widget span:last-child{display:none}body.canonical-tpl-events .events-widget-icon{font-size:1.1rem}body.canonical-tpl-events .events-header-widget strong{font-size:.58rem}body.canonical-tpl-events .events-florida-logo{height:58px;padding:.15rem}body.canonical-tpl-events .events-header-copy h1{font-size:clamp(1.05rem,6vw,1.45rem);margin:.15rem 0}body.canonical-tpl-events .events-header-copy p:first-child{font-size:.56rem;letter-spacing:.04em;text-transform:uppercase}body.canonical-tpl-events .events-header-copy p:last-child{font-size:.58rem;line-height:.75rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}body.canonical-tpl-events .events-header-banner-media img{max-height:95px}body.canonical-tpl-events .events-nav-inner{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:.48rem}body.canonical-tpl-events .events-nav-inner::-webkit-scrollbar{display:none}body.canonical-tpl-events .events-nav a{flex:0 0 auto;white-space:nowrap;padding:.5rem .7rem;font-size:.72rem}body.canonical-tpl-events .events-nav a img{width:1.15rem;height:1.15rem}body.canonical-tpl-events .events-main{padding:.75rem}body.canonical-tpl-events .filter-grid{grid-template-columns:1fr}body.canonical-tpl-events .source-grid{grid-template-columns:1fr}body.canonical-tpl-events .calendar-grid{gap:.2rem}body.canonical-tpl-events .dow{font-size:.72rem;padding:.2rem}body.canonical-tpl-events .calendar-day{min-height:58px;padding:.2rem}body.canonical-tpl-events .calendar-event{font-size:0;width:100%;height:8px;padding:0}body.canonical-tpl-events .more-count{font-size:.6rem}body.canonical-tpl-events .event-card{grid-template-columns:58px 1fr}body.canonical-tpl-events .event-date-block strong{font-size:1.5rem}body.canonical-tpl-events .events-title{font-size:2rem}}
@media(prefers-reduced-motion:reduce){}


/* tpl-faq.css: scoped compatibility layout only */

        body.canonical-tpl-faq [v-cloak] { display: none; }
        body.canonical-tpl-faq .skip-link { position:absolute; left:-999px; top:.5rem; z-index:1000; padding:.65rem 1rem; font-weight:700; }
        body.canonical-tpl-faq .skip-link:focus { left:.5rem; }
        body.canonical-tpl-faq .custom-scrollbar::-webkit-scrollbar { width:8px; }
        body.canonical-tpl-faq .site-top { flex:0 0 auto; z-index:50; }
        body.canonical-tpl-faq .results-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; }
        /* FAQ tile color themes */
        body.canonical-tpl-faq .faq-feature-card,
body.canonical-tpl-faq section[aria-labelledby="faq-heading"] > details {
            position: relative;
            overflow: hidden;
        }
        body.canonical-tpl-faq section[aria-labelledby="faq-heading"] > details > p {
            padding: 1rem;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-faq,
body.canonical-tpl-faq { min-height:100%; overflow:auto; }
            body.canonical-tpl-faq #app { height:100dvh; min-height:100dvh; overflow:hidden; }
            body.canonical-tpl-faq .mobile-header { padding:.45rem .45rem; }
            body.canonical-tpl-faq .mobile-header-row { flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:.35rem; }
            body.canonical-tpl-faq .mobile-header-row > * { min-width:0; }
            body.canonical-tpl-faq .mobile-left-logo { order:1; width:3rem; height:3rem; min-width:3rem; }
            body.canonical-tpl-faq .mobile-center-title { order:2; flex:1 1 auto; min-width:0; max-width:none; padding:0 .15rem; }
            body.canonical-tpl-faq .mobile-main-logo { width:3.35rem; height:3.35rem; margin-bottom:.1rem; padding:.2rem; }
            body.canonical-tpl-faq .mobile-title-text { font-size:clamp(.92rem,4vw,1.12rem); line-height:1.05; margin-bottom:.05rem; }
            body.canonical-tpl-faq .mobile-subtitle-text { font-size:.58rem; line-height:.72rem; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
            body.canonical-tpl-faq .mobile-right-pack { order:3; flex-direction:row; gap:.25rem; min-width:6.1rem; }
            body.canonical-tpl-faq .mobile-weather-box { width:2.9rem; height:3rem; min-width:2.9rem; padding:.2rem; }
            body.canonical-tpl-faq .mobile-weather-location,
body.canonical-tpl-faq .mobile-weather-condition { display:none; }
            body.canonical-tpl-faq .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-faq .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-faq .mobile-right-logo { width:2.9rem; height:3rem; min-width:2.9rem; padding:.15rem; }
            body.canonical-tpl-faq .mobile-controls-area { padding:.35rem .45rem .45rem; }
            body.canonical-tpl-faq .mobile-controls-inner { gap:.35rem; }
            body.canonical-tpl-faq .mobile-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:.4rem; width:100%; padding-bottom:.15rem; }
            body.canonical-tpl-faq .mobile-tabs::-webkit-scrollbar { display:none; }
            body.canonical-tpl-faq .mobile-tab { flex:0 0 auto; width:auto; min-width:0; justify-content:center; white-space:nowrap; padding:.5rem .85rem; font-size:.72rem; line-height:1; gap:.3rem; min-height:2.3rem; }
            body.canonical-tpl-faq .mobile-tab span { font-size:.72rem; }
            body.canonical-tpl-faq .mobile-search-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:.35rem; align-items:end; padding:.45rem; }
            body.canonical-tpl-faq .mobile-search-panel label { font-size:.62rem; line-height:.75rem; margin-bottom:.1rem; }
            body.canonical-tpl-faq .mobile-search-panel input,
body.canonical-tpl-faq .mobile-search-panel select { min-height:2rem; padding:.35rem .45rem; font-size:.72rem; }
            body.canonical-tpl-faq .mobile-reset { width:auto; white-space:nowrap; padding:.43rem .55rem; min-height:2rem; font-size:.68rem; }
            body.canonical-tpl-faq .mobile-main { padding:.65rem .65rem 1rem; }
            body.canonical-tpl-faq .mobile-grid { gap:.85rem; }
            body.canonical-tpl-faq .mobile-card-image { height:10.25rem; }
            body.canonical-tpl-faq .florida-logo-box.mobile-right-logo { width:3.15rem; height:3.15rem; min-width:3.15rem; padding:.2rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-faq .mobile-left-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-faq .mobile-main-logo { width:2.95rem; height:2.95rem; }
            body.canonical-tpl-faq .mobile-right-pack { min-width:5.55rem; }
            body.canonical-tpl-faq .mobile-weather-box,
body.canonical-tpl-faq .mobile-right-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-faq .mobile-subtitle-text { display:none; }
            body.canonical-tpl-faq .mobile-tab { font-size:.68rem; padding:.45rem .7rem; }
            body.canonical-tpl-faq .mobile-tab span { display:inline; }
            body.canonical-tpl-faq .mobile-search-panel { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
            body.canonical-tpl-faq .mobile-reset { grid-column:1/-1; width:100%; }
            body.canonical-tpl-faq .florida-logo-box.mobile-right-logo { width:2.9rem; height:2.9rem; min-width:2.9rem; }
        }


        /* Current responsive header format */
        body.canonical-tpl-faq .header-hero {
            position: relative;
            overflow: hidden;
            isolation: isolate;
        }
        body.canonical-tpl-faq .header-banner-media {
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: .2rem 0;
            max-height: 100%;
        }
        body.canonical-tpl-faq .header-banner-media img {
            width: 100%;
            height: 100%;
            max-height: 220px;
            object-fit: contain;
            object-position: center;
        }
        body.canonical-tpl-faq .header-hero::after {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
        }
        body.canonical-tpl-faq .header-hero-content {
            position: relative;
            z-index: 2;
            display: grid;
            grid-template-columns: minmax(132px, 160px) minmax(0, 1fr) minmax(112px, 148px);
            align-items: center;
            gap: 1rem;
            min-height: 210px;
        }
        body.canonical-tpl-faq .weather-source-link {
            font-size: .62rem;
            line-height: .72rem;
            font-weight: 900;
            white-space: nowrap;
        }
        body.canonical-tpl-faq .weather-link-row {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: .36rem;
            flex-wrap: nowrap;
            margin-top: .2rem;
        }
        body.canonical-tpl-faq .header-title-wrap {
            max-width: min(960px, 100%);
            min-width: 0;
            margin: 0 auto;
            padding: .18rem .5rem;
            text-align: center;
        }
        body.canonical-tpl-faq .header-kicker,
body.canonical-tpl-faq .header-title-wrap h1,
body.canonical-tpl-faq .header-title-wrap p {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-faq .header-kicker {
            font-size: .72rem;
            line-height: 1;
            letter-spacing: .28em;
            text-transform: uppercase;
            font-weight: 900;
            margin-bottom: .38rem;
        }
        body.canonical-tpl-faq .header-title-wrap h1 {
            font-size: clamp(1.65rem, 4vw, 3.1rem);
            line-height: .98;
            font-weight: 900;
            letter-spacing: -.02em;
            margin-bottom: .22rem;
        }
        body.canonical-tpl-faq .header-title-wrap p {
            font-size: clamp(.78rem, 1.5vw, 1.08rem);
            line-height: 1.18;
            font-weight: 800;
        }
        body.canonical-tpl-faq .header-florida-wrap {
            justify-self: end;
            padding: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-faq .header-hero { padding-top: .45rem; padding-bottom: .45rem; }
            body.canonical-tpl-faq .header-hero-content.mobile-header-row {
                grid-template-columns: 78px minmax(0, 1fr) 78px;
                align-items: center;
                gap: .35rem;
                min-height: 112px;
            }
            body.canonical-tpl-faq .header-banner-media img { max-height: 126px; }
            body.canonical-tpl-faq .mobile-center-title {
                order: 2;
                width: 100%;
                max-width: none;
                min-width: 0;
                padding: 0 .05rem;
            }
            body.canonical-tpl-faq .mobile-weather-box {
                order: 1;
                width: 3.15rem;
                height: 4rem;
                min-width: 3.15rem;
                padding: .2rem;
            }
            body.canonical-tpl-faq .mobile-right-logo {
                order: 3;
                width: 3.15rem;
                height: 3.15rem;
                min-width: 3.15rem;
                padding: 0;
            }
            body.canonical-tpl-faq .header-title-wrap {
                padding: .05rem .02rem;
            }
            body.canonical-tpl-faq .header-kicker {
                display: none;
            }
            body.canonical-tpl-faq .mobile-title-text {
                font-size: clamp(.76rem, 3.25vw, 1rem);
                line-height: .98;
                margin-bottom: 0;
                font-weight: 900;
                letter-spacing: -.03em;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            body.canonical-tpl-faq .mobile-subtitle-text {
                display: none;
            }
            body.canonical-tpl-faq .mobile-weather-location,
body.canonical-tpl-faq .mobile-weather-condition { display:none; }
            body.canonical-tpl-faq .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-faq .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-faq .weather-link-row { flex-direction: column; gap: .02rem; margin-top: .08rem; }
            body.canonical-tpl-faq .weather-source-link { font-size: .48rem; line-height: .58rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-faq .header-hero-content.mobile-header-row {
                grid-template-columns: 66px minmax(0, 1fr) 66px;
                min-height: 104px;
            }
            body.canonical-tpl-faq .mobile-weather-box { width: 2.8rem; height: 3.55rem; min-width: 2.8rem; }
            body.canonical-tpl-faq .mobile-right-logo { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; }
            body.canonical-tpl-faq .mobile-title-text { font-size: clamp(.7rem, 3.05vw, .88rem); }
        }


        /* Header repair patch: clean text and stable weather widget */
        body.canonical-tpl-faq .header-hero-content {
            grid-template-columns: minmax(118px, 150px) minmax(0, 1fr) minmax(96px, 132px);
            gap: clamp(.55rem, 1.6vw, 1rem);
        }
        body.canonical-tpl-faq .header-side-widget {
            overflow: hidden;
            position: relative;
            z-index: 3;
        }
        body.canonical-tpl-faq .weather-current-row {
            width: 100%;
            min-width: 0;
            flex-wrap: nowrap;
        }
        body.canonical-tpl-faq .mobile-weather-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.9rem;
            min-width: 1.9rem;
            font-size: 1.45rem;
            line-height: 1;
        }
        body.canonical-tpl-faq .mobile-weather-temp {
            font-size: .95rem;
            line-height: 1.05;
            white-space: nowrap;
            max-width: 4.8rem;
            overflow: hidden;
            text-overflow: clip;
        }
        body.canonical-tpl-faq .mobile-weather-condition {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-faq .weather-link-row {
            max-width: 100%;
            gap: .28rem;
        }
        body.canonical-tpl-faq .weather-source-link {
            font-size: .58rem;
            line-height: .7rem;
        }
        body.canonical-tpl-faq .header-title-wrap {
            max-width: min(900px, 100%);
            padding: .4rem .9rem;
        }
        body.canonical-tpl-faq .header-kicker {
            font-size: clamp(.58rem, .85vw, .76rem);
            line-height: 1.05;
            letter-spacing: .34em;
            font-weight: 800;
        }
        body.canonical-tpl-faq .header-title-wrap h1,
body.canonical-tpl-faq .mobile-title-text {
            font-size: clamp(1.55rem, 3.35vw, 2.95rem);
            line-height: 1.04;
            font-weight: 800;
            letter-spacing: -.035em;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-faq .header-title-wrap p,
body.canonical-tpl-faq .mobile-subtitle-text {
            font-size: clamp(.72rem, 1.25vw, 1rem);
            line-height: 1.16;
            font-weight: 700;
            letter-spacing: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-faq .header-hero-content.mobile-header-row {
                grid-template-columns: 72px minmax(0,1fr) 72px;
                gap: .28rem;
                min-height: 108px;
            }
            body.canonical-tpl-faq .mobile-weather-box {
                width: 4.2rem;
                height: 3.8rem;
                min-width: 4.2rem;
                padding: .22rem;
            }
            body.canonical-tpl-faq .mobile-weather-location,
body.canonical-tpl-faq .mobile-weather-condition { display: none; }
            body.canonical-tpl-faq .mobile-weather-icon {
                width: 1.3rem;
                min-width: 1.3rem;
                font-size: 1rem;
            }
            body.canonical-tpl-faq .mobile-weather-temp {
                font-size: .68rem;
                max-width: 2.7rem;
            }
            body.canonical-tpl-faq .weather-link-row { flex-direction: row; gap: .12rem; margin-top: .1rem; }
            body.canonical-tpl-faq .weather-source-link { font-size: .42rem; line-height: .5rem; }
            body.canonical-tpl-faq .header-kicker { display: none; }
            body.canonical-tpl-faq .header-title-wrap h1,
body.canonical-tpl-faq .mobile-title-text {
                font-size: clamp(.74rem, 3.6vw, 1.05rem);
                line-height: 1.02;
            }
            body.canonical-tpl-faq .mobile-subtitle-text { display: none; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-faq .header-hero-content.mobile-header-row {
                grid-template-columns: 64px minmax(0,1fr) 64px;
                min-height: 100px;
            }
            body.canonical-tpl-faq .mobile-weather-box {
                width: 3.95rem;
                height: 3.4rem;
                min-width: 3.95rem;
            }
            body.canonical-tpl-faq .header-title-wrap h1,
body.canonical-tpl-faq .mobile-title-text { font-size: clamp(.66rem, 3.25vw, .88rem); }
        }


        body.canonical-tpl-faq .map-page-shell { min-height: 100vh; }
        body.canonical-tpl-faq .category-map { height: clamp(360px, 62vh, 660px); width: 100%; overflow: hidden; }
        body.canonical-tpl-faq .map-popup-title { font-weight: 800; margin-bottom: .25rem; }
        body.canonical-tpl-faq .map-popup-meta { font-size: .82rem; line-height: 1.25rem; }
        body.canonical-tpl-faq .map-popup-actions { display:flex; gap:.45rem; flex-wrap:wrap; margin-top:.55rem; }
        body.canonical-tpl-faq .map-popup-actions a { font-weight:700; font-size:.82rem; }
        body.canonical-tpl-faq .map-count-pill { display:inline-flex; align-items:center; padding:.35rem .75rem; font-size:.8rem; font-weight:800; }
        body.canonical-tpl-faq .missing-list { font-size:.82rem; line-height:1.35rem; }
        @media (max-width: 767px) {
            body.canonical-tpl-faq,
body.canonical-tpl-faq { overflow:auto; }
            body.canonical-tpl-faq #app { height:auto; min-height:100vh; overflow:visible; }
            body.canonical-tpl-faq .category-map { height: 390px; }
            body.canonical-tpl-faq .map-main { padding: .85rem; }
        }


        body.canonical-tpl-faq .category-tab-logo { width: 1.85rem; height: 1.85rem; object-fit: contain; flex-shrink: 0; }
        body.canonical-tpl-faq .category-card-logo { width: 5.25rem; height: 5.25rem; object-fit: contain; }
        body.canonical-tpl-faq .category-card-logo-wrap { position: relative; overflow: hidden; }
        body.canonical-tpl-faq .category-intro-content { display: flex; align-items: center; gap: 1.5rem; }
        body.canonical-tpl-faq .category-intro-logo-wrap { flex: 0 0 auto; width: 7.75rem; height: 7.75rem; display: flex; align-items: center; justify-content: center; }
        body.canonical-tpl-faq .category-intro-logo { width: 6.65rem; height: 6.65rem; object-fit: contain; }
        @media (max-width: 767px) {
            body.canonical-tpl-faq .category-tab-logo { width: 1.5rem; height: 1.5rem; }
            body.canonical-tpl-faq .category-card-logo { width: 4.45rem; height: 4.45rem; }
            body.canonical-tpl-faq .category-intro-content { flex-direction: column; align-items: flex-start; gap: 1rem; }
            body.canonical-tpl-faq .category-intro-logo-wrap { width: 6.25rem; height: 6.25rem; }
            body.canonical-tpl-faq .category-intro-logo { width: 5.4rem; height: 5.4rem; }
        }

    
        body.canonical-tpl-faq .category-logo-picture { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 0; }
        @media (max-width: 640px) {
            body.canonical-tpl-faq .category-logo-picture .category-tab-logo { width: 1.35rem; height: 1.35rem; }
            body.canonical-tpl-faq .category-logo-picture .category-card-logo { width: 4rem; height: 4rem; }
            body.canonical-tpl-faq .category-logo-picture .category-intro-logo { width: 3.9rem; height: 3.9rem; }
            body.canonical-tpl-faq .category-intro-logo-wrap { width: 4.75rem; height: 4.75rem; }
            body.canonical-tpl-faq .category-intro-content { gap: .9rem; align-items: flex-start; }
            body.canonical-tpl-faq .guide-hero-logo,
body.canonical-tpl-faq .guides-hero-logo,
body.canonical-tpl-faq .category-guides-logo { max-width: 4.75rem; max-height: 4.75rem; }
        }
        @media (max-width: 430px) {
            body.canonical-tpl-faq .category-intro-content { flex-direction: row; }
            body.canonical-tpl-faq .category-intro-copy h1,
body.canonical-tpl-faq .category-intro-copy h2 { font-size: 1.35rem; line-height: 1.15; }
            body.canonical-tpl-faq .category-intro-copy p { font-size: .9rem; }
        }

    
        body.canonical-tpl-faq .affiliate-disclosure-note { font-size: .78rem; line-height: 1.45; }
        body.canonical-tpl-faq .affiliate-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 800; padding: .8rem 1.2rem; }
        @media print { body.canonical-tpl-faq .affiliate-cta-card,
body.canonical-tpl-faq .affiliate-cta-button { display: none; } }

    

                /* v20 premium surface system - one consistent surface + hairline border + accent bar, color used sparingly */
        body.canonical-tpl-faq {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --hairline-strong: rgba(21,48,61,.22);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --shadow-lift: 0 2px 4px rgba(21,48,61,.06), 0 22px 40px rgba(21,48,61,.13);
            --accent-1: #0077be;
            --accent-2: #20B2AA;
            --accent-3: #FF7F50;
            --accent-4: #C9A227;
            --glow-1: rgba(0,119,190,.16);
            --glow-2: rgba(32,178,170,.16);
            --glow-3: rgba(255,127,80,.16);
            --glow-4: rgba(201,162,39,.18);
        }
        body.canonical-tpl-faq .glass-panel,
body.canonical-tpl-faq .travel-card,
body.canonical-tpl-faq .map-section-card,
body.canonical-tpl-faq .booking-link-card,
body.canonical-tpl-faq .airport-card,
body.canonical-tpl-faq .travel-info-card,
body.canonical-tpl-faq .affiliate-cta-card,
body.canonical-tpl-faq .bg-white,
body.canonical-tpl-faq .bg-white\/90,
body.canonical-tpl-faq .bg-white\/95,
body.canonical-tpl-faq .bg-white\/80,
body.canonical-tpl-faq .bg-white\/70,
body.canonical-tpl-faq .bg-white\/60,
body.canonical-tpl-faq article.bg-white,
body.canonical-tpl-faq section.bg-white,
body.canonical-tpl-faq div.bg-white {
            position: relative;
        }
        body.canonical-tpl-faq .glass-panel::before,
body.canonical-tpl-faq .travel-card::before,
body.canonical-tpl-faq .map-section-card::before,
body.canonical-tpl-faq .booking-link-card::before,
body.canonical-tpl-faq .airport-card::before,
body.canonical-tpl-faq .travel-info-card::before,
body.canonical-tpl-faq .rounded-2xl.bg-white::before,
body.canonical-tpl-faq .rounded-3xl.bg-white::before,
body.canonical-tpl-faq .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-faq .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-faq .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-faq .rounded-3xl.bg-white\/95::before,
body.canonical-tpl-faq .rounded-2xl.bg-white\/80::before,
body.canonical-tpl-faq .rounded-3xl.bg-white\/80::before,
body.canonical-tpl-faq .rounded-2xl.bg-white\/70::before,
body.canonical-tpl-faq .rounded-3xl.bg-white\/70::before,
body.canonical-tpl-faq .rounded-2xl.bg-white\/60::before,
body.canonical-tpl-faq .rounded-3xl.bg-white\/60::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        body.canonical-tpl-faq .category-map-shell.map-panel-food::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-faq .category-map-shell.map-panel-lodging::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-faq .category-map-shell.map-panel-attractions::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-faq .category-map-shell.map-panel-shopping::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-faq .category-map-shell { position:relative; }
        @media print {
            body.canonical-tpl-faq .glass-panel::before,
body.canonical-tpl-faq .travel-card::before,
body.canonical-tpl-faq .map-section-card::before,
body.canonical-tpl-faq .bg-white::before,
body.canonical-tpl-faq .bg-white\/90::before,
body.canonical-tpl-faq .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }


        
/* Header logo visibility hotfix — 2026-07-28
   The page-title panel previously used a dark translucent background plus
   backdrop blur, which obscured the centered 30A banner logo. */
@media (min-width: 768px) {
  body.canonical-tpl-faq .header-title-wrap {
    padding: .28rem .55rem;
  }
}


/* tpl-guides.css: scoped compatibility layout only */


        body.canonical-tpl-guides {
            --beach-ocean:#0077be;
            --beach-teal:#00a7a7;
            --beach-coral:#ff7f50;
            --beach-sun:#ffd166;
            --beach-sand:#fff7df;
            --beach-navy:#0f2d4a;
            --beach-slate:#18324a;
            --ocean:var(--beach-ocean);
            --teal:var(--beach-teal);
            --coral:var(--beach-coral);
            --sand:var(--beach-sand);
            --navy:var(--beach-navy);
        }
        body.canonical-tpl-guides * { box-sizing: border-box; }
        body.canonical-tpl-guides {
            margin:0;
            min-height:100vh;
        }
        body.canonical-tpl-guides::after {
            position:fixed;
            left:0; right:0; bottom:0;
            height:170px;
            pointer-events:none;
            z-index:-1;
        }
        body.canonical-tpl-guides .site-shell { max-width: 1280px; margin: 0 auto; padding: 0 1rem; }
        body.canonical-tpl-guides .site-header { padding:1rem 0; position:sticky; top:0; z-index:30; }
        body.canonical-tpl-guides .header-inner { display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; }
        body.canonical-tpl-guides .brand { display:flex; gap:.75rem; align-items:center; font-weight:800; }
        body.canonical-tpl-guides .logo { width:62px; height:62px; object-fit:contain; }
        body.canonical-tpl-guides .nav { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; justify-content:center; }
        body.canonical-tpl-guides .nav a { font-weight:800; padding:.62rem .82rem; display:inline-flex; align-items:center; gap:.42rem; }
        body.canonical-tpl-guides .nav-icon { width:1.65rem; height:1.65rem; object-fit:contain; flex:0 0 auto; }
        body.canonical-tpl-guides .hero { position:relative; overflow:hidden; }
        body.canonical-tpl-guides .hero::after { position:absolute; right:-90px; top:-90px; width:280px; height:280px; }
        body.canonical-tpl-guides .guide-hero { padding:1.5rem; margin:1.5rem 0; }
        body.canonical-tpl-guides .guide-hero-inner { position:relative; z-index:1; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:1.4rem; align-items:center; }
        body.canonical-tpl-guides .guide-logo-panel { width:8.75rem; height:8.75rem; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
        body.canonical-tpl-guides .guide-logo-panel img { width:7.4rem; height:7.4rem; object-fit:contain; }
        body.canonical-tpl-guides .guide-eyebrow,
body.canonical-tpl-guides .pill { display:inline-flex; align-items:center; padding:.42rem .75rem; font-weight:800; font-size:.75rem; text-transform:uppercase; letter-spacing:.13em; }
        body.canonical-tpl-guides .guide-hero h1 { font-size:clamp(2.25rem,5vw,4.2rem); line-height:1.05; margin:.7rem 0 .65rem; }
        body.canonical-tpl-guides .guide-hero p { font-size:1.08rem; line-height:1.65; max-width:800px; }
        body.canonical-tpl-guides .hero-checklist { list-style:none; padding:1rem; margin:0; min-width:260px; }
        body.canonical-tpl-guides .hero-checklist li { display:flex; gap:.55rem; font-size:.95rem; line-height:1.55; margin:.3rem 0; }
        body.canonical-tpl-guides .hero-checklist li::before { font-weight:900; }
        body.canonical-tpl-guides .grid { display:grid; gap:1rem; }
        body.canonical-tpl-guides .guide-grid { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
        body.canonical-tpl-guides .loc-grid { grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
        body.canonical-tpl-guides .card { padding:1.15rem; }
        body.canonical-tpl-guides .guide-card-top { display:flex; gap:1rem; align-items:flex-start; }
        body.canonical-tpl-guides .guide-card-logo { width:4.7rem; height:4.7rem; object-fit:contain; flex:0 0 auto; }
        body.canonical-tpl-guides .btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.85rem 1.05rem; font-weight:800; cursor:pointer; }
        body.canonical-tpl-guides .nav-actions { display:flex; gap:.65rem; flex-wrap:wrap; justify-content:flex-end; align-items:center; }
        body.canonical-tpl-guides .footer { padding:2rem 0; }
        @media print {
            body.canonical-tpl-guides::after,
body.canonical-tpl-guides .no-print,
body.canonical-tpl-guides header,
body.canonical-tpl-guides footer,
body.canonical-tpl-guides .nav-actions,
body.canonical-tpl-guides .hero-checklist { display:none; }
            body.canonical-tpl-guides .site-shell { max-width:none; padding:0; }
            body.canonical-tpl-guides .guide-hero-inner { grid-template-columns:auto 1fr; }
            body.canonical-tpl-guides .guide-logo-panel { width:1.1in; height:1.1in; }
            body.canonical-tpl-guides .guide-logo-panel img { width:1in; height:1in; }
            body.canonical-tpl-guides .loc-grid,
body.canonical-tpl-guides .guide-grid { grid-template-columns:1fr 1fr; }
        }
        @media (max-width:900px) {
            body.canonical-tpl-guides .guide-hero-inner { grid-template-columns:1fr; align-items:start; }
            body.canonical-tpl-guides .guide-logo-panel { width:7.25rem; height:7.25rem; }
            body.canonical-tpl-guides .guide-logo-panel img { width:6.25rem; height:6.25rem; }
            body.canonical-tpl-guides .nav-actions { justify-content:flex-start; }
        }
        @media (max-width:720px) {
            body.canonical-tpl-guides .nav { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding-bottom:.25rem; }
            body.canonical-tpl-guides .nav a { white-space:nowrap; }
            body.canonical-tpl-guides .guide-card-top { align-items:center; }
        }


        body.canonical-tpl-guides .category-logo-picture { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 0; }
        @media (max-width: 640px) {
            body.canonical-tpl-guides .category-logo-picture .category-tab-logo { width: 1.35rem; height: 1.35rem; }
            body.canonical-tpl-guides .category-logo-picture .category-card-logo { width: 4rem; height: 4rem; }
            body.canonical-tpl-guides .category-logo-picture .category-intro-logo { width: 3.9rem; height: 3.9rem; }
            body.canonical-tpl-guides .category-intro-logo-wrap { width: 4.75rem; height: 4.75rem; }
            body.canonical-tpl-guides .category-intro-content { gap: .9rem; align-items: flex-start; }
            body.canonical-tpl-guides .guide-hero-logo,
body.canonical-tpl-guides .guides-hero-logo,
body.canonical-tpl-guides .category-guides-logo { max-width: 4.75rem; max-height: 4.75rem; }
        }
        @media (max-width: 430px) {
            body.canonical-tpl-guides .category-intro-content { flex-direction: row; }
            body.canonical-tpl-guides .category-intro-copy h1,
body.canonical-tpl-guides .category-intro-copy h2 { font-size: 1.35rem; line-height: 1.15; }
            body.canonical-tpl-guides .category-intro-copy p { font-size: .9rem; }
        }

    
        body.canonical-tpl-guides .affiliate-disclosure-note { font-size: .78rem; line-height: 1.45; }
        body.canonical-tpl-guides .affiliate-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 800; padding: .8rem 1.2rem; }
        @media print { body.canonical-tpl-guides .affiliate-cta-card,
body.canonical-tpl-guides .affiliate-cta-button { display: none; } }

    

                /* v20 premium surface system - one consistent surface + hairline border + accent bar, color used sparingly */
        body.canonical-tpl-guides {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --hairline-strong: rgba(21,48,61,.22);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --shadow-lift: 0 2px 4px rgba(21,48,61,.06), 0 22px 40px rgba(21,48,61,.13);
            --accent-1: #0077be;
            --accent-2: #20B2AA;
            --accent-3: #FF7F50;
            --accent-4: #C9A227;
            --glow-1: rgba(0,119,190,.16);
            --glow-2: rgba(32,178,170,.16);
            --glow-3: rgba(255,127,80,.16);
            --glow-4: rgba(201,162,39,.18);
        }
        body.canonical-tpl-guides .glass-panel,
body.canonical-tpl-guides .travel-card,
body.canonical-tpl-guides .map-section-card,
body.canonical-tpl-guides .booking-link-card,
body.canonical-tpl-guides .airport-card,
body.canonical-tpl-guides .travel-info-card,
body.canonical-tpl-guides .affiliate-cta-card,
body.canonical-tpl-guides .bg-white,
body.canonical-tpl-guides .bg-white\/90,
body.canonical-tpl-guides .bg-white\/95,
body.canonical-tpl-guides .bg-white\/80,
body.canonical-tpl-guides .bg-white\/70,
body.canonical-tpl-guides .bg-white\/60,
body.canonical-tpl-guides article.bg-white,
body.canonical-tpl-guides section.bg-white,
body.canonical-tpl-guides div.bg-white {
            position: relative;
        }
        body.canonical-tpl-guides .glass-panel::before,
body.canonical-tpl-guides .travel-card::before,
body.canonical-tpl-guides .map-section-card::before,
body.canonical-tpl-guides .booking-link-card::before,
body.canonical-tpl-guides .airport-card::before,
body.canonical-tpl-guides .travel-info-card::before,
body.canonical-tpl-guides .rounded-2xl.bg-white::before,
body.canonical-tpl-guides .rounded-3xl.bg-white::before,
body.canonical-tpl-guides .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-guides .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-guides .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-guides .rounded-3xl.bg-white\/95::before,
body.canonical-tpl-guides .rounded-2xl.bg-white\/80::before,
body.canonical-tpl-guides .rounded-3xl.bg-white\/80::before,
body.canonical-tpl-guides .rounded-2xl.bg-white\/70::before,
body.canonical-tpl-guides .rounded-3xl.bg-white\/70::before,
body.canonical-tpl-guides .rounded-2xl.bg-white\/60::before,
body.canonical-tpl-guides .rounded-3xl.bg-white\/60::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        body.canonical-tpl-guides .category-map-shell.map-panel-food::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-guides .category-map-shell.map-panel-lodging::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-guides .category-map-shell.map-panel-attractions::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-guides .category-map-shell.map-panel-shopping::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-guides .category-map-shell { position:relative; }
        @media print {
            body.canonical-tpl-guides .glass-panel::before,
body.canonical-tpl-guides .travel-card::before,
body.canonical-tpl-guides .map-section-card::before,
body.canonical-tpl-guides .bg-white::before,
body.canonical-tpl-guides .bg-white\/90::before,
body.canonical-tpl-guides .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }


    

        body.canonical-tpl-guides [v-cloak] { display: none; }
        body.canonical-tpl-guides .skip-link { position:absolute; left:-999px; top:.5rem; z-index:1000; padding:.65rem 1rem; font-weight:700; }
        body.canonical-tpl-guides .skip-link:focus { left:.5rem; }
        body.canonical-tpl-guides .custom-scrollbar::-webkit-scrollbar { width:8px; }
        body.canonical-tpl-guides .site-top { flex:0 0 auto; z-index:50; }
        body.canonical-tpl-guides .results-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; }
        /* FAQ tile color themes */
        body.canonical-tpl-guides .faq-feature-card,
body.canonical-tpl-guides section[aria-labelledby="faq-heading"] > details {
            position: relative;
            overflow: hidden;
        }
        body.canonical-tpl-guides section[aria-labelledby="faq-heading"] > details > p {
            padding: 1rem;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-guides,
body.canonical-tpl-guides { min-height:100%; overflow:auto; }
            body.canonical-tpl-guides #app { height:100dvh; min-height:100dvh; overflow:hidden; }
            body.canonical-tpl-guides .mobile-header { padding:.45rem .45rem; }
            body.canonical-tpl-guides .mobile-header-row { flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:.35rem; }
            body.canonical-tpl-guides .mobile-header-row > * { min-width:0; }
            body.canonical-tpl-guides .mobile-left-logo { order:1; width:3rem; height:3rem; min-width:3rem; }
            body.canonical-tpl-guides .mobile-center-title { order:2; flex:1 1 auto; min-width:0; max-width:none; padding:0 .15rem; }
            body.canonical-tpl-guides .mobile-main-logo { width:3.35rem; height:3.35rem; margin-bottom:.1rem; padding:.2rem; }
            body.canonical-tpl-guides .mobile-title-text { font-size:clamp(.92rem,4vw,1.12rem); line-height:1.05; margin-bottom:.05rem; }
            body.canonical-tpl-guides .mobile-subtitle-text { font-size:.58rem; line-height:.72rem; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
            body.canonical-tpl-guides .mobile-right-pack { order:3; flex-direction:row; gap:.25rem; min-width:6.1rem; }
            body.canonical-tpl-guides .mobile-weather-box { width:2.9rem; height:3rem; min-width:2.9rem; padding:.2rem; }
            body.canonical-tpl-guides .mobile-weather-location,
body.canonical-tpl-guides .mobile-weather-condition { display:none; }
            body.canonical-tpl-guides .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-guides .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-guides .mobile-right-logo { width:2.9rem; height:3rem; min-width:2.9rem; padding:.15rem; }
            body.canonical-tpl-guides .mobile-controls-area { padding:.35rem .45rem .45rem; }
            body.canonical-tpl-guides .mobile-controls-inner { gap:.35rem; }
            body.canonical-tpl-guides .mobile-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:.4rem; width:100%; padding-bottom:.15rem; }
            body.canonical-tpl-guides .mobile-tabs::-webkit-scrollbar { display:none; }
            body.canonical-tpl-guides .mobile-tab { flex:0 0 auto; width:auto; min-width:0; justify-content:center; white-space:nowrap; padding:.5rem .85rem; font-size:.72rem; line-height:1; gap:.3rem; min-height:2.3rem; }
            body.canonical-tpl-guides .mobile-tab span { font-size:.72rem; }
            body.canonical-tpl-guides .mobile-search-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:.35rem; align-items:end; padding:.45rem; }
            body.canonical-tpl-guides .mobile-search-panel label { font-size:.62rem; line-height:.75rem; margin-bottom:.1rem; }
            body.canonical-tpl-guides .mobile-search-panel input,
body.canonical-tpl-guides .mobile-search-panel select { min-height:2rem; padding:.35rem .45rem; font-size:.72rem; }
            body.canonical-tpl-guides .mobile-reset { width:auto; white-space:nowrap; padding:.43rem .55rem; min-height:2rem; font-size:.68rem; }
            body.canonical-tpl-guides .mobile-main { padding:.65rem .65rem 1rem; }
            body.canonical-tpl-guides .mobile-grid { gap:.85rem; }
            body.canonical-tpl-guides .mobile-card-image { height:10.25rem; }
            body.canonical-tpl-guides .florida-logo-box.mobile-right-logo { width:3.15rem; height:3.15rem; min-width:3.15rem; padding:.2rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-guides .mobile-left-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-guides .mobile-main-logo { width:2.95rem; height:2.95rem; }
            body.canonical-tpl-guides .mobile-right-pack { min-width:5.55rem; }
            body.canonical-tpl-guides .mobile-weather-box,
body.canonical-tpl-guides .mobile-right-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-guides .mobile-subtitle-text { display:none; }
            body.canonical-tpl-guides .mobile-tab { font-size:.68rem; padding:.45rem .7rem; }
            body.canonical-tpl-guides .mobile-tab span { display:inline; }
            body.canonical-tpl-guides .mobile-search-panel { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
            body.canonical-tpl-guides .mobile-reset { grid-column:1/-1; width:100%; }
            body.canonical-tpl-guides .florida-logo-box.mobile-right-logo { width:2.9rem; height:2.9rem; min-width:2.9rem; }
        }


        /* Current responsive header format */
        body.canonical-tpl-guides .header-hero {
            position: relative;
            overflow: hidden;
            isolation: isolate;
        }
        body.canonical-tpl-guides .header-banner-media {
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: .2rem 0;
            max-height: 100%;
        }
        body.canonical-tpl-guides .header-banner-media img {
            width: 100%;
            height: 100%;
            max-height: 220px;
            object-fit: contain;
            object-position: center;
        }
        body.canonical-tpl-guides .header-hero::after {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
        }
        body.canonical-tpl-guides .header-hero-content {
            position: relative;
            z-index: 2;
            display: grid;
            grid-template-columns: minmax(132px, 160px) minmax(0, 1fr) minmax(112px, 148px);
            align-items: center;
            gap: 1rem;
            min-height: 210px;
        }
        body.canonical-tpl-guides .weather-source-link {
            font-size: .62rem;
            line-height: .72rem;
            font-weight: 900;
            white-space: nowrap;
        }
        body.canonical-tpl-guides .weather-link-row {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: .36rem;
            flex-wrap: nowrap;
            margin-top: .2rem;
        }
        body.canonical-tpl-guides .header-title-wrap {
            max-width: min(960px, 100%);
            min-width: 0;
            margin: 0 auto;
            padding: .18rem .5rem;
            text-align: center;
        }
        body.canonical-tpl-guides .header-kicker,
body.canonical-tpl-guides .header-title-wrap h1,
body.canonical-tpl-guides .header-title-wrap p {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-guides .header-kicker {
            font-size: .72rem;
            line-height: 1;
            letter-spacing: .28em;
            text-transform: uppercase;
            font-weight: 900;
            margin-bottom: .38rem;
        }
        body.canonical-tpl-guides .header-title-wrap h1 {
            font-size: clamp(1.65rem, 4vw, 3.1rem);
            line-height: .98;
            font-weight: 900;
            letter-spacing: -.02em;
            margin-bottom: .22rem;
        }
        body.canonical-tpl-guides .header-title-wrap p {
            font-size: clamp(.78rem, 1.5vw, 1.08rem);
            line-height: 1.18;
            font-weight: 800;
        }
        body.canonical-tpl-guides .header-florida-wrap {
            justify-self: end;
            padding: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-guides .header-hero { padding-top: .45rem; padding-bottom: .45rem; }
            body.canonical-tpl-guides .header-hero-content.mobile-header-row {
                grid-template-columns: 78px minmax(0, 1fr) 78px;
                align-items: center;
                gap: .35rem;
                min-height: 112px;
            }
            body.canonical-tpl-guides .header-banner-media img { max-height: 126px; }
            body.canonical-tpl-guides .mobile-center-title {
                order: 2;
                width: 100%;
                max-width: none;
                min-width: 0;
                padding: 0 .05rem;
            }
            body.canonical-tpl-guides .mobile-weather-box {
                order: 1;
                width: 3.15rem;
                height: 4rem;
                min-width: 3.15rem;
                padding: .2rem;
            }
            body.canonical-tpl-guides .mobile-right-logo {
                order: 3;
                width: 3.15rem;
                height: 3.15rem;
                min-width: 3.15rem;
                padding: 0;
            }
            body.canonical-tpl-guides .header-title-wrap {
                padding: .05rem .02rem;
            }
            body.canonical-tpl-guides .header-kicker {
                display: none;
            }
            body.canonical-tpl-guides .mobile-title-text {
                font-size: clamp(.76rem, 3.25vw, 1rem);
                line-height: .98;
                margin-bottom: 0;
                font-weight: 900;
                letter-spacing: -.03em;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            body.canonical-tpl-guides .mobile-subtitle-text {
                display: none;
            }
            body.canonical-tpl-guides .mobile-weather-location,
body.canonical-tpl-guides .mobile-weather-condition { display:none; }
            body.canonical-tpl-guides .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-guides .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-guides .weather-link-row { flex-direction: column; gap: .02rem; margin-top: .08rem; }
            body.canonical-tpl-guides .weather-source-link { font-size: .48rem; line-height: .58rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-guides .header-hero-content.mobile-header-row {
                grid-template-columns: 66px minmax(0, 1fr) 66px;
                min-height: 104px;
            }
            body.canonical-tpl-guides .mobile-weather-box { width: 2.8rem; height: 3.55rem; min-width: 2.8rem; }
            body.canonical-tpl-guides .mobile-right-logo { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; }
            body.canonical-tpl-guides .mobile-title-text { font-size: clamp(.7rem, 3.05vw, .88rem); }
        }


        /* Header repair patch: clean text and stable weather widget */
        body.canonical-tpl-guides .header-hero-content {
            grid-template-columns: minmax(118px, 150px) minmax(0, 1fr) minmax(96px, 132px);
            gap: clamp(.55rem, 1.6vw, 1rem);
        }
        body.canonical-tpl-guides .header-side-widget {
            overflow: hidden;
            position: relative;
            z-index: 3;
        }
        body.canonical-tpl-guides .weather-current-row {
            width: 100%;
            min-width: 0;
            flex-wrap: nowrap;
        }
        body.canonical-tpl-guides .mobile-weather-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.9rem;
            min-width: 1.9rem;
            font-size: 1.45rem;
            line-height: 1;
        }
        body.canonical-tpl-guides .mobile-weather-temp {
            font-size: .95rem;
            line-height: 1.05;
            white-space: nowrap;
            max-width: 4.8rem;
            overflow: hidden;
            text-overflow: clip;
        }
        body.canonical-tpl-guides .mobile-weather-condition {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-guides .weather-link-row {
            max-width: 100%;
            gap: .28rem;
        }
        body.canonical-tpl-guides .weather-source-link {
            font-size: .58rem;
            line-height: .7rem;
        }
        body.canonical-tpl-guides .header-title-wrap {
            max-width: min(900px, 100%);
            padding: .4rem .9rem;
        }
        body.canonical-tpl-guides .header-kicker {
            font-size: clamp(.58rem, .85vw, .76rem);
            line-height: 1.05;
            letter-spacing: .34em;
            font-weight: 800;
        }
        body.canonical-tpl-guides .header-title-wrap h1,
body.canonical-tpl-guides .mobile-title-text {
            font-size: clamp(1.55rem, 3.35vw, 2.95rem);
            line-height: 1.04;
            font-weight: 800;
            letter-spacing: -.035em;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-guides .header-title-wrap p,
body.canonical-tpl-guides .mobile-subtitle-text {
            font-size: clamp(.72rem, 1.25vw, 1rem);
            line-height: 1.16;
            font-weight: 700;
            letter-spacing: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-guides .header-hero-content.mobile-header-row {
                grid-template-columns: 72px minmax(0,1fr) 72px;
                gap: .28rem;
                min-height: 108px;
            }
            body.canonical-tpl-guides .mobile-weather-box {
                width: 4.2rem;
                height: 3.8rem;
                min-width: 4.2rem;
                padding: .22rem;
            }
            body.canonical-tpl-guides .mobile-weather-location,
body.canonical-tpl-guides .mobile-weather-condition { display: none; }
            body.canonical-tpl-guides .mobile-weather-icon {
                width: 1.3rem;
                min-width: 1.3rem;
                font-size: 1rem;
            }
            body.canonical-tpl-guides .mobile-weather-temp {
                font-size: .68rem;
                max-width: 2.7rem;
            }
            body.canonical-tpl-guides .weather-link-row { flex-direction: row; gap: .12rem; margin-top: .1rem; }
            body.canonical-tpl-guides .weather-source-link { font-size: .42rem; line-height: .5rem; }
            body.canonical-tpl-guides .header-kicker { display: none; }
            body.canonical-tpl-guides .header-title-wrap h1,
body.canonical-tpl-guides .mobile-title-text {
                font-size: clamp(.74rem, 3.6vw, 1.05rem);
                line-height: 1.02;
            }
            body.canonical-tpl-guides .mobile-subtitle-text { display: none; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-guides .header-hero-content.mobile-header-row {
                grid-template-columns: 64px minmax(0,1fr) 64px;
                min-height: 100px;
            }
            body.canonical-tpl-guides .mobile-weather-box {
                width: 3.95rem;
                height: 3.4rem;
                min-width: 3.95rem;
            }
            body.canonical-tpl-guides .header-title-wrap h1,
body.canonical-tpl-guides .mobile-title-text { font-size: clamp(.66rem, 3.25vw, .88rem); }
        }


        body.canonical-tpl-guides .map-page-shell { min-height: 100vh; }
        body.canonical-tpl-guides .category-map { height: clamp(360px, 62vh, 660px); width: 100%; overflow: hidden; }
        body.canonical-tpl-guides .map-popup-title { font-weight: 800; margin-bottom: .25rem; }
        body.canonical-tpl-guides .map-popup-meta { font-size: .82rem; line-height: 1.25rem; }
        body.canonical-tpl-guides .map-popup-actions { display:flex; gap:.45rem; flex-wrap:wrap; margin-top:.55rem; }
        body.canonical-tpl-guides .map-popup-actions a { font-weight:700; font-size:.82rem; }
        body.canonical-tpl-guides .map-count-pill { display:inline-flex; align-items:center; padding:.35rem .75rem; font-size:.8rem; font-weight:800; }
        body.canonical-tpl-guides .missing-list { font-size:.82rem; line-height:1.35rem; }
        @media (max-width: 767px) {
            body.canonical-tpl-guides,
body.canonical-tpl-guides { overflow:auto; }
            body.canonical-tpl-guides #app { height:auto; min-height:100vh; overflow:visible; }
            body.canonical-tpl-guides .category-map { height: 390px; }
            body.canonical-tpl-guides .map-main { padding: .85rem; }
        }


        body.canonical-tpl-guides .category-tab-logo { width: 1.85rem; height: 1.85rem; object-fit: contain; flex-shrink: 0; }
        body.canonical-tpl-guides .category-card-logo { width: 5.25rem; height: 5.25rem; object-fit: contain; }
        body.canonical-tpl-guides .category-card-logo-wrap { position: relative; overflow: hidden; }
        body.canonical-tpl-guides .category-intro-content { display: flex; align-items: center; gap: 1.5rem; }
        body.canonical-tpl-guides .category-intro-logo-wrap { flex: 0 0 auto; width: 7.75rem; height: 7.75rem; display: flex; align-items: center; justify-content: center; }
        body.canonical-tpl-guides .category-intro-logo { width: 6.65rem; height: 6.65rem; object-fit: contain; }
        @media (max-width: 767px) {
            body.canonical-tpl-guides .category-tab-logo { width: 1.5rem; height: 1.5rem; }
            body.canonical-tpl-guides .category-card-logo { width: 4.45rem; height: 4.45rem; }
            body.canonical-tpl-guides .category-intro-content { flex-direction: column; align-items: flex-start; gap: 1rem; }
            body.canonical-tpl-guides .category-intro-logo-wrap { width: 6.25rem; height: 6.25rem; }
            body.canonical-tpl-guides .category-intro-logo { width: 5.4rem; height: 5.4rem; }
        }

        
/* Header logo visibility hotfix — 2026-07-28
   The page-title panel previously used a dark translucent background plus
   backdrop blur, which obscured the centered 30A banner logo. */
@media (min-width: 768px) {
  body.canonical-tpl-guides .header-title-wrap {
    padding: .28rem .55rem;
  }
}


/* Amazon-ready beach planning guides - 2026-08-01 */
body.canonical-tpl-guides .guide-page-display-title{font-size:clamp(2rem,5vw,4rem);line-height:1.05;margin:.8rem 0}
body.canonical-tpl-guides .guide-page-deck{font-size:1.15rem;line-height:1.65;max-width:780px}
body.canonical-tpl-guides .editorial-guide-section,
body.canonical-tpl-guides .guide-overview-section,
body.canonical-tpl-guides .local-planning-box,
body.canonical-tpl-guides .related-guide-box{padding:1.5rem;margin:1.5rem 0;overflow:hidden}
body.canonical-tpl-guides .editorial-guide-section p,
body.canonical-tpl-guides .guide-overview-section p,
body.canonical-tpl-guides .official-resource-box p,
body.canonical-tpl-guides .amazon-disclosure-box p{line-height:1.78;font-size:1.02rem}
body.canonical-tpl-guides .guide-overview-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.36fr);gap:1.4rem;align-items:start}
body.canonical-tpl-guides .product-guide-section{margin-top:2rem}
body.canonical-tpl-guides .product-guide-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:1rem}
body.canonical-tpl-guides .product-guide-card{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;overflow:hidden}
body.canonical-tpl-guides .product-guide-card p{line-height:1.62;margin:.1rem 0}
body.canonical-tpl-guides .product-guide-title{font-size:1.18rem;margin:.25rem 0}
body.canonical-tpl-guides .product-guide-card .amazon-paid-link{margin-top:auto}
body.canonical-tpl-guides .amazon-disclosure-box,
body.canonical-tpl-guides .official-resource-box{position:relative;padding:1.25rem 1.4rem;margin:1.25rem 0;overflow:hidden}
body.canonical-tpl-guides .amazon-disclosure-box::before,
body.canonical-tpl-guides .official-resource-box::before{position:absolute;top:0;left:0;right:0;height:4px}
body.canonical-tpl-guides .official-resource-box ul{margin:.8rem 0 0;padding-left:1.25rem}
body.canonical-tpl-guides .official-resource-box li{margin:.55rem 0;line-height:1.55}
body.canonical-tpl-guides .official-resource-box a,
body.canonical-tpl-guides .amazon-disclosure-box a{font-weight:800}
body.canonical-tpl-guides .link-button-row,
body.canonical-tpl-guides .guide-index-card-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}
body.canonical-tpl-guides .guide-index-heading{margin:1.75rem 0 .8rem}
body.canonical-tpl-guides .guide-index-heading h2{font-size:1.75rem;margin:.7rem 0 .3rem}
body.canonical-tpl-guides .guide-index-card-title{margin:.8rem 0 .35rem;font-size:1.18rem}
body.canonical-tpl-guides .guide-index-card-description{line-height:1.6}
body.canonical-tpl-guides .affiliate-guide-grid{margin-bottom:1.25rem}
body.canonical-tpl-guides .affiliate-required-statement{padding:1rem 1.15rem;margin:1rem 0 1.35rem;font-size:1.08rem}
@media(max-width:900px){body.canonical-tpl-guides .guide-overview-section{grid-template-columns:1fr}body.canonical-tpl-guides .guide-overview-section .hero-checklist{min-width:0}}
@media print{body.canonical-tpl-guides .amazon-disclosure-box,
body.canonical-tpl-guides .product-guide-card .amazon-paid-link,
body.canonical-tpl-guides .official-resource-box,
body.canonical-tpl-guides .local-planning-box,
body.canonical-tpl-guides .related-guide-box{display:none}}

/* Site-audit card color consistency */
body.canonical-tpl-guides .guide-grid>.card{position:relative;overflow:hidden}
body.canonical-tpl-guides .guide-grid>.card::before{position:absolute;left:0;right:0;top:0;height:5px}


/* tpl-map.css: scoped compatibility layout only */

        body.canonical-tpl-map [v-cloak] { display: none; }
        body.canonical-tpl-map .skip-link { position:absolute; left:-999px; top:.5rem; z-index:1000; padding:.65rem 1rem; font-weight:700; }
        body.canonical-tpl-map .skip-link:focus { left:.5rem; }
        body.canonical-tpl-map .custom-scrollbar::-webkit-scrollbar { width:8px; }
        body.canonical-tpl-map .site-top { flex:0 0 auto; z-index:50; }
        body.canonical-tpl-map .results-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; }
        @media (max-width: 767px) {
            body.canonical-tpl-map,
body.canonical-tpl-map { min-height:100%; overflow:auto; }
            body.canonical-tpl-map #app { height:100dvh; min-height:100dvh; overflow:hidden; }
            body.canonical-tpl-map .mobile-header { padding:.45rem .45rem; }
            body.canonical-tpl-map .mobile-header-row { flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:.35rem; }
            body.canonical-tpl-map .mobile-header-row > * { min-width:0; }
            body.canonical-tpl-map .mobile-left-logo { order:1; width:3rem; height:3rem; min-width:3rem; }
            body.canonical-tpl-map .mobile-center-title { order:2; flex:1 1 auto; min-width:0; max-width:none; padding:0 .15rem; }
            body.canonical-tpl-map .mobile-main-logo { width:3.35rem; height:3.35rem; margin-bottom:.1rem; padding:.2rem; }
            body.canonical-tpl-map .mobile-title-text { font-size:clamp(.92rem,4vw,1.12rem); line-height:1.05; margin-bottom:.05rem; }
            body.canonical-tpl-map .mobile-subtitle-text { font-size:.58rem; line-height:.72rem; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
            body.canonical-tpl-map .mobile-right-pack { order:3; flex-direction:row; gap:.25rem; min-width:6.1rem; }
            body.canonical-tpl-map .mobile-weather-box { width:2.9rem; height:3rem; min-width:2.9rem; padding:.2rem; }
            body.canonical-tpl-map .mobile-weather-location,
body.canonical-tpl-map .mobile-weather-condition { display:none; }
            body.canonical-tpl-map .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-map .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-map .mobile-right-logo { width:2.9rem; height:3rem; min-width:2.9rem; padding:.15rem; }
            body.canonical-tpl-map .mobile-controls-area { padding:.35rem .45rem .45rem; }
            body.canonical-tpl-map .mobile-controls-inner { gap:.35rem; }
            body.canonical-tpl-map .mobile-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:.4rem; width:100%; padding-bottom:.15rem; }
            body.canonical-tpl-map .mobile-tabs::-webkit-scrollbar { display:none; }
            body.canonical-tpl-map .mobile-tab { flex:0 0 auto; width:auto; min-width:0; justify-content:center; white-space:nowrap; padding:.5rem .85rem; font-size:.72rem; line-height:1; gap:.3rem; min-height:2.3rem; }
            body.canonical-tpl-map .mobile-tab span { font-size:.72rem; }
            body.canonical-tpl-map .mobile-search-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:.35rem; align-items:end; padding:.45rem; }
            body.canonical-tpl-map .mobile-search-panel label { font-size:.62rem; line-height:.75rem; margin-bottom:.1rem; }
            body.canonical-tpl-map .mobile-search-panel input,
body.canonical-tpl-map .mobile-search-panel select { min-height:2rem; padding:.35rem .45rem; font-size:.72rem; }
            body.canonical-tpl-map .mobile-reset { width:auto; white-space:nowrap; padding:.43rem .55rem; min-height:2rem; font-size:.68rem; }
            body.canonical-tpl-map .mobile-main { padding:.65rem .65rem 1rem; }
            body.canonical-tpl-map .mobile-grid { gap:.85rem; }
            body.canonical-tpl-map .mobile-card-image { height:10.25rem; }
            body.canonical-tpl-map .florida-logo-box.mobile-right-logo { width:3.15rem; height:3.15rem; min-width:3.15rem; padding:.2rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-map .mobile-left-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-map .mobile-main-logo { width:2.95rem; height:2.95rem; }
            body.canonical-tpl-map .mobile-right-pack { min-width:5.55rem; }
            body.canonical-tpl-map .mobile-weather-box,
body.canonical-tpl-map .mobile-right-logo { width:2.65rem; height:2.65rem; min-width:2.65rem; }
            body.canonical-tpl-map .mobile-subtitle-text { display:none; }
            body.canonical-tpl-map .mobile-tab { font-size:.68rem; padding:.45rem .7rem; }
            body.canonical-tpl-map .mobile-tab span { display:inline; }
            body.canonical-tpl-map .mobile-search-panel { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
            body.canonical-tpl-map .mobile-reset { grid-column:1/-1; width:100%; }
            body.canonical-tpl-map .florida-logo-box.mobile-right-logo { width:2.9rem; height:2.9rem; min-width:2.9rem; }
        }


        /* Current responsive header format */
        body.canonical-tpl-map .header-hero {
            position: relative;
            overflow: hidden;
            isolation: isolate;
        }
        body.canonical-tpl-map .header-banner-media {
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: .2rem 0;
            max-height: 100%;
        }
        body.canonical-tpl-map .header-banner-media img {
            width: 100%;
            height: 100%;
            max-height: 220px;
            object-fit: contain;
            object-position: center;
        }
        body.canonical-tpl-map .header-hero::after {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
        }
        body.canonical-tpl-map .header-hero-content {
            position: relative;
            z-index: 2;
            display: grid;
            grid-template-columns: minmax(132px, 160px) minmax(0, 1fr) minmax(112px, 148px);
            align-items: center;
            gap: 1rem;
            min-height: 210px;
        }
        body.canonical-tpl-map .weather-source-link {
            font-size: .62rem;
            line-height: .72rem;
            font-weight: 900;
            white-space: nowrap;
        }
        body.canonical-tpl-map .weather-link-row {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: .36rem;
            flex-wrap: nowrap;
            margin-top: .2rem;
        }
        body.canonical-tpl-map .header-title-wrap {
            max-width: min(960px, 100%);
            min-width: 0;
            margin: 0 auto;
            padding: .18rem .5rem;
            text-align: center;
        }
        body.canonical-tpl-map .header-kicker,
body.canonical-tpl-map .header-title-wrap h1,
body.canonical-tpl-map .header-title-wrap p {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-map .header-kicker {
            font-size: .72rem;
            line-height: 1;
            letter-spacing: .28em;
            text-transform: uppercase;
            font-weight: 900;
            margin-bottom: .38rem;
        }
        body.canonical-tpl-map .header-title-wrap h1 {
            font-size: clamp(1.65rem, 4vw, 3.1rem);
            line-height: .98;
            font-weight: 900;
            letter-spacing: -.02em;
            margin-bottom: .22rem;
        }
        body.canonical-tpl-map .header-title-wrap p {
            font-size: clamp(.78rem, 1.5vw, 1.08rem);
            line-height: 1.18;
            font-weight: 800;
        }
        body.canonical-tpl-map .header-florida-wrap {
            justify-self: end;
            padding: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-map .header-hero { padding-top: .45rem; padding-bottom: .45rem; }
            body.canonical-tpl-map .header-hero-content.mobile-header-row {
                grid-template-columns: 78px minmax(0, 1fr) 78px;
                align-items: center;
                gap: .35rem;
                min-height: 112px;
            }
            body.canonical-tpl-map .header-banner-media img { max-height: 126px; }
            body.canonical-tpl-map .mobile-center-title {
                order: 2;
                width: 100%;
                max-width: none;
                min-width: 0;
                padding: 0 .05rem;
            }
            body.canonical-tpl-map .mobile-weather-box {
                order: 1;
                width: 3.15rem;
                height: 4rem;
                min-width: 3.15rem;
                padding: .2rem;
            }
            body.canonical-tpl-map .mobile-right-logo {
                order: 3;
                width: 3.15rem;
                height: 3.15rem;
                min-width: 3.15rem;
                padding: 0;
            }
            body.canonical-tpl-map .header-title-wrap {
                padding: .05rem .02rem;
            }
            body.canonical-tpl-map .header-kicker {
                display: none;
            }
            body.canonical-tpl-map .mobile-title-text {
                font-size: clamp(.76rem, 3.25vw, 1rem);
                line-height: .98;
                margin-bottom: 0;
                font-weight: 900;
                letter-spacing: -.03em;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            body.canonical-tpl-map .mobile-subtitle-text {
                display: none;
            }
            body.canonical-tpl-map .mobile-weather-location,
body.canonical-tpl-map .mobile-weather-condition { display:none; }
            body.canonical-tpl-map .mobile-weather-icon { font-size:1rem; line-height:1rem; }
            body.canonical-tpl-map .mobile-weather-temp { font-size:.7rem; line-height:.8rem; }
            body.canonical-tpl-map .weather-link-row { flex-direction: column; gap: .02rem; margin-top: .08rem; }
            body.canonical-tpl-map .weather-source-link { font-size: .48rem; line-height: .58rem; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-map .header-hero-content.mobile-header-row {
                grid-template-columns: 66px minmax(0, 1fr) 66px;
                min-height: 104px;
            }
            body.canonical-tpl-map .mobile-weather-box { width: 2.8rem; height: 3.55rem; min-width: 2.8rem; }
            body.canonical-tpl-map .mobile-right-logo { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; }
            body.canonical-tpl-map .mobile-title-text { font-size: clamp(.7rem, 3.05vw, .88rem); }
        }


        /* Header repair patch: clean text and stable weather widget */
        body.canonical-tpl-map .header-hero-content {
            grid-template-columns: minmax(118px, 150px) minmax(0, 1fr) minmax(96px, 132px);
            gap: clamp(.55rem, 1.6vw, 1rem);
        }
        body.canonical-tpl-map .header-side-widget {
            overflow: hidden;
            position: relative;
            z-index: 3;
        }
        body.canonical-tpl-map .weather-current-row {
            width: 100%;
            min-width: 0;
            flex-wrap: nowrap;
        }
        body.canonical-tpl-map .mobile-weather-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.9rem;
            min-width: 1.9rem;
            font-size: 1.45rem;
            line-height: 1;
        }
        body.canonical-tpl-map .mobile-weather-temp {
            font-size: .95rem;
            line-height: 1.05;
            white-space: nowrap;
            max-width: 4.8rem;
            overflow: hidden;
            text-overflow: clip;
        }
        body.canonical-tpl-map .mobile-weather-condition {
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-map .weather-link-row {
            max-width: 100%;
            gap: .28rem;
        }
        body.canonical-tpl-map .weather-source-link {
            font-size: .58rem;
            line-height: .7rem;
        }
        body.canonical-tpl-map .header-title-wrap {
            max-width: min(900px, 100%);
            padding: .4rem .9rem;
        }
        body.canonical-tpl-map .header-kicker {
            font-size: clamp(.58rem, .85vw, .76rem);
            line-height: 1.05;
            letter-spacing: .34em;
            font-weight: 800;
        }
        body.canonical-tpl-map .header-title-wrap h1,
body.canonical-tpl-map .mobile-title-text {
            font-size: clamp(1.55rem, 3.35vw, 2.95rem);
            line-height: 1.04;
            font-weight: 800;
            letter-spacing: -.035em;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        body.canonical-tpl-map .header-title-wrap p,
body.canonical-tpl-map .mobile-subtitle-text {
            font-size: clamp(.72rem, 1.25vw, 1rem);
            line-height: 1.16;
            font-weight: 700;
            letter-spacing: 0;
        }
        @media (max-width: 767px) {
            body.canonical-tpl-map .header-hero-content.mobile-header-row {
                grid-template-columns: 72px minmax(0,1fr) 72px;
                gap: .28rem;
                min-height: 108px;
            }
            body.canonical-tpl-map .mobile-weather-box {
                width: 4.2rem;
                height: 3.8rem;
                min-width: 4.2rem;
                padding: .22rem;
            }
            body.canonical-tpl-map .mobile-weather-location,
body.canonical-tpl-map .mobile-weather-condition { display: none; }
            body.canonical-tpl-map .mobile-weather-icon {
                width: 1.3rem;
                min-width: 1.3rem;
                font-size: 1rem;
            }
            body.canonical-tpl-map .mobile-weather-temp {
                font-size: .68rem;
                max-width: 2.7rem;
            }
            body.canonical-tpl-map .weather-link-row { flex-direction: row; gap: .12rem; margin-top: .1rem; }
            body.canonical-tpl-map .weather-source-link { font-size: .42rem; line-height: .5rem; }
            body.canonical-tpl-map .header-kicker { display: none; }
            body.canonical-tpl-map .header-title-wrap h1,
body.canonical-tpl-map .mobile-title-text {
                font-size: clamp(.74rem, 3.6vw, 1.05rem);
                line-height: 1.02;
            }
            body.canonical-tpl-map .mobile-subtitle-text { display: none; }
        }
        @media (max-width: 420px) {
            body.canonical-tpl-map .header-hero-content.mobile-header-row {
                grid-template-columns: 64px minmax(0,1fr) 64px;
                min-height: 100px;
            }
            body.canonical-tpl-map .mobile-weather-box {
                width: 3.95rem;
                height: 3.4rem;
                min-width: 3.95rem;
            }
            body.canonical-tpl-map .header-title-wrap h1,
body.canonical-tpl-map .mobile-title-text { font-size: clamp(.66rem, 3.25vw, .88rem); }
        }


        body.canonical-tpl-map .map-page-shell { min-height: 100vh; }
        body.canonical-tpl-map .category-map-grid { display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:1.25rem; }
        body.canonical-tpl-map .category-map-shell { position:relative; overflow:hidden; }
        body.canonical-tpl-map .category-map-shell::before { position:absolute; inset:0; pointer-events:none; }
        body.canonical-tpl-map .category-map-shell > * { position:relative; z-index:1; }
        body.canonical-tpl-map .category-map { height: clamp(270px, 34vh, 360px); width: 100%; overflow: hidden; }
        body.canonical-tpl-map .map-popup-title { font-weight: 800; margin-bottom: .25rem; }
        body.canonical-tpl-map .map-popup-meta { font-size: .82rem; line-height: 1.25rem; }
        body.canonical-tpl-map .map-popup-actions { display:flex; gap:.45rem; flex-wrap:wrap; margin-top:.55rem; }
        body.canonical-tpl-map .map-popup-actions a { font-weight:700; font-size:.82rem; }
        body.canonical-tpl-map .map-count-pill { display:inline-flex; align-items:center; padding:.35rem .75rem; font-size:.8rem; font-weight:800; }
        body.canonical-tpl-map .missing-list { font-size:.82rem; line-height:1.35rem; }
        @media (max-width: 767px) {
            body.canonical-tpl-map,
body.canonical-tpl-map { overflow:auto; }
            body.canonical-tpl-map #app { height:auto; min-height:100vh; overflow:visible; }
            body.canonical-tpl-map .category-map-grid { grid-template-columns:1fr; gap:1rem; }
            body.canonical-tpl-map .category-map { height: 320px; }
            body.canonical-tpl-map .map-main { padding: .85rem; }
        }
        @media (min-width: 1024px) {
            body.canonical-tpl-map .category-map-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
        }


        body.canonical-tpl-map .category-tab-logo { width: 1.85rem; height: 1.85rem; object-fit: contain; flex-shrink: 0; }
        body.canonical-tpl-map .category-card-logo { width: 5.25rem; height: 5.25rem; object-fit: contain; }
        body.canonical-tpl-map .category-card-logo-wrap { position: relative; overflow: hidden; }
        body.canonical-tpl-map .category-intro-content { display: flex; align-items: center; gap: 1.5rem; }
        body.canonical-tpl-map .category-intro-logo-wrap { flex: 0 0 auto; width: 7.75rem; height: 7.75rem; display: flex; align-items: center; justify-content: center; }
        body.canonical-tpl-map .category-intro-logo { width: 6.65rem; height: 6.65rem; object-fit: contain; }
        @media (max-width: 767px) {
            body.canonical-tpl-map .category-tab-logo { width: 1.5rem; height: 1.5rem; }
            body.canonical-tpl-map .category-card-logo { width: 4.45rem; height: 4.45rem; }
            body.canonical-tpl-map .category-intro-content { flex-direction: column; align-items: flex-start; gap: 1rem; }
            body.canonical-tpl-map .category-intro-logo-wrap { width: 6.25rem; height: 6.25rem; }
            body.canonical-tpl-map .category-intro-logo { width: 5.4rem; height: 5.4rem; }
        }

    
        body.canonical-tpl-map .category-logo-picture { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 0; }
        @media (max-width: 640px) {
            body.canonical-tpl-map .category-logo-picture .category-tab-logo { width: 1.35rem; height: 1.35rem; }
            body.canonical-tpl-map .category-logo-picture .category-card-logo { width: 4rem; height: 4rem; }
            body.canonical-tpl-map .category-logo-picture .category-intro-logo { width: 3.9rem; height: 3.9rem; }
            body.canonical-tpl-map .category-intro-logo-wrap { width: 4.75rem; height: 4.75rem; }
            body.canonical-tpl-map .category-intro-content { gap: .9rem; align-items: flex-start; }
            body.canonical-tpl-map .guide-hero-logo,
body.canonical-tpl-map .guides-hero-logo,
body.canonical-tpl-map .category-guides-logo { max-width: 4.75rem; max-height: 4.75rem; }
        }
        @media (max-width: 430px) {
            body.canonical-tpl-map .category-intro-content { flex-direction: row; }
            body.canonical-tpl-map .category-intro-copy h1,
body.canonical-tpl-map .category-intro-copy h2 { font-size: 1.35rem; line-height: 1.15; }
            body.canonical-tpl-map .category-intro-copy p { font-size: .9rem; }
        }

    
        body.canonical-tpl-map .affiliate-disclosure-note { font-size: .78rem; line-height: 1.45; }
        body.canonical-tpl-map .affiliate-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 800; padding: .8rem 1.2rem; }
        @media print { body.canonical-tpl-map .affiliate-cta-card,
body.canonical-tpl-map .affiliate-cta-button { display: none; } }


        /* Travel & Maps additions */
        body.canonical-tpl-map .travel-page-kicker { letter-spacing: .22em; text-transform: uppercase; font-weight: 900; font-size: .75rem; }
        body.canonical-tpl-map .travel-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 1rem; align-items: stretch; }
        body.canonical-tpl-map .travel-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
        body.canonical-tpl-map .travel-stat { padding: .95rem; }
        body.canonical-tpl-map .travel-stat strong { display: block; font-size: 1.4rem; line-height: 1; }
        body.canonical-tpl-map .travel-stat span { display: block; font-size: .78rem; font-weight: 800; margin-top: .25rem; }
        body.canonical-tpl-map .booking-banner {
            position: relative;
            overflow: hidden;
        }
        body.canonical-tpl-map .booking-banner::after {
            position: absolute;
            right: 1.2rem;
            bottom: -1.4rem;
            font-size: 8rem;
            line-height: 1;
            font-weight: 900;
        }
        body.canonical-tpl-map .booking-link-card {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            min-height: 170px;
            padding: 1rem;
        }
        body.canonical-tpl-map .booking-link-card h3 { font-weight: 900; font-size: 1.08rem; margin-bottom: .35rem; }
        body.canonical-tpl-map .booking-link-card p { font-size: .9rem; line-height: 1.45; margin-bottom: .8rem; }
        body.canonical-tpl-map .booking-cta,
body.canonical-tpl-map .travel-cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: .4rem;
            padding: .72rem .95rem;
            font-weight: 900;
        }
        body.canonical-tpl-map #airport-route-map { height: 520px; overflow: hidden; }
        body.canonical-tpl-map .airport-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .85rem; }
        body.canonical-tpl-map .airport-card {
            padding: 1rem;
        }
        body.canonical-tpl-map .airport-code { display: inline-flex; padding: .2rem .48rem; font-weight: 900; letter-spacing: .05em; font-size: .8rem; margin-bottom: .45rem; }
        body.canonical-tpl-map .airport-card h3 { font-weight: 900; font-size: 1rem; line-height: 1.25; margin-bottom: .4rem; }
        body.canonical-tpl-map .airport-card p { font-size: .86rem; line-height: 1.45; }
        body.canonical-tpl-map .airport-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
        body.canonical-tpl-map .airport-actions a { font-size: .78rem; font-weight: 900; padding: .42rem .55rem; }
        body.canonical-tpl-map .travel-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .85rem; }
        body.canonical-tpl-map .travel-info-card { padding: 1rem; }
        body.canonical-tpl-map .travel-info-card h3 { font-weight: 900; margin-bottom: .45rem; }
        body.canonical-tpl-map .travel-info-card ul { margin: .35rem 0 0 1.05rem; line-height: 1.55; }
        body.canonical-tpl-map .affiliate-note { font-size: .82rem; line-height: 1.45; }
        body.canonical-tpl-map .travel-map-popup a { font-weight: 900; }
        @media (max-width: 1100px) {
            body.canonical-tpl-map .travel-hero-grid,
body.canonical-tpl-map .travel-info-grid { grid-template-columns: 1fr; }
            body.canonical-tpl-map .airport-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
            body.canonical-tpl-map #airport-route-map { height: 440px; }
        }
        @media (max-width: 640px) {
            body.canonical-tpl-map .travel-stat-grid,
body.canonical-tpl-map .airport-grid { grid-template-columns: 1fr; }
            body.canonical-tpl-map #airport-route-map { height: 360px; }
            body.canonical-tpl-map .booking-banner::after { font-size: 5rem; }
        }

    

                /* v20 premium surface system - one consistent surface + hairline border + accent bar, color used sparingly */
        body.canonical-tpl-map {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --hairline-strong: rgba(21,48,61,.22);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --shadow-lift: 0 2px 4px rgba(21,48,61,.06), 0 22px 40px rgba(21,48,61,.13);
            --accent-1: #0077be;
            --accent-2: #20B2AA;
            --accent-3: #FF7F50;
            --accent-4: #C9A227;
            --glow-1: rgba(0,119,190,.16);
            --glow-2: rgba(32,178,170,.16);
            --glow-3: rgba(255,127,80,.16);
            --glow-4: rgba(201,162,39,.18);
        }
        body.canonical-tpl-map .glass-panel,
body.canonical-tpl-map .travel-card,
body.canonical-tpl-map .map-section-card,
body.canonical-tpl-map .booking-link-card,
body.canonical-tpl-map .airport-card,
body.canonical-tpl-map .travel-info-card,
body.canonical-tpl-map .affiliate-cta-card,
body.canonical-tpl-map .bg-white,
body.canonical-tpl-map .bg-white\/90,
body.canonical-tpl-map .bg-white\/95,
body.canonical-tpl-map .bg-white\/80,
body.canonical-tpl-map .bg-white\/70,
body.canonical-tpl-map .bg-white\/60,
body.canonical-tpl-map article.bg-white,
body.canonical-tpl-map section.bg-white,
body.canonical-tpl-map div.bg-white {
            position: relative;
        }
        body.canonical-tpl-map .glass-panel::before,
body.canonical-tpl-map .travel-card::before,
body.canonical-tpl-map .map-section-card::before,
body.canonical-tpl-map .booking-link-card::before,
body.canonical-tpl-map .airport-card::before,
body.canonical-tpl-map .travel-info-card::before,
body.canonical-tpl-map .rounded-2xl.bg-white::before,
body.canonical-tpl-map .rounded-3xl.bg-white::before,
body.canonical-tpl-map .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-map .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-map .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-map .rounded-3xl.bg-white\/95::before,
body.canonical-tpl-map .rounded-2xl.bg-white\/80::before,
body.canonical-tpl-map .rounded-3xl.bg-white\/80::before,
body.canonical-tpl-map .rounded-2xl.bg-white\/70::before,
body.canonical-tpl-map .rounded-3xl.bg-white\/70::before,
body.canonical-tpl-map .rounded-2xl.bg-white\/60::before,
body.canonical-tpl-map .rounded-3xl.bg-white\/60::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        body.canonical-tpl-map .category-map-shell.map-panel-food::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-map .category-map-shell.map-panel-lodging::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-map .category-map-shell.map-panel-attractions::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-map .category-map-shell.map-panel-shopping::before { position:absolute; top:0; left:0; right:0; height:4px; }
        body.canonical-tpl-map .category-map-shell { position:relative; }
        @media print {
            body.canonical-tpl-map .glass-panel::before,
body.canonical-tpl-map .travel-card::before,
body.canonical-tpl-map .map-section-card::before,
body.canonical-tpl-map .bg-white::before,
body.canonical-tpl-map .bg-white\/90::before,
body.canonical-tpl-map .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }


        
/* Header logo visibility hotfix — 2026-07-28
   The page-title panel previously used a dark translucent background plus
   backdrop blur, which obscured the centered 30A banner logo. */
@media (min-width: 768px) {
  body.canonical-tpl-map .header-title-wrap {
    padding: .28rem .55rem;
  }
}


/* tpl-static.css: scoped compatibility layout only */


/* 30A beach theme polish: softer cards, theme fades, and mobile logo fit */
body.canonical-tpl-static {
  --beach-ocean-rgb: 0, 119, 190;
  --beach-teal-rgb: 0, 194, 203;
  --beach-sand-rgb: 255, 224, 130;
  --beach-coral-rgb: 255, 138, 101;
  --beach-card-alpha: .76;
}
body.canonical-tpl-static::before {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
}
body.canonical-tpl-static .mobile-tab {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
body.canonical-tpl-static .mobile-tab::after {
  position: absolute;
  inset: auto -18% -55% auto;
  width: 60%;
  height: 120%;
  pointer-events: none;
  z-index: -1;
}
body.canonical-tpl-static .category-logo-picture {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  overflow: hidden;
}
body.canonical-tpl-static .category-tab-logo {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
@media (max-width: 900px) {
  body.canonical-tpl-static .mobile-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(6.1rem, 1fr));
    gap: .34rem;
    width: 100%;
    align-items: stretch;
    overflow: visible;
  }
  body.canonical-tpl-static .mobile-tab {
    min-width: 0;
    width: 100%;
    padding: .42rem .22rem;
    gap: .18rem;
    min-height: 2.75rem;
    white-space: normal;
    text-align: center;
    line-height: 1.05;
    font-size: clamp(.56rem, 1.65vw, .74rem);
    justify-content: center;
    align-items: center;
  }
  body.canonical-tpl-static .mobile-tab .category-logo-picture {
    width: 1.18rem;
    height: 1.18rem;
    min-width: 1.18rem;
    flex-basis: 1.18rem;
  }
  body.canonical-tpl-static .mobile-tab .category-tab-logo {
    width: 1.08rem;
    height: 1.08rem;
    max-width: 1.08rem;
    max-height: 1.08rem;
  }
  body.canonical-tpl-static .mobile-tab span[aria-hidden="true"] {
    font-size: .85rem;
    line-height: 1;
    flex: 0 0 auto;
  }
}
@media (max-width: 520px) {
  body.canonical-tpl-static .mobile-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .26rem;
  }
  body.canonical-tpl-static .mobile-tab {
    flex-direction: column;
    min-height: 3.1rem;
    padding: .34rem .12rem;
    gap: .08rem;
    font-size: clamp(.50rem, 2.25vw, .64rem);
  }
  body.canonical-tpl-static .mobile-tab .category-logo-picture {
    width: 1.28rem;
    height: 1.28rem;
    min-width: 1.28rem;
    flex-basis: auto;
  }
  body.canonical-tpl-static .mobile-tab .category-tab-logo {
    width: 1.18rem;
    height: 1.18rem;
    max-width: 1.18rem;
    max-height: 1.18rem;
  }
}
@media (max-width: 380px) {
  body.canonical-tpl-static .mobile-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.canonical-tpl-static .mobile-tab {
    min-height: 3rem;
    font-size: clamp(.48rem, 2.45vw, .60rem);
  }
}


        body.canonical-tpl-static {
            --ink: #15303D;
            --ink-soft: #4B6270;
            --hairline: rgba(21,48,61,.14);
            --surface-glass: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,251,242,.68));
            --shadow-soft: 0 1px 2px rgba(21,48,61,.05), 0 14px 30px rgba(21,48,61,.09);
            --accent-1: #0077be;
        }
        /* v20 premium surface system - one consistent surface + hairline border + accent bar */
        body.canonical-tpl-static .glass,
body.canonical-tpl-static .bg-white,
body.canonical-tpl-static .bg-white\/90,
body.canonical-tpl-static .bg-white\/95,
body.canonical-tpl-static .bg-white\/80,
body.canonical-tpl-static .bg-white\/70,
body.canonical-tpl-static .bg-white\/60,
body.canonical-tpl-static article.bg-white,
body.canonical-tpl-static section.bg-white,
body.canonical-tpl-static div.bg-white {
            position: relative;
        }
        body.canonical-tpl-static .rounded-2xl.glass::before,
body.canonical-tpl-static .rounded-3xl.glass::before,
body.canonical-tpl-static .rounded-2xl.bg-white::before,
body.canonical-tpl-static .rounded-3xl.bg-white::before,
body.canonical-tpl-static .rounded-2xl.bg-white\/90::before,
body.canonical-tpl-static .rounded-3xl.bg-white\/90::before,
body.canonical-tpl-static .rounded-2xl.bg-white\/95::before,
body.canonical-tpl-static .rounded-3xl.bg-white\/95::before {
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 4px;
            pointer-events: none;
        }
        @media print {
            body.canonical-tpl-static .glass::before,
body.canonical-tpl-static .bg-white::before,
body.canonical-tpl-static .bg-white\/90::before,
body.canonical-tpl-static .bg-white\/95::before { display: none; }
        }
        @supports not (backdrop-filter: blur(1px)) {
        }
    

/* Affiliate statement styling only; no layout reset. */
body.canonical-tpl-static .affiliate-required-statement{padding:1rem 1.15rem;margin:1rem 0 1.35rem;font-size:1.08rem}


/* tpl-town-hubs.css: scoped compatibility layout only */

/* 30A town and beach-access hubs — 2026-08-02 */
body.canonical-tpl-town-hubs{margin:0}body.canonical-tpl-town-hubs .hub-shell{min-height:100vh;display:flex;flex-direction:column}body.canonical-tpl-town-hubs .hub-header{max-width:1500px;margin:auto;padding:1rem;display:flex;align-items:center;gap:1rem}body.canonical-tpl-town-hubs .hub-header img{width:96px;height:74px;object-fit:contain}body.canonical-tpl-town-hubs .hub-header-copy{flex:1}body.canonical-tpl-town-hubs .hub-header h1{margin:.15rem 0;font-size:clamp(1.7rem,4vw,3.2rem);line-height:1.05}body.canonical-tpl-town-hubs .hub-header p{margin:.25rem 0}body.canonical-tpl-town-hubs .hub-nav{position:sticky;top:0;z-index:1000}body.canonical-tpl-town-hubs .hub-nav-inner{max-width:1500px;margin:auto;padding:.55rem;display:flex;gap:.45rem;justify-content:center;flex-wrap:wrap}body.canonical-tpl-town-hubs .hub-nav a{padding:.55rem .75rem;font-weight:700}body.canonical-tpl-town-hubs .hub-main{max-width:1500px;width:100%;margin:auto;padding:1.2rem 1rem 3rem;flex:1}body.canonical-tpl-town-hubs .hub-section,
body.canonical-tpl-town-hubs .hub-hero{padding:clamp(1.15rem,2vw,2rem);margin:1rem 0}body.canonical-tpl-town-hubs .hub-hero-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:1.2rem;align-items:center}body.canonical-tpl-town-hubs .hub-title{font-size:clamp(1.75rem,3vw,2.7rem);margin:.35rem 0}body.canonical-tpl-town-hubs .hub-kicker,
body.canonical-tpl-town-hubs .hub-badge{display:inline-flex;padding:.38rem .65rem;font-weight:800;font-size:.85rem}body.canonical-tpl-town-hubs .hub-copy p{line-height:1.82;font-size:1.03rem}body.canonical-tpl-town-hubs .quick-grid,
body.canonical-tpl-town-hubs .access-grid,
body.canonical-tpl-town-hubs .location-grid,
body.canonical-tpl-town-hubs .source-grid,
body.canonical-tpl-town-hubs .product-grid,
body.canonical-tpl-town-hubs .town-grid{display:grid;gap:1rem}body.canonical-tpl-town-hubs .quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body.canonical-tpl-town-hubs .access-grid,
body.canonical-tpl-town-hubs .source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.canonical-tpl-town-hubs .location-grid,
body.canonical-tpl-town-hubs .town-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body.canonical-tpl-town-hubs .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body.canonical-tpl-town-hubs .quick-card,
body.canonical-tpl-town-hubs .access-card,
body.canonical-tpl-town-hubs .location-card,
body.canonical-tpl-town-hubs .source-card,
body.canonical-tpl-town-hubs .product-card,
body.canonical-tpl-town-hubs .town-card{padding:1rem}body.canonical-tpl-town-hubs .access-card dl{display:grid;grid-template-columns:110px 1fr;gap:.35rem .65rem}body.canonical-tpl-town-hubs .access-card dt{font-weight:800}body.canonical-tpl-town-hubs .access-card dd{margin:0}body.canonical-tpl-town-hubs .location-card h3{font-size:1.04rem;margin:.55rem 0}body.canonical-tpl-town-hubs .location-card p{margin:.35rem 0}body.canonical-tpl-town-hubs .card-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.75rem}body.canonical-tpl-town-hubs .hub-btn{display:inline-flex;align-items:center;justify-content:center;padding:.58rem .8rem;font-weight:800}body.canonical-tpl-town-hubs .official-link{font-weight:800}body.canonical-tpl-town-hubs .town-map{height:560px;overflow:hidden}body.canonical-tpl-town-hubs .map-note,
body.canonical-tpl-town-hubs .disclosure{font-size:.9rem}body.canonical-tpl-town-hubs .category-pill{display:inline-flex;padding:.28rem .55rem;font-weight:800;font-size:.78rem}body.canonical-tpl-town-hubs .affiliate-box{padding:1.25rem}body.canonical-tpl-town-hubs .table-wrap{overflow-x:auto}body.canonical-tpl-town-hubs .access-table{width:100%;border-collapse:collapse;min-width:950px}body.canonical-tpl-town-hubs .access-table th{text-align:left;padding:.75rem}body.canonical-tpl-town-hubs .access-table td{padding:.75rem}body.canonical-tpl-town-hubs .hub-footer{padding:2rem 1rem}body.canonical-tpl-town-hubs .hub-footer-inner{max-width:1500px;margin:auto;display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap}body.canonical-tpl-town-hubs .map-legend{display:flex;gap:.8rem;flex-wrap:wrap;margin:.65rem 0}body.canonical-tpl-town-hubs .map-dot{width:.75rem;height:.75rem;display:inline-block}body.canonical-tpl-town-hubs .leaflet-popup-content a{font-weight:800}body.canonical-tpl-town-hubs .section-title{font-size:clamp(1.35rem,2vw,2rem);margin:.1rem 0 1rem}body.canonical-tpl-town-hubs .private-note{padding:1rem}@media(max-width:1000px){body.canonical-tpl-town-hubs .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.canonical-tpl-town-hubs .location-grid,
body.canonical-tpl-town-hubs .town-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.canonical-tpl-town-hubs .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){body.canonical-tpl-town-hubs .hub-hero-grid,
body.canonical-tpl-town-hubs .quick-grid,
body.canonical-tpl-town-hubs .access-grid,
body.canonical-tpl-town-hubs .location-grid,
body.canonical-tpl-town-hubs .source-grid,
body.canonical-tpl-town-hubs .town-grid{grid-template-columns:1fr}body.canonical-tpl-town-hubs .town-map{height:430px}body.canonical-tpl-town-hubs .hub-nav-inner{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}body.canonical-tpl-town-hubs .hub-nav a{white-space:nowrap}body.canonical-tpl-town-hubs .access-card dl{grid-template-columns:1fr}body.canonical-tpl-town-hubs .hub-header img{width:74px;height:58px}}@media print{body.canonical-tpl-town-hubs .hub-nav,
body.canonical-tpl-town-hubs .hub-footer,
body.canonical-tpl-town-hubs .no-print{display:none}body.canonical-tpl-town-hubs .town-map{height:300px}}

/* Site-audit card color consistency */
body.canonical-tpl-town-hubs .quick-grid>*,
body.canonical-tpl-town-hubs .access-grid>*,
body.canonical-tpl-town-hubs .location-grid>*,
body.canonical-tpl-town-hubs .source-grid>*,
body.canonical-tpl-town-hubs .product-grid>*,
body.canonical-tpl-town-hubs .town-grid>*{position:relative;overflow:hidden}
body.canonical-tpl-town-hubs .quick-grid>*::before,
body.canonical-tpl-town-hubs .access-grid>*::before,
body.canonical-tpl-town-hubs .location-grid>*::before,
body.canonical-tpl-town-hubs .source-grid>*::before,
body.canonical-tpl-town-hubs .product-grid>*::before,
body.canonical-tpl-town-hubs .town-grid>*::before{position:absolute;left:0;right:0;top:0;height:5px}


/* 30a-listing-enhancements.css: scoped compatibility layout only */
/* Florida 30A listing enhancement system — July 2026 */
body.canonical-30a-listing-enhancements .listing-value-shell{max-width:80rem;margin:0 auto;padding:0 1rem 3.5rem}body.canonical-30a-listing-enhancements .listing-value-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:1.25rem;align-items:stretch}body.canonical-30a-listing-enhancements .listing-value-card{padding:1.25rem}body.canonical-30a-listing-enhancements .listing-value-eyebrow{margin:0 0 .4rem;font-size:.72rem;line-height:1.2;font-weight:800;letter-spacing:.2em;text-transform:uppercase}body.canonical-30a-listing-enhancements .listing-value-title{margin:0;font-size:1.55rem;line-height:1.2;font-weight:800}body.canonical-30a-listing-enhancements .listing-value-copy{margin:.65rem 0 0;font-size:.95rem;line-height:1.65}body.canonical-30a-listing-enhancements .listing-map-wrap{margin-top:1rem;overflow:hidden}body.canonical-30a-listing-enhancements .listing-locator-svg{display:block;width:100%;height:auto;min-height:255px}body.canonical-30a-listing-enhancements .listing-map-legend{display:flex;flex-wrap:wrap;gap:.65rem;padding:.75rem 1rem;font-size:.72rem;font-weight:700}body.canonical-30a-listing-enhancements .listing-map-legend span{display:inline-flex;align-items:center;gap:.35rem}body.canonical-30a-listing-enhancements .legend-dot{width:.72rem;height:.72rem;display:inline-block}body.canonical-30a-listing-enhancements .listing-location-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}body.canonical-30a-listing-enhancements .listing-stat{padding:.85rem}body.canonical-30a-listing-enhancements .listing-stat-label{display:block;font-size:.66rem;line-height:1.3;font-weight:800;text-transform:uppercase;letter-spacing:.13em}body.canonical-30a-listing-enhancements .listing-stat-value{display:block;margin-top:.3rem;font-size:.94rem;line-height:1.35;font-weight:800}body.canonical-30a-listing-enhancements .listing-distance-note{margin:.8rem 0 0;font-size:.76rem;line-height:1.5}body.canonical-30a-listing-enhancements .listing-nearest-list{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}body.canonical-30a-listing-enhancements .listing-nearest-list li{display:flex;justify-content:space-between;gap:1rem;padding:.68rem .8rem;font-size:.86rem}body.canonical-30a-listing-enhancements .listing-record-list{display:grid;gap:.8rem;margin:1rem 0 0}body.canonical-30a-listing-enhancements .listing-record-row{padding:.8rem}body.canonical-30a-listing-enhancements .listing-record-row dt{font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}body.canonical-30a-listing-enhancements .listing-record-row dd{margin:.28rem 0 0;font-size:.9rem;line-height:1.5;font-weight:600}body.canonical-30a-listing-enhancements .listing-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem}body.canonical-30a-listing-enhancements .listing-action-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:2.9rem;padding:.7rem .75rem;font-size:.82rem;line-height:1.3;font-weight:800}body.canonical-30a-listing-enhancements .editorial-summary-shell{max-width:80rem;margin:0 auto;padding:0 1rem 3.5rem}body.canonical-30a-listing-enhancements .editorial-summary-card{padding:1.25rem}body.canonical-30a-listing-enhancements .editorial-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;margin-top:1rem}body.canonical-30a-listing-enhancements .editorial-summary-item{padding:1rem}body.canonical-30a-listing-enhancements .editorial-summary-item h3{margin:0;font-size:.94rem;line-height:1.35;font-weight:800}body.canonical-30a-listing-enhancements .editorial-summary-item p{margin:.5rem 0 0;font-size:.84rem;line-height:1.55}body.canonical-30a-listing-enhancements .practical-facts-shell{max-width:80rem;margin:0 auto;padding:0 1rem 3.5rem}body.canonical-30a-listing-enhancements .practical-facts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}body.canonical-30a-listing-enhancements .practical-fact{padding:.9rem}body.canonical-30a-listing-enhancements .practical-fact dt{font-size:.67rem;line-height:1.25;font-weight:800;letter-spacing:.12em;text-transform:uppercase}body.canonical-30a-listing-enhancements .practical-fact dd{margin:.3rem 0 0;font-size:.9rem;line-height:1.5;font-weight:650}body.canonical-30a-listing-enhancements .listing-value-unavailable{padding:2rem 1rem;text-align:center;font-size:.9rem}body.canonical-30a-listing-enhancements .svg-water-label{letter-spacing:.08em}body.canonical-30a-listing-enhancements .svg-compass{letter-spacing:.1em}body.canonical-30a-listing-enhancements .listing-editor-note{margin:.75rem 0 0;font-size:.73rem;line-height:1.45}@media(max-width:960px){body.canonical-30a-listing-enhancements .listing-value-grid{grid-template-columns:1fr}body.canonical-30a-listing-enhancements .editorial-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.canonical-30a-listing-enhancements .editorial-summary-item:last-child{grid-column:1/-1}}@media(max-width:640px){body.canonical-30a-listing-enhancements .listing-value-shell,
body.canonical-30a-listing-enhancements .editorial-summary-shell,
body.canonical-30a-listing-enhancements .practical-facts-shell{padding-left:.75rem;padding-right:.75rem;padding-bottom:2.5rem}body.canonical-30a-listing-enhancements .listing-value-card,
body.canonical-30a-listing-enhancements .editorial-summary-card{padding:1rem}body.canonical-30a-listing-enhancements .listing-location-stats,
body.canonical-30a-listing-enhancements .practical-facts-grid{grid-template-columns:1fr}body.canonical-30a-listing-enhancements .editorial-summary-grid{grid-template-columns:1fr}body.canonical-30a-listing-enhancements .editorial-summary-item:last-child{grid-column:auto}body.canonical-30a-listing-enhancements .listing-action-grid{grid-template-columns:1fr}body.canonical-30a-listing-enhancements .listing-locator-svg{min-height:230px}body.canonical-30a-listing-enhancements .listing-value-title{font-size:1.32rem}}@media print{body.canonical-30a-listing-enhancements .listing-action-grid{display:none}}


/* Migrated inline page layout: guides/30a-beach-vacation-packing-list.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-abc2e43a5e {
        margin: 0;
    }
    body.canonical-page-abc2e43a5e .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-abc2e43a5e .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-abc2e43a5e .guide-content-inner > .hero,
body.canonical-page-abc2e43a5e .guide-content-inner > .glass,
body.canonical-page-abc2e43a5e .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-abc2e43a5e .site-top,
body.canonical-page-abc2e43a5e .skip-link,
body.canonical-page-abc2e43a5e footer,
body.canonical-page-abc2e43a5e .no-print { display: none; }
        body.canonical-page-abc2e43a5e .guide-content-shell { overflow: visible; }
        body.canonical-page-abc2e43a5e .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-family-beach-gear-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-a19f1cdab4 {
        margin: 0;
    }
    body.canonical-page-a19f1cdab4 .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-a19f1cdab4 .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-a19f1cdab4 .guide-content-inner > .hero,
body.canonical-page-a19f1cdab4 .guide-content-inner > .glass,
body.canonical-page-a19f1cdab4 .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-a19f1cdab4 .site-top,
body.canonical-page-a19f1cdab4 .skip-link,
body.canonical-page-a19f1cdab4 footer,
body.canonical-page-a19f1cdab4 .no-print { display: none; }
        body.canonical-page-a19f1cdab4 .guide-content-shell { overflow: visible; }
        body.canonical-page-a19f1cdab4 .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-family-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-be0a2913bc {
        margin: 0;
    }
    body.canonical-page-be0a2913bc .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-be0a2913bc .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-be0a2913bc .guide-content-inner > .hero,
body.canonical-page-be0a2913bc .guide-content-inner > .glass,
body.canonical-page-be0a2913bc .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-be0a2913bc .site-top,
body.canonical-page-be0a2913bc .skip-link,
body.canonical-page-be0a2913bc footer,
body.canonical-page-be0a2913bc .no-print { display: none; }
        body.canonical-page-be0a2913bc .guide-content-shell { overflow: visible; }
        body.canonical-page-be0a2913bc .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-flying-with-kids-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-d5f9d39792 {
        margin: 0;
    }
    body.canonical-page-d5f9d39792 .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-d5f9d39792 .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-d5f9d39792 .guide-content-inner > .hero,
body.canonical-page-d5f9d39792 .guide-content-inner > .glass,
body.canonical-page-d5f9d39792 .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-d5f9d39792 .site-top,
body.canonical-page-d5f9d39792 .skip-link,
body.canonical-page-d5f9d39792 footer,
body.canonical-page-d5f9d39792 .no-print { display: none; }
        body.canonical-page-d5f9d39792 .guide-content-shell { overflow: visible; }
        body.canonical-page-d5f9d39792 .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-outdoor-adventure-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-719d413dff {
        margin: 0;
    }
    body.canonical-page-719d413dff .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-719d413dff .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-719d413dff .guide-content-inner > .hero,
body.canonical-page-719d413dff .guide-content-inner > .glass,
body.canonical-page-719d413dff .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-719d413dff .site-top,
body.canonical-page-719d413dff .skip-link,
body.canonical-page-719d413dff footer,
body.canonical-page-719d413dff .no-print { display: none; }
        body.canonical-page-719d413dff .guide-content-shell { overflow: visible; }
        body.canonical-page-719d413dff .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-paddle-fishing-boat-gear-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-ce77e7372f {
        margin: 0;
    }
    body.canonical-page-ce77e7372f .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-ce77e7372f .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-ce77e7372f .guide-content-inner > .hero,
body.canonical-page-ce77e7372f .guide-content-inner > .glass,
body.canonical-page-ce77e7372f .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-ce77e7372f .site-top,
body.canonical-page-ce77e7372f .skip-link,
body.canonical-page-ce77e7372f footer,
body.canonical-page-ce77e7372f .no-print { display: none; }
        body.canonical-page-ce77e7372f .guide-content-shell { overflow: visible; }
        body.canonical-page-ce77e7372f .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-pet-friendly-vacation-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-0b6afd6cdb {
        margin: 0;
    }
    body.canonical-page-0b6afd6cdb .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-0b6afd6cdb .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-0b6afd6cdb .guide-content-inner > .hero,
body.canonical-page-0b6afd6cdb .guide-content-inner > .glass,
body.canonical-page-0b6afd6cdb .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-0b6afd6cdb .site-top,
body.canonical-page-0b6afd6cdb .skip-link,
body.canonical-page-0b6afd6cdb footer,
body.canonical-page-0b6afd6cdb .no-print { display: none; }
        body.canonical-page-0b6afd6cdb .guide-content-shell { overflow: visible; }
        body.canonical-page-0b6afd6cdb .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-rainy-day-beach-vacation-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-3b5929ffc0 {
        margin: 0;
    }
    body.canonical-page-3b5929ffc0 .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-3b5929ffc0 .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-3b5929ffc0 .guide-content-inner > .hero,
body.canonical-page-3b5929ffc0 .guide-content-inner > .glass,
body.canonical-page-3b5929ffc0 .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-3b5929ffc0 .site-top,
body.canonical-page-3b5929ffc0 .skip-link,
body.canonical-page-3b5929ffc0 footer,
body.canonical-page-3b5929ffc0 .no-print { display: none; }
        body.canonical-page-3b5929ffc0 .guide-content-shell { overflow: visible; }
        body.canonical-page-3b5929ffc0 .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-sun-beach-safety-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-ff0fedcb2c {
        margin: 0;
    }
    body.canonical-page-ff0fedcb2c .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-ff0fedcb2c .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-ff0fedcb2c .guide-content-inner > .hero,
body.canonical-page-ff0fedcb2c .guide-content-inner > .glass,
body.canonical-page-ff0fedcb2c .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-ff0fedcb2c .site-top,
body.canonical-page-ff0fedcb2c .skip-link,
body.canonical-page-ff0fedcb2c footer,
body.canonical-page-ff0fedcb2c .no-print { display: none; }
        body.canonical-page-ff0fedcb2c .guide-content-shell { overflow: visible; }
        body.canonical-page-ff0fedcb2c .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-vacation-rental-starter-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-ca96e521f5 {
        margin: 0;
    }
    body.canonical-page-ca96e521f5 .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-ca96e521f5 .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-ca96e521f5 .guide-content-inner > .hero,
body.canonical-page-ca96e521f5 .guide-content-inner > .glass,
body.canonical-page-ca96e521f5 .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-ca96e521f5 .site-top,
body.canonical-page-ca96e521f5 .skip-link,
body.canonical-page-ca96e521f5 footer,
body.canonical-page-ca96e521f5 .no-print { display: none; }
        body.canonical-page-ca96e521f5 .guide-content-shell { overflow: visible; }
        body.canonical-page-ca96e521f5 .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides/30a-weekend-guide.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-f6e88d4687 {
        margin: 0;
    }
    body.canonical-page-f6e88d4687 .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-f6e88d4687 .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-f6e88d4687 .guide-content-inner > .hero,
body.canonical-page-f6e88d4687 .guide-content-inner > .glass,
body.canonical-page-f6e88d4687 .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-f6e88d4687 .site-top,
body.canonical-page-f6e88d4687 .skip-link,
body.canonical-page-f6e88d4687 footer,
body.canonical-page-f6e88d4687 .no-print { display: none; }
        body.canonical-page-f6e88d4687 .guide-content-shell { overflow: visible; }
        body.canonical-page-f6e88d4687 .guide-content-inner { max-width: none; padding: 0; }
    }


/* Migrated inline page layout: guides.html #1 */

    /* Force guide pages to use the same beach background and top-shell treatment as the rest of the site. */
    body.canonical-page-458f941dac {
        margin: 0;
    }
    body.canonical-page-458f941dac .guide-content-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
    body.canonical-page-458f941dac .guide-content-inner { max-width: 1600px; margin: 0 auto; padding: 2rem 1rem 3rem; }
    body.canonical-page-458f941dac .guide-content-inner > .hero,
body.canonical-page-458f941dac .guide-content-inner > .glass,
body.canonical-page-458f941dac .guide-content-inner > section { margin-left: auto; margin-right: auto; }
    @media print {
        body.canonical-page-458f941dac .site-top,
body.canonical-page-458f941dac .skip-link,
body.canonical-page-458f941dac footer,
body.canonical-page-458f941dac .no-print { display: none; }
        body.canonical-page-458f941dac .guide-content-shell { overflow: visible; }
        body.canonical-page-458f941dac .guide-content-inner { max-width: none; padding: 0; }
    }

}

/*
 * 30A Canonical Design System
 * The only site-wide presentation authority. Page-specific styles may supply
 * layout data, but this file owns the shell, widths, surfaces, actions, and
 * contrast for every current and future themed page.
 */

:root {
  --30a-navy: #082f4f;
  --30a-navy-deep: #05243c;
  --30a-ink: #102f46;
  --30a-ink-soft: #17384f;
  --30a-cream: #f4eee3;
  --30a-panel: rgba(218, 223, 222, .78);
  --30a-line: rgba(255, 255, 255, .92);
  --30a-keyline: rgba(255, 255, 255, .96);
  --30a-width: 1400px;
  --30a-gutter: 32px;
  --30a-space: 10px;
  --30a-card-pad: 12px;
  --30a-location-pad: 14px;
  --30a-cap-height: 7px;
  --30a-sticky-header-height: 124px;
  --30a-shadow: 0 14px 32px rgba(5, 36, 60, .16);
  --30a-blue: rgba(190, 209, 214, .74);
  --30a-aqua: rgba(189, 210, 205, .74);
  --30a-coral: rgba(228, 198, 185, .74);
  --30a-sand: rgba(224, 213, 187, .74);
  --30a-sage: rgba(199, 214, 192, .74);
  --30a-oyster: rgba(216, 209, 199, .74);
  --30a-blue-button: #bed1d6;
  --30a-aqua-button: #bdd2cd;
  --30a-coral-button: #e4c6b9;
  --30a-sand-button: #e0d5bb;
  --30a-sage-button: #c7d6c0;
  --30a-oyster-button: #d8d1c7;
  --30a-neutral-button: #dadfde;
}

*, *::before, *::after { box-sizing: border-box; }

html { background: #d8ddd7; }

/* First-paint guard. The source HTML still contains the legacy header and
   template classes that the canonical initializer removes or reclassifies at
   DOMContentLoaded. Keep that intermediate state out of the paint pipeline,
   then reveal the completed page in the same task that adds
   .coastal-theme-ready. The delayed zero-duration animation is a fail-safe:
   if JavaScript is blocked or fails to load, the original page becomes visible
   instead of remaining hidden. */
@keyframes coastal-boot-fallback {
  to { visibility: visible; }
}

html body.canonical-site:not(.coastal-theme-ready) {
  visibility: hidden;
  animation: coastal-boot-fallback 0s 1800ms forwards;
}

html body.canonical-site.coastal-theme-ready {
  visibility: visible;
  animation: none;
}

html body.coastal-theme-ready {
  min-height: 100vh;
  height: auto;
  margin: 0;
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
  color: var(--30a-ink);
  background: #d8ddd7;
  isolation: isolate;
  font-family: Arial, Helvetica, sans-serif;
}

/* Match the concept typography: editorial serif headings with a compact,
   highly legible sans-serif everywhere else. These system stacks render
   immediately without waiting for a web-font download. */
html body.coastal-theme-ready :is(
  h1, h2, .font-heading, .section-title, .hub-title, .bike-title,
  .events-title, .guide-title, .card-title, .category-title
) {
  font-family: Georgia, "Times New Roman", serif;
}

html body.coastal-theme-ready :is(
  h1, h2, .section-title, .hub-title, .bike-title, .events-title,
  .guide-title, .category-title
) {
  font-weight: 400;
  letter-spacing: -.018em;
}

html body.coastal-theme-ready :is(
  p, li, dt, dd, label, input, select, textarea, button, a,
  .coastal-primary-nav, .coastal-weather, .card-meta, .eyebrow,
  .kicker, .font-sans, [class*="subtitle"]
) {
  font-family: Arial, Helvetica, sans-serif;
}

body.coastal-theme-ready > *:not(.coastal-background):not(.coastal-site-header) {
  position: relative;
  z-index: 1;
}

/* Rotating page background */
.coastal-background {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background: #d8ddd7;
}

.coastal-background-layer,
.coastal-background-wash {
  position: absolute;
  inset: -2%;
}

.coastal-background-layer {
  background-position: center;
  background-size: cover;
  opacity: 0;
  transform: scale(1.025);
  transition: opacity 1.6s ease;
  filter: saturate(.76) contrast(.97) brightness(.98);
}

.coastal-background-layer.is-visible { opacity: 1; }

.coastal-background-wash {
  background:
    linear-gradient(180deg, rgba(5, 36, 60, .08), rgba(5, 36, 60, .20)),
    linear-gradient(90deg, rgba(255, 250, 241, .15), rgba(255, 250, 241, .03));
}

/* One shared masthead. Desktop navigation is intentionally split into two
   balanced rows so labels can remain comfortably legible. */
.coastal-site-header {
  position: sticky;
  top: 0;
  z-index: 2200;
  padding-top: var(--30a-space);
  color: var(--30a-navy);
  background: transparent;
}

.coastal-masthead {
  position: relative;
  width: min(var(--30a-width), calc(100% - var(--30a-gutter)));
  min-height: 125px;
  margin: 0 auto;
  padding: 12px 20px;
  display: grid;
  grid-template-columns: minmax(318px, 350px) minmax(0, 1fr) minmax(158px, 181px);
  align-items: center;
  gap: clamp(8px, 1.2vw, 18px);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-panel);
  box-shadow: var(--30a-shadow);
  backdrop-filter: blur(18px) saturate(.86);
  -webkit-backdrop-filter: blur(18px) saturate(.86);
}

.coastal-masthead::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
  height: var(--30a-cap-height);
  background: var(--30a-navy);
  pointer-events: none;
}

.coastal-main-logo {
  position: relative;
  display: block;
  width: min(346px, 100%);
  aspect-ratio: 1410 / 372;
  overflow: hidden;
  line-height: 0;
  border-radius: 10px;
  clip-path: inset(0 round 10px);
  background: transparent;
  filter: drop-shadow(0 6px 10px rgba(5, 36, 60, .12));
}

.coastal-main-logo img {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 102.2%;
  max-width: none;
  height: auto;
  transform: translate(-50%, -17.5%);
  border-radius: 10px;
}

.coastal-primary-nav {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: center;
  justify-content: stretch;
  column-gap: clamp(10px, 1vw, 18px);
  row-gap: 8px;
  overflow: visible;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.coastal-primary-nav::-webkit-scrollbar { display: none; }

.coastal-primary-nav a {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 2.65em;
  padding: 8px 2px 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--30a-navy);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-decoration: none;
  text-transform: uppercase;
  text-align: center;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  font: 800 clamp(9.5px, .82vw, 11.5px)/1.08 Arial, Helvetica, sans-serif;
  letter-spacing: .07em;
}

.coastal-primary-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 4px;
  height: 3px;
  background: #c98069;
  transition: right .18s ease;
}

.coastal-primary-nav a:hover::after,
.coastal-primary-nav a:focus-visible::after,
.coastal-primary-nav a[aria-current="page"]::after { right: 0; }

.coastal-weather {
  min-height: 78px;
  padding: 9px 11px;
  display: grid;
  grid-template-columns: 45px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 9px;
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-top: 5px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-oyster);
  box-shadow: 0 7px 16px rgba(5, 36, 60, .12);
  text-decoration: none;
}

.coastal-weather-icon {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  font-size: 30px;
}

.coastal-weather-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
}

.coastal-weather-temp {
  color: var(--30a-navy);
  font: 900 20px/1 Arial, Helvetica, sans-serif;
  white-space: nowrap;
}

.coastal-weather-place {
  color: var(--30a-navy);
  font: 900 10px/1.15 Arial, Helvetica, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coastal-weather-condition {
  overflow: hidden;
  color: var(--30a-navy);
  font: 700 11px/1.2 Arial, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.coastal-weather-source {
  grid-column: 2;
  color: var(--30a-navy);
  font: 800 10px/1.1 Arial, Helvetica, sans-serif;
  letter-spacing: .03em;
  text-decoration: underline;
  white-space: nowrap;
}

/* Hide all superseded chrome. The generated masthead is the sole header. */
.coastal-theme-ready .coastal-legacy-header,
.coastal-theme-ready .coastal-legacy-footer,
.coastal-theme-ready .hub-top,
.coastal-theme-ready .bike-top,
.coastal-theme-ready nav.mobile-tabs.unified-category-nav,
.coastal-theme-ready .unified-nav-shell,
.coastal-theme-ready img[src*="florida_logo_transparent"] {
  display: none;
}

html body.coastal-theme-ready #app,
html body.coastal-theme-ready #app > .results-scroll,
html body.coastal-theme-ready .results-scroll,
html body.coastal-theme-ready .guide-content-shell {
  min-height: 0;
  height: auto;
  max-height: none;
  overflow: visible;
  display: block;
}

/* One width/gutter contract for every page family. */
.coastal-masthead,
.coastal-footer-inner,
html body.coastal-theme-ready :is(
  .site-top, .unified-site-top, .coastal-page-width,
  main, .hub-main, .bike-main, .events-main, .map-main, .guide-content-shell
) {
  box-sizing: border-box;
  width: min(var(--30a-width), calc(100% - var(--30a-gutter)));
  max-width: var(--30a-width);
  margin-inline: auto;
}

html body.coastal-theme-ready :is(main, .hub-main, .bike-main, .events-main, .map-main, .guide-content-shell) {
  padding-inline: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: var(--30a-space);
}

/* Layout-only page-width wrappers must not keep legacy horizontal padding.
   Their child grids then span the same left and right edges as the masthead
   and main page content. */
html body.coastal-theme-ready :is(
  section.coastal-page-width
):not(.coastal-surface):not(.coastal-panel):not(.coastal-global-panel) {
  padding-left: 0;
  padding-right: 0;
}

html body.coastal-theme-ready :is(
  section.coastal-page-width
) > :is(.grid, [class*="grid-cols-"]) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  gap: var(--30a-space);
}

/* Card collections must share the exact left and right edges of the single
   full-width panels. Legacy p-5/p-8 utilities previously inset three-card
   rows even after the outer section had been converted to layout-only. */
html body.coastal-theme-ready .coastal-group > :is(.grid, [class*="grid-cols-"]) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-left: 0;
  padding-right: 0;
}

html body.coastal-theme-ready :is(
  main, .hub-main, .bike-main, .events-main, .map-main, .guide-content-shell,
  .results-scroll, .coastal-content-inner
) > :is(section, .coastal-group, .coastal-panel, .coastal-surface) +
  :is(section, .coastal-group, .coastal-panel, .coastal-surface) {
  margin-top: var(--30a-space);
}

/* Template wrappers cannot add a second horizontal gutter inside the shared width. */
html body.coastal-theme-ready .coastal-content-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-left: 0;
  padding-right: 0;
}

html body.coastal-theme-ready :is(.site-top, .unified-site-top) {
  margin-top: var(--30a-space);
  background: transparent;
  box-shadow: none;
}

html body.coastal-theme-ready :is(.mobile-controls-area, .coastal-controls-area) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

html body.coastal-theme-ready :is(.mobile-controls-inner, .coastal-controls-inner) {
  width: 100%;
  max-width: none;
  margin: 0;
  gap: 0;
}

html body.coastal-theme-ready .mobile-search-panel {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--30a-card-pad);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-panel);
  backdrop-filter: blur(14px) saturate(.84);
  -webkit-backdrop-filter: blur(14px) saturate(.84);
  box-shadow: var(--30a-shadow);
}

/* Masthead, filters/search, and the page-introduction panel are the three
   recurring utility surfaces. They deliberately share one neutral treatment
   on every current and future page. */
html body.coastal-theme-ready :is(
  .coastal-global-panel, .coastal-page-intro, .mobile-search-panel
) {
  position: relative;
  color: var(--30a-ink);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-panel);
  background-image: none;
  box-shadow: var(--30a-shadow);
  backdrop-filter: blur(14px) saturate(.84);
  -webkit-backdrop-filter: blur(14px) saturate(.84);
}

html body.coastal-theme-ready .coastal-page-intro {
  width: 100%;
  max-width: none;
  padding: var(--30a-card-pad);
  overflow: visible;
}

html body.coastal-theme-ready .coastal-page-intro > :first-child,
html body.coastal-theme-ready .coastal-page-intro :is(
  .category-intro-content, .guide-hero-copy, .hub-hero-copy,
  .bike-hero-copy, .events-hero-copy
) {
  min-width: 0;
  padding-left: 0;
  margin-left: 0;
}

/* A checklist, summary, or compact option box inside the neutral introduction
   is a real child component and receives one palette color. */
html body.coastal-theme-ready .coastal-page-intro :is(
  .coastal-intro-subpanel, .hero-checklist, .coastal-summary-box
) {
  padding: var(--30a-card-pad);
  color: var(--30a-ink);
  border: 1px solid var(--30a-keyline);
  border-top: 5px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-surface, var(--30a-sand));
  background-image: none;
  box-shadow: 0 8px 18px rgba(5, 36, 60, .11);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Surface tokens. The initializer assigns one stable tone to each card. */
.coastal-tone-1 { --30a-surface: var(--30a-blue); --30a-control: var(--30a-blue-button); }
.coastal-tone-2 { --30a-surface: var(--30a-aqua); --30a-control: var(--30a-aqua-button); }
.coastal-tone-3 { --30a-surface: var(--30a-coral); --30a-control: var(--30a-coral-button); }
.coastal-tone-4 { --30a-surface: var(--30a-sand); --30a-control: var(--30a-sand-button); }
.coastal-tone-5 { --30a-surface: var(--30a-sage); --30a-control: var(--30a-sage-button); }
.coastal-tone-6 { --30a-surface: var(--30a-oyster); --30a-control: var(--30a-oyster-button); }

html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel) {
  position: relative;
  color: var(--30a-ink);
  outline: 0;
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background-image: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16), var(--30a-shadow);
  backdrop-filter: blur(11px) saturate(.88);
  -webkit-backdrop-filter: blur(11px) saturate(.88);
  margin-top: 0;
  margin-bottom: 0;
}

/* A collection is layout, not another visible box. Sections that already hold
   cards, tables, maps, or substantial controls receive this class. */
html body.coastal-theme-ready .coastal-group {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--30a-ink);
  outline: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html body.coastal-theme-ready .coastal-group::before,
html body.coastal-theme-ready .coastal-group::after {
  display: none;
  content: none;
}

/* Introductory copy that sits directly over photography stays legible without
   adding another rectangular background around the collection. */
html body.coastal-theme-ready .coastal-group > :is(
  h1, h2, h3, p, ul, ol, .section-title, .hub-title, .bike-title, .events-title
) {
  color: var(--30a-navy);
  text-shadow: 0 1px 0 rgba(244, 238, 227, .98), 0 0 9px rgba(244, 238, 227, .92);
}

/* Only true utility panels retain the neutral frame and readable inset. */
html body.coastal-theme-ready .coastal-panel:not([data-coastal-edge-to-edge]) {
  padding: var(--30a-card-pad);
}

html body.coastal-theme-ready .coastal-surface {
  padding: var(--30a-card-pad);
  background-color: var(--30a-surface, var(--30a-oyster));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Neutral gray defines every primary/utility panel in the page hierarchy. */
html body.coastal-theme-ready .coastal-panel {
  background-color: var(--30a-panel);
}

/* Location cards use the same six translucent concept colors as every other
   primary card. Their actions follow the global hierarchy rule below: colored
   content surface, neutral gray controls. */
html body.coastal-theme-ready .coastal-location-card {
  padding: 0;
  background-color: var(--30a-surface, var(--30a-oyster));
}

html body.coastal-theme-ready .coastal-surface {
  overflow: hidden;
}

html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel)::after {
  display: none;
  content: none;
}

/* A real light outer keyline remains visible on all four sides. The navy cap
   is drawn inside it so it no longer replaces the white top border. */
html body.coastal-theme-ready :is(
  .coastal-surface, .coastal-panel, .coastal-global-panel, .mobile-search-panel
)::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 4;
  top: 2px;
  left: 2px;
  right: 2px;
  height: calc(var(--30a-cap-height) - 1px);
  background: var(--30a-navy);
  pointer-events: none;
}

/* Interactive maps and their explanatory copy use the neutral translucent
   utility surface so labels remain readable over every rotating background. */
html body.coastal-theme-ready :is(
  .map-section-card, .category-map-shell, .map-panel, [data-coastal-map-panel]
) {
  padding: var(--30a-card-pad);
  color: var(--30a-ink);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-panel);
  background-image: none;
  box-shadow: var(--30a-shadow);
  backdrop-filter: blur(14px) saturate(.84);
  -webkit-backdrop-filter: blur(14px) saturate(.84);
}

/* Directory cards carry their image and content directly, avoiding the extra
   padding layer that previously made the cards feel oversized. */
html body.coastal-theme-ready .coastal-location-card > .mobile-card-image {
  margin: 0;
  width: 100%;
}

html body.coastal-theme-ready .coastal-location-card > :is(div, section, article):not(.mobile-card-image) {
  padding: var(--30a-location-pad);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html body.coastal-theme-ready :is(.coastal-global-panel, .coastal-page-intro) {
  margin-top: 0;
  margin-bottom: 0;
}

html body.coastal-theme-ready main + section.coastal-page-width {
  margin-top: var(--30a-space);
}

/* Every category corner label uses the same navy identity treatment. */
html body.coastal-theme-ready :is(
  .category-image-label, .listing-category-label, .location-category-label,
  [data-location-category-label],
  main > section:first-child p.inline-flex[class*="uppercase"]
) {
  z-index: 7;
  top: calc(var(--30a-cap-height) + 5px);
  left: 4px;
  min-height: 28px;
  padding: .42rem .78rem;
  display: inline-flex;
  align-items: center;
  color: #fff;
  line-height: 1.15;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 0;
  background: var(--30a-navy);
  box-shadow: none;
}

/* Suppress legacy white/tan inner shells and extra accents. */
html body.coastal-theme-ready main :is(
  .bg-white, .bg-white\/80, .bg-white\/90, .bg-white\/95,
  [class*="bg-white/"], [class*="bg-sky-50"], [class*="bg-teal-50"],
  [class*="bg-amber-50"], [class*="bg-orange-50"]
):not(.coastal-surface):not(.coastal-panel) {
  background-color: transparent;
  background-image: none;
}

/* A legacy color utility may remain in a card's HTML for layout compatibility,
   but it must never beat the stable six-tone surface assigned at runtime. */
html body.coastal-theme-ready main .coastal-surface:is(
  .bg-white, .bg-white\/80, .bg-white\/90, .bg-white\/95,
  [class*="bg-white/"], [class*="bg-sky-50"], [class*="bg-teal-50"],
  [class*="bg-amber-50"], [class*="bg-orange-50"]
) {
  background-color: var(--30a-surface, var(--30a-oyster));
  background-image: none;
}

/* Legacy utility classes may describe geometry, but never override the shared system. */
html body.coastal-theme-ready main :is(
  section, article, aside, details, div, a, button, input, select, textarea
)[class*="rounded"]:not(.leaflet-control):not(.legend-swatch) {
  border-radius: 0;
}

html body.coastal-theme-ready main :is(
  .coastal-panel, .coastal-surface
) :is(
  section, article, aside, div, a, button, input, select, textarea
)[class*="bg-white"]:not(.leaflet-container) {
  background-image: none;
  border-radius: 0;
}

html body.coastal-theme-ready .coastal-surface:not(.coastal-location-card) > :is(div, section, article)[class*="bg-"]:not(.leaflet-container),
html body.coastal-theme-ready .coastal-surface:not(.coastal-location-card) > :is(.p-3, .p-4, .p-5, .p-6, .p-7, .p-8) {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Legacy section classes cannot recreate an outer frame after the structural
   classifier has identified them as collections. */
html body.coastal-theme-ready .coastal-group:is(
  .hub-hero, .hub-section, .bike-hero, .bike-section, .events-hero,
  .events-panel, .editorial-guide-section, .guide-hero,
  .guide-index-heading, .guide-overview-section, .local-planning-box,
  .related-guide-box, .amazon-disclosure-box, .official-resource-box,
  .travel-card, .booking-banner, .booking-card, .map-section-card,
  .affiliate-cta-card, .faq-hero-panel
) {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

html body.coastal-theme-ready :is(
  .guide-card-top, .category-card-logo-wrap, .mobile-card-image,
  .listing-hero-media, .guide-logo-panel, .unified-page-badge-wrap
) {
  border-radius: 0;
  box-shadow: none;
}

html body.coastal-theme-ready .coastal-surface:not(.coastal-location-card) :is(
  .guide-card-top, .category-card-logo-wrap, .mobile-card-image, .listing-hero-media
) {
  margin: calc(-1 * var(--30a-card-pad)) calc(-1 * var(--30a-card-pad)) var(--30a-card-pad);
  border: 0;
  border-bottom: 1px solid rgba(8, 47, 79, .28);
  background: transparent;
}

/* Guide cards are deliberately wider than tall for readable copy. */
html body.coastal-theme-ready .guide-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--30a-space);
  align-items: stretch;
}

/* The shared compact spacing token overrides legacy gap-4/gap-6 utilities on
   every card collection, including Vue-rendered location directories. */
html body.coastal-theme-ready :is(
  .coastal-card-grid, .mobile-grid, .category-grid, .guide-grid, .town-grid, .access-grid,
  .location-grid, .quick-grid, .source-grid, .trail-grid, .rental-grid,
  .product-grid, .feature-grid, .event-grid,
  .coastal-group > [class*="grid-cols-"]
) {
  gap: var(--30a-space);
}

/* Direct content blocks use the same vertical rhythm as card grids. This
   replaces inconsistent legacy mb-4/mb-6 and py-8 utility spacing without
   stripping the protected padding inside real components. */
html body.coastal-theme-ready :is(
  main, .hub-main, .bike-main, .events-main, .map-main, .guide-content-shell
) > :is(
  section, .coastal-group, .coastal-panel, .coastal-surface,
  .coastal-card-grid, .mobile-grid, [class*="-grid"]
) {
  margin-top: 0;
  margin-bottom: 0;
}

html body.coastal-theme-ready :is(
  main, .hub-main, .bike-main, .events-main, .map-main, .guide-content-shell
) > :is(
  section, .coastal-group, .coastal-panel, .coastal-surface,
  .coastal-card-grid, .mobile-grid, [class*="-grid"]
) + :is(
  section, .coastal-group, .coastal-panel, .coastal-surface,
  .coastal-card-grid, .mobile-grid, [class*="-grid"]
) {
  margin-top: var(--30a-space);
}

html body.coastal-theme-ready .guide-grid > .card {
  min-width: 0;
  min-height: 0;
  height: auto;
}

html body.coastal-theme-ready .guide-card-top {
  min-height: 0;
  padding: 16px;
  display: grid;
  grid-template-columns: minmax(76px, 104px) minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}

html body.coastal-theme-ready .guide-card-logo {
  width: 100%;
  max-width: 104px;
  height: auto;
}

html body.coastal-theme-ready :is(.guide-index-heading, .section-heading, .category-intro, .guide-hero) {
  border-radius: 0;
}

/* Checklist/summary boxes are reusable subpanels, never legacy white pills. */
html body.coastal-theme-ready :is(.hero-checklist, .coastal-summary-box) {
  padding: var(--30a-card-pad);
  color: var(--30a-ink);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-surface, var(--30a-sand));
  box-shadow: 0 9px 20px rgba(5, 36, 60, .12);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Accordions are first-class concept cards. Their question and answer share
   one colored surface, one light keyline, and the standard navy accent. */
html body.coastal-theme-ready details.coastal-surface {
  padding: var(--30a-card-pad);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-surface, var(--30a-oyster));
  box-shadow: var(--30a-shadow);
}

html body.coastal-theme-ready details.coastal-surface > summary {
  color: var(--30a-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  list-style: none;
}

html body.coastal-theme-ready details.coastal-surface > summary::-webkit-details-marker {
  display: none;
}

html body.coastal-theme-ready details.coastal-surface > summary :is(span, strong) {
  color: var(--30a-navy);
}

/* Grid defaults used by current and future component pages. */
html body.coastal-theme-ready :is(
  .town-grid, .access-grid, .location-grid, .quick-grid, .source-grid,
  .trail-grid, .rental-grid, .product-grid, .feature-grid, .event-grid
) {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
  gap: var(--30a-space);
  align-items: stretch;
}

/* Canonical hierarchy: top-level/utility panels stay neutral gray; child
   content cards carry one of the six site colors. Actions in neutral areas use
   the palette, while actions inside colored cards are neutral gray for contrast. */
html body.coastal-theme-ready .coastal-action,
html body.coastal-theme-ready .mobile-reset,
html body.coastal-theme-ready .coastal-panel > button,
html body.coastal-theme-ready .coastal-panel :is(.filter-actions, .search-actions) > button,
html body.coastal-theme-ready .coastal-surface :is(
  .card-action-button, .card-action-placeholder, .hub-btn, .bike-btn,
  .official-link, button:not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out)
) {
  min-height: 40px;
  padding: .62rem .9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-top: 4px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-control, var(--30a-aqua-button));
  box-shadow: 0 6px 13px rgba(5, 36, 60, .13);
  text-decoration: none;
  text-shadow: none;
  font-weight: 800;
}

/* Colored child cards always return their interactive controls to the neutral
   gray button treatment. Add .coastal-action-colored or
   data-coastal-action-tone="surface" only for an intentional page-specific
   exception approved by the design system. */
html body.coastal-theme-ready .coastal-surface :is(
  .coastal-action, .card-action-button, .card-action-placeholder,
  .hub-btn, .bike-btn, .official-link, button:not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out)
):not(.coastal-action-colored):not([data-coastal-action-tone="surface"]) {
  color: var(--30a-navy);
  border-color: var(--30a-navy);
  border-top-color: var(--30a-navy);
  background: var(--30a-neutral-button);
  text-decoration-color: rgba(8, 47, 79, .58);
}

html body.coastal-theme-ready main .coastal-surface :is(
  .coastal-action.coastal-action-colored,
  .coastal-action[data-coastal-action-tone="surface"]
) {
  background-color: var(--30a-control, var(--30a-aqua-button));
  background-image: none;
}

html body.coastal-theme-ready .coastal-action:is(:hover, :focus-visible),
html body.coastal-theme-ready .mobile-reset:is(:hover, :focus-visible),
html body.coastal-theme-ready .coastal-surface :is(
  .card-action-button, .hub-btn, .bike-btn, .official-link,
  button:not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out)
):is(:hover, :focus-visible) {
  color: #fff;
  background: var(--30a-navy);
  transform: translateY(-1px);
}

html body.coastal-theme-ready :is(
  .card-actions, .btn-row, .event-actions, .guide-index-card-actions
) {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: var(--30a-space);
}

/* Location-card actions follow the same hierarchy as every other colored
   child card: neutral gray controls over the six-color card background. Small
   informational badges remain navy because they are labels, not controls. */
html body.coastal-theme-ready .coastal-location-card :is(
  .coastal-action, .card-action-button, .card-action-placeholder,
  .hub-btn, .bike-btn, .official-link, button
) {
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-top: 4px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-neutral-button);
  box-shadow: 0 6px 13px rgba(5, 36, 60, .13);
  text-decoration-color: rgba(8, 47, 79, .58);
}

html body.coastal-theme-ready .coastal-location-card :is(
  .category-pill, .town-badge, .pill, [class*="badge"]
) {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 0;
  background: var(--30a-navy);
  box-shadow: none;
}

html body.coastal-theme-ready .coastal-location-card :is(
  .coastal-action, .card-action-button, .hub-btn, .bike-btn, .official-link, button
):is(:hover, :focus-visible) {
  color: #fff;
  border-color: var(--30a-navy);
  border-top-color: var(--30a-navy);
  background: var(--30a-navy);
}

/* Directory search/filter panels remain immediately available while the
   location cards scroll. The initializer keeps this offset synchronized with
   the actual responsive masthead height. */
html body.coastal-theme-ready .coastal-sticky-search-shell {
  position: sticky;
  top: calc(var(--30a-sticky-header-height) + var(--30a-space));
  z-index: 2100;
  overflow: visible;
  isolation: isolate;
}

html body.coastal-theme-ready .coastal-sticky-search-shell .mobile-search-panel.coastal-sticky-search,
html body.coastal-theme-ready .coastal-sticky-search-shell :is(.search-panel, .filter-panel, .filters-panel).coastal-sticky-search {
  position: relative;
  top: auto;
  margin-bottom: 0;
}

html body.coastal-theme-ready :is(
  .card-actions, .btn-row, .event-actions, .guide-index-card-actions
) > :is(a, button) {
  flex: 1 1 118px;
  width: auto;
}

html body.coastal-theme-ready .coastal-surface :is(
  .hub-badge, .bike-badge, .events-kicker, .event-tags span,
  .category-pill, .town-badge, .pill, [class*="badge"]
) {
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-control, var(--30a-oyster-button));
  box-shadow: none;
}

/* Search/filter fields are utility controls, so they use the same neutral gray
   family as the panels that contain them instead of introducing beige blocks. */
html body.coastal-theme-ready :is(input, select, textarea) {
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-neutral-button);
  box-shadow: none;
}

/* Search/filter/reset controls are an explicit neutral-control exception. */
html body.coastal-theme-ready :is(
  .mobile-search-panel, .filter-panel, .filters-panel, .search-panel, .coastal-sticky-search
) :is(button, .coastal-action, .mobile-reset) {
  color: var(--30a-navy);
  border-color: var(--30a-navy);
  border-top-color: var(--30a-navy);
  background: var(--30a-neutral-button);
}

html body.coastal-theme-ready :is(input, textarea)::placeholder {
  color: var(--30a-ink-soft);
  opacity: .86;
}

/* Contrast-safe type on every translucent surface. */
html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel, .mobile-search-panel) {
  color: var(--30a-ink);
}

html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel, .mobile-search-panel) :is(
  h1, h2, h3, h4, h5, h6, .font-heading, .section-title,
  .hub-title, .bike-title, .events-title
) {
  color: var(--30a-navy);
  text-shadow: none;
}

html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel, .mobile-search-panel) :is(
  p, li, dt, dd, label, .lead, .muted, .verified, .meta, .address,
  .map-note, .disclosure, .affiliate-note, .result-line,
  .text-slate-400, .text-slate-500, .text-slate-600, .text-slate-700,
  .text-gray-400, .text-gray-500, .text-gray-600, .text-gray-700
) {
  color: var(--30a-ink-soft);
  text-shadow: none;
}

html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel, .mobile-search-panel) a:not(.coastal-action) {
  color: var(--30a-navy);
  text-decoration-color: rgba(8, 47, 79, .52);
}

html body.coastal-theme-ready .coastal-surface .event-date-block {
  color: #fff;
  border-radius: 0;
  background: var(--30a-navy);
}

html body.coastal-theme-ready .coastal-surface .event-date-block :is(span, strong) {
  color: #fff;
}

/* Calendar cells stay neutral. Town colors belong to event entries, not whole days. */
html body.coastal-theme-ready .calendar-day,
html body.coastal-theme-ready .calendar-day.is-empty {
  color: var(--30a-ink);
  border: 1px solid var(--30a-line);
  border-top: 5px solid var(--30a-navy);
  border-radius: 0;
  background: rgba(218, 223, 222, .84);
  box-shadow: none;
  backdrop-filter: blur(8px) saturate(.8);
  -webkit-backdrop-filter: blur(8px) saturate(.8);
}

html body.coastal-theme-ready .calendar-day.is-empty {
  background: rgba(218, 223, 222, .56);
}

html body.coastal-theme-ready .calendar-event {
  min-height: 0;
  padding: .34rem .42rem;
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-left-width: 5px;
  border-top-width: 1px;
  border-radius: 0;
  box-shadow: 0 4px 9px rgba(5, 36, 60, .10);
  text-shadow: none;
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-seaside {
  --30a-town-color: var(--30a-blue-button);
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-seaside {
  --30a-surface: var(--30a-blue);
  --30a-control: var(--30a-blue-button);
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-rosemary-beach {
  --30a-town-color: var(--30a-coral-button);
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-rosemary-beach {
  --30a-surface: var(--30a-coral);
  --30a-control: var(--30a-coral-button);
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-alys-beach {
  --30a-town-color: var(--30a-sand-button);
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-alys-beach {
  --30a-surface: var(--30a-sand);
  --30a-control: var(--30a-sand-button);
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-watercolor {
  --30a-town-color: var(--30a-aqua-button);
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-watercolor {
  --30a-surface: var(--30a-aqua);
  --30a-control: var(--30a-aqua-button);
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-seagrove-beach {
  --30a-town-color: var(--30a-sage-button);
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-seagrove-beach {
  --30a-surface: var(--30a-sage);
  --30a-control: var(--30a-sage-button);
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-point-washington {
  --30a-town-color: var(--30a-oyster-button);
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-point-washington {
  --30a-surface: var(--30a-oyster);
  --30a-control: var(--30a-oyster-button);
}

html body.coastal-theme-ready :is(.calendar-event, .legend-item).town-inlet-beach {
  --30a-town-color: #c9d5e1;
  background: var(--30a-town-color);
}

html body.coastal-theme-ready .event-card.town-inlet-beach {
  --30a-surface: rgba(201, 213, 225, .76);
  --30a-control: #c9d5e1;
}

html body.coastal-theme-ready .event-card[class*="town-"] {
  background: var(--30a-surface);
}

html body.coastal-theme-ready .legend-item {
  color: var(--30a-navy);
  border: 1px solid var(--30a-line);
  border-top: 4px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-panel);
  box-shadow: none;
}

html body.coastal-theme-ready .legend-item .legend-swatch {
  border: 1px solid var(--30a-navy);
  background: var(--30a-town-color, var(--30a-oyster-button));
}

/* Calendar navigation is a utility-control family and therefore stays neutral
   gray, matching the search/filter controls rather than the colored event data. */
html body.coastal-theme-ready.canonical-tpl-events .calendar-actions button {
  color: var(--30a-navy);
  border-color: var(--30a-navy);
  border-top-color: var(--30a-navy);
  background: var(--30a-neutral-button);
}

/* Tables and maps remain functional while sharing the frame geometry. */
html body.coastal-theme-ready :is(.table-wrap, .map-panel, .town-map, .category-map) {
  border-radius: 0;
}

html body.coastal-theme-ready :is(.table-wrap, table) {
  color: var(--30a-ink);
}

html body.coastal-theme-ready thead {
  color: #fff;
  background: var(--30a-navy);
}

html body.coastal-theme-ready tbody tr:nth-child(odd) {
  background: rgba(218, 207, 192, .48);
}

html body.coastal-theme-ready tbody tr:nth-child(even) {
  background: rgba(151, 198, 193, .42);
}

/* Final component boundary: legacy utility order cannot reopen location-card
   spacing or repaint its controls after the shared system has classified it. */
html body.coastal-theme-ready .coastal-location-card > :is(div, section, article):not(.mobile-card-image) {
  padding: var(--30a-location-pad);
}

html body.coastal-theme-ready .coastal-location-card :is(
  button, .coastal-action, .card-action-button, .card-action-placeholder,
  .hub-btn, .bike-btn, .official-link
) {
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-top: 4px solid var(--30a-navy);
  border-radius: 0;
  background-color: var(--30a-neutral-button);
  background-image: none;
}
html body.coastal-theme-ready .coastal-location-card :is(
  .category-pill, .town-badge, .pill, [class*="badge"]
) {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .96);
  border-radius: 0;
  background-color: var(--30a-navy);
  background-image: none;
}

.coastal-footer {
  margin-top: 36px;
  color: #eaf0f2;
  border-top: 7px solid #c98069;
  background: rgba(5, 36, 60, .96);
}

.coastal-footer-inner {
  min-height: 100px;
  padding: 22px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.coastal-footer-brand strong {
  display: block;
  color: #fff;
  font: 400 21px/1.1 Georgia, serif;
}

.coastal-footer-brand span {
  color: #b9d6d4;
  font: 700 10px/1.3 Arial, sans-serif;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.coastal-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 18px;
}

.coastal-footer a {
  color: #fff;
  background: transparent;
  border: 0;
  box-shadow: none;
  font: 700 11px/1.2 Arial, sans-serif;
}

@media (max-width: 1120px) {
  .coastal-masthead {
    grid-template-columns: minmax(235px, 270px) minmax(0, 1fr) minmax(128px, 142px);
  }
  .coastal-main-logo { width: min(266px, 100%); }
  .coastal-primary-nav {
    column-gap: 6px;
    row-gap: 5px;
  }
  .coastal-primary-nav a {
    font-size: clamp(10px, 1vw, 11px);
    letter-spacing: .055em;
  }
  html body.coastal-theme-ready :is(
    .town-grid, .access-grid, .location-grid, .quick-grid, .source-grid,
    .trail-grid, .rental-grid, .product-grid, .feature-grid, .event-grid
  ) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile masthead: keep the logo and a compact weather summary together,
   then show every primary destination in a fixed-width grid with no
   horizontal scrolling or clipped navigation labels. */
@media (max-width: 900px) {
  :root {
    --30a-gutter: 14px;
    --30a-space: 7px;
    --30a-card-pad: 12px;
    --30a-location-pad: 12px;
  }

  .coastal-site-header { padding-top: 7px; }

  .coastal-masthead {
    min-height: 0;
    padding: 9px 9px 10px;
    grid-template-columns: minmax(0, 1fr) 96px;
    align-items: center;
    gap: 7px 8px;
  }

  .coastal-main-logo {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    max-width: 330px;
    min-width: 0;
  }

  .coastal-primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    margin: 1px 0 0;
    padding: 5px 0 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 4px;
    row-gap: 2px;
    justify-content: stretch;
    overflow: visible;
    border-top: 1px solid rgba(8, 47, 79, .25);
  }

  .coastal-primary-nav a {
    min-width: 0;
    min-height: 38px;
    padding: 6px 2px 5px;
    white-space: normal;
    font-size: clamp(10.5px, 3vw, 12px);
    line-height: 1.06;
    letter-spacing: .04em;
  }

  .coastal-primary-nav a::after { bottom: 2px; }

  .coastal-weather {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    width: 96px;
    min-width: 0;
    min-height: 56px;
    padding: 5px 6px;
    grid-template-columns: 25px minmax(0, 1fr);
    column-gap: 5px;
    border-top-width: 4px;
  }

  .coastal-weather-icon { font-size: 20px; }
  .coastal-weather-temp { font-size: 15px; }
  .coastal-weather-place { display: none; }
  .coastal-weather-condition { display: none; }
  .coastal-weather-source {
    font-size: 7px;
    line-height: 1.05;
    white-space: nowrap;
  }

  html body.coastal-theme-ready .guide-grid,
  html body.coastal-theme-ready :is(
    .town-grid, .access-grid, .location-grid, .quick-grid, .source-grid,
    .trail-grid, .rental-grid, .product-grid, .feature-grid, .event-grid
  ) {
    grid-template-columns: 1fr;
    gap: var(--30a-space);
  }

  html body.coastal-theme-ready .guide-card-top {
    grid-template-columns: 72px minmax(0, 1fr);
    padding: 13px;
    gap: 12px;
  }

  .coastal-footer-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .coastal-footer nav { justify-content: flex-start; }
}

@media (min-width: 761px) and (max-width: 900px) {
  .coastal-primary-nav {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    column-gap: 7px;
  }
  .coastal-primary-nav a {
    min-height: 36px;
    font-size: 10.75px;
  }
  .coastal-weather { width: 104px; }
}

@media (max-width: 430px) {
  .coastal-masthead { grid-template-columns: minmax(0, 1fr) 88px; }
  .coastal-main-logo { max-width: none; }
  .coastal-weather {
    width: 88px;
    grid-template-columns: 22px minmax(0, 1fr);
    padding-inline: 5px;
  }
  .coastal-weather-icon { font-size: 18px; }
  .coastal-weather-temp { font-size: 14px; }
  .coastal-weather-condition { max-width: 50px; font-size: 7px; }
  .coastal-weather-source { font-size: 6.5px; }
  .coastal-primary-nav a {
    min-height: 37px;
    font-size: clamp(10.25px, 2.9vw, 11.25px);
  }
  .coastal-weather-source { grid-row: 2; }
}

@media (max-width: 350px) {
  .coastal-masthead { grid-template-columns: minmax(0, 1fr) 82px; }
  .coastal-weather { width: 82px; grid-template-columns: 20px minmax(0, 1fr); }
  .coastal-weather-icon { font-size: 17px; }
  .coastal-weather-condition { display: none; }
  .coastal-weather-source { grid-row: 2; }
  .coastal-primary-nav a { font-size: 10px; letter-spacing: .025em; }
}

@media (prefers-reduced-motion: reduce) {
  .coastal-background-layer,
  .coastal-primary-nav a::after { transition: none; }
}

@media print {
  .coastal-site-header,
  .coastal-footer,
  .coastal-background { display: none; }

  html body.coastal-theme-ready { background: #fff; }

  html body.coastal-theme-ready :is(.coastal-surface, .coastal-panel) {
    color: #000;
    background: #fff;
    box-shadow: none;
  }
}


/* Canonical component contract. These explicit roles replace late global repair layers. */
:root {
  --30a-width: 1400px;
  --30a-gutter: 32px;
  --30a-space: 10px;
  --30a-card-pad: 14px;
  --30a-location-pad: 14px;
  --30a-cap-height: 7px;
}

body.coastal-theme-ready .coastal-site-header { padding-block: var(--30a-space) 0; }
body.coastal-theme-ready .site-top,
body.coastal-theme-ready .unified-site-top,
body.coastal-theme-ready main,
body.coastal-theme-ready .hub-main,
body.coastal-theme-ready .bike-main,
body.coastal-theme-ready .events-main,
body.coastal-theme-ready .map-main,
body.coastal-theme-ready .guide-content-shell { margin-top: var(--30a-space); }

body.coastal-theme-ready .coastal-surface {
  position: relative;
  overflow: hidden;
  padding: var(--30a-card-pad);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: linear-gradient(to bottom, var(--30a-navy) 0 var(--30a-cap-height), var(--30a-surface, var(--30a-oyster)) var(--30a-cap-height) 100%);
  box-shadow: var(--30a-shadow);
}

body.coastal-theme-ready .coastal-location-card {
  padding: 0;
  background: linear-gradient(to bottom, var(--30a-navy) 0 var(--30a-cap-height), var(--30a-surface, var(--30a-oyster)) var(--30a-cap-height) 100%);
}

body.coastal-theme-ready .coastal-location-card .mobile-card-image {
  margin: 0;
  border: 0;
  border-bottom: 1px solid rgba(8, 47, 79, .24);
}

body.coastal-theme-ready .coastal-location-card > :is(div, section, article):not(.mobile-card-image) {
  padding: var(--30a-location-pad);
  background: transparent;
}

body.coastal-theme-ready .category-image-label,
body.coastal-theme-ready .coastal-location-card .category-image-label {
  top: var(--30a-cap-height);
  left: 0;
  z-index: 3;
  min-height: 27px;
  padding: 6px 10px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.96);
  border-left: 0;
  border-radius: 0;
  background: var(--30a-navy);
  font-size: 10px;
  line-height: 1.2;
}

body.coastal-theme-ready .coastal-location-card :is(
  .coastal-action, .card-action-button, .card-action-placeholder,
  .hub-btn, .bike-btn, .official-link, button
) {
  color: var(--30a-navy);
  border: 1px solid var(--30a-navy);
  border-top: 4px solid var(--30a-navy);
  border-radius: 0;
  background: var(--30a-neutral-button);
  background-image: none;
}
body.coastal-theme-ready .coastal-location-card :is(
  .category-pill, .town-badge, .pill, [class*="badge"]
) {
  color: #fff;
  border: 1px solid rgba(255,255,255,.96);
  border-radius: 0;
  background: var(--30a-navy);
  background-image: none;
}

body.coastal-theme-ready .coastal-card-grid,
body.coastal-theme-ready .mobile-grid,
body.coastal-theme-ready .category-grid,
body.coastal-theme-ready .guide-grid,
body.coastal-theme-ready .town-grid,
body.coastal-theme-ready .access-grid,
body.coastal-theme-ready .location-grid,
body.coastal-theme-ready .quick-grid,
body.coastal-theme-ready .source-grid,
body.coastal-theme-ready .trail-grid,
body.coastal-theme-ready .rental-grid,
body.coastal-theme-ready .product-grid,
body.coastal-theme-ready .feature-grid,
body.coastal-theme-ready .event-grid { gap: var(--30a-space); }

body.canonical-tpl-faq.coastal-theme-ready main > section:first-child,
body.canonical-tpl-faq.coastal-theme-ready main > section[aria-labelledby="faq-heading"] {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.canonical-tpl-faq.coastal-theme-ready section[aria-labelledby="faq-heading"] {
  display: grid;
  gap: var(--30a-space);
}

body.canonical-tpl-faq.coastal-theme-ready details.coastal-surface { margin: 0; }

body.coastal-theme-ready :is(.map-section-card, .category-map-shell, [data-coastal-map-panel]).coastal-panel {
  padding: var(--30a-card-pad);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-panel);
  box-shadow: var(--30a-shadow);
  backdrop-filter: blur(14px) saturate(.84);
}

body.coastal-theme-ready .map-center-marker {
  padding: 6px 9px;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 0;
  background: var(--30a-navy);
  box-shadow: 0 8px 18px rgba(15,23,42,.25);
  font-weight: 900;
}

body.coastal-theme-ready #about { width: min(var(--30a-width), calc(100% - var(--30a-gutter))); }
body.coastal-theme-ready #about > :is(.grid, [class*="grid-cols-"]) { width: 100%; }

body.coastal-theme-ready :is(a, button, input, select, textarea) { border-radius: 0; }

@media (max-width: 760px) {
  :root { --30a-gutter: 14px; --30a-space: 7px; --30a-card-pad: 12px; --30a-location-pad: 12px; }
}

/* Explicit page roles introduced with the canonical v20 refinement. These
   rules remain part of the one authoritative stylesheet; they are not a late
   compatibility or page-level override layer. */
html body.coastal-theme-ready .coastal-reading-panel {
  width: 100%;
  max-width: none;
  padding: clamp(16px, 2vw, 24px);
  overflow: hidden;
  color: var(--30a-ink);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: var(--30a-panel);
  box-shadow: var(--30a-shadow);
  backdrop-filter: blur(16px) saturate(.82);
  -webkit-backdrop-filter: blur(16px) saturate(.82);
}

html body.coastal-theme-ready .coastal-reading-panel :is(.bike-copy, .hub-copy, .planning-copy) {
  max-width: 1180px;
}

html body.coastal-theme-ready .coastal-reading-panel :is(p, li) {
  color: var(--30a-ink-soft);
  text-shadow: none;
}

/* Category-hub badges use one consistent, restrained footprint. */
html body.coastal-theme-ready .coastal-category-hero-logo {
  width: clamp(138px, 14vw, 196px);
  height: clamp(138px, 14vw, 196px);
  min-width: 0;
  max-width: 196px;
  max-height: 196px;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: start;
  overflow: visible;
  background: transparent;
  border: 0;
  box-shadow: none;
}

html body.coastal-theme-ready .coastal-category-hero-logo :is(picture, img) {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* The FAQ introduction uses the same compact, horizontal visual hierarchy as
   the category and guide introductions: badge, primary copy, supporting
   actions. This replaces the legacy oversized stacked FAQ hero. */
html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel.coastal-faq-hero {
  display: grid;
  grid-template-columns: minmax(124px, 156px) minmax(0, 1fr) minmax(250px, 310px);
  grid-template-rows: auto auto 1fr;
  align-items: center;
  column-gap: clamp(18px, 2.1vw, 30px);
  row-gap: 7px;
  padding: clamp(16px, 2vw, 24px);
}

html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > .coastal-category-hero-logo {
  grid-column: 1;
  grid-row: 1 / span 3;
  width: clamp(124px, 11vw, 156px);
  height: clamp(124px, 11vw, 156px);
  align-self: center;
}

html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > p:first-of-type {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
}

html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > h2 {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  font-size: clamp(28px, 3vw, 46px);
  line-height: 1.06;
}

html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > p:nth-of-type(2) {
  grid-column: 2;
  grid-row: 3;
  max-width: 820px;
  margin: 4px 0 0;
  align-self: start;
}

html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > .coastal-faq-actions {
  grid-column: 3;
  grid-row: 1 / span 3;
  width: 100%;
  min-height: 132px;
  margin: 0;
  padding: 14px;
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  gap: 8px;
  align-self: stretch;
}

html body.coastal-theme-ready.canonical-tpl-faq .coastal-faq-actions > a {
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

@media (max-width: 940px) {
  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel.coastal-faq-hero {
    grid-template-columns: 124px minmax(0, 1fr);
  }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > .coastal-faq-actions {
    grid-column: 1 / -1;
    grid-row: 4;
    min-height: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .coastal-main-logo,
  .coastal-main-logo img {
    border-radius: 8px;
  }

  .coastal-main-logo { clip-path: inset(0 round 8px); }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel.coastal-faq-hero {
    grid-template-columns: 96px minmax(0, 1fr);
    column-gap: 14px;
    padding: 14px;
  }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > .coastal-category-hero-logo {
    width: 96px;
    height: 96px;
  }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > h2 {
    font-size: clamp(22px, 7vw, 32px);
  }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > p:nth-of-type(2),
  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > .coastal-faq-actions {
    grid-column: 1 / -1;
  }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > p:nth-of-type(2) {
    grid-row: 4;
  }

  html body.coastal-theme-ready.canonical-tpl-faq .faq-hero-panel > .coastal-faq-actions {
    grid-row: 5;
    grid-template-columns: 1fr;
  }
}

html body.coastal-theme-ready.canonical-tpl-events .events-hero {
  display: grid;
  grid-template-columns: minmax(138px, 196px) minmax(0, 1fr) minmax(190px, 250px);
  align-items: start;
  gap: clamp(14px, 2vw, 28px);
}

html body.coastal-theme-ready.canonical-tpl-events .events-hero > .coastal-category-hero-logo {
  grid-column: 1;
  grid-row: 1;
}

html body.coastal-theme-ready.canonical-tpl-events .events-hero > :nth-child(2) {
  grid-column: 2;
}

html body.coastal-theme-ready.canonical-tpl-events .events-hero > .hero-stats {
  grid-column: 3;
}

html body.coastal-theme-ready.canonical-tpl-town-hubs .hub-hero {
  display: grid;
  grid-template-columns: minmax(138px, 196px) minmax(0, 1fr);
  align-items: start;
  gap: 6px clamp(16px, 2vw, 28px);
}

html body.coastal-theme-ready.canonical-tpl-town-hubs .hub-hero > .coastal-category-hero-logo {
  grid-column: 1;
  grid-row: 1 / span 5;
}

html body.coastal-theme-ready.canonical-tpl-town-hubs .hub-hero > :not(.coastal-category-hero-logo) {
  grid-column: 2;
}

html body.coastal-theme-ready.canonical-tpl-bike-hub .bike-hero {
  display: grid;
  grid-template-columns: minmax(138px, 196px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(16px, 2vw, 28px);
}

html body.coastal-theme-ready.canonical-tpl-bike-hub .bike-hero > .coastal-category-hero-logo {
  grid-column: 1;
}

html body.coastal-theme-ready.canonical-tpl-bike-hub .bike-hero > .bike-hero-grid {
  grid-column: 2;
}

html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner {
  grid-template-columns: minmax(138px, 176px) minmax(0, 1fr) minmax(230px, 300px);
  align-items: start;
}

html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner > .coastal-category-hero-logo {
  width: clamp(138px, 13vw, 176px);
  height: clamp(138px, 13vw, 176px);
}

/* The home page uses roomy, readable cards instead of six narrow transparent
   columns. Logo geometry is reset explicitly so old utility wrappers cannot
   collapse the category artwork into a sliver. */
html body.coastal-theme-ready.coastal-home-page .coastal-home-category-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--30a-space);
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-grid > a.coastal-home-category-card {
  min-width: 0;
  min-height: 270px;
  padding: 0;
  display: flex;
  flex-direction: column;
  color: var(--30a-ink);
  border: 2px solid var(--30a-keyline);
  border-radius: 0;
  background: linear-gradient(to bottom, var(--30a-navy) 0 var(--30a-cap-height), var(--30a-surface, var(--30a-oyster)) var(--30a-cap-height) 100%);
  box-shadow: var(--30a-shadow);
  text-decoration: none;
  transform: none;
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-grid > a.coastal-home-category-card:hover,
html body.coastal-theme-ready.coastal-home-page .coastal-home-category-grid > a.coastal-home-category-card:focus-visible {
  transform: translateY(-2px);
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-card > .category-card-logo-wrap {
  flex: 0 0 112px;
  width: 100%;
  height: 112px;
  min-height: 112px;
  margin: 0;
  padding: 14px 16px 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid rgba(8, 47, 79, .22);
  background: rgba(255, 255, 255, .13);
  box-shadow: none;
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-card .category-card-logo-wrap picture {
  width: 82px;
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-card .category-card-logo {
  width: 82px;
  height: 82px;
  max-width: 82px;
  max-height: 82px;
  display: block;
  object-fit: contain;
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-card > :last-child {
  flex: 1 1 auto;
  margin: 0;
  padding: 14px 16px 16px;
  background: transparent;
  border: 0;
}

html body.coastal-theme-ready.coastal-home-page .coastal-home-category-card :is(h2, p) {
  color: var(--30a-ink);
  text-shadow: none;
}

@media (max-width: 1000px) {
  html body.coastal-theme-ready.coastal-home-page .coastal-home-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html body.coastal-theme-ready.canonical-tpl-events .events-hero {
    grid-template-columns: minmax(128px, 168px) minmax(0, 1fr);
  }

  html body.coastal-theme-ready.canonical-tpl-events .events-hero > .hero-stats {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner {
    grid-template-columns: minmax(128px, 168px) minmax(0, 1fr);
  }

  html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner > .hero-checklist {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  html body.coastal-theme-ready .coastal-category-hero-logo,
  html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner > .coastal-category-hero-logo {
    width: 112px;
    height: 112px;
  }

  html body.coastal-theme-ready.coastal-home-page .coastal-home-category-grid,
  html body.coastal-theme-ready.canonical-tpl-events .events-hero,
  html body.coastal-theme-ready.canonical-tpl-town-hubs .hub-hero,
  html body.coastal-theme-ready.canonical-tpl-bike-hub .bike-hero,
  html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner {
    grid-template-columns: 1fr;
  }

  html body.coastal-theme-ready.canonical-tpl-events .events-hero > *,
  html body.coastal-theme-ready.canonical-tpl-town-hubs .hub-hero > *,
  html body.coastal-theme-ready.canonical-tpl-bike-hub .bike-hero > *,
  html body.coastal-theme-ready.canonical-tpl-guides .guide-hero-inner > * {
    grid-column: 1;
    grid-row: auto;
  }

  html body.coastal-theme-ready.canonical-tpl-events .events-hero > .hero-stats {
    grid-template-columns: 1fr;
  }
}


/* 2026-08-23 canonical category-map + responsive comparison-table refinement.
   Category colors are semantic shared tokens so map summaries/panels and future
   category surfaces use the same six-color system without page-local patches. */
.coastal-category-food {
  --30a-surface: var(--30a-coral);
  --30a-control: var(--30a-coral-button);
}
.coastal-category-lodging {
  --30a-surface: var(--30a-blue);
  --30a-control: var(--30a-blue-button);
}
.coastal-category-attractions {
  --30a-surface: var(--30a-aqua);
  --30a-control: var(--30a-aqua-button);
}
.coastal-category-shopping {
  --30a-surface: var(--30a-sage);
  --30a-control: var(--30a-sage-button);
}

body.canonical-tpl-map.coastal-theme-ready #map-summary .map-summary-card {
  position: relative;
  min-width: 0;
  padding: var(--30a-card-pad);
  color: var(--30a-ink);
  border: 2px solid var(--30a-keyline);
  border-top: 5px solid var(--30a-navy);
  background: var(--30a-surface);
  box-shadow: 0 8px 18px rgba(5,36,60,.11);
}

/* Keep the directory-map introduction as the neutral utility panel, while the
   four map categories themselves carry their category color. Map tiles remain
   untinted so roads, labels, and marker contrast stay readable. */
html body.canonical-tpl-map.coastal-theme-ready .category-map-shell.coastal-panel[class*="coastal-category-"] {
  background: var(--30a-surface);
}
body.canonical-tpl-map.coastal-theme-ready .category-map-shell[class*="coastal-category-"] .map-count-pill {
  color: var(--30a-navy);
  border: 1px solid rgba(8,47,79,.42);
  background: var(--30a-control);
}
body.canonical-tpl-map.coastal-theme-ready .category-map-shell .category-map {
  border: 2px solid rgba(255,255,255,.94);
  background: var(--30a-panel);
}

/* Beach Access comparison: preserve the full desktop comparison table, but at
   phone/tablet widths turn each access row into a self-contained readable card
   instead of forcing a wide horizontal scroll surface. */
body.canonical-tpl-town-hubs .access-table { min-width: 900px; }
@media (max-width: 900px) {
  body.canonical-tpl-town-hubs .table-wrap {
    overflow: visible;
  }
  body.canonical-tpl-town-hubs .access-table {
    display: block;
    width: 100%;
    min-width: 0;
    border-collapse: separate;
    border-spacing: 0;
  }
  body.canonical-tpl-town-hubs .access-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  body.canonical-tpl-town-hubs .access-table tbody {
    display: grid;
    gap: var(--30a-space);
  }
  body.canonical-tpl-town-hubs .access-table tr {
    display: block;
    min-width: 0;
    border: 2px solid var(--30a-keyline);
    border-top: 5px solid var(--30a-navy);
    box-shadow: 0 8px 18px rgba(5,36,60,.11);
  }
  body.canonical-tpl-town-hubs .access-table tr:nth-child(6n+1) { background: var(--30a-blue); }
  body.canonical-tpl-town-hubs .access-table tr:nth-child(6n+2) { background: var(--30a-aqua); }
  body.canonical-tpl-town-hubs .access-table tr:nth-child(6n+3) { background: var(--30a-coral); }
  body.canonical-tpl-town-hubs .access-table tr:nth-child(6n+4) { background: var(--30a-sand); }
  body.canonical-tpl-town-hubs .access-table tr:nth-child(6n+5) { background: var(--30a-sage); }
  body.canonical-tpl-town-hubs .access-table tr:nth-child(6n+6) { background: var(--30a-oyster); }
  body.canonical-tpl-town-hubs .access-table td {
    display: grid;
    grid-template-columns: minmax(88px, 31%) minmax(0, 1fr);
    gap: .7rem;
    align-items: start;
    width: 100%;
    min-width: 0;
    padding: .68rem .75rem;
    color: var(--30a-ink);
    border: 0;
    border-bottom: 1px solid rgba(8,47,79,.16);
    overflow-wrap: anywhere;
  }
  body.canonical-tpl-town-hubs .access-table td:last-child { border-bottom: 0; }
  body.canonical-tpl-town-hubs .access-table td::before {
    color: var(--30a-navy);
    font-size: .72rem;
    line-height: 1.25;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  body.canonical-tpl-town-hubs .access-table td:nth-child(1)::before { content: "Access"; }
  body.canonical-tpl-town-hubs .access-table td:nth-child(2)::before { content: "Parking"; }
  body.canonical-tpl-town-hubs .access-table td:nth-child(3)::before { content: "Accessibility"; }
  body.canonical-tpl-town-hubs .access-table td:nth-child(4)::before { content: "Rentals / service"; }
  body.canonical-tpl-town-hubs .access-table td:nth-child(5)::before { content: "Official source"; }
  body.canonical-tpl-town-hubs .access-table .official-link {
    justify-self: start;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  body.canonical-tpl-town-hubs .access-table td {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: .55rem;
    padding: .62rem .65rem;
  }
}
