:root{--pine:#12392e;--night:#102e25;--cream:#faf7ee;--linen:#f0ebdf;--gold:#d6b77c;--line:#d1c8b6;--pad:max(6vw,calc((100vw - 1200px)/2));--serif:'Baskervville','Iowan Old Style','Palatino Linotype',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--pine);font:16px/1.65 'DM Sans','Segoe UI',Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,summary:focus-visible{outline:3px solid #aa791c;outline-offset:4px}header,footer{padding:20px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:20px}header img{width:159px;display:block}nav,.actions{display:flex;gap:30px;align-items:center}nav a,.actions a{font-size:14px;font-weight:600}.nav-contact{border:1px solid #a2afa0;padding:7px 15px;border-radius:2px}.nav-contact span,.button span,.plain span{margin-left:7px}.hero,#contact{color:var(--cream);background:radial-gradient(ellipse at 77% 70%,#335140 0%,#1b3a2e 40%,#102e25 80%)}.hero{overflow:hidden;border-block:1px solid #b8a070}.hero-inner{display:grid;grid-template-columns:1fr minmax(270px,.82fr);gap:8%;padding:48px var(--pad) 46px;align-items:center}.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;display:flex;align-items:center;gap:12px}.kicker:before{content:'';width:34px;height:1px;background:#a98a4f}.hero .kicker,#contact .kicker{color:#e7ce9f}h1,h2,summary{font-family:var(--serif);font-weight:400}h1,h2{letter-spacing:-.052em;line-height:.98}h1{font-size:clamp(76px,8vw,132px);margin:24px 0}h1 em,#contact em{color:#e7c992}h2{font-size:clamp(48px,5.25vw,88px);margin:24px 0}em{font-weight:400}.intro p{max-width:38ch;font-size:clamp(17px,1.35vw,21px);color:#ede9dc}.actions{flex-wrap:wrap;gap:18px 26px;margin-top:29px}.button{display:inline-flex;align-items:center;gap:4px;background:#eedcb6;color:#17382b;padding:13px 20px;border-radius:2px;transition:background .2s}.button:hover{background:#fff0ce;text-decoration:none}.plain{border-bottom:1px solid #acaa92}.arch{position:relative;margin:0 auto;width:min(100%,425px);aspect-ratio:.80;border:1px solid #ab945f;padding:9px;border-radius:50% 50% 3px 3px / 40% 40% 3px 3px}.arch img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 40%;border-radius:inherit}.arch:after{content:'';position:absolute;inset:-9px 9px 9px -9px;border:1px solid #b9a06a47;border-radius:inherit;pointer-events:none}#about,#services,.contact-inner{padding:clamp(65px,7.2vw,110px) var(--pad);display:grid;align-items:center;gap:9%}#about{grid-template-columns:.75fr 1fr}.photo{position:relative;padding:0 14px 14px 0}.photo:after{content:'';position:absolute;inset:14px 0 0 14px;border:1px solid #b49864;z-index:-1}.photo img{display:block;width:100%;max-height:480px;object-fit:cover;object-position:50% 33%}.opening{font:normal clamp(21px,1.9vw,30px)/1.45 var(--serif)}.story>p:not(.opening),.services-intro p{color:#495b50}#services{background:var(--linen);grid-template-columns:.57fr 1fr;align-items:start;gap:7%;border-block:1px solid var(--line)}.services-intro .hint{font-size:14px}.directory{border-top:1px solid #acaa98}details{border-bottom:1px solid #bdb8a8}summary{display:flex;list-style:none;justify-content:space-between;gap:10px;align-items:center;cursor:pointer;padding:19px 0;font-size:clamp(22px,2vw,30px);line-height:1.25}summary::-webkit-details-marker{display:none}.toggle{border:1px solid #b6b19c;border-radius:100%;width:28px;height:28px;flex:none;text-align:center;font:20px/24px Arial}.toggle:before{content:'+'}details[open] .toggle:before{content:'−'}ul{list-style:none;padding:0;margin:0 0 18px}li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid #d7d2c4}li a{font-weight:600}li span{color:#6b765e}li small{display:block;color:#4e5b50;line-height:1.45}li b{font-size:14px;max-width:115px;text-align:right;flex-shrink:0}.contact-inner{grid-template-columns:1fr .42fr}.contact-inner img{width:100%;max-height:335px;object-fit:cover;object-position:50% 5%;border-radius:48% 48% 0 0}.contact-inner p{max-width:55ch}footer{font-size:13px}@media(max-width:760px){header,footer{padding:16px 5%;gap:12px}header img{width:120px}nav{gap:12px}nav a{font-size:12px}.nav-contact{padding:5px 9px}.nav-contact span{display:none}.hero-inner{padding:34px 6% 32px;gap:30px;grid-template-columns:1fr}.intro p{max-width:44ch}.arch{width:min(85%,345px);aspect-ratio:.97}.arch img{object-position:50% 32%}h1{font-size:clamp(58px,11vw,82px);line-height:1.05;margin:16px 0}h1 br{display:none}h1 em:before{content:' '}.actions{gap:16px;margin-top:18px}.kicker{font-size:10px}#about,#services,.contact-inner{grid-template-columns:1fr;gap:27px;padding:52px 6%}.photo{width:75%;max-width:360px}.photo img{aspect-ratio:1.18}.contact-inner img{display:none}#services h2 br{display:none}li b{max-width:90px}.directory{min-width:0}}@media(max-width:355px){header{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Compact navigation stays in document flow so it cannot cover a section link. */
.menu-toggle, nav[hidden] { display: none; }
@media (max-width: 820px) {
  header { flex-wrap: wrap; gap: 0 12px; padding: 12px 5%; }
  header.menu-ready .menu-toggle {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 44px; padding: 0 14px; color: var(--pine); background: transparent;
    border: 1px solid #adb8ac; border-radius: 3px; font: 600 14px/1 Arial,sans-serif; cursor: pointer;
  }
  .menu-icon { width: 16px; height: 12px; position: relative; }
  .menu-icon::before, .menu-icon::after {
    content: ''; position: absolute; left: 0; top: 5px; width: 16px;
    height: 2px; background: currentColor;
  }
  .menu-icon::before { transform: translateY(-3px); }
  .menu-icon::after { transform: translateY(3px); }
  [aria-expanded="true"] .menu-icon::before { transform: rotate(45deg); }
  [aria-expanded="true"] .menu-icon::after { transform: rotate(-45deg); }
  .menu-toggle:focus-visible { outline: 3px solid #aa791c; outline-offset: 3px; }
  header.menu-ready nav:not([hidden]) {
    display: grid; flex-basis: 100%; gap: 0; margin-top: 12px; border-top: 1px solid var(--line);
  }
  header.menu-ready nav a {
    display: flex; align-items: center; justify-content: space-between; min-height: 48px;
    padding: 8px 4px; font-size: 15px; border: 0; border-bottom: 1px solid var(--line);
  }
  header.menu-ready nav a:last-child { border-bottom: 0; }
}
