:root{
  --contact-green:#123e31;
  --contact-deep:#0b2b22;
  --contact-gold:#d5b16b;
  --contact-cream:#f6f1e7;
  --contact-paper:#fffdf8;
  --contact-muted:#5d6e67;
  --contact-line:rgba(18,62,49,.18)
}

body.contact-page-minimal{background:var(--contact-cream);color:var(--contact-deep)}
.contact-page-minimal .site-header{background:rgba(255,253,248,.92)}

.contact-hero{position:relative;min-height:clamp(620px,78vh,920px);overflow:hidden;background:var(--contact-deep)}
.contact-hero-media{position:absolute;inset:0}
.contact-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,27,21,.08) 0%,rgba(5,27,21,.08) 43%,rgba(5,27,21,.28) 60%,rgba(5,27,21,.72) 100%),linear-gradient(0deg,rgba(5,27,21,.18),transparent 42%)}
.contact-hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 49%;filter:saturate(.88) contrast(1.01)}
.contact-hero-copy{position:relative;z-index:1;min-height:inherit;display:flex;flex-direction:column;justify-content:center;width:min(42%,700px);margin-left:auto;padding:calc(var(--header-h) + 2rem) clamp(2rem,7vw,7rem) 4rem clamp(2rem,5vw,5rem);color:#fff}
.contact-label{margin:0 0 1.4rem;color:var(--contact-gold);font-size:.82rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.contact-hero h1{margin:0;color:#fff;font-family:var(--serif);font-size:clamp(4rem,6.8vw,7.5rem);font-weight:400;letter-spacing:-.055em;line-height:.92}

.contact-invitation{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:clamp(4rem,9vw,10rem);width:min(1360px,calc(100% - 3rem));margin:0 auto;padding:clamp(5.5rem,9vw,9.5rem) 0}
.contact-message{align-self:start}
.contact-message p{max-width:820px;margin:0;color:var(--contact-green);font-family:var(--serif);font-size:clamp(2.25rem,4.2vw,4.7rem);font-weight:400;letter-spacing:-.035em;line-height:1.18}
.contact-details{align-self:center;padding-left:clamp(2rem,4vw,4rem);border-left:1px solid var(--contact-line)}
.contact-details dl{margin:0 0 2.4rem}
.contact-details dl>div{padding:1.25rem 0;border-bottom:1px solid var(--contact-line)}
.contact-details dl>div:first-child{padding-top:0}
.contact-details dt{margin-bottom:.5rem;color:#8d7445;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.contact-details dd{margin:0;color:var(--contact-deep);font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5}
.contact-details dd a{color:inherit;text-decoration:none;overflow-wrap:anywhere}
.contact-details dd a:hover{text-decoration:underline;text-underline-offset:.25em}
.contact-button{display:inline-flex;align-items:center;justify-content:center;gap:1.6rem;min-height:54px;padding:.95rem 1.55rem;border:1px solid var(--contact-green);border-radius:999px;background:var(--contact-green);color:#fff;text-decoration:none;font-size:.9rem;font-weight:800;letter-spacing:.025em;transition:transform .2s ease,background .2s ease}
.contact-button:hover{transform:translateY(-2px);background:var(--contact-deep)}
.contact-button:focus-visible{outline:3px solid var(--contact-gold);outline-offset:4px}
.contact-footer a{text-decoration:none}
.contact-footer a:hover{text-decoration:underline;text-underline-offset:.25em}

@media(max-width:980px){
  .contact-hero-copy{width:48%;padding-right:2rem}
  .contact-invitation{grid-template-columns:1fr;gap:3.5rem}
  .contact-details{padding:0;border-left:0;border-top:1px solid var(--contact-line);padding-top:2.5rem}
}

@media(max-width:767px){
  .contact-hero{min-height:0;padding-top:var(--header-h);overflow:visible;background:var(--contact-cream)}
  .contact-hero-media{position:relative;height:clamp(430px,112vw,620px);overflow:hidden;background:var(--contact-deep)}
  .contact-hero-media::after{background:linear-gradient(0deg,rgba(5,27,21,.08),transparent 34%)}
  .contact-hero-media img{object-position:29% 50%}
  .contact-hero-copy{position:relative;width:auto;min-height:0;margin:0;padding:2.2rem 1.4rem 2.8rem;color:var(--contact-green)}
  .contact-label{margin-bottom:.8rem;color:#91733c;font-size:.72rem}
  .contact-hero h1{color:var(--contact-green);font-size:clamp(3.25rem,14vw,5.2rem);line-height:.94}
  .contact-hero h1 br{display:none}
  .contact-invitation{width:auto;margin:0;padding:4rem 1.4rem 5rem;gap:3rem;background:var(--contact-paper)}
  .contact-message p{font-size:clamp(1.95rem,8.2vw,3rem);line-height:1.24}
  .contact-details{padding-top:2rem}
  .contact-button{width:100%}
}

@media(max-width:390px){
  .contact-hero-media{height:118vw}
  .contact-hero h1{font-size:3.2rem}
}

@media(prefers-reduced-motion:reduce){.contact-button{transition:none}}
