/* MXTowns v113 — consolidated design system, no legacy navigation overrides */
:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;--ink:#173443;--paper:#fffaf6;--a:#c21875;--b:#009ead;--c:#ffd34e;--radius:22px;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:0;background:var(--paper);color:var(--ink);line-height:1.55}a{color:inherit}button,input,select{font:inherit}svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #136db0;outline-offset:3px}
.palette-0{--a:#c21875;--b:#e63c88;--c:#ffd34e;--paper:#fff8fc;--ink:#243344}
.palette-1{--a:#009ead;--b:#1676d2;--c:#ffd34e;--paper:#f2ffff;--ink:#173848}
.palette-2{--a:#1676d2;--b:#804bc4;--c:#ffd34e;--paper:#f4f9ff;--ink:#17354a}
.palette-3{--a:#159b65;--b:#009ead;--c:#ffd34e;--paper:#f3fff9;--ink:#153d32}
.palette-4{--a:#ef6056;--b:#f28b28;--c:#ffd34e;--paper:#fff8f3;--ink:#49332e}
.palette-5{--a:#f28b28;--b:#ef6056;--c:#ffd34e;--paper:#fffaf2;--ink:#3f3126}
.palette-6{--a:#804bc4;--b:#e63c88;--c:#ffd34e;--paper:#fbf6ff;--ink:#302d49}
.palette-7{--a:#e63c88;--b:#c21875;--c:#ffd34e;--paper:#fff7fb;--ink:#3d2940}
.palette-8{--a:#1676d2;--b:#009ead;--c:#ffd34e;--paper:#f5fcff;--ink:#19394a}
/* Header: approved two bars + one planner row on small viewports */
.utility{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.6rem,2vw,1.4rem);padding:.45rem max(1rem,calc((100vw - 1180px)/2));min-height:49px;background:var(--a);color:white}
.utility a{display:inline-flex;gap:.35rem;align-items:center;text-decoration:none;font-weight:750;font-size:clamp(.78rem,1.6vw,.94rem);min-height:38px;white-space:nowrap}.utility a span{display:inline-flex;align-items:center}.utility svg{width:19px;height:19px}
.mast{position:relative;z-index:30;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.7rem max(1rem,calc((100vw - 1180px)/2));box-shadow:0 2px 14px #17344312}
.identity{display:inline-flex;gap:.6rem;align-items:center;min-width:0;font-size:clamp(1.2rem,2.5vw,1.7rem);font-weight:850;letter-spacing:-.045em;text-decoration:none;white-space:nowrap}.mark{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:13px;background:var(--a);color:#fff;font-size:1rem;letter-spacing:0}
.mast nav{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;min-width:0}.mast details{position:relative}.mast summary,.search-trigger{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid #d5e0e4;background:#fff;color:#173443;border-radius:12px;min-height:44px;padding:.55rem .7rem;cursor:pointer;font-weight:750;white-space:nowrap}.mast summary{list-style:none}.mast summary::-webkit-details-marker{display:none}.mast details[open]>summary{border-color:var(--a);background:#fff3f8}.search-trigger{width:44px;padding:0}.search-trigger svg{width:22px;height:22px}
.mast .menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;display:grid;min-width:175px;max-width:min(300px,calc(100vw - 24px));max-height:55dvh;overflow:auto;padding:.4rem;background:white;border:1px solid #d5e0e4;border-radius:14px;box-shadow:0 16px 32px #142f4930}.mast .menu a{display:flex;align-items:center;min-height:44px;padding:.6rem .8rem;text-decoration:none;border-radius:8px}.mast .menu a:hover,.mast .menu a:focus-visible{background:#f5eef5}
.planner-nav{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:45px;padding:.5rem .85rem;border-radius:12px;background:linear-gradient(105deg,#087fc5,#14b8ae);color:#fff;text-decoration:none;font-size:.83rem;font-weight:800;white-space:nowrap}.plan-icons{display:inline-flex;align-items:center;gap:.2rem;flex:none}.plan-icons svg{width:18px;height:18px}.nav-small{font-size:.85rem;text-decoration:none}
/* Search, hidden by default; always below navigation */
.discovery{position:relative;z-index:20;background:#fff;padding:1.1rem max(1rem,calc((100vw - 1180px)/2));border-bottom:1px solid #d8e2e6;box-shadow:0 10px 18px #17344312}.discovery[hidden]{display:none!important}.finder{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto auto;gap:.5rem;align-items:end}.finder label{font-size:.84rem;font-weight:800;grid-row:1}.finder label:first-child{grid-column:1}.finder label:nth-of-type(2){grid-column:2}.finder label:nth-of-type(3){grid-column:3}.finder input,.finder select,.finder button,.trip-form input,.trip-form select,.trip-form button{min-width:0;min-height:44px;border:1px solid #b6c9cb;border-radius:10px;padding:.5rem .7rem;background:#fff;color:#173443}.finder button{cursor:pointer}.finder button[type=submit]{background:#173f58;color:#fff}.finder p,.live-results{grid-column:1/-1}.live-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;max-height:300px;overflow:auto}.live-item{display:grid;gap:.2rem;padding:.6rem .75rem;border:1px solid #d1e0e5;border-radius:10px;text-decoration:none;background:#fff}.live-item small{color:#506574}
/* Main editorial templates */
main{min-width:0}.hero,.subhero{position:relative;overflow:hidden;background:linear-gradient(118deg,var(--a),var(--b));color:#fff}.hero{min-height:380px;display:flex;align-items:center;padding:clamp(3rem,7vw,5.5rem) max(1rem,calc((100vw - 1180px)/2))}.hero-inner{max-width:780px}.kicker,.eyebrow{display:inline-block;font-size:.77rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.hero h1,.subhero h1{font-size:clamp(2.5rem,6vw,5rem);line-height:1.08;letter-spacing:-.045em;margin:.7rem 0 1rem}.hero p,.subhero p{font-size:clamp(1.06rem,2vw,1.32rem);line-height:1.6;max-width:740px}.hero-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:999px;padding:.75rem 1.15rem;text-decoration:none;font-weight:800}.btn.gold{background:#ffd34e;color:#193443}.btn.outline{border:2px solid #fff;color:#fff}.btn.dark{background:#173f58;color:#fff}.subhero{padding:clamp(2.8rem,6vw,5rem) max(1rem,calc((100vw - 1180px)/2))}.subhero.place{background:linear-gradient(115deg,var(--a),var(--b))}.breadcrumbs{font-size:.85rem;margin-bottom:1.3rem;overflow-wrap:anywhere}.breadcrumbs a{font-weight:750}.section{max-width:1180px;margin:auto;padding:clamp(2.4rem,5vw,4rem) 1rem}.section h2{font-size:clamp(1.7rem,3.5vw,2.6rem);line-height:1.16;letter-spacing:-.03em;margin:.45rem 0 1.2rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.lede{max-width:720px;color:#45606d}.count{font-size:.85rem;color:#506574}.textlink{font-weight:800;color:#075f87}
.tour-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.tour-card{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius);background:#fff;box-shadow:0 7px 24px #17344316;border:1px solid #dbe4e8}.tour-visual{display:flex;align-items:flex-end;min-height:195px;padding:1.3rem;background:linear-gradient(125deg,var(--a),var(--b));color:#fff;text-decoration:none;font-size:1.55rem;font-weight:850;line-height:1.2}.tour-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:1.2rem}.card-category{color:#9b1e62;text-transform:uppercase;font-size:.75rem;font-weight:800}.tour-copy h3{margin:.3rem 0;font-size:1.25rem}.tour-copy p{color:#45606d;line-height:1.55;overflow-wrap:anywhere}.tour-copy>a{margin-top:auto;font-weight:800;color:#086b93;text-decoration-thickness:1px}
.tone0{background:linear-gradient(125deg,#c21875,#e63c88)}.tone1{background:linear-gradient(125deg,#009ead,#1676d2)}.tone2{background:linear-gradient(125deg,#159b65,#009ead)}.tone3{background:linear-gradient(125deg,#804bc4,#e63c88)}.tone4{background:linear-gradient(125deg,#ef6056,#f28b28)}.tone5{background:linear-gradient(125deg,#1676d2,#009ead)}.tone6{background:linear-gradient(125deg,#e63c88,#804bc4)}.tone7{background:linear-gradient(125deg,#159b65,#1676d2)}.tone8{background:linear-gradient(125deg,#f28b28,#ef6056)}
.destination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.destination{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;min-height:148px;border-radius:18px;padding:1.15rem;color:white;text-decoration:none;box-shadow:0 6px 16px #17344312}.card-text{display:grid;gap:.3rem}.card-text strong{font-size:1.3rem}.card-text small{font-size:.83rem}.card-index{position:absolute;top:.7rem;right:.8rem;opacity:.75;font-size:.8rem}
.article{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.story{display:grid;gap:1rem}.story-block{padding:clamp(1.1rem,3vw,1.7rem);border:1px solid #dfe7e9;border-radius:20px;background:white;box-shadow:0 6px 18px #1734430b}.story-block h2{font-size:1.55rem}.story-block p{line-height:1.85;overflow-wrap:anywhere}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips span{display:inline-flex;align-items:center;min-height:36px;padding:.4rem .8rem;border-radius:999px;background:#eaf5f4}.search{margin:1rem 0 1.6rem;max-width:650px}.search label{display:block;font-weight:800}.search div{display:flex;gap:.5rem}.search input{flex:1;min-width:0;padding:.7rem;border:1px solid #c3d1d4;border-radius:10px}.search button{border:0;border-radius:10px;padding:.7rem 1rem;background:#173f58;color:white;cursor:pointer}
.ad-slot{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.55rem;min-height:160px;padding:1.5rem;border-radius:18px;background:linear-gradient(110deg,#007fa0,#17b9a4);color:#fff}.ad-slot strong{font-size:clamp(1.2rem,3vw,1.8rem)}.ad-slot a{padding:.5rem .9rem;border-radius:999px;background:white;color:#164254;text-decoration:none;font-weight:750}.adlabel{font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}.ad-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.ad-slot.square{min-height:200px}
/* Other existing routes: planner, references, local editorial */
.planner-page{max-width:1100px}.trip-form{background:#fff;border:1px solid #d5e0e0;border-radius:20px;padding:1.4rem}.trip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.trip-grid label,.trip-form>label{display:flex;flex-direction:column;gap:.4rem;font-weight:750}.trip-options{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:1rem 0}.trip-options label{padding:.5rem .8rem;border:1px solid #c4d2d5;border-radius:999px}.trip-form h2{font-size:1.35rem;margin-top:1.5rem}.trip-form input[type=checkbox]{min-height:auto}.trip-form button{cursor:pointer}.trip-results{padding:1.1rem;background:#e9f7f5;border-radius:12px;margin-top:1.3rem}.trip-extras{margin-top:2rem}.reference-list{display:grid;gap:.7rem}.reference{display:flex;gap:1rem;padding:1.2rem;border-radius:14px;border:1px solid #dce5e7;background:#fff;overflow-wrap:anywhere}.reference:target{outline:3px solid #f28b28}.refnum{font-weight:900;color:#a51b61}.reference a{font-weight:700;color:#075f87}.local-stories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.local-story{background:#fff;padding:1.4rem;border-radius:16px;border-top:5px solid var(--a)}.local-story p{line-height:1.8}.homonyms{background:#fff;padding:1rem;border-radius:14px}.smallnav{display:flex;flex-wrap:wrap;gap:.5rem}.smallnav a{padding:.6rem .8rem;border-radius:999px;background:#eaf4f5}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.feature{background:#fff;border:1px solid #dce5e7;border-radius:16px;padding:1.5rem;text-decoration:none}.muted{color:#526975}.service-page{min-height:55vh}footer{padding:2.5rem max(1rem,calc((100vw - 1180px)/2));background:#173443;color:#fff}footer a{color:#fff}
@media(max-width:1100px){
 .mast{grid-template-columns:minmax(0,1fr) auto;column-gap:.4rem;row-gap:.65rem}
 .mast .identity{grid-column:1;grid-row:1;min-width:0}
 .mast nav{display:contents}
 .mast .search-trigger{grid-column:2;grid-row:1;justify-self:end;margin-right:calc(42px + 46px + .5rem)}
 .mast .nav-menu{grid-column:2;grid-row:1;justify-self:end;margin-right:calc(46px + .25rem)}
 .mast .lang-menu{grid-column:2;grid-row:1;justify-self:end}
 .mast .planner-nav{grid-column:1/-1;grid-row:2;width:100%;min-width:0;white-space:normal}
 .mast .nav-menu .menu{left:auto;right:0}
}
@media(max-width:760px){.tour-grid,.destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finder{grid-template-columns:repeat(2,minmax(0,1fr))}.finder label{grid-row:auto;grid-column:auto}.finder input,.finder p,.live-results{grid-column:1/-1}.live-results{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr}.mast .menu{max-width:calc(100vw - 24px)}}
@media(max-width:560px){
 .mast{grid-template-columns:minmax(0,1fr) auto;column-gap:.3rem;padding:.65rem .65rem}
 .identity{font-size:clamp(1.03rem,4.8vw,1.4rem);gap:.35rem;letter-spacing:-.045em}
 .mark{width:36px;height:36px;border-radius:10px;font-size:.9rem}
 .mast .search-trigger,.mast .nav-menu summary,.mast .lang-menu summary{min-height:38px;height:38px;border-radius:10px;padding:.3rem}
 .mast .search-trigger{width:38px;margin-right:calc(38px + 43px + .35rem)}
 .mast .nav-menu{margin-right:calc(43px + .15rem)}
 .mast .lang-menu summary{min-width:43px;font-size:.8rem;gap:.15rem}
 .mast .lang-menu svg{width:15px;height:15px}
 .mast .nav-menu summary{width:38px}
 .mast .nav-menu summary span{display:none}
 .mast .planner-nav{min-height:44px;padding:.55rem .35rem;font-size:.8rem}
 .mast .plan-icons svg{width:17px;height:17px}
 .utility{justify-content:center;gap:.65rem;padding:.3rem .4rem}.utility a{font-size:clamp(.7rem,3.1vw,.85rem);gap:.2rem}.utility svg{width:16px;height:16px}.mast summary{padding:.3rem}.mast .nav-menu .menu{width:min(270px,calc(100vw - 24px))}.mast .lang-menu .menu{width:155px;min-width:0;left:auto;right:0}.planner-nav{font-size:.84rem}.hero{min-height:340px;padding:3rem 1rem}.hero h1,.subhero h1{font-size:clamp(2.3rem,10vw,3.3rem)}.section{padding:2.4rem 1rem}.tour-grid,.destination-grid,.ad-row,.local-stories,.trip-grid{grid-template-columns:1fr}.tour-visual{min-height:150px}.finder{grid-template-columns:1fr}.finder>*{grid-column:1/-1!important}.trip-form{padding:1rem}.trip-form input,.trip-form select{max-width:100%}.search div{flex-wrap:wrap}.destination{min-height:115px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v114: SOLO plantilla de portada; posiciones publicitarias invariantes */
.home-template .home-eyebrow{display:block;font-size:.76rem;font-weight:850;letter-spacing:.11em;color:#9b1e62;margin-bottom:.45rem}
.home-template .section-heading{margin-bottom:1.1rem}
.home-template .home-ad-band{padding-top:1rem;padding-bottom:1rem}
.home-template .home-fixed-ad{width:100%;box-sizing:border-box;position:relative;overflow:hidden;isolation:isolate;contain:layout paint;min-height:180px}
.home-template .home-fixed-ad.square{min-height:210px}
.home-template .home-fixed-ad a{position:relative;z-index:1}
.home-template .tour-grid{align-items:stretch}
.home-template .tour-card{height:100%}
@media(max-width:560px){
 .home-template .home-ad-band{padding-top:.9rem;padding-bottom:.9rem}
 .home-template .home-fixed-ad{min-height:170px}
 .home-template .home-fixed-ad.square{min-height:190px}
}

@media(max-width:360px){.mast{padding:.55rem .45rem;column-gap:.1rem}.identity{font-size:1rem;gap:.25rem}.mark{width:32px;height:34px}.mast .search-trigger{width:35px;margin-right:calc(36px + 41px + .25rem)}.mast .nav-menu{margin-right:calc(41px + .1rem)}.mast .nav-menu summary{width:36px}.mast .lang-menu summary{min-width:41px}.mast .plan-icons svg{width:15px;height:15px}}

/* v117: canonical STATE template rules (replaces v116 block, no stacked overrides). */
.state-template{min-width:0}
.state-template-hero{position:relative;overflow:hidden}
.state-template-hero h1{max-width:100%;overflow-wrap:anywhere}
.state-template-hero .state-explore{display:inline-flex;align-items:center;min-height:44px;margin-top:1.1rem;padding:.65rem 1rem;border:2px solid currentColor;border-radius:99px;color:inherit;font-weight:750;text-decoration:none}
.state-template .state-eyebrow{display:block;color:#a21b69;font-size:.77rem;font-weight:850;letter-spacing:.11em;margin-bottom:.4rem}
.state-template .state-intro .section-heading{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;justify-content:space-between}
.state-template .state-intro .section-heading p{max-width:62ch}
.state-template .state-search{max-width:850px;margin:1.1rem 0 1.5rem}
.state-template .state-search input{min-width:0}
.state-template .state-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem;align-items:stretch}
/* v118: single authoritative state-card block, independent of state hero palette. */
.state-template .state-place-card{--card-a:#087fc5;--card-b:#009ead;--card-ink:#fff;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:20px;background:#fff;color:#173443;box-shadow:0 9px 28px #17384719;border:1px solid #dce7ea;isolation:isolate}
.state-template .state-hue-0{--card-a:#c21875;--card-b:#e63c88}
.state-template .state-hue-1{--card-a:#009ead;--card-b:#1676d2}
.state-template .state-hue-2{--card-a:#159b65;--card-b:#009ead}
.state-template .state-hue-3{--card-a:#804bc4;--card-b:#c21875}
.state-template .state-hue-4{--card-a:#ef6056;--card-b:#d43e68}
.state-template .state-hue-5{--card-a:#1676d2;--card-b:#804bc4}
.state-template .state-hue-6{--card-a:#e63c88;--card-b:#c21875}
.state-template .state-hue-7{--card-a:#159b65;--card-b:#1676d2}
.state-template .state-hue-8{--card-a:#bf551a;--card-b:#d43e68}
.state-template .state-place-top{display:flex;align-items:flex-start;min-height:94px;padding:1rem;box-sizing:border-box;background:linear-gradient(125deg,var(--card-a),var(--card-b));color:#fff}
.state-template .state-place-kind{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:800;border:1px solid #ffffff90;border-radius:99px;padding:.35rem .75rem;background:#00000030;color:#fff;max-width:100%;overflow-wrap:anywhere}
.state-template .state-place-kind svg{width:19px;height:19px;flex:none;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.state-template .state-place-body{padding:1.2rem;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:.55rem;background:#fff;color:#173443}
.state-template .state-place-body h3{margin:0;font-size:clamp(1.22rem,2vw,1.55rem);line-height:1.25;overflow-wrap:anywhere}
.state-template .state-place-geo{font-size:.88rem;color:#526c79;margin:0}
.state-template .state-place-desc{font-size:.94rem;line-height:1.55;color:#405864;margin:.2rem 0;flex:1}
.state-template .state-place-desc:empty{display:none}
.state-template .state-place-body a{margin-top:auto;font-weight:800;color:#075d80;min-height:44px;display:inline-flex;align-items:center;gap:.35rem;text-decoration:none}
.state-template .state-place-body a:hover{text-decoration:underline}
/* Four layouts; semantic DOM, link and source copy remain identical. */
.state-template .state-layout-solid{background:linear-gradient(145deg,var(--card-a),var(--card-b));border-color:transparent}
.state-template .state-layout-solid .state-place-top{background:transparent;min-height:60px;padding-bottom:0}
.state-template .state-layout-solid .state-place-body{background:transparent;color:#fff}
.state-template .state-layout-solid .state-place-geo,.state-template .state-layout-solid .state-place-desc,.state-template .state-layout-solid .state-place-body a{color:#fff}
.state-template .state-layout-rail{border-left:8px solid var(--card-a)}
.state-template .state-layout-rail .state-place-top{min-height:0;padding:.9rem 1.1rem 0;background:#fff;color:var(--card-a)}
.state-template .state-layout-rail .state-place-kind{color:#173443;border-color:#a8c2cf;background:#e9f4f8}
.state-template .state-layout-compact .state-place-top{min-height:60px}
.state-template .state-layout-compact .state-place-body{padding:1.45rem 1.2rem}
.state-template .state-ad-band{padding-top:1rem;padding-bottom:1rem}
.state-template .state-fixed-ad{box-sizing:border-box;position:relative;isolation:isolate;contain:layout paint;width:100%;min-height:180px}
.state-template .state-fixed-ad.square{min-height:210px}
.state-template .state-explore-more{padding-block:2rem}
.state-template .state-back-link{display:inline-flex;align-items:center;min-height:44px;font-weight:800}
@media(max-width:850px){.state-template .state-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .state-template .state-cards{grid-template-columns:minmax(0,1fr);gap:1rem}
 .state-template .state-place-top{min-height:78px}
 .state-template .state-place-body{padding:1.15rem}
 .state-template .state-fixed-ad{min-height:170px}
 .state-template .state-fixed-ad.square{min-height:190px}
 .state-template .state-search>div{display:flex;flex-wrap:wrap;gap:.5rem}
 .state-template .state-search input{flex:1 1 100%;width:100%}
 .state-template .state-search button{min-height:44px}
}

/* v119: compact state hero only. Does not affect home, localities, navigation, cards or ad slots. */
.state-template .state-template-hero{padding-top:clamp(1.75rem,3.6vw,3rem);padding-bottom:clamp(1.8rem,3.8vw,3.1rem)}
.state-template .state-template-hero .breadcrumbs{margin-bottom:.8rem}
.state-template .state-template-hero h1{margin:.35rem 0 .55rem;font-size:clamp(2.25rem,4.7vw,4rem);line-height:1.06}
.state-template .state-template-hero p{margin:.55rem 0 0;line-height:1.42;max-width:780px}
.state-template .state-template-hero .state-explore{margin-top:1rem}
@media(max-width:600px){
 .state-template .state-template-hero{padding:1.6rem 1rem 1.75rem}
 .state-template .state-template-hero .breadcrumbs{margin-bottom:.65rem}
 .state-template .state-template-hero .eyebrow{font-size:.73rem}
 .state-template .state-template-hero h1{font-size:clamp(2.15rem,9vw,2.85rem);margin:.3rem 0 .45rem}
 .state-template .state-template-hero p{font-size:1rem;line-height:1.45;margin:.5rem 0 0}
 .state-template .state-template-hero .state-explore{margin-top:.85rem;padding:.55rem .9rem;min-height:44px}
}

/* v121: state-only compact editorial mosaic; ad slots every six cards, never clustered. */
.state-template .state-mosaic{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;align-items:stretch}
.state-template .state-mosaic .state-place-card{border-radius:16px;min-height:0}
.state-template .state-mosaic .state-place-top{min-height:48px;padding:.65rem .8rem}
.state-template .state-mosaic .state-place-kind{font-size:.72rem;padding:.22rem .55rem}
.state-template .state-mosaic .state-place-kind svg{width:16px;height:16px}
.state-template .state-mosaic .state-place-body{padding:.8rem;gap:.35rem}
.state-template .state-mosaic .state-place-body h3{font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.25}
.state-template .state-mosaic .state-place-body a{font-size:.85rem;min-height:44px}
.state-template .state-mosaic .state-layout-solid .state-place-top{min-height:42px}
.state-template .state-mosaic .state-layout-rail .state-place-top{min-height:0;padding:.65rem .8rem 0}
.state-template .state-mosaic .state-layout-compact .state-place-top{min-height:42px}
.state-template .state-mosaic .state-layout-compact .state-place-body{padding:.8rem}
.state-template .state-mosaic-ad{grid-column:1/-1;margin:1rem 0;min-width:0}
.state-template .state-mosaic-ad .state-fixed-ad{min-height:175px}
@media(max-width:850px){.state-template .state-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .state-template .state-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
 .state-template .state-mosaic .state-place-top{min-height:40px;padding:.5rem}
 .state-template .state-mosaic .state-place-kind{font-size:.66rem;gap:.2rem;padding:.2rem .35rem}
 .state-template .state-mosaic .state-place-kind svg{width:14px;height:14px}
 .state-template .state-mosaic .state-place-body{padding:.65rem;gap:.25rem}
 .state-template .state-mosaic .state-place-body h3{font-size:1rem}
 .state-template .state-mosaic .state-place-body a{font-size:.78rem;line-height:1.2}
 .state-template .state-mosaic .state-place-desc{font-size:.8rem;line-height:1.35}
 .state-template .state-mosaic-ad{margin:.8rem 0}
 .state-template .state-mosaic-ad .state-fixed-ad{min-height:155px}
}

/* v122 — playful, accessible mixed mosaic. Preserve v121 hues and content. */
.home-template .home-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:stretch}
.home-template .home-mosaic-item{min-width:0}
.home-template .home-mosaic-item .tour-card{height:100%;min-width:0;border-radius:20px;overflow:hidden}
.home-template .home-mosaic-item .tour-visual{min-height:110px}
.home-template .home-mosaic-item .tour-copy{padding:1rem}
.home-template .home-shape-1 .tour-card{border-radius:30px 12px 24px 12px}
.home-template .home-shape-2 .tour-card{border-radius:12px 30px 12px 26px}
.home-template .home-shape-3 .tour-card{border-radius:26px 16px 26px 16px}
.home-template .home-shape-4 .tour-card{border-radius:12px 28px 24px 12px}
.home-template .home-mosaic-ad{grid-column:1/-1;min-width:0;margin:.55rem 0}
.home-template .home-mosaic-ad .home-fixed-ad,.state-template .state-mosaic-ad .state-fixed-ad{background:linear-gradient(118deg,#122b56 0%,#0d5a83 55%,#543b8d 100%);border:2px solid rgba(255,255,255,.22);box-shadow:0 15px 34px rgba(13,49,84,.18);min-height:205px;padding:1.7rem;position:relative;overflow:hidden}
.home-template .home-mosaic-ad .home-fixed-ad:before,.state-template .state-mosaic-ad .state-fixed-ad:before{content:'';position:absolute;right:-30px;top:-55px;width:170px;height:170px;border:25px solid rgba(255,255,255,.09);border-radius:32%;transform:rotate(24deg);pointer-events:none}
.home-template .home-mosaic-ad .adlabel,.state-template .state-mosaic-ad .adlabel{letter-spacing:.15em;font-weight:800}
.home-template .home-mosaic-ad strong,.state-template .state-mosaic-ad strong{font-size:clamp(1.3rem,3vw,2.2rem);max-width:28ch;line-height:1.2}
.home-template .home-mosaic-ad a,.state-template .state-mosaic-ad a{min-height:44px;display:inline-flex;align-items:center}
.home-template .home-ad-vertical{grid-column:2/3}
.home-template .home-ad-vertical .home-fixed-ad{min-height:270px;background:linear-gradient(150deg,#462278,#ae257a)}
.home-template .home-ad-offset{grid-column:1/3}
.home-template .home-ad-offset .home-fixed-ad{background:linear-gradient(120deg,#07536f,#087f90,#16416e)}
.state-template .state-mosaic .state-place-card{overflow:hidden;min-width:0}
.state-template .state-mosaic .state-geometry-1{border-radius:28px 12px 24px 12px}
.state-template .state-mosaic .state-geometry-2{border-radius:12px 28px 12px 24px}
.state-template .state-mosaic .state-geometry-3{border-radius:24px 12px 28px 12px}
.state-template .state-mosaic .state-geometry-4{border-radius:12px 24px 12px 28px}
.state-template .state-ad-variant-1{grid-column:2/3}
.state-template .state-ad-variant-1 .state-fixed-ad{min-height:245px;background:linear-gradient(145deg,#45247e,#ae277e)}
.state-template .state-ad-variant-2{grid-column:1/3}
.state-template .state-ad-variant-2 .state-fixed-ad{background:linear-gradient(110deg,#096a76,#0e8c99)}
.state-template .state-ad-variant-3{grid-column:2/4}
.state-template .state-ad-variant-3 .state-fixed-ad{background:linear-gradient(115deg,#223c87,#7450b4)}
.state-template .state-ad-variant-4 .state-fixed-ad{background:linear-gradient(110deg,#81335e,#ba4558)}
@media(max-width:850px){.home-template .home-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}.home-template .home-ad-vertical{grid-column:2/3}.home-template .home-ad-offset{grid-column:1/-1}.state-template .state-ad-variant-3{grid-column:1/-1}}
@media(max-width:600px){
 .home-template .home-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
 .home-template .home-mosaic-item .tour-visual{min-height:76px;padding:.6rem;font-size:.95rem}
 .home-template .home-mosaic-item .tour-copy{padding:.65rem}
 .home-template .home-mosaic-item .tour-copy h3{font-size:1rem;line-height:1.25;overflow-wrap:anywhere}
 .home-template .home-mosaic-item .tour-copy p{font-size:.8rem;line-height:1.35}
 .home-template .home-mosaic-item .tour-copy a{font-size:.85rem;min-height:44px;display:inline-flex;align-items:center}
 .home-template .home-mosaic-ad,.home-template .home-ad-vertical,.home-template .home-ad-offset{grid-column:1/-1}
 .home-template .home-mosaic-ad .home-fixed-ad,.state-template .state-mosaic-ad .state-fixed-ad{min-height:185px;padding:1.25rem}
 .state-template .state-mosaic-ad,.state-template .state-ad-variant-1,.state-template .state-ad-variant-2,.state-template .state-ad-variant-3{grid-column:1/-1}
 .state-template .state-mosaic .state-place-card{min-width:0}
}
@media(max-width:360px){.home-template .home-mosaic-item .tour-copy p{font-size:.76rem}}
