
:root{
  --cream:#fbf4e9; --paper:#fffaf2; --ink:#2d211d; --muted:#705e55;
  --wine:#7f1d1d; --red:#a12a2a; --gold:#c69755; --line:#ead8c4;
  --shadow:0 20px 55px rgba(69,33,22,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}
img{display:block;max-width:100%}
a{color:inherit}
.site-header{height:86px;padding:10px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:rgba(255,250,242,.94);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(127,29,29,.09)}
.brand img{width:245px;height:64px;object-fit:contain}
nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:700}
nav a{text-decoration:none}
.nav-cta{background:var(--wine);color:white;padding:11px 17px;border-radius:999px}
.menu-button{display:none;border:1px solid var(--line);background:white;padding:9px 12px;border-radius:8px}
.hero{min-height:calc(100vh - 86px);position:relative;display:grid;align-items:center;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(35,15,10,.86) 0%,rgba(35,15,10,.62) 43%,rgba(35,15,10,.13) 78%)}
.hero-content{position:relative;z-index:2;color:white;width:min(730px,88vw);margin-left:clamp(24px,8vw,140px);padding:80px 0}
.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800}
.hero h1{font-family:Georgia,serif;font-size:clamp(44px,6.4vw,84px);line-height:1.03;margin:17px 0 8px;max-width:820px}
.hero-line{font-family:Georgia,serif;font-style:italic;color:#ffd9ba;font-size:clamp(26px,3vw,42px);margin:0 0 19px}
.hero-copy{font-size:18px;max-width:620px;color:#fff8f0}
.actions,.contact-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:29px}
.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:800;transition:.2s}
.button:hover{transform:translateY(-2px)}
.primary{background:var(--wine);color:white;box-shadow:0 10px 25px rgba(127,29,29,.3)}
.ghost{border:1px solid rgba(255,255,255,.68);color:white;background:rgba(255,255,255,.08)}
.secondary{border:1px solid var(--wine);color:var(--wine);background:white}
.section{width:min(1180px,90vw);margin:auto;padding:105px 0}
.intro{text-align:center;max-width:850px}
.intro h2,.occasions h2,.story h2,.contact h2{font-family:Georgia,serif;font-size:clamp(34px,4.7vw,58px);line-height:1.12;margin:12px auto 22px}
.kicker{color:var(--red)}
.lede{font-family:Georgia,serif;font-size:21px;color:var(--muted)}
.experiences{padding-top:20px}
.experience-card{background:var(--paper);border:1px solid var(--line);border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;margin-bottom:65px;box-shadow:var(--shadow)}
.experience-card.reverse .card-image-wrap{order:2}
.card-image-wrap{min-height:580px}
.card-image-wrap img{width:100%;height:100%;object-fit:cover}
.card-body{padding:clamp(38px,5vw,70px);align-self:center}
.number{font-family:Georgia,serif;color:#d1ad87;font-size:44px}
.card-body h2{font-family:Georgia,serif;color:var(--wine);font-size:clamp(34px,4vw,53px);line-height:1.05;margin:9px 0}
.subtitle{font-family:Georgia,serif;font-style:italic;font-size:21px;color:var(--red)}
.check-list{padding:0;list-style:none;margin:25px 0}
.check-list li{margin:9px 0;padding-left:27px;position:relative}
.check-list li:before{content:"♥";position:absolute;left:0;color:var(--red)}
.text-link{font-weight:800;color:var(--wine);text-decoration:none}
.quote-band{background:linear-gradient(120deg,#6f1717,#a73b2e);color:white;padding:80px 8vw;text-align:center}
.quote-band p{font-family:Georgia,serif;font-size:clamp(28px,4vw,48px);font-style:italic;max-width:1000px;margin:auto}
.occasions{text-align:center}
.occasion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:42px}
.occasion-grid div{background:var(--paper);border:1px solid var(--line);padding:20px 12px;border-radius:14px;font-family:Georgia,serif;font-size:17px}
.story{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
.story-images{display:grid;grid-template-columns:1fr .65fr;gap:14px}
.story-images img{height:470px;width:100%;object-fit:cover;border-radius:24px}
.story-images img+img{height:360px;align-self:end}
.story-copy p{font-size:18px;color:var(--muted)}
.signature{font-family:Georgia,serif;font-style:italic;color:var(--wine)!important;font-size:26px!important}
.promise{padding-top:20px}
.promise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.promise-grid div{padding:30px;background:#f3e5d5;border-radius:18px;border-top:4px solid var(--wine)}
.promise-grid strong,.promise-grid span{display:block}
.promise-grid strong{font-family:Georgia,serif;color:var(--wine);font-size:19px;margin-bottom:8px}
.promise-grid span{color:var(--muted);font-size:14px}
.contact{padding-top:50px}
.contact-panel{background:var(--paper);border:1px solid var(--line);border-radius:30px;padding:clamp(40px,7vw,90px);text-align:center;box-shadow:var(--shadow)}
.contact-panel p{max-width:760px;margin-left:auto;margin-right:auto;font-size:18px;color:var(--muted)}
.contact-actions{justify-content:center}
.area{font-weight:800;color:var(--wine)!important;margin-top:29px!important}
.fine-print{font-size:12px!important;margin-top:28px!important}
footer{text-align:center;padding:42px 20px 58px;background:#2f1713;color:#f7e9dd}
footer img{width:250px;margin:0 auto 12px;filter:brightness(0) invert(1) opacity(.92)}
footer p{margin:6px}
@media(max-width:850px){
  .menu-button{display:block}
  nav{display:none;position:absolute;top:85px;left:0;right:0;background:var(--paper);padding:23px;flex-direction:column;border-bottom:1px solid var(--line)}
  nav.open{display:flex}
  .brand img{width:205px}
  .hero-overlay{background:linear-gradient(90deg,rgba(35,15,10,.82),rgba(35,15,10,.45))}
  .hero-content{margin-left:7vw}
  .experience-card,.story{grid-template-columns:1fr}
  .experience-card.reverse .card-image-wrap{order:0}
  .card-image-wrap{min-height:390px}
  .occasion-grid,.promise-grid{grid-template-columns:repeat(2,1fr)}
  .story{gap:38px}
}
@media(max-width:520px){
  .site-header{height:74px}
  nav{top:73px}
  .brand img{width:180px}
  .hero{min-height:760px}
  .hero-content{padding:60px 0}
  .actions .button,.contact-actions .button{width:100%}
  .section{padding:76px 0}
  .occasion-grid,.promise-grid{grid-template-columns:1fr}
  .story-images{grid-template-columns:1fr}
  .story-images img,.story-images img+img{height:300px}
}
