:root { --forest:#193e31; --deep:#102d24; --green:#356749; --sage:#dce6d6; --lime:#d9eaa7; --paper:#f6f5ee; --ink:#26372e; --muted:#617064; --line:#d5dcd0; --white:#fffef9; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Trebuchet MS",Verdana,sans-serif; font-size:16px; line-height:1.7; }
a { color:inherit; text-underline-offset:4px; }
a:focus-visible, summary:focus-visible { outline:3px solid #8eae45; outline-offset:5px; }
.wrap { width:min(1180px,calc(100% - 64px)); margin-inline:auto; }
.topline { background:var(--deep); color:#e0e9d9; font-size:12px; letter-spacing:.07em; }
.topline .wrap { display:flex; justify-content:space-between; gap:16px; padding-block:9px; }
.masthead { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:27px; }
.brand { text-decoration:none; display:flex; align-items:center; gap:15px; }
.brand-mark { border:1px solid var(--green); width:47px; height:47px; border-radius:50%; display:grid; place-items:center; font-family:Georgia,serif; font-style:italic; font-size:30px; }
.brand-name { display:block; font-family:Georgia,serif; font-size:35px; line-height:1; letter-spacing:-1.5px; }
.brand-caption { display:block; margin-top:7px; font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted); }
.header-contact { text-align:right; font-size:12px; color:var(--muted); }
.header-contact a { display:block; font-size:20px; color:var(--forest); text-decoration:none; }
nav { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.menu { display:flex; flex-wrap:wrap; gap:4px; padding-block:10px; }
.menu a { padding:9px 17px; text-decoration:none; font-size:14px; border-radius:4px; }
.menu a:hover { background:var(--sage); }
.menu a[aria-current="page"] { background:var(--forest); color:var(--white); }
.social-bar { display:flex; align-items:center; gap:28px; margin-top:20px; padding:12px 20px; background:#eef1e8; border:1px solid var(--line); border-radius:4px; }
.social-bar h2 { flex:0 0 auto; margin:0; font-size:18px; letter-spacing:0; }
.social-list { flex:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; list-style:none; margin:0; padding:0; }
.social-channel { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:54px; padding:7px 12px; border-radius:3px; line-height:1.4; text-decoration:none; }
.social-channel strong { display:block; font-size:14px; }
.social-channel small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.social-link { background:var(--sage); color:var(--forest); }
.social-link:hover { background:#cfddc7; }
.social-arrow { font-size:21px; }
.social-pending { color:var(--muted); }
.hero { margin-top:28px; padding:48px 52px; background:radial-gradient(ellipse at 95% 0%,#52704a 0%,transparent 55%),linear-gradient(115deg,var(--deep),var(--forest)); color:var(--white); display:grid; grid-template-columns:1.7fr 1fr; gap:60px; border-radius:6px; }
.eyebrow { font-size:11px; font-weight:bold; letter-spacing:.17em; text-transform:uppercase; margin:0 0 20px; }
.hero .eyebrow { color:var(--lime); }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; font-weight:normal; line-height:1.14; }
h1 { font-size:clamp(38px,5vw,67px); letter-spacing:-.045em; margin:0 0 23px; }
h1 em { color:var(--lime); font-weight:normal; }
.hero p:not(.eyebrow) { color:#e0e7dc; max-width:540px; }
.buttons { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.button { display:inline-block; padding:12px 21px; border:1px solid transparent; border-radius:3px; background:var(--lime); color:var(--deep); font-size:14px; font-weight:bold; text-decoration:none; }
.button:hover { background:#e8f2cd; }
.button.secondary { background:transparent; border-color:#91a78e; color:var(--white); }
.hero-notes { border-left:1px solid #6a826b; padding-left:32px; align-self:center; }
.hero-note { padding:17px 0; border-bottom:1px solid #6a826b; }
.hero-note:last-child { border:0; }
.hero-note strong { display:block; font-family:Georgia,serif; font-weight:normal; font-size:27px; color:var(--lime); }
.hero-note span { font-size:13px; color:#e0e7dc; }
.layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:64px; padding-block:52px 64px; }
h2 { font-size:37px; letter-spacing:-.025em; margin:0 0 23px; }
h3 { font-size:24px; margin:0 0 12px; }
p { margin:0 0 20px; }
.lead { font-size:20px; line-height:1.6; }
.section-label { color:var(--green); }
.aside-box { background:var(--sage); padding:27px; border-top:3px solid var(--green); }
.aside-box p { font-size:14px; }
.phone { display:block; text-decoration:none; font-size:23px; font-weight:bold; margin-block:16px 3px; }
.small { font-size:13px; color:var(--muted); }
.aside-links { margin-top:25px; }
.aside-links a { display:block; padding-block:13px; border-bottom:1px solid var(--line); text-decoration:none; font-size:14px; }
.facts { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:32px; padding-top:27px; border-top:1px solid var(--line); }
.facts p { font-size:14px; color:var(--muted); }
.tabs { display:flex; flex-wrap:wrap; gap:8px; margin-block:24px; }
.tabs a { padding:7px 14px; border:1px solid var(--line); border-radius:30px; text-decoration:none; font-size:13px; }
.tabs a[aria-current="true"] { background:var(--forest); color:white; border-color:var(--forest); }
.catalogue { background:var(--white); padding:24px; border:1px solid var(--line); }
.catalogue h3 { margin:28px 0 12px; font-size:20px; }
.catalogue h3:first-child { margin-top:0; }
.price-row { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:9px 0; border-bottom:1px solid #e9ece3; font-size:14px; }
.price-row strong { white-space:nowrap; font-variant-numeric:tabular-nums; }
.price-note { margin:6px 0; font-size:13px; color:var(--muted); }
.route { padding:22px 0; border-bottom:1px solid var(--line); }
.route .eyebrow { color:var(--green); margin-bottom:10px; }
.route p { margin:0; }
details { border-block-end:1px solid var(--line); padding:19px 0; }
summary { cursor:pointer; font-size:21px; font-family:Georgia,serif; }
.article { padding-top:22px; }
.article p { white-space:pre-line; }
.notice { background:var(--sage); padding:26px; border-left:3px solid var(--green); }
.notice p:last-child { margin-bottom:0; }
footer { background:var(--deep); color:#dbe5d7; padding-block:28px; font-size:13px; }
footer .wrap { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; }
.skip { position:absolute; top:-80px; left:16px; padding:10px; background:var(--white); z-index:2; }
.skip:focus { top:10px; }
@keyframes arrive { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:no-preference) { .hero,.layout { animation:arrive .45s ease-out both; } .layout { animation-delay:.08s; } }
@media (max-width:900px) { .menu a { padding:9px 12px; } .hero { gap:25px; padding:35px; } .layout { gap:30px; grid-template-columns:minmax(0,1fr) 245px; } }
@media (max-width:900px) { .social-bar { flex-direction:column; align-items:stretch; gap:12px; } }
@media (max-width:650px) {
    .wrap { width:calc(100% - 32px); } .topline .wrap { flex-wrap:wrap; gap:2px; font-size:10px; }
    .masthead { gap:12px; padding-block:22px; } .brand-caption { font-size:8px; letter-spacing:.08em; } .brand-mark { display:none; }
    .header-contact a { font-size:17px; } .header-contact { font-size:10px; }
    .menu { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; } .menu a { text-align:center; padding:9px 2px; font-size:12px; }
    .social-bar { padding:14px; margin-top:16px; } .social-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; }
    .hero { grid-template-columns:1fr; padding:29px 24px; gap:20px; } .hero-notes { border-left:0; border-top:1px solid #6a826b; padding:12px 0 0; }
    .hero-note { padding:10px 0; } .hero-note strong { font-size:23px; } .layout { grid-template-columns:1fr; gap:30px; padding-block:35px; }
    h2 { font-size:31px; } .facts { grid-template-columns:1fr; gap:10px; } .catalogue { padding:16px; } .price-row { gap:12px; }
}
