:root{
  --wine-deep:#2d1015;
  --wine-black:#170a0c;
  --gold:#c9a24b;
  --gold-light:#e6cd8f;
  --ivory:#f6f0e4;
  --maroon:#7a1a26;
  --rose:#e8b4c0;
  --line: rgba(201,162,75,0.35);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Jost', -apple-system, BlinkMacSystemFont, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--ivory);color:var(--wine-black);
  font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

/* Nav */
header{position:relative;z-index:20;padding:28px 0;background:var(--wine-black);}
header.on-hero{position:absolute;top:0;left:0;right:0;background:transparent;}
header .wrap{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;}
.brand img{height:46px;width:auto;flex-shrink:0;}
.brand .brand-text{font-family:var(--serif);font-size:1.55rem;color:var(--ivory);letter-spacing:0.03em;line-height:1;}
.brand .brand-text span{display:block;font-family:var(--sans);font-size:0.62rem;letter-spacing:0.22em;color:var(--gold-light);margin-top:6px;font-weight:400;}
.foot-brand{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.foot-brand img{height:52px;width:auto;}
.foot-brand .brand-text{font-family:var(--serif);font-size:1.4rem;color:var(--ivory);line-height:1;}
nav ul{list-style:none;display:flex;gap:36px;margin:0;padding:0;}
nav a{color:var(--ivory);text-decoration:none;font-size:0.92rem;letter-spacing:0.02em;padding-bottom:4px;border-bottom:1px solid transparent;transition:border-color .25s ease;}
nav a:hover, nav a:focus-visible{border-color:var(--gold);}
nav a.current{border-bottom:1px solid var(--gold);color:var(--gold-light);}

/* Page header banner (non-hero pages) */
.page-banner{background:var(--wine-deep);color:var(--ivory);padding:70px 0 64px;}
.page-banner .eyebrow{color:var(--gold-light);}
.page-banner h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,4.4vw,3.4rem);margin:0 0 14px;}
.page-banner p{max-width:560px;color:rgba(246,240,228,0.78);line-height:1.7;font-size:1.05rem;margin:0;}

/* Section shells */
section{padding:100px 0;}
.section-light{background:var(--ivory);}
.section-dark{background:var(--wine-deep);color:var(--ivory);}
.eyebrow{font-family:var(--serif);font-style:italic;color:var(--maroon);font-size:1.15rem;margin:0 0 10px;}
.section-dark .eyebrow{color:var(--gold-light);}
h2.section-title{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,3.4vw,3rem);margin:0 0 28px;line-height:1.12;max-width:640px;}
.lede{font-size:1.08rem;line-height:1.75;max-width:560px;color:#33453c;font-weight:300;}
.section-dark .lede{color:rgba(246,240,228,0.82);}

/* Buttons */
.btn{display:inline-block;padding:15px 34px;font-family:var(--sans);font-size:0.92rem;letter-spacing:0.03em;text-decoration:none;border-radius:2px;transition:all .3s ease;}
.btn-solid{background:var(--gold);color:var(--wine-black);}
.btn-solid:hover{background:var(--gold-light);}
.btn-ghost{border:1px solid rgba(246,240,228,0.4);color:var(--ivory);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-light);}
.btn-ghost-dark{border:1px solid rgba(23,10,12,0.3);color:var(--wine-black);}
.btn-ghost-dark:hover{border-color:var(--maroon);color:var(--maroon);}

/* Gallery grid (masonry-ish) */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.gallery figure{margin:0;overflow:hidden;position:relative;background:#111;}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.gallery figure:hover img{transform:scale(1.045);}
figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 22px 16px;font-family:var(--serif);font-style:italic;color:#fff;font-size:1.05rem;background:linear-gradient(0deg, rgba(0,0,0,0.65), transparent);opacity:0;transform:translateY(8px);transition:all .35s ease;}
.gallery figure:hover figcaption{opacity:1;transform:translateY(0);}

/* Celebrations list */
.celebrations{display:grid;grid-template-columns:0.85fr 1.15fr;gap:70px;align-items:center;}
.celebrations img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.occ-list{list-style:none;margin:0;padding:0;}
.occ-list li{border-top:1px solid var(--line);padding:28px 0;display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;}
.occ-list li:last-child{border-bottom:1px solid var(--line);}
.occ-name{font-family:var(--serif);font-size:1.6rem;color:var(--ivory);min-width:210px;}
.occ-desc{color:rgba(246,240,228,0.72);font-size:0.98rem;line-height:1.65;max-width:340px;font-weight:300;}

/* Quote strip */
.quote-strip{padding:90px 0;background:var(--maroon);color:var(--ivory);text-align:center;}
.quote-strip blockquote{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.5rem,3vw,2.3rem);max-width:820px;margin:0 auto 20px;line-height:1.45;}
.quote-strip cite{font-style:normal;font-size:0.85rem;letter-spacing:0.05em;color:var(--rose);}

/* Contact CTA band (home + gallery) */
.cta-band{background:var(--wine-black);color:var(--ivory);padding:80px 0;text-align:center;}
.cta-band h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3.2vw,2.6rem);margin:0 0 26px;}

/* Footer */
footer{background:var(--wine-black);color:var(--ivory);padding:70px 0 40px;}
.foot-cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;}
.foot-cols h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin:0 0 16px;color:var(--gold-light);}
.foot-cols ul{list-style:none;padding:0;margin:0;}
.foot-cols li{margin-bottom:10px;font-size:0.95rem;color:rgba(246,240,228,0.75);}
.foot-cols a{text-decoration:none;}
.foot-cols a:hover{color:var(--gold-light);}
.foot-bottom{margin-top:60px;padding-top:24px;border-top:1px solid rgba(246,240,228,0.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:0.82rem;color:rgba(246,240,228,0.5);}

/* Contact page specifics */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;}
.contact-details{display:flex;flex-direction:column;gap:26px;margin-top:14px;}
.contact-item{display:flex;gap:18px;align-items:flex-start;}
.contact-item .label{font-size:0.78rem;letter-spacing:0.06em;color:var(--maroon);min-width:110px;padding-top:3px;}
.contact-item .value{font-size:1.08rem;color:var(--wine-black);line-height:1.5;}
.contact-item a{text-decoration:none;border-bottom:1px solid rgba(110,20,35,0.35);}
.contact-item a:hover{color:var(--maroon);}
.foot-form{background:rgba(15,51,36,0.04);border:1px solid rgba(110,20,35,0.2);padding:40px;}
.foot-form p.form-title{margin:0 0 24px;font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--maroon);}
.foot-form label{display:block;font-size:0.8rem;letter-spacing:0.04em;color:#5a6b60;margin-bottom:7px;}
.foot-form input, .foot-form select, .foot-form textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(110,20,35,0.3);color:var(--wine-black);font-family:var(--sans);font-size:0.98rem;padding:9px 2px;margin-bottom:22px;}
.foot-form input:focus, .foot-form select:focus, .foot-form textarea:focus{outline:none;border-bottom-color:var(--maroon);}
.foot-form textarea{resize:vertical;min-height:64px;}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} .gallery img, figcaption{transition:none;} }

@media (max-width: 900px){
  nav ul{gap:20px;}
  .celebrations{grid-template-columns:1fr;gap:36px;}
  .celebrations img{aspect-ratio:16/9;}
  .contact-grid{grid-template-columns:1fr;gap:50px;}
  .gallery{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 600px){
  .wrap{padding:0 22px;}
  section{padding:70px 0;}
  nav ul{gap:14px;flex-wrap:wrap;}
  nav a{font-size:0.82rem;}
}
