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

:root { color-scheme: light; --ink:#123c2f; --muted:#3f5f54; --mint:#e5f6e9; --mint-light:#f3fbf5; --mint-mid:#ccebd6; --green:#1f5d46; --line:#bfd9c8; --cream:#fafcf8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; font-size:1rem; line-height:1.65; }
img { display:block; max-width:100%; }
a { color:inherit; }
a:focus-visible { outline:3px solid #1e694b; outline-offset:4px; }
.skip-link { position:absolute; left:1rem; top:-5rem; z-index:10; padding:.6rem 1rem; background:#fff; }
.skip-link:focus { top:1rem; }
.wrap { width:min(1180px, calc(100% - 3rem)); margin-inline:auto; }
.site-header { position:relative; z-index:2; background:#e5f6e9; border-bottom:1px solid #c7dfcf; }
.header-inner { width:min(1320px,calc(100% - 3rem)); min-height:82px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:inline-flex; gap:.55rem; align-items:center; text-decoration:none; font-family:'DM Serif Display',Georgia,serif; font-size:1.65rem; white-space:nowrap; }
.brand-leaf { font-family:Arial,sans-serif; font-weight:400; font-size:1.1rem; color:#5c9470; transform:rotate(-23deg); }
nav { display:flex; gap:clamp(1rem,3vw,2.6rem); align-items:center; }
nav a { text-decoration:none; font-size:.94rem; font-weight:700; }
nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.hero { position:relative; min-height:650px; isolation:isolate; display:flex; align-items:center; overflow:hidden; background:#dce9e2; }
.hero-photo,.hero-shade { position:absolute; inset:0; z-index:-1; }
.hero-photo { background:url('/assets/montana-lake.png') center center/cover no-repeat; }
.hero-shade { background:linear-gradient(90deg,rgba(235,248,239,.96) 0%,rgba(235,248,239,.87) 32%,rgba(235,248,239,.43) 58%,rgba(235,248,239,.05) 100%); }
.hero-content { padding-block:7.5rem 8rem; }
.eyebrow { margin:0 0 1.25rem; font-size:.79rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:#246349; }
h1,h2,h3,p { overflow-wrap:break-word; }
h1,h2 { font-family:'DM Serif Display',Georgia,serif; font-weight:400; line-height:1.13; letter-spacing:-.025em; }
h1 { max-width:740px; margin:0; font-size:clamp(3.1rem,5.5vw,5.5rem); }
h1 em { color:#256149; font-weight:400; }
.hero-intro { max-width:570px; margin:2rem 0; font-size:1.13rem; font-weight:500; line-height:1.6; }
.hero-actions { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:1.4rem; border-radius:999px; padding:.7rem 1.4rem; font-weight:700; text-decoration:none; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--ink); color:#fff; }
.button-primary:hover { background:#276449; }
.availability { font-size:.9rem; font-weight:700; color:#245441; }
.hero-bottom { position:absolute; bottom:0; left:0; width:100%; height:46px; background:var(--cream); clip-path:polygon(0 45%,100% 100%,100% 100%,0 100%); }
.intro-section { padding-block:7rem; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr); align-items:end; gap:7rem; }
h2 { margin:.2rem 0 1.25rem; font-size:clamp(2.4rem,4vw,4.3rem); }
.intro-copy>p:last-child,.section-heading>p:last-child,.conversation-copy>p:last-child,.story-copy>p,.contact-section p { color:var(--muted); font-size:1.06rem; }
.intro-copy>p:last-child { max-width:660px; }
.language-note { display:flex; gap:1rem; padding:1.5rem 0 1.5rem 1.8rem; border-left:2px solid #9ec8ae; }
.language-note strong { font-size:1.04rem; }
.language-note p { margin:.3rem 0 0; color:var(--muted); }
.language-icon { width:45px; height:45px; flex:none; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--green); font-family:Georgia,serif; font-style:italic; }
.track-section { background:var(--mint); padding-block:6.5rem 7.5rem; }
.section-heading { max-width:750px; margin-bottom:2.5rem; }
.track-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.track-card { min-height:290px; padding:1.8rem; background:#f9fdf9; border:1px solid #d0e6d7; border-radius:18px; display:flex; flex-direction:column; }
.card-num { color:#568569; letter-spacing:.14em; font-size:.78rem; font-weight:700; }
.track-card h3 { margin:auto 0 1rem; font-family:'DM Serif Display',Georgia,serif; font-size:1.65rem; font-weight:400; line-height:1.18; }
.track-card p { margin:0; color:var(--muted); font-size:.95rem; }
.conversation-section { padding-block:7rem; display:grid; grid-template-columns:90px minmax(0,1.4fr) minmax(270px,.75fr); gap:2rem; align-items:center; }
.conversation-accent { align-self:start; width:67px; height:67px; border:1px solid #b6d4c1; border-radius:50%; display:grid; place-items:center; color:#3b8260; font-family:Georgia,serif; }
.conversation-accent span { font-size:4rem; line-height:1; margin-top:1.2rem; }
.conversation-copy h2 { max-width:690px; }
.conversation-copy>p:last-child { max-width:610px; }
.conversation-list { border-top:1px solid var(--line); }
.conversation-list div { padding:1.25rem 0; border-bottom:1px solid var(--line); font-weight:700; }
.conversation-list span { margin-right:.75rem; color:#729781; font-size:.82rem; letter-spacing:.1em; }
.story-section { background:#d8eee0; padding-block:6rem; }
.story-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:clamp(3rem,7vw,7rem); align-items:center; }
.story-visual { width:min(100%,280px); justify-self:center; overflow:hidden; border-radius:24px; box-shadow:0 20px 55px rgba(16,66,45,.1); background:#dcfce2; }
.story-visual img { width:100%; height:auto; object-fit:contain; }
.story-copy h2 { margin-bottom:1.7rem; }
.story-copy>p { margin:0 0 1.15rem; }
.story-copy .story-signature { margin:1.8rem 0; color:var(--ink); font-family:'DM Serif Display',Georgia,serif; font-size:1.45rem; line-height:1.3; }
.story-author { color:var(--ink) !important; font-family:'DM Serif Display',Georgia,serif; font-size:1.5rem !important; }
.story-author span { display:block; color:var(--muted); font-family:'DM Sans',Arial,sans-serif; font-size:.85rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.contact-section { padding-block:6rem; display:flex; justify-content:space-between; align-items:center; gap:3rem; }
.contact-section h2 { max-width:720px; }
.contact-section p:last-child { max-width:640px; }
.contact-section .button { flex:none; }
.site-footer { background:#103d2e; color:#dff4e6; padding:2.8rem 0; }
.footer-inner { display:flex; justify-content:space-between; gap:2rem; align-items:center; }
.footer-inner strong { font-family:'DM Serif Display',Georgia,serif; font-size:1.4rem; font-weight:400; }
.footer-inner p { margin:.15rem 0 0; }
.footer-inner>span { font-size:.9rem; }
@media (max-width:900px) { .intro-section { gap:2rem; } .track-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .conversation-section { grid-template-columns:60px minmax(0,1fr); } .conversation-list { grid-column:2; } .story-grid { gap:3rem; } }
@media (max-width:650px) { .wrap,.header-inner { width:min(100% - 2rem,1180px); } .header-inner { align-items:flex-start; flex-direction:column; gap:.1rem; padding:1rem 0; } .brand { font-size:1.4rem; } nav { width:100%; justify-content:space-between; gap:.5rem; } nav a { font-size:.83rem; } .hero { min-height:680px; align-items:flex-end; } .hero-photo { background-position:64% center; } .hero-shade { background:linear-gradient(0deg,rgba(235,248,239,.97) 0%,rgba(235,248,239,.90) 46%,rgba(235,248,239,.30) 100%); } .hero-content { padding-block:8rem 5.5rem; } h1 { font-size:clamp(2.8rem,11vw,4rem); } .hero-intro { font-size:1rem; margin:1.4rem 0; } .hero-actions { align-items:flex-start; gap:1rem; flex-direction:column; } .intro-section { grid-template-columns:1fr; padding-block:4.5rem; } h2 { font-size:clamp(2.35rem,9vw,3.1rem); } .language-note { margin-top:.5rem; } .track-section { padding-block:4.5rem; } .track-grid { grid-template-columns:1fr; } .track-card { min-height:205px; } .track-card h3 { margin:2rem 0 .6rem; } .conversation-section { padding-block:4.5rem; display:block; } .conversation-accent { margin-bottom:1.5rem; } .conversation-list { margin-top:2rem; } .story-section { padding-block:4.5rem; } .story-grid { grid-template-columns:1fr; } .story-visual { width:min(100%,220px); } .contact-section { display:block; padding-block:4.5rem; } .contact-section .button { margin-top:1rem; } .footer-inner { align-items:flex-start; flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
