:root {
  --ink:#192c29; --green:#163c35; --green-2:#285c51; --cream:#fbf7ef;
  --sand:#f1e8d9; --sand-2:#e9dcc8; --copper:#b95332; --orange:#d9784a;
  --gold:#dfae58; --logo-blue:#101820; --muted:#63716c; --line:#d7d0c3; --white:#fff;
  --shadow:0 22px 70px rgba(22,60,53,.13);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--cream);font-family:var(--sans);font-size:16px;line-height:1.6;letter-spacing:-.006em}
main{overflow:clip} a{color:inherit;text-decoration:none} img,svg{display:block} img{max-width:100%} svg{width:1.2em;height:1.2em}
[hidden]{display:none!important}
:focus-visible{outline:2px solid #172f29;outline-offset:3px;box-shadow:0 0 0 3px #fff}
:where(main [id]){scroll-margin-top:90px}
.subnav ~ section[id]{scroll-margin-top:130px}
button,input,select,textarea{font:inherit} button,a{touch-action:manipulation}
.skip-link{position:absolute;left:-999px;top:8px;z-index:100;padding:.7rem 1rem;background:#fff}.skip-link:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.wrap{width:min(1200px,calc(100% - 56px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:30;height:76px;display:flex;align-items:center;gap:38px;padding-inline:max(28px,calc((100vw - 1280px)/2));border-bottom:1px solid var(--line);background:rgba(251,247,239,.96);backdrop-filter:blur(18px)}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--copper),transparent);opacity:.45}
.brand { display: inline-flex; align-items: center; align-self: center; color:var(--logo-blue); }
.brand-mark { width: 70px; height: 70px; flex: 0 0 auto; margin-inline-end: -1px; }
.brand-wordmark {
  display: grid;
  gap: 3px;
  padding-inline-start: 5px;
  border-inline-start: 3px solid var(--gold);
}
.brand strong {
  font: 700 1.78rem/.96 "Aptos Display", Aptos, "Segoe UI", sans-serif;
  letter-spacing: -.035em;
}
.brand .brand-name {
  color: var(--logo-blue);
  font: 700 .69rem/1.15 "Avenir Next", Avenir, "Century Gothic", var(--sans);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.site-header nav{display:flex;gap:30px;margin-left:auto}.site-header nav a{padding:26px 0 22px;border-bottom:3px solid transparent;font-size:.78rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.site-header nav .mobile-start{display:none}
.site-header nav a:hover{color:var(--copper)}.site-header nav a[aria-current=page]{color:var(--copper);border-color:var(--copper)}
.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--green);color:#fff;padding:.9rem 1.25rem;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.header-cta{border:1px solid var(--green);background:transparent;color:var(--green);padding:.7rem 1.1rem}.header-cta:hover,.button:hover{background:var(--copper);color:#fff;border-color:var(--copper)}.menu-button{display:none}
.edition-bar{height:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-inline:max(28px,calc((100vw - 1280px)/2));background:var(--green);color:#dfe8e5;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase}
.edition-center{color:#9db5ae}
.eyebrow{color:var(--copper);font-size:.7rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.eyebrow.light{color:#f1c68b}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--copper);font-size:.8rem;font-weight:900}.text-link svg{width:16px}
.button.secondary{margin-top:28px;border:1px solid var(--green);background:transparent;color:var(--green)}.button.pale{background:#f1d3a6;color:var(--green)}.button.secondary:hover{color:#fff}
.tag-row{display:flex;flex-wrap:wrap;gap:7px}.tag-row span,.tag-row a{padding:4px 8px;border:1px solid var(--line);border-radius:999px;font-size:.7rem}
.hero{min-height:690px;display:grid;grid-template-columns:1.08fr .92fr;border-bottom:1px solid var(--line);background:var(--cream)}
.hero-copy{min-width:0;padding:clamp(45px,5vw,75px) clamp(38px,6vw,110px)}
.hero-kicker{display:flex;align-items:center;justify-content:space-between;max-width:690px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.hero-kicker>span:last-child{color:var(--muted);font-family:var(--serif);font-size:.78rem;font-style:italic}
.hero-publication{display:grid;gap:4px}
.hero-publication small{color:var(--muted);font-size:.59rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.hero-publication small strong{color:var(--green);font-weight:900}
.hero-publication small a{color:var(--green);font-weight:900;text-decoration:underline;text-underline-offset:3px}
.hero h1,.page-hero h1,.city-hero h1,.article h1{font-family:var(--serif);font-weight:500;line-height:.92;letter-spacing:-.05em}
.hero h1{margin:24px 0 22px;font-size:clamp(4rem,5.8vw,6.3rem)}
.hero h1 em{position:relative;display:inline-block;color:var(--copper);font-weight:400}
.hero h1 em:after{content:"";position:absolute;left:2%;right:-2%;bottom:-8px;height:9px;background:var(--gold);clip-path:polygon(0 38%,100% 0,98% 70%,2% 100%);opacity:.85}
.hero-copy>p{max-width:620px;color:#53615d;font-family:var(--serif);font-size:1.1rem;line-height:1.5}
.hero-search{display:flex;align-items:center;max-width:650px;margin-top:16px;padding:6px 6px 6px 16px;border:0;border-bottom:2px solid var(--green);background:rgba(255,255,255,.64)}
.hero-actions{margin-top:18px}.hero-search:focus-within,.directory-tools label:focus-within{outline:2px solid var(--green);outline-offset:3px}
.hero-search svg{flex:0 0 auto;color:var(--copper)}.hero-search input{min-width:0;flex:1;padding:.85rem;border:0;outline:0;background:transparent}
.hero-search button{border:0;background:var(--green);color:#fff;padding:.85rem 1.4rem;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.popular{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:15px;color:var(--muted);font-size:.78rem}
.popular>span{color:var(--copper);font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.popular a{text-decoration:underline;text-underline-offset:4px}
.hero-art{position:relative;min-height:690px;margin:0;overflow:hidden;background:var(--green)}
.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,60,53,.18),transparent 38%),linear-gradient(0deg,rgba(12,36,31,.45),transparent 42%);pointer-events:none}
.hero-art>img{width:100%;height:100%;min-height:690px;object-fit:cover}
.hero-art figcaption{position:absolute;z-index:2;left:34px;bottom:42px;display:flex;flex-direction:column;padding:18px 21px;border-left:5px solid var(--gold);background:rgba(251,247,239,.94);box-shadow:var(--shadow)}
.hero-art figcaption strong{font-family:var(--serif);font-size:1.2rem}.hero-art figcaption span{color:var(--muted);font-size:.72rem;letter-spacing:.04em}
.photo-credit{position:absolute;z-index:2;right:18px;bottom:13px;color:rgba(255,255,255,.78);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase}
.trust-strip{display:flex;justify-content:center;flex-wrap:wrap;gap:50px;padding:17px 30px;border-bottom:1px solid #294942;background:#102e29;color:#e8ede9}
.trust-strip span{display:flex;align-items:center;gap:8px;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.trust-strip svg{flex:none;color:#f3c37e}
.section{padding:108px 0}.soft{background:#ece9e1}.warm{background:#efe2cd}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:38px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.section h2,.feature-story h2{margin:10px 0;font-family:var(--serif);font-size:clamp(2.6rem,4.3vw,4.5rem);font-weight:500;line-height:1.03;letter-spacing:-.045em}
.section-heading p{margin:5px 0;color:var(--muted);font-family:var(--serif);font-size:1.08rem}
.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);background:var(--line)}
.city-card{min-width:0;background:var(--cream);transition:transform .24s,box-shadow .24s}.city-card:hover{z-index:2;transform:translateY(-8px);box-shadow:var(--shadow)}
.city-card-image{position:relative;display:block;height:220px;overflow:hidden;background:var(--green)}
.city-card-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,46,41,.42),transparent 52%)}
.city-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.city-card:hover .city-card-image img{transform:scale(1.035)}
.city-card-image>.city-card-region{position:absolute;z-index:2;left:22px;bottom:16px;color:#fff;font-size:.65rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.city-graphic{position:relative;display:flex;align-items:flex-start;flex-direction:column;justify-content:center;gap:8px;width:100%;height:100%;overflow:hidden;padding:28px;background:linear-gradient(145deg,#153d39 10%,var(--accent) 140%);color:#fff}
.city-graphic:before{content:"";position:absolute;right:-10%;bottom:-15%;width:115%;height:55%;border-top:1px solid rgba(255,255,255,.4);border-radius:50%;transform:rotate(-10deg)}
.city-graphic-sun{position:absolute;top:-35%;right:-8%;width:62%;aspect-ratio:1;border:1px solid rgba(240,209,154,.55);border-radius:50%;box-shadow:0 0 0 30px rgba(240,209,154,.07),0 0 0 65px rgba(240,209,154,.045)}
.city-graphic-label,.city-graphic strong{position:relative;z-index:1}.city-graphic-label{color:#e7cb9e;font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.city-graphic strong{max-width:100%;font:500 clamp(2rem,3.1vw,3.3rem)/1.02 var(--serif);letter-spacing:-.035em;overflow-wrap:anywhere}
.city-hero-graphic{position:relative;height:270px;overflow:hidden;box-shadow:var(--shadow)}.city-hero-graphic .city-graphic{padding:40px}.city-hero-graphic .city-graphic strong{font-size:clamp(2.6rem,3.8vw,4.1rem)}
.city-graphic-caption{position:absolute;right:9px;bottom:7px;color:rgba(255,255,255,.8);font-size:.5rem;letter-spacing:.05em;text-transform:uppercase}
.city-card-copy{display:block;min-height:280px;padding:27px 30px 31px}.city-card h3{margin:9px 0;font-family:var(--serif);font-size:2.6rem;font-weight:500;letter-spacing:-.04em}
.city-card p{color:var(--muted);font-family:var(--serif);line-height:1.55}.city-card .text-link{margin-top:16px}
.city-index-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.city-index-grid .city-card h3{font-size:clamp(1.9rem,2.6vw,2.3rem);line-height:1.08}
.city-index-grid>.city-card:last-child:nth-child(4n + 1){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}
.city-index-grid>.city-card:last-child:nth-child(4n + 1) .city-card-image{height:100%;min-height:280px}
.city-index-grid>.city-card:last-child:nth-child(4n + 1) .city-card-copy{display:flex;flex-direction:column;justify-content:center;min-height:280px}
.section-links,.weekend-city-links,.weekend-next>div{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px}.section-links{justify-content:flex-end}.weekend-city-links{margin-bottom:32px}.weekend-hero h1{max-width:850px}.weekend-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:clamp(32px,6vw,88px)}.weekend-layout>div>h2{margin:16px 0;font-size:clamp(2rem,4vw,3.3rem)}.weekend-layout>div>p{max-width:680px;color:var(--muted);font-family:var(--serif);font-size:1.1rem;line-height:1.55}.weekend-next{margin-top:35px;padding:26px;border:1px solid var(--line);background:#fff}.weekend-next h3{margin:0 0 8px;font-family:var(--serif);font-size:1.7rem;font-weight:500}.weekend-next p{margin:0 0 20px;color:var(--muted)}.weekend-method{padding:28px;border-top:4px solid var(--copper);background:var(--sand)}.weekend-method h2{font-size:2.2rem}.weekend-method ol{padding-left:20px;line-height:1.6}.weekend-method li+li{margin-top:12px}.weekend-method a{font-size:.82rem;font-weight:800;text-decoration:underline}

.category-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;border:1px solid var(--line);background:var(--line)}
.category-card {
  min-height: 245px;
  padding: 28px 23px;
  background: var(--cream);
  transition: background-color 320ms ease, box-shadow 320ms ease;
}
.category-card:nth-child(even) { background: #f5efe4; }
.category-card>span,.service-icon{display:grid;place-items:center;width:50px;height:50px;border:1px solid var(--line);background:#fff;color:var(--copper)}
.category-card h3{margin:22px 0 8px;font-family:var(--serif);font-size:1.55rem;font-weight:500}.category-card p{color:var(--muted);font-family:var(--serif);font-size:.87rem;line-height:1.5}
.category-card:focus-visible {
  background-color: #eef0e7;
  outline-offset: -4px;
  box-shadow: none;
}
@media (hover: hover) {
  .category-card:hover {
    background-color: #eef0e7;
    box-shadow: inset 0 3px #a2b0a1;
  }
}
.feature-story{min-height:650px;display:grid;grid-template-columns:1fr 1fr;border-block:1px solid rgba(25,44,41,.12)}
.feature-visual{position:relative;overflow:hidden;padding:88px max(40px,calc((100vw - 1200px)/2));background:linear-gradient(145deg,#a9472a,#c9653d);color:#fff}
.feature-visual:before{content:"AZ";position:absolute;right:30px;top:10px;color:rgba(255,255,255,.05);font-family:var(--serif);font-size:17rem;line-height:1}
.feature-visual:after{content:"";position:absolute;right:-160px;bottom:-190px;width:420px;height:420px;border:80px solid rgba(255,255,255,.09);border-radius:50%}
.feature-number{margin-top:40px;font-family:var(--serif);font-size:14rem;font-style:italic;line-height:1}.feature-visual>span:last-child{display:block;max-width:230px;font-weight:800}
.feature-copy{padding:105px max(40px,calc((100vw - 1200px)/2)) 90px 80px;background:#efe2cd}.feature-copy>p{max-width:560px;color:#53615e;font-family:var(--serif);font-size:1.13rem;line-height:1.6}
.two-up{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.two-up>div:first-child p{max-width:500px;color:var(--muted)}
.site-footer{padding:40px max(25px,calc((100vw - 1200px)/2)) 18px;border-top:1px solid #34544d;background:#102d29;color:#dce5e1}
.footer-main{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:32px}.brand-footer{margin-bottom:6px;color:#fff}.footer-main>div{display:flex;flex-direction:column;gap:7px;font-size:.8rem;line-height:1.45}
.footer-main>div>strong{color:#e8ba72;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.footer-main p,.footer-main span{color:#9eb0ab}.footer-main p{margin:0}
.brand-footer { align-self: flex-start; color:#fff; }
.brand-footer .brand-wordmark,.brand-footer .brand-name { color:#fff; }
.footer-legal{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:14px;border-top:1px solid #31504a;color:#91a5a0;font-size:.7rem;letter-spacing:.035em}
.footer-legal a{text-decoration:underline;text-underline-offset:3px}.footer-legal button{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.page-hero,.city-hero{position:relative;padding:90px max(30px,calc((100vw - 1200px)/2));background:linear-gradient(110deg,#f1e8d9,#f8f4eb)}
.page-hero.compact{padding-top:75px;padding-bottom:75px}.page-hero:after{content:"ARIZONA";position:absolute;right:3vw;bottom:-.19em;color:rgba(185,83,50,.055);font-family:var(--serif);font-size:clamp(5rem,14vw,13rem);line-height:1;pointer-events:none}
.page-hero.dark{background:linear-gradient(135deg,#102e29,#1d4b42);color:#fff}.page-hero.dark:after{color:rgba(255,255,255,.035)}
.page-hero h1,.city-hero h1{position:relative;z-index:1;margin:15px 0;font-size:clamp(3.8rem,7.3vw,7rem)}
.page-hero>p,.city-hero>div>p{max-width:740px;color:var(--muted);font-family:var(--serif);font-size:1.25rem;line-height:1.55}.page-hero.dark p{color:#c7d3d0}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;color:var(--muted);font-size:.75rem}.source-panel{margin-top:40px;padding:25px;border-left:5px solid var(--copper);background:#f3ede2}.source-panel p{margin-bottom:0}
.city-hero{display:grid;grid-template-columns:1fr 430px;align-items:center;gap:75px;border-bottom:8px solid var(--accent)}.city-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-top:22px}.city-hero-stack{min-width:0}
.city-save{padding:8px 12px;border:1px solid var(--line);background:var(--cream);color:var(--green);cursor:pointer}
.city-save[aria-pressed=true]{background:var(--sand);border-color:var(--green)}
.city-save[aria-pressed=true]::before{content:"✓ ";font-weight:700}
.city-hero-stack figure{position:relative;height:270px;margin:0;overflow:hidden;background:var(--green);box-shadow:var(--shadow)}.city-hero-stack figure img{width:100%;height:100%;object-fit:cover}
.city-hero-stack figure figcaption{position:absolute;right:10px;bottom:7px;padding:3px 6px;background:rgba(16,46,41,.72);color:rgba(255,255,255,.84);font-size:.52rem;letter-spacing:.06em;text-transform:uppercase}
.city-forecast{position:relative;margin:-20px 16px 0;padding:16px 18px;background:#fff;box-shadow:var(--shadow)}
.city-forecast h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font:600 1.22rem/1.2 var(--serif)}
.city-forecast h2 svg{flex:none;color:var(--copper)}
.forecast-status{min-height:65px;margin:0;color:var(--muted);font-size:.82rem}
.forecast-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 10px;padding:0;list-style:none}
.forecast-periods li{display:grid;align-content:start;gap:3px;padding:7px;background:var(--cream);font-size:.7rem;line-height:1.3;overflow-wrap:anywhere}
.forecast-periods strong{font:600 1.25rem/1.1 var(--serif)}
.forecast-source{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:.68rem;color:var(--muted)}
.forecast-source a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:3px}

.subnav{position:sticky;top:76px;z-index:20;display:flex;justify-content:center;gap:30px;border-bottom:1px solid var(--line);background:rgba(251,247,239,.95);backdrop-filter:blur(14px)}
.subnav a{padding:14px;font-size:.66rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.updated{color:var(--muted);font-size:.72rem}
.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.guide-grid>a{padding:30px;border-top:3px solid var(--copper);background:#fff;box-shadow:0 9px 28px rgba(22,60,53,.06);transition:transform .24s,box-shadow .24s}
.guide-grid>a:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.guide-grid>a>span,.guide-grid small{color:var(--copper);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.guide-grid h2,.guide-grid h3{margin:12px 0;font-family:var(--serif);font-size:1.9rem;font-weight:500;line-height:1.1}.guide-grid p{color:var(--muted);font-family:var(--serif)}
.directory-hero{padding-block:clamp(24px,5vw,58px)}
.directory-hero::after{content:none}
.directory-hero h1{font-size:clamp(2.35rem,5.5vw,4.6rem)}
.directory-tools{margin:20px 0 14px}
.category-pills{margin-bottom:0}
.category-pills a{min-height:42px}
.directory-results{padding-top:clamp(28px,5vw,62px)}
.directory-results h2{font-size:clamp(1.8rem,4vw,3rem)}
.article-contents{margin:24px 0;padding:16px 20px;border:1px solid var(--line)}
.article-contents ul{margin:8px 0;padding-left:20px}
.article-contents a{text-decoration:underline;text-underline-offset:3px}
.article-jump {
  margin: 20px 0 8px;
  border: 1px solid var(--line);
  background: var(--white);
  font-size: .9rem;
}
.article-jump summary { padding: 12px 16px; cursor: pointer; font-weight: 750; }
.article-jump summary::marker { color: var(--copper); }
.article-jump ol { margin: 0 16px 14px; padding-left: 22px; }
.article-jump li + li { margin-top: 6px; }
.article-jump a, .article-sources a, .article footer a {
  color: var(--green);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.article-sources {
  margin: 18px 0 2px;
  padding: 12px 16px;
  border-left: 3px solid var(--copper);
  background: var(--sand);
  font-size: .875rem;
  line-height: 1.5;
}
.article-sources ul { margin: 5px 0; padding-left: 19px; }
.article-sources li + li { margin-top: 4px; }
.article-sources small { display: block; margin-top: 8px; color: var(--muted); font-size: .8rem; }
.article { width: min(720px, calc(100% - 40px)); margin: clamp(28px, 6vw, 76px) auto; }
.article header { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.article h1 {
  margin: 10px 0 12px;
  font-size: clamp(2.1rem, 5.3vw, 4.25rem);
  line-height: 1.04;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.article header > p { margin: 0 0 14px; color: var(--muted); font-size: clamp(1rem, 2.3vw, 1.18rem); line-height: 1.5; }
.byline { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--muted); font-size: .8rem; }
.article section { padding: 22px 0; }
.article section + section { border-top: 1px solid var(--line); }
.article section h2 {
  margin: 0 0 8px;
  font: 600 clamp(1.45rem, 3.5vw, 2rem)/1.18 var(--serif);
  letter-spacing: -.02em;
}
.article section p, .article section > ol, .article section > ul { font-size: clamp(1rem, 2vw, 1.1rem); line-height: 1.65; }
.article section p { margin: 0; }
.article section p + p { margin-top: 10px; }
.article footer { display: flex; justify-content: space-between; gap: 8px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.path-grid,.process,.value-flow{display:grid;gap:1px;border:1px solid var(--line);background:var(--line)}.path-grid,.process{grid-template-columns:repeat(2,1fr)}.value-flow{grid-template-columns:repeat(4,1fr)}
.path-grid a,.process article,.value-flow article{padding:30px;background:var(--cream)}.path-grid a:hover{background:#fff}.path-grid svg{width:40px;height:40px;color:var(--copper)}
.path-grid h2,.process h2{font-family:var(--serif);font-size:2rem;font-weight:500}.process article>span,.value-flow article>span{color:var(--copper);font-family:var(--serif);font-size:2.5rem;font-style:italic}
.value-flow h2{font-family:var(--serif);font-size:1.5rem;font-weight:500}.prose{max-width:820px}.prose h2{margin-top:45px;font-size:2.3rem}.prose p{font-family:var(--serif);font-size:1.2rem}.form-shell{max-width:720px}
.search-results{display:grid;gap:12px}.search-results a{display:block;padding:20px;border-left:4px solid var(--copper);background:#fff}.search-results h2{margin:0;font-size:1.4rem}.search-results p{margin:5px 0;color:var(--muted)}.empty-state{color:var(--muted)}

.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.local-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.local-guide-card{min-width:0;padding:30px;background:#fff}
.local-guide-card h3{margin:11px 0;font:500 clamp(1.55rem,2.4vw,2.1rem)/1.2 var(--serif)}
.local-guide-card p{max-width:62ch;margin:0 0 23px;color:#40524e;line-height:1.65}
.local-guide-card .local-guide-action{margin-top:-8px;padding-left:13px;border-left:3px solid var(--gold);color:var(--ink);font-size:.88rem}
.local-guide-sources{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px 16px;padding-top:13px;border-top:1px solid var(--line);font-size:.75rem}
.local-guide-sources strong{width:100%;color:var(--green);font-size:.64rem;letter-spacing:.11em;text-transform:uppercase}
.local-guide-sources a{display:inline-flex;align-items:baseline;gap:3px;color:var(--copper);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.local-guide-sources svg{width:13px;height:13px}
.local-guide-reviewed{margin:16px 0 0;color:var(--muted);font-size:.76rem}.local-guide-reviewed a{text-decoration:underline;text-underline-offset:3px}
.civic-section{border-top:1px solid var(--line)}
.civic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.civic-card{display:flex;min-width:0;flex-direction:column;padding:27px;border:1px solid var(--line);background:#fff}
.civic-card h3{margin:10px 0;font:500 clamp(1.45rem,2.2vw,1.85rem)/1.18 var(--serif)}
.civic-card p{margin:0 0 20px;color:var(--muted);font-size:.9rem;line-height:1.6}
.civic-links{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.civic-links a{display:inline-flex;align-items:baseline;gap:4px;color:var(--copper);font-size:.78rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.civic-links svg{width:14px;height:14px}
.civic-reviewed{margin:16px 0 0;color:var(--muted);font-size:.76rem;line-height:1.55}.civic-reviewed a{text-decoration:underline;text-underline-offset:3px}
.resource-card{min-width:0;padding:27px;border-top:3px solid var(--green);background:#fff;box-shadow:0 9px 28px rgba(22,60,53,.06)}
.resource-card h3,.official-panel h3{margin:12px 0;font:500 1.55rem/1.2 var(--serif)}
.resource-card h3 a{display:inline-flex;align-items:baseline;gap:6px}.resource-card h3 a:hover,.resource-card h3 a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.resource-card h3 svg{flex:none;width:17px;height:17px;color:var(--copper)}
.resource-card p,.official-panel p{margin:0;color:var(--muted);font-size:.9rem}
.official-panel{padding:30px;border-top:4px solid var(--copper);background:#fff}.official-panel .button{margin-top:22px}
.directory-coming{padding:clamp(25px,5vw,55px);border:1px solid var(--line);background:#fff}
.directory-coming h2{margin:9px 0;font:500 clamp(2rem,4vw,3.5rem)/1.1 var(--serif)}
.directory-coming p{max-width:680px;color:var(--muted)}
.directory-next{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin:24px 0 6px}
.directory-results .category-grid{margin-top:38px}
.source-panel strong{font-family:var(--serif);font-size:1.35rem;font-weight:500}.source-panel a{display:inline-block;margin-top:12px;color:var(--copper);font-size:.82rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}
.footer-main a:not(.brand-footer):hover{text-decoration:underline;text-underline-offset:3px}
.footer-main>div:last-child a:first-of-type{font-weight:800;color:#fff}
.publisher-social{display:inline-flex;align-items:center;gap:8px}.publisher-social span{display:grid;place-items:center;width:18px;height:18px;border-radius:2px;background:#d3e4e9;color:#102d29;font:900 .7rem/1 var(--sans);letter-spacing:-.04em}
.best-intro{max-width:700px;color:var(--muted);font-family:var(--serif);font-size:1.1rem}
.city-service-links{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.city-service-links .button{margin-top:28px}
@media (max-width:1040px){
  .site-header nav{position:absolute;top:76px;left:0;right:0;display:none;flex-direction:column;gap:0;max-height:calc(100dvh - 76px);overflow-y:auto;padding:15px 25px;border-bottom:1px solid var(--line);background:var(--cream)}
  .site-header nav.open{display:flex}.site-header nav .mobile-start{display:block}.site-header nav a{padding:12px}.menu-button{display:block;margin-left:auto;padding:7px 10px;border:1px solid var(--line);background:transparent}.header-cta,.edition-center{display:none}
  .hero{grid-template-columns:1fr}.hero-copy{padding-inline:max(30px,calc((100vw - 820px)/2))}.hero-art,.hero-art>img{min-height:520px}
  .city-grid,.city-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.city-card:nth-child(odd):last-child{grid-column:1/-1}.category-grid,.resource-grid{grid-template-columns:repeat(2,1fr)}
  .civic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.civic-card:last-child{grid-column:1/-1}
  .feature-story,.two-up,.city-hero,.weekend-layout{grid-template-columns:1fr}.city-hero{align-items:start}.city-hero-stack,.weekend-method{max-width:660px}.feature-copy{padding:80px 40px}
  .footer-main{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:680px){
  .site-header{height:70px;gap:12px;padding-inline:16px}.site-header nav{top:70px;max-height:calc(100dvh - 70px)}.brand-mark{width:58px;height:58px}.brand strong{font-size:1.55rem}
  .edition-bar{height:30px;justify-content:center;padding-inline:16px;text-align:center}.edition-bar span:last-child{display:none}
  .wrap{width:min(100% - 32px,1200px)}.hero-copy{padding:30px 20px 26px}.hero-kicker{justify-content:center;text-align:center}.hero-publication{width:100%;justify-items:center}.hero h1{margin-block:20px;font-size:clamp(2.65rem,10vw,3.8rem);text-align:center}.hero-copy>p{font-size:.98rem}.hero-actions{text-align:center}
  .hero-search{padding-left:10px}.hero-search input{padding:10px 6px}.hero-search button{padding:10px 12px}
  .popular{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:14px}.popular>span{grid-column:1/-1}.popular a{display:grid;place-items:center;min-height:44px;padding:5px 4px;border:1px solid var(--line);background:#fff;color:var(--green);font-size:.72rem;line-height:1.25;text-align:center;text-decoration:none}
  .hero-art,.hero-art>img{min-height:290px}.hero-art>img{height:290px}.hero-art figcaption{left:20px;bottom:34px;padding:10px 13px}
  .trust-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:14px 16px}.trust-strip span{font-size:.61rem;letter-spacing:.04em}
  .section{padding:48px 0}.section-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:24px;padding-bottom:14px}.section h2,.feature-story h2{font-size:clamp(1.95rem,7.2vw,2.7rem)}
  .city-grid,.city-index-grid,.category-grid,.resource-grid,.local-guide-grid,.guide-grid,.path-grid,.process,.civic-grid{grid-template-columns:1fr}.local-guide-card,.civic-card{padding:23px}.city-card:nth-child(odd):last-child,.civic-card:last-child{grid-column:auto}.city-index-grid>.city-card:last-child:nth-child(4n + 1){display:block;grid-column:auto}.city-index-grid>.city-card:last-child:nth-child(4n + 1) .city-card-image{height:220px;min-height:0}.city-index-grid>.city-card:last-child:nth-child(4n + 1) .city-card-copy{display:block;min-height:0}.city-card-copy,.category-card{min-height:0;padding:20px}.city-card h3{font-size:2rem}.guide-grid>a{padding:20px}.guide-grid h2,.guide-grid h3{font-size:1.55rem}
  .feature-story{display:block}.feature-visual{padding:60px 30px}.feature-number{font-size:9rem}.feature-copy{padding:60px 30px}.two-up{gap:35px}
  .site-footer{padding:30px 16px 16px}.footer-main{grid-template-columns:1fr;gap:20px}.footer-main>div{gap:6px}.brand-footer{margin-bottom:4px}.footer-legal{flex-direction:column;gap:6px;margin-top:22px;padding-top:12px}
  .page-hero,.city-hero{padding:48px 20px}.page-hero.compact{padding:42px 20px}.cities-index-hero{text-align:center}.cities-index-hero>p{margin-inline:auto}.page-hero h1,.city-hero h1{font-size:clamp(2.25rem,8.7vw,3.3rem);overflow-wrap:anywhere}.city-hero{gap:24px}.city-hero h1{font-size:clamp(3rem,14vw,4.5rem);text-align:center}.city-hero-stack figure,.city-hero-graphic{height:230px}.city-forecast{margin-inline:8px;padding:12px}.city-actions>.button{flex-basis:100%}
  .subnav{top:70px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding-inline:8px}.subnav a{display:grid;place-items:center;min-height:48px;padding:8px 3px;font-size:.72rem;line-height:1.25;letter-spacing:0;text-align:center;text-transform:none}.subnav a+a{border-inline-start:1px solid var(--line)}
  .section-links{justify-content:flex-start}.weekend-city-links{align-items:stretch;flex-direction:column}.weekend-city-links .button{width:100%}.weekend-layout{gap:26px}.weekend-next,.weekend-method{padding:20px}
  .directory-hero{padding:28px 20px}.directory-results{padding-top:30px}.directory-next{align-items:stretch;flex-direction:column}.directory-next .button{width:100%}
  .city-service-links{align-items:stretch;flex-direction:column;gap:16px}.city-service-links .button{margin-top:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
