:root { --forest:#263c2f; --forest-dark:#203428; --paper:#f8f6f0; --sand:#eeebe2; --ink:#293b2f; --muted:#62685f; --line:#dcded2; --accent:#8c5937; --serif:Georgia,"Times New Roman",serif; --sans:"Segoe UI",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 var(--sans); }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,summary,select { cursor:pointer; }
button { color:inherit; }
h1,h2,h3,p,figure { margin:0; }
h1,h2 { font-family:var(--serif); font-weight:400; line-height:1.12; letter-spacing:-.045em; }
h2 { font-size:clamp(32px,3.6vw,48px); }
h3 { font-size:21px; font-weight:500; line-height:1.35; letter-spacing:-.025em; }
em { font-weight:400; }
p { text-wrap:pretty; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #b4743c; outline-offset:5px; }
.container { width:min(1220px,calc(100% - 96px)); margin-inline:auto; }
.skip-link { position:fixed; z-index:30; top:8px; left:8px; padding:10px 20px; background:white; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(248,246,240,.97); border-bottom:1px solid var(--line); }
.header-inner { min-height:100px; display:flex; align-items:center; gap:28px; }
.brand { flex-shrink:0; }
.brand img { width:181px; height:81px; object-fit:contain; }
.desktop-nav { display:flex; align-items:center; gap:30px; margin-left:auto; font-size:14px; }
.desktop-nav a,.header-contact { padding-block:10px; }
.desktop-nav a:hover,.text-link:hover { color:var(--accent); }
.header-contact { margin-left:14px; font-size:14px; border-bottom:1px solid var(--ink); }
.header-contact span { margin-left:20px; }
.menu-toggle { display:none; background:transparent; border:1px solid var(--line); padding:8px 12px; }
.mobile-nav-panel { display:none; }
.eyebrow { font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:600; line-height:1.6; }
.hero { padding:57px 0 62px; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:65px; align-items:center; }
.hero-copy .eyebrow { display:flex; align-items:center; gap:12px; }
.small-line { width:25px; height:1px; background:var(--accent); }
.hero h1 { font-size:clamp(48px,5.1vw,72px); margin-top:25px; }
.hero h1 em { color:var(--accent); }
.hero-description { max-width:430px; margin:25px 0 28px; color:var(--muted); font-size:17px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; padding:15px 22px; border:1px solid transparent; font-size:14px; font-weight:500; transition:background .2s; }
.button-dark { background:var(--forest); color:white; }
.button-dark:hover { background:#3e5843; }
.hero-note { display:flex; align-items:flex-start; gap:12px; margin-top:29px; font-size:12px; color:var(--muted); }
.hero-note strong { color:var(--ink); font-weight:500; }
.status-dot { flex-shrink:0; width:6px; height:6px; border-radius:50%; background:#788b60; margin-top:8px; }
.hero-visual { position:relative; padding:0 0 23px; }
.hero-visual > img { width:100%; height:490px; object-fit:cover; object-position:58% center; border-radius:150px 3px 3px 3px; }
.image-label { position:absolute; right:-15px; bottom:58px; background:var(--forest); color:var(--paper); padding:21px 29px; font:24px/1.3 var(--serif); }
.image-label span { font:12px var(--sans); color:#d7dfcf; }
.hero-visual figcaption { font-size:10px; color:var(--muted); margin-top:10px; }
.image-index { position:absolute; top:25px; right:22px; font-size:10px; letter-spacing:.15em; background:var(--paper); padding:6px 10px; }
.facts-strip { border-block:1px solid var(--line); }
.facts-grid { display:grid; grid-template-columns:repeat(4,1fr); padding-block:23px; gap:16px; }
.facts-grid p { font-size:12px; }
.facts-grid span { color:var(--accent); font-size:10px; margin-right:10px; }
.section { padding:95px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:38px; }
.section-heading .eyebrow,.family-copy .eyebrow,.contact-copy .eyebrow { margin-bottom:16px; }
.section-heading > p { max-width:365px; color:var(--muted); font-size:14px; }
.material-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:25px; }
.material-card { border-bottom:1px solid var(--line); min-width:0; }
.material-image,.surface-visual { height:256px; position:relative; overflow:hidden; }
.material-image img { width:100%; height:100%; object-fit:cover; }
.material-image > span,.surface-visual > span { position:absolute; top:16px; left:16px; font-size:10px; letter-spacing:.13em; background:var(--paper); padding:5px 9px; }
.material-body { padding:23px 0 25px; }
.material-body > p { margin-top:12px; color:var(--muted); font-size:14px; }
.material-body .material-tags { color:var(--accent); font-size:11px; margin-top:19px; }
.surface-visual { background:#e0d7be; }
.surface-visual > p { position:absolute; bottom:24px; left:25px; font:italic 34px/1.1 var(--serif); color:#444d38; }
.surface-ring { position:absolute; border:1px solid #b6ad93; border-radius:50%; width:310px; height:310px; right:-90px; top:-35px; }
.ring-two { width:250px; height:250px; right:-60px; top:-5px; }
.ring-three { width:190px; height:190px; right:-30px; top:25px; }
.section-footnote { color:var(--muted); font-size:11px; margin-top:22px; }
.values-section { background:var(--forest); color:var(--paper); padding:83px 0; }
.values-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; }
.values-intro .eyebrow { color:#c7cdb9; margin-bottom:21px; }
.values-intro h2 { font-size:clamp(40px,4.3vw,58px); }
.values-intro h2 em { color:#c9d0b3; }
.values-intro > p:not(.eyebrow) { color:#d0d6c9; max-width:320px; font-size:14px; margin:23px 0 28px; }
.text-link { display:inline-flex; align-items:center; gap:16px; padding-bottom:5px; border-bottom:1px solid currentColor; font-size:13px; }
.values-intro .text-link:hover { color:#e5c4a8; }
.values-list article { display:flex; align-items:flex-start; gap:24px; padding:23px 0; border-bottom:1px solid #526150; }
.values-list article:first-child { padding-top:0; }
.values-list article:last-child { border-bottom:0; padding-bottom:0; }
.values-list article > span { color:#b9c4a7; font-size:11px; padding-top:5px; }
.values-list h3 { font-size:19px; }
.values-list p { color:#d0d6c9; font-size:14px; margin-top:9px; }
.partners-section { padding:39px 0; border-bottom:1px solid var(--line); }
.partners-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; align-items:center; gap:28px; }
.partners-grid h2 { font-size:25px; margin-top:10px; }
.partner { text-align:center; }
.partner img { width:120px; height:67px; object-fit:contain; margin:0 auto; mix-blend-mode:multiply; }
.partner p { font-size:11px; color:var(--muted); margin-top:10px; }
.family-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:75px; }
.location-photo img { width:100%; height:390px; object-fit:cover; border-radius:3px 3px 100px 3px; }
.location-photo figcaption { font-size:11px; color:var(--muted); padding-top:13px; }
.family-copy > p:not(.eyebrow) { color:var(--muted); font-size:14px; margin-top:19px; }
.family-signature { font:italic 27px var(--serif); margin-top:28px; }
.family-signature span { display:block; font:11px var(--sans); color:var(--muted); margin-top:9px; }
.expectations-section { background:var(--sand); }
.expectations-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.expectation { background:var(--paper); padding:29px 32px; border-top:2px solid #617450; }
.expectation-muted { background:transparent; border-top-color:#acae9d; border-bottom:1px solid #d2d4c6; }
.expectation h3 { font-size:20px; }
.expectation ul { list-style:none; padding:0; margin:18px 0 0; }
.expectation li { position:relative; padding-left:22px; font-size:14px; color:var(--muted); margin-block:13px; }
.expectation li::before { content:"✓"; position:absolute; left:0; color:#586e44; }
.expectation-muted li::before { content:"–"; color:var(--muted); }
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin:46px 0 36px; }
.steps-grid article > span { font:italic 28px var(--serif); color:var(--accent); }
.steps-grid h3 { margin:12px 0 9px; font-size:18px; }
.steps-grid p { font-size:13px; color:var(--muted); }
.faq { border-top:1px solid #cccfbf; }
.faq details { border-bottom:1px solid #cccfbf; }
.faq summary { padding:18px 28px 18px 0; font-size:14px; }
.faq p { font-size:14px; color:var(--muted); padding:0 25px 22px 0; max-width:850px; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:85px; align-items:start; }
.contact-copy h2 em { color:var(--accent); }
.contact-copy > p:not(.eyebrow) { margin-top:22px; max-width:375px; color:var(--muted); font-size:14px; }
.contact-links { margin:30px 0; }
.contact-links a { display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); font-size:14px; overflow-wrap:anywhere; }
.contact-links a > span:first-child { width:56px; flex-shrink:0; color:var(--muted); font-size:11px; }
.contact-links a > span:last-child { margin-left:auto; }
.contact-links a:hover { color:var(--accent); }
address { font-style:normal; color:var(--muted); font-size:13px; margin-bottom:18px; }
address strong { font-weight:500; }
.link-note { font-size:10px; }
.inquiry-card { padding:34px; background:#eeeee5; border:1px solid var(--line); }
.inquiry-card h3 { font:28px var(--serif); margin-top:10px; }
.form-intro { color:var(--muted); font-size:12px; margin:14px 0 25px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:17px; min-width:0; }
label { display:block; font-size:12px; font-weight:500; margin-bottom:7px; }
label span { font-size:10px; color:var(--muted); font-weight:400; }
input,select,textarea { display:block; width:100%; min-width:0; border:1px solid #c7cbbd; border-radius:0; background:var(--paper); padding:11px 10px; color:var(--ink); font-size:13px; }
input,select { min-height:44px; }
textarea { resize:vertical; }
::placeholder { color:#6c7167; opacity:1; }
.inquiry-card .button { width:100%; }
.privacy-note { margin-top:14px; font-size:10px; color:var(--muted); }
.privacy-note a { text-decoration:underline; text-underline-offset:3px; }
.form-alert { margin-top:20px; border-top:1px solid #c7cbbd; padding-top:20px; font-size:12px; }
.form-alert p { margin:9px 0 12px; }
.form-alert label { margin-top:16px; }
.copy-button { margin-top:10px; padding:9px 15px; background:var(--paper); border:1px solid #afb7a6; }
.site-footer { background:var(--forest-dark); color:var(--paper); padding:42px 0 23px; }
.footer-top { display:flex; justify-content:space-between; gap:30px; padding-bottom:35px; }
.footer-name { font:25px var(--serif); }
.footer-name span { display:block; color:#c2cbb9; font:11px var(--sans); margin-top:11px; }
.footer-top > p { color:#c2cbb9; font-size:12px; }
.footer-top nav { display:flex; gap:22px; font-size:12px; }
.footer-top nav a:hover { text-decoration:underline; }
.footer-bottom { border-top:1px solid #50604d; padding-top:21px; display:flex; justify-content:space-between; gap:15px; font-size:10px; color:#c2cbb9; }
.legal-main { padding:65px 0 85px; }
.legal-article-card { max-width:820px; margin-inline:auto; overflow-wrap:anywhere; }
.legal-article-card h1 { font-size:clamp(32px,5vw,55px); }
.legal-article-card h2 { font:400 27px/1.25 var(--serif); letter-spacing:-.025em; margin:35px 0 13px; }
.legal-article-card h3 { font-size:18px; margin:24px 0 12px; }
.legal-article-card p,.legal-article-card ul { font-size:15px; color:var(--muted); margin-bottom:17px; }
.legal-article-card a:not(.button) { text-decoration:underline; text-underline-offset:3px; }
.legal-article-card .legal-meta { font-size:12px; margin-top:17px; }
@media (min-width:1600px) { .hero { padding-block:75px; } .hero-visual > img { height:530px; } }
@media (max-width:1100px) {
  .container { width:calc(100% - 64px); }
  .desktop-nav { gap:18px; font-size:12px; }
  .header-inner { gap:18px; }
  .hero-grid { gap:38px; }
  .hero-visual > img { height:470px; }
  .values-grid,.family-grid,.contact-grid { gap:45px; }
  .material-image,.surface-visual { height:220px; }
  .inquiry-card { padding:25px; }
  .form-row { grid-template-columns:1fr; gap:0; }
}
@media (max-width:800px) {
  html { scroll-padding-top:90px; }
  .container { width:calc(100% - 40px); }
  .header-inner { min-height:80px; gap:16px; }
  .brand img { width:140px; height:63px; }
  .desktop-nav { display:none; }
  .header-contact { margin-left:auto; }
  .menu-toggle:not([hidden]) { display:block; font-size:12px; }
  .menu-toggle span { margin-left:8px; }
  body:not(.js-enabled) .mobile-nav-panel,.mobile-nav-panel.open { display:flex; flex-direction:column; padding:12px 20px 20px; border-top:1px solid var(--line); }
  .mobile-nav-panel a { padding:10px 0; font-size:14px; }
  .hero { padding:38px 0 40px; }
  .hero-grid { gap:30px; }
  .hero h1 { font-size:45px; }
  .hero-description { font-size:14px; }
  .hero-visual > img { height:430px; border-top-left-radius:90px; }
  .image-label { right:-6px; padding:17px; font-size:20px; }
  .image-index { top:16px; right:13px; font-size:8px; }
  .hero .button { padding:12px 14px; gap:12px; font-size:12px; }
  .facts-grid { grid-template-columns:1fr 1fr; gap:13px; }
  .section { padding:65px 0; }
  .section-heading { gap:30px; align-items:start; }
  .section-heading > p { max-width:260px; font-size:13px; }
  .material-grid { gap:16px; }
  .material-image,.surface-visual { height:185px; }
  .material-body h3 { font-size:18px; }
  .material-body > p { font-size:12px; }
  .material-image > span,.surface-visual > span { font-size:8px; left:10px; top:10px; }
  .surface-visual > p { font-size:28px; left:15px; }
  .values-section { padding:60px 0; }
  .values-grid { gap:35px; }
  .values-list h3 { font-size:17px; }
  .partners-grid { grid-template-columns:1.4fr 1fr 1fr 1fr; gap:12px; }
  .partners-grid h2 { font-size:21px; }
  .partner img { width:95px; height:55px; }
  .family-grid,.contact-grid { grid-template-columns:1fr; gap:35px; }
  .location-photo img { height:330px; }
  .family-copy { max-width:620px; }
  .contact-copy > p:not(.eyebrow) { max-width:540px; }
  .contact-links { max-width:510px; }
  .form-row { grid-template-columns:1fr 1fr; gap:16px; }
}
@media (max-width:580px) {
  .header-contact { font-size:12px; white-space:nowrap; }
  .header-contact span { margin-left:6px; }
  .header-inner { gap:12px; }
  .hero-grid,.material-grid,.values-grid,.expectations-grid { grid-template-columns:1fr; }
  .hero h1 { font-size:clamp(43px,10vw,57px); }
  .hero-description { max-width:400px; font-size:16px; }
  .hero .button { font-size:13px; padding:14px 20px; }
  .hero-visual > img { height:350px; border-top-left-radius:100px; }
  .hero-visual figcaption { font-size:9px; }
  .image-label { right:0; }
  .facts-grid p { font-size:11px; }
  .facts-grid span { margin-right:5px; }
  .section-heading { display:block; margin-bottom:29px; }
  .section-heading > p { max-width:none; margin-top:19px; font-size:14px; }
  .material-grid { gap:30px; }
  .material-image,.surface-visual { height:245px; }
  .material-body h3 { font-size:22px; }
  .material-body > p { font-size:14px; }
  .material-body { padding-top:19px; }
  .values-intro > p:not(.eyebrow) { max-width:none; }
  .values-list article { gap:16px; }
  .partners-grid { grid-template-columns:repeat(3,1fr); gap:20px 8px; }
  .partners-grid > div:first-child { grid-column:1 / -1; }
  .partner img { width:90px; height:55px; }
  .partner p { font-size:10px; }
  .location-photo img { height:270px; }
  .expectation { padding:24px; }
  .steps-grid { grid-template-columns:1fr; gap:25px; }
  .steps-grid article { display:grid; grid-template-columns:35px 1fr; gap:0 16px; }
  .steps-grid article > span { grid-row:span 2; }
  .steps-grid h3 { margin-top:2px; }
  .inquiry-card { padding:24px 19px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .contact-links a { font-size:12px; gap:8px; }
  .footer-top { flex-direction:column; gap:23px; }
  .footer-bottom { flex-direction:column; gap:5px; }
}
@media (max-width:380px) {
  .brand img { width:110px; height:54px; }
  .menu-toggle { white-space:nowrap; padding:8px; }
  .header-inner { gap:10px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
button:disabled { cursor: wait; opacity: .65; }
