:root{color-scheme:light;--paper:#f6f3eb;--ink:#203247;--green:#315b4b;--sage:#547565;--line:#ded9cd;--muted:#596766;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;--sans:"Avenir Next",Avenir,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
button,a{font:inherit}
a{color:inherit}
button:focus-visible,a:focus-visible{outline:3px solid #477a67;outline-offset:4px}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-150%);padding:12px 16px;background:var(--ink);color:#fff;border-radius:6px}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:20;background:rgba(246,243,235,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-wrap{min-height:82px;max-width:1240px;margin:auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px}
.brand-mark{width:38px;height:38px;border:1px solid #5d816f;border-radius:50%;display:grid;place-items:center;color:#426956;font-family:var(--serif);font-size:18px}
.brand-name{font-family:var(--serif);font-size:20px;line-height:1;letter-spacing:-.03em}
.brand-sub{display:block;padding-top:6px;color:#64716f;font-size:9px;letter-spacing:.19em;text-transform:uppercase}
.desktop-nav{display:flex;align-items:center;gap:clamp(20px,3vw,42px)}
.desktop-nav a,.mobile-nav a{text-decoration:none;font-size:13px;color:#40515a}
.desktop-nav a:hover,.mobile-nav a:hover{color:#3d705d}
.nav-cta,.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;background:var(--green);color:#fbf8f0;text-decoration:none;padding:14px 20px;border-radius:3px;font-size:12px;letter-spacing:.04em;cursor:pointer;transition:background .2s ease,transform .2s ease}
.nav-cta:hover,.button-primary:hover{background:#244538;transform:translateY(-2px)}
.menu-toggle{display:none;border:1px solid #d5d1c7;background:transparent;color:var(--ink);width:44px;height:44px;border-radius:50%;cursor:pointer}
.menu-icon{width:18px;height:12px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;display:block;margin:auto;position:relative}
.menu-icon:after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1.5px solid currentColor}
.mobile-nav{display:none}
.hero{position:relative;min-height:590px;display:grid;grid-template-columns:minmax(340px,.88fr) 1.12fr;max-width:1440px;margin:auto;overflow:hidden;background:#e8e8dd}
.hero-copy{align-self:center;padding:84px 7vw 92px max(7vw,calc((100vw - 1240px)/2 + 36px));position:relative;z-index:1}
.eyebrow{color:var(--sage);text-transform:uppercase;letter-spacing:.19em;font-size:10px;font-weight:650}
.hero h1{margin:22px 0 19px;font:500 clamp(48px,6.2vw,86px)/.96 var(--serif);letter-spacing:-.052em;max-width:570px}
.hero-copy p{max-width:390px;margin:0 0 29px;font-size:15px;line-height:1.75;color:#59656a}
.hero-address{display:block;margin-top:28px;font-size:11px;letter-spacing:.07em;color:#62716f;line-height:1.7}
.hero-art{position:relative;min-height:590px;background:#aeb4a0}
.hero-art img,.location-photo img,.story-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.image-tag{position:absolute;right:20px;bottom:18px;z-index:1;padding:9px 12px;color:#fff;background:rgba(26,43,42,.64);font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.concept-tag{position:absolute;top:20px;right:22px;z-index:2;color:#405c4f;border:1px solid rgba(64,92,79,.42);padding:9px 12px;background:rgba(246,243,235,.78);text-transform:uppercase;letter-spacing:.12em;font-size:9px}
.section-index{color:#6e8878;font:12px var(--sans);letter-spacing:.08em}
.location h2{font:500 clamp(35px,4.7vw,60px)/1.05 var(--serif);letter-spacing:-.04em;margin:15px 0 0;max-width:520px}
.image-story{display:grid;grid-template-columns:1fr 1fr;background:#e1e3d8}
.story-image{min-height:370px;position:relative;overflow:hidden;margin:0}
.story-image img{transition:transform .6s ease}
.story-image:hover img{transform:scale(1.025)}
.story-caption{position:absolute;left:22px;bottom:18px;padding:8px 11px;color:white;background:rgba(26,43,42,.6);font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.location{padding:110px 36px;background:#e9e8dd}
.location-inner{max-width:1168px;margin:auto;display:grid;grid-template-columns:1fr .9fr;gap:9vw;align-items:center}
.location-copy p{color:#606c6b;font-size:14px;line-height:1.8;max-width:400px;margin:24px 0}
.address-block{display:flex;gap:17px;align-items:flex-start;margin-top:32px;padding-top:22px;border-top:1px solid #c6cbbf;max-width:390px}
.pin{width:28px;height:28px;border:1px solid #718b79;border-radius:50%;display:grid;place-items:center;color:#426956;flex:none;font-size:12px}
.address-text{font:17px/1.6 var(--serif)}
.location-photo{height:320px;position:relative}
.inquiry{max-width:1168px;margin:60px auto 0;border:1px solid #d1d6cd;background:#f2f1e9;padding:26px 30px;display:flex;justify-content:space-between;gap:24px;align-items:center}
.inquiry-title{margin:0 0 6px;color:#355a4c;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.inquiry p{margin:0;color:#63706e;font-size:13px;line-height:1.65}
.button-outline{background:transparent;color:var(--green);border:1px solid #7f9a8b;padding:13px 17px;cursor:pointer;font-size:12px;flex:none}
.button-outline:hover{background:#e5e9df}
.footer{background:var(--ink);color:#f5f1e7;padding:50px 36px 25px}
.footer-inner{max-width:1168px;margin:auto;display:flex;justify-content:space-between;gap:30px;align-items:flex-start}
.footer .brand-mark{color:#c5d2c1;border-color:#8da596}
.footer .brand-sub{color:#bbc8bf}
.footer-note{color:#bdc8c5;font-size:12px;line-height:1.8;text-align:right}
.footer-bottom{max-width:1168px;margin:42px auto 0;border-top:1px solid rgba(238,238,220,.22);padding-top:18px;display:flex;justify-content:space-between;color:#b8c3bf;font-size:10px;letter-spacing:.06em}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(26,40,48,.55);display:grid;place-items:center;padding:20px}
.modal-backdrop[hidden],.mobile-nav[hidden]{display:none}
.dialog{width:min(100%,480px);background:var(--paper);padding:36px;position:relative;border-top:4px solid #527662;box-shadow:0 20px 60px rgba(15,30,34,.2)}
.dialog-close{position:absolute;top:14px;right:14px;border:1px solid #d5d1c7;background:transparent;width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--ink);font-size:18px}
.dialog h2{font:500 36px/1.1 var(--serif);margin:18px 0 12px}
.dialog p{color:#596766;font-size:14px;line-height:1.7}
.confirmation{margin-top:22px;padding:16px;background:#e7ece3;border-left:3px solid #4c755f;color:#284a3b;font-size:13px;line-height:1.6}
.dialog .button-primary{margin-top:20px}
.no-scroll{overflow:hidden}
@media(max-width:760px){
 html{scroll-padding-top:74px}
 .nav-wrap{min-height:72px;padding:0 20px}
 .desktop-nav,.nav-cta{display:none}
 .menu-toggle{display:block}
 .mobile-nav{display:flex;position:absolute;top:100%;left:0;right:0;padding:8px 20px 22px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:0}
 .mobile-nav a{padding:16px 2px;border-bottom:1px solid #e4dfd4;font-size:14px}
 .mobile-nav .mobile-action{color:var(--green);font-weight:650;border-bottom:0}
 .hero{display:flex;flex-direction:column-reverse;min-height:unset}
 .hero-art{min-height:310px}
 .hero-copy{padding:47px 25px 48px}
 .hero h1{font-size:clamp(52px,15vw,74px)}
 .concept-tag{top:12px;right:12px;font-size:8px}
 .image-story{grid-template-columns:1fr}
 .story-image{min-height:250px}
 .location{padding:72px 25px}
 .location-inner{grid-template-columns:1fr;gap:34px}
 .location-photo{height:240px}
 .inquiry{margin-top:38px;padding:22px;flex-direction:column;align-items:flex-start}
 .footer{padding:42px 25px 22px}
 .footer-inner{flex-direction:column}
 .footer-note{text-align:left}
 .footer-bottom{margin-top:30px;flex-direction:column;gap:9px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
