@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;1,500;1,600&display=swap');

:root { --paper:#fbfaf5; --ink:#0f3d3a; --ink-soft:#52666b; --teal:#005b4e; --teal-dark:#003d31; --coral:#c9a96e; --yellow:#e7b84b; --sage:#e1e9e4; --line:rgba(15,61,58,.16); --white:#fffdf7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; background:var(--paper); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
.page-shell { min-height:100vh; min-height:100dvh; max-width:1440px; margin:0 auto; padding:0 clamp(24px,5vw,78px); display:flex; flex-direction:column; overflow:hidden; }
.site-header { height:clamp(72px,10vh,104px); display:flex; align-items:center; justify-content:space-between; flex:none; }
.logo-link { display:block; width:clamp(145px,15vw,220px); line-height:0; transition:opacity .2s ease; }
.logo-link:hover { opacity:.7; }
.logo { display:block; width:100%; height:auto; }
.header-note { color:var(--ink-soft); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.landing { flex:1; min-height:0; display:grid; grid-template-columns:minmax(300px,.86fr) minmax(520px,1.14fr); align-items:center; gap:clamp(45px,8vw,140px); padding:clamp(20px,4vh,48px) 0 clamp(20px,4vh,48px); }
.welcome { max-width:510px; }
.eyebrow { margin:0 0 clamp(18px,3vh,28px); color:#a8854a; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2 { font-family:'Playfair Display',Georgia,serif; font-weight:500; letter-spacing:-.06em; }
h1 { margin:0 0 clamp(20px,3vh,30px); font-size:clamp(47px,5.9vw,86px); line-height:.97; }
h1 em { color:var(--coral); font-style:italic; }
.welcome-copy { max-width:410px; margin:0 0 clamp(24px,4vh,39px); color:var(--ink-soft); font-size:clamp(14px,1.25vw,17px); line-height:1.65; }
.small-note { color:var(--ink); font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.small-note span { color:var(--coral); font-size:17px; margin-left:5px; }
.location-area { width:100%; max-width:760px; justify-self:end; }
.location-heading { display:flex; align-items:center; gap:14px; margin:0 0 16px; }.location-heading h2 { margin:0; font-size:clamp(23px,2vw,31px); letter-spacing:-.04em; }.heading-line { height:1px; flex:1; background:var(--line); }
.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.location-card { min-height:clamp(220px,31vh,310px); padding:clamp(15px,2vw,23px); border-radius:14px; display:flex; flex-direction:column; position:relative; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease; }
.location-card:hover { transform:translateY(-6px); box-shadow:0 16px 28px rgba(15,61,58,.14); }.location-card:focus-visible { outline:3px solid var(--coral); outline-offset:3px; }
.location-denver { background:var(--sage); }.location-orange { color:var(--white); background:var(--teal); }.location-boulder { background:#e8cd9f; }
.card-number { font-size:10px; font-weight:700; letter-spacing:.1em; }.card-arrow { position:absolute; top:14px; right:14px; width:28px; height:28px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; transition:transform .25s ease; }.arrow-icon { display:block; width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; }.location-card:hover .card-arrow { transform:rotate(45deg); }
.card-state { margin-top:auto; margin-bottom:5px; font-size:10px; font-weight:700; letter-spacing:.13em; opacity:.7; text-transform:uppercase; }.card-city { max-width:190px; margin-bottom:clamp(15px,2.5vh,26px); font-family:'Playfair Display',Georgia,serif; font-size:clamp(27px,2.7vw,43px); line-height:.94; letter-spacing:-.06em; }.card-link { padding-top:12px; border-top:1px solid rgba(21,61,59,.25); font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.location-orange .card-link { border-color:rgba(255,253,249,.5); }.card-link b,.affiliate-link b { display:inline-flex; width:12px; height:12px; margin-left:4px; font-size:0; font-weight:400; vertical-align:-2px; align-items:center; justify-content:center; }.card-link b .arrow-icon,.affiliate-link b .arrow-icon { width:11px; height:11px; }
.affiliate-card { min-height:72px; margin-top:14px; padding:12px 16px; border:1px solid rgba(15,61,58,.2); border-radius:12px; display:flex; align-items:center; gap:12px; background:rgba(255,253,247,.58); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }.affiliate-card:hover { transform:translateY(-3px); border-color:var(--coral); box-shadow:0 12px 22px rgba(15,61,58,.1); }.affiliate-card:focus-visible { outline:3px solid var(--coral); outline-offset:3px; }.affiliate-mark { width:36px; height:36px; flex:none; border:1px solid var(--coral); border-radius:50%; display:grid; place-items:center; overflow:hidden; }.affiliate-mark img { width:29px; height:29px; object-fit:contain; display:block; }.affiliate-copy { display:flex; flex-direction:column; gap:3px; }.affiliate-kicker { color:#a8854a; font-size:9px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.affiliate-copy strong { font-family:'Playfair Display',Georgia,serif; font-size:20px; font-weight:500; letter-spacing:-.035em; }.affiliate-link { margin-left:auto; color:var(--teal); font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.affiliate-link b { margin-left:4px; font-size:15px; font-weight:400; }
.site-footer { flex:none; height:clamp(56px,8vh,76px); border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; color:var(--ink-soft); font-size:10px; }.site-footer span:first-child { color:var(--ink); font-weight:700; letter-spacing:.07em; text-transform:uppercase; }.site-footer span:last-child { white-space:nowrap; }
@media (max-width:900px) { .landing { grid-template-columns:1fr; gap:25px; align-content:center; }.welcome { max-width:600px; }.location-area { max-width:none; }.location-card { min-height:220px; } }
@media (max-width:620px) { .page-shell { padding:0 18px; }.site-header { height:63px; }.logo-link { width:142px; }.header-note { font-size:9px; letter-spacing:.06em; }.landing { padding:20px 0 18px; gap:22px; }.eyebrow { margin-bottom:15px; font-size:9px; }.welcome-copy { margin-bottom:20px; font-size:13px; line-height:1.5; }.small-note { font-size:9px; }h1 { font-size:clamp(42px,13vw,61px); margin-bottom:16px; }.location-heading { margin-bottom:11px; }.location-heading h2 { font-size:23px; }.location-grid { gap:7px; }.location-card { min-height:150px; padding:11px; border-radius:10px; }.card-arrow { top:9px; right:8px; width:21px; height:21px; }.card-arrow .arrow-icon { width:11px; height:11px; }.card-number { font-size:8px; }.card-state { margin-bottom:4px; font-size:7px; letter-spacing:.1em; }.card-city { margin-bottom:13px; font-size:clamp(20px,6vw,28px); }.card-link { padding-top:8px; font-size:7px; letter-spacing:0; }.card-link b,.affiliate-link b { width:10px; height:10px; }.card-link b .arrow-icon,.affiliate-link b .arrow-icon { width:10px; height:10px; }.affiliate-card { min-height:58px; margin-top:10px; padding:9px 11px; gap:9px; border-radius:9px; }.affiliate-mark { width:29px; height:29px; }.affiliate-mark img { width:23px; height:23px; }.affiliate-kicker { font-size:7px; }.affiliate-copy strong { font-size:16px; }.affiliate-link { font-size:7px; }.site-footer { height:47px; font-size:8px; gap:7px; }.site-footer span:nth-child(2) { display:none; } }
@media (max-height:700px) and (min-width:621px) { .site-header { height:70px; }.landing { padding:15px 0; }.welcome-copy { margin-bottom:20px; }.location-card { min-height:195px; }.site-footer { height:52px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.location-card,.card-arrow,.logo-link { transition:none; } }
