:root{
  --maroon:#2A0A0E;
  --maroon-deep:#1B0509;
  --wine:#7A1E2B;
  --gold:#D4AF6A;
  --gold-light:#F0D999;
  --gold-deep:#A8792F;
  --cream:#FBF3E2;
  --ivory:#FFFBF3;
  --ink:#2A0A0E;
  --rose:#C6607A;
  --teal:#2E6E68;
  --lavender:#7C6A9C;
  --navy:#2B4A66;
  --line-gold:rgba(212,175,106,0.55);
  --display:'Playfair Display', Georgia, serif;
  --sans:'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--cream);color:var(--ink);
  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:1200px;margin:0 auto;padding:0 32px;}
.rule{height:1px;background:linear-gradient(90deg, transparent, var(--gold), transparent);border:none;margin:0;}

/* Nav */
header{position:relative;z-index:30;padding:20px 0;background:var(--maroon);border-bottom:1px solid var(--line-gold);}
header.on-hero{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg, rgba(27,5,9,0.85), transparent);border-bottom:none;}
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:56px;width:56px;object-fit:cover;border-radius:50%;border:2px solid var(--gold);flex-shrink:0;}
.brand .brand-text{font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--gold-light);letter-spacing:0.02em;line-height:1.1;}
.brand .brand-text span{display:block;font-family:var(--sans);font-size:0.6rem;letter-spacing:0.2em;color:var(--gold);margin-top:5px;font-weight:500;text-transform:uppercase;}
nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;}
nav a{color:var(--cream);text-decoration:none;font-size:0.92rem;padding-bottom:5px;border-bottom:1px solid transparent;transition:all .25s ease;}
nav a:hover, nav a:focus-visible{color:var(--gold-light);border-color:var(--gold);}
nav a.current{color:var(--gold-light);border-color:var(--gold);}

/* Hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:var(--maroon-deep);}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.5;}
.hero::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 20%, rgba(122,30,43,0.5), transparent 55%),
             linear-gradient(180deg, rgba(27,5,9,0.92) 0%, rgba(27,5,9,0.65) 45%, rgba(27,5,9,0.95) 100%);}
.hero-content{position:relative;z-index:2;padding-top:110px;width:100%;text-align:center;}
.hero-badge{width:130px;height:130px;border-radius:50%;object-fit:cover;border:3px solid var(--gold);margin:0 auto 30px;box-shadow:0 0 0 6px rgba(212,175,106,0.15);}
.kicker{color:var(--gold-light);font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;margin:0 0 18px;font-weight:500;}
h1.hero-title{font-family:var(--display);font-weight:700;color:var(--ivory);font-size:clamp(2.6rem, 6vw, 4.6rem);line-height:1.08;margin:0 auto 22px;max-width:820px;}
h1.hero-title em{font-style:italic;color:var(--gold-light);}
.hero-sub{color:rgba(251,243,226,0.82);font-size:1.1rem;line-height:1.7;max-width:560px;margin:0 auto 40px;font-weight:300;}
.cta-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:center;margin-bottom:70px;}
.hero-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-gold);}
.hero-strip div{padding:26px 20px;text-align:center;border-right:1px solid var(--line-gold);}
.hero-strip div:last-child{border-right:none;}
.hero-strip strong{display:block;font-family:var(--display);color:var(--gold-light);font-size:1.15rem;margin-bottom:4px;}
.hero-strip span{color:rgba(251,243,226,0.65);font-size:0.82rem;}

/* Buttons */
.btn{display:inline-block;padding:16px 36px;font-family:var(--sans);font-size:0.92rem;font-weight:500;letter-spacing:0.02em;text-decoration:none;border-radius:4px;transition:all .3s ease;}
.btn-solid{background:linear-gradient(135deg, var(--gold-light), var(--gold-deep));color:var(--maroon-deep);}
.btn-solid:hover{filter:brightness(1.08);}
.btn-ghost{border:1px solid var(--gold);color:var(--gold-light);}
.btn-ghost:hover{background:rgba(212,175,106,0.12);}
.btn-ghost-dark{border:1px solid var(--wine);color:var(--wine);}
.btn-ghost-dark:hover{background:rgba(122,30,43,0.08);}

/* Section shells */
section{padding:100px 0;}
.section-light{background:var(--cream);}
.section-dark{background:var(--maroon);color:var(--ivory);}
.eyebrow{font-family:var(--sans);letter-spacing:0.2em;text-transform:uppercase;color:var(--wine);font-size:0.78rem;font-weight:600;margin:0 0 14px;}
.section-dark .eyebrow{color:var(--gold-light);}
h2.section-title{font-family:var(--display);font-weight:700;font-size:clamp(2rem,3.4vw,2.9rem);margin:0 0 28px;line-height:1.16;max-width:620px;color:var(--maroon);}
.section-dark h2.section-title{color:var(--ivory);}
.lede{font-size:1.05rem;line-height:1.75;max-width:540px;color:#4a3530;font-weight:300;}
.section-dark .lede{color:rgba(251,243,226,0.8);}

.space-intro{display:flex;justify-content:space-between;gap:60px;flex-wrap:wrap;margin-bottom:50px;align-items:flex-end;}
.space-intro .lede{margin-bottom:0;}
.teaser-gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px;}
.teaser-gallery figure{margin:0;overflow:hidden;aspect-ratio:4/5;border-radius:6px;border:2px solid var(--gold);}
.teaser-gallery img{width:100%;height:100%;object-fit:cover;}

/* Occasion color cards */
.occ-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.occ-card{border-radius:10px;padding:32px 24px;position:relative;overflow:hidden;}
.occ-card h3{font-family:var(--display);font-size:1.4rem;margin:0 0 12px;color:var(--ivory);}
.occ-card p{font-size:0.92rem;line-height:1.6;color:rgba(255,255,255,0.85);margin:0;font-weight:300;}
.occ-wed{background:linear-gradient(145deg, var(--rose), #8f3a52);}
.occ-bday{background:linear-gradient(145deg, var(--teal), #1c4b46);}
.occ-anniv{background:linear-gradient(145deg, var(--lavender), #4d3f6b);}
.occ-corp{background:linear-gradient(145deg, var(--navy), #16283a);}

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

/* Quote strip */
.quote-strip{padding:90px 0;background:linear-gradient(135deg, var(--wine), var(--maroon));color:var(--ivory);text-align:center;}
.quote-strip blockquote{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(1.5rem,3vw,2.2rem);max-width:820px;margin:0 auto 20px;line-height:1.45;}
.quote-strip cite{font-style:normal;font-size:0.85rem;letter-spacing:0.08em;color:var(--gold-light);text-transform:uppercase;}

/* CTA band */
.cta-band{background:var(--maroon-deep);color:var(--ivory);padding:80px 0;text-align:center;}
.cta-band h2{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3.2vw,2.6rem);margin:0 0 26px;}

/* Footer */
footer{background:var(--maroon-deep);color:var(--ivory);padding:70px 0 40px;border-top:1px solid var(--line-gold);}
.foot-cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;}
.foot-brand{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.foot-brand img{height:50px;width:50px;object-fit:cover;border-radius:50%;border:2px solid var(--gold);}
.foot-brand .brand-text{font-family:var(--display);font-weight:700;font-size:1.3rem;color:var(--gold-light);}
.foot-cols h3{font-family:var(--sans);font-weight:600;font-size:0.8rem;letter-spacing:0.15em;text-transform:uppercase;margin:0 0 16px;color:var(--gold);}
.foot-cols ul{list-style:none;padding:0;margin:0;}
.foot-cols li{margin-bottom:10px;font-size:0.95rem;color:rgba(251,243,226,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 var(--line-gold);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:0.82rem;color:rgba(251,243,226,0.5);}

/* Page banner */
.page-banner{background:linear-gradient(135deg, var(--maroon-deep), var(--maroon));color:var(--ivory);padding:150px 0 64px;border-bottom:1px solid var(--line-gold);}
.page-banner .eyebrow{color:var(--gold-light);}
.page-banner h1{font-family:var(--display);font-weight:700;font-size:clamp(2.2rem,4.4vw,3.4rem);margin:0 0 14px;}
.page-banner p{max-width:560px;color:rgba(251,243,226,0.8);line-height:1.7;font-size:1.05rem;margin:0;}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;}
.contact-details{display:flex;flex-direction:column;gap:24px;margin-top:14px;}
.contact-item{display:flex;gap:18px;align-items:flex-start;padding:18px 20px;background:var(--ivory);border-radius:8px;border:1px solid var(--line-gold);}
.contact-item .label{font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--wine);min-width:100px;padding-top:3px;font-weight:600;}
.contact-item .value{font-size:1.05rem;color:var(--ink);line-height:1.5;}
.contact-item a{text-decoration:none;border-bottom:1px solid var(--wine);}
.contact-item a:hover{color:var(--wine);}
.foot-form{background:var(--ivory);border:2px solid var(--gold);border-radius:10px;padding:40px;}
.foot-form p.form-title{margin:0 0 24px;font-family:var(--display);font-weight:700;font-size:1.3rem;color:var(--wine);}
.foot-form label{display:block;font-size:0.8rem;letter-spacing:0.03em;color:#7a5a4f;margin-bottom:7px;}
.foot-form input, .foot-form select, .foot-form textarea{width:100%;background:#fff;border:1px solid rgba(122,30,43,0.25);border-radius:5px;color:var(--ink);font-family:var(--sans);font-size:0.98rem;padding:11px 12px;margin-bottom:20px;}
.foot-form input:focus, .foot-form select:focus, .foot-form textarea:focus{outline:none;border-color:var(--wine);}
.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{transition:none;} }

@media (max-width: 900px){
  nav ul{gap:18px;}
  .occ-grid{grid-template-columns:repeat(2,1fr);}
  .hero-strip{grid-template-columns:repeat(2,1fr);}
  .hero-strip div:nth-child(2){border-right:none;}
  .contact-grid{grid-template-columns:1fr;gap:50px;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .teaser-gallery{grid-template-columns:1fr 1fr;}
}
@media (max-width: 600px){
  .wrap{padding:0 22px;}
  section{padding:70px 0;}
  .occ-grid{grid-template-columns:1fr;}
  .hero-strip{grid-template-columns:1fr 1fr;}
  nav ul{gap:14px;flex-wrap:wrap;}
  nav a{font-size:0.82rem;}
}
