@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');

:root { --red:#b1123b; --ink:#210910; --wine:#19080d; --gold:#d9a24a; --rose:#fff6f7; --blush:#f5dde3; --muted:#7b5d63; --line:#e7c7cf; --paper:#fff; --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--rose); font:16px/1.65 Inter,Arial,sans-serif; }
img { display:block; width:100%; height:auto; }
a { color:inherit; }
.skip-link { position:absolute; left:-999px; }
.skip-link:focus { left:1rem; top:1rem; z-index:100; padding:.7rem 1rem; background:#fff; }
.container { width:min(var(--max), calc(100% - 3rem)); margin:auto; }
.announcement { background:var(--wine); color:#fff7f8; text-align:center; padding:.6rem 1rem; font:700 .72rem/1.25 "DM Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; display:block; }
.site-header { background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.nav { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand { font:600 clamp(1.7rem,3vw,2.2rem)/1 "Playfair Display",Georgia,serif; text-decoration:none; letter-spacing:-.05em; white-space:nowrap; }
.brand em { color:var(--red); font-weight:500; }
.nav-links { display:flex; align-items:center; justify-content:center; gap:clamp(.85rem,1.8vw,1.55rem); }
.nav-links a { color:var(--ink); text-decoration:none; font:500 .75rem/1 "DM Sans",sans-serif; letter-spacing:.09em; text-transform:uppercase; padding:.6rem 0; border-bottom:1px solid transparent; }
.nav-links a:hover,.nav-links a[aria-current="page"] { color:var(--red); border-color:var(--red); }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:.8rem 1.25rem; border:1px solid var(--red); background:var(--red); color:#fff7f8; font:700 .75rem/1 "DM Sans",sans-serif; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; transition:.2s ease; }
.button:hover { transform:translateY(-2px); background:#8e0d30; }
.button--dark { background:var(--wine); border-color:var(--wine); }
.button--outline { background:transparent; color:var(--wine); border-color:var(--wine); }
.button--outline:hover { background:var(--wine); color:#fff; }
.nav .button { min-height:40px; padding:.7rem .9rem; }
.section { padding:clamp(4.5rem,9vw,8.5rem) 0; }
.section--muted { background:var(--blush); }
.eyebrow { display:block; color:var(--red); font:700 .7rem/1.3 "DM Sans",sans-serif; letter-spacing:.14em; text-transform:uppercase; margin-bottom:1.1rem; }
h1,h2,h3 { font-family:"Playfair Display",Georgia,serif; line-height:.98; letter-spacing:-.045em; margin:0; font-weight:600; }
h1 { font-size:clamp(3.2rem,7vw,6.35rem); max-width:12ch; }
h2 { font-size:clamp(2.45rem,4.7vw,4.3rem); max-width:15ch; }
h3 { font-size:1.65rem; }
p { margin:0; color:var(--muted); }
.section-heading { display:grid; gap:1.25rem; margin-bottom:3rem; }
.section-heading p { max-width:650px; font-size:1.06rem; }
.hero { min-height:690px; position:relative; display:grid; align-items:end; isolation:isolate; background:var(--wine); color:white; }
.hero__image { position:absolute; inset:0; z-index:-2; object-fit:cover; height:100%; }
.hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(25,8,13,.91) 0%,rgba(25,8,13,.72) 44%,rgba(25,8,13,.1) 100%); }
.hero__copy { padding:clamp(4rem,8vw,8rem) 0; max-width:650px; }
.hero__copy p { color:#f9e9ec; max-width:550px; font-size:1.15rem; margin:1.65rem 0 2rem; }
.hero__actions { display:flex; flex-wrap:wrap; gap:.8rem; }
.hero__actions .button--outline { color:#fff7f8; border-color:#fff7f8; }
.hero__trust { color:#fff7f8; font:700 .71rem/1.2 "DM Sans",sans-serif; letter-spacing:.12em; text-transform:uppercase; margin-top:2.1rem; }
.hero--simple { min-height:420px; text-align:center; background:var(--blush); color:var(--ink); align-items:center; }
.hero--simple::after { display:none; }
.hero--simple .hero__copy { margin:auto; padding:5rem 0; }
.hero--simple h1 { max-width:16ch; margin:auto; }
.hero--simple p { color:var(--muted); margin-inline:auto; }
.hero--split { min-height:590px; display:grid; grid-template-columns:1fr 1fr; background:var(--paper); }
.hero--split::after { display:none; }
.hero--split .hero__copy { padding:clamp(3rem,7vw,7rem) max(1.5rem, calc((100vw - var(--max))/2)); max-width:650px; color:var(--ink); order:2; }
.hero--split .hero__copy p { color:var(--muted); }
.hero--split .hero__image { position:static; height:100%; object-fit:cover; order:1; }
.services { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.service-card,.card { background:var(--paper); border:1px solid var(--line); padding:1.15rem; }
.service-card img { aspect-ratio:1; object-fit:cover; margin:-1.15rem -1.15rem 1.35rem; width:calc(100% + 2.3rem); }
.icon { color:var(--red); font:700 .68rem/1 "DM Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.service-card h3 { margin:1rem 0 .55rem; }
.service-card p { font-size:.92rem; }
.text-link { display:inline-block; margin-top:1rem; color:var(--red); font:700 .72rem/1.3 "DM Sans",sans-serif; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.text-link:hover { text-decoration:underline; }
.stats { background:var(--wine); color:#fff7f8; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); text-align:center; }
.stat { padding:1rem 2rem; border-right:1px solid rgba(255,247,248,.25); }
.stat:last-child { border:0; }
.stat strong { display:block; font:600 clamp(3rem,5vw,4.4rem)/1 "Playfair Display",Georgia,serif; color:var(--gold); }
.stat span { display:block; margin-top:.75rem; font:700 .7rem/1.2 "DM Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,8rem); align-items:center; }
.intro img { aspect-ratio:4/3; object-fit:cover; }
.intro p { margin:1.35rem 0; font-size:1.05rem; }
.check-list { padding:0; margin:1.5rem 0 0; list-style:none; display:grid; gap:.65rem; }
.check-list li::before { content:"✦"; color:var(--red); margin-right:.65rem; }
.cta { background:var(--wine); color:white; }
.cta__inner { display:grid; grid-template-columns:1fr auto; align-items:end; gap:2rem; }
.cta p { color:#f0ccd4; margin-top:1rem; max-width:580px; }
.pricing { display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; gap:1.15rem; }
.pricing-card { background:var(--paper); border:1px solid var(--line); padding:2rem; display:flex; flex-direction:column; }
.pricing-card--featured { background:var(--wine); border-color:var(--wine); color:#fff7f8; }
.pricing-card .badge { align-self:flex-start; color:var(--gold); font:700 .68rem/1 "DM Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.pricing-card h3 { margin:1rem 0; }
.price { display:block; font:600 3.4rem/1 "Playfair Display",Georgia,serif; margin:.5rem 0 1rem; }
.pricing-card--featured p,.pricing-card--featured li { color:#f0ccd4; }
.pricing-card ul { list-style:none; padding:0; display:grid; gap:.75rem; margin:1.5rem 0 2rem; }
.pricing-card li::before { content:"—"; color:var(--red); margin-right:.5rem; }
.pricing-card .button { margin-top:auto; }
.gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.gallery img { aspect-ratio:1; object-fit:cover; }
.occasion-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.15rem; }
.quote-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; }
.quote { background:var(--paper); border:1px solid var(--line); padding:2rem; }
.quote p { color:var(--ink); font:500 1.25rem/1.45 "Playfair Display",Georgia,serif; }
.quote footer { color:var(--muted); font:.8rem/1.4 "DM Sans",sans-serif; margin-top:1.25rem; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.cards .stat { color:var(--ink); text-align:left; padding:2rem; border:1px solid var(--line); background:var(--paper); }
.cards .stat strong { color:var(--red); }
.feature-list { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.feature { border-top:2px solid var(--red); padding:1.2rem 0; }
.feature h3 { margin:.75rem 0; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,7vw,7rem); }
.contact-details { display:grid; gap:1.25rem; }
.contact-details p { font-size:.95rem; }
.contact-details strong { display:block; color:var(--ink); font:700 .7rem/1.3 "DM Sans",sans-serif; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.3rem; }
.contact-form { background:var(--paper); border:1px solid var(--line); padding:clamp(1.4rem,4vw,3rem); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
label { display:grid; gap:.45rem; color:var(--ink); font:700 .69rem/1.3 "DM Sans",sans-serif; letter-spacing:.09em; text-transform:uppercase; margin-bottom:1rem; }
input,textarea,select { width:100%; border:1px solid var(--line); border-radius:0; padding:.9rem; color:var(--ink); background:#fff; font:16px Inter,sans-serif; }
textarea { min-height:150px; resize:vertical; }
.form-note { margin-top:1rem; font-size:.8rem; }
.map { margin-top:2.5rem; width:100%; height:360px; border:0; filter:grayscale(1) contrast(.9); }
.faq { max-width:840px; }
.faq details { border-top:1px solid var(--line); padding:1.25rem 0; }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; list-style:none; font:600 1.35rem/1.2 "Playfair Display",Georgia,serif; display:flex; justify-content:space-between; gap:1rem; }
.faq summary::after { content:"+"; color:var(--red); font-family:Inter,sans-serif; }
.faq details[open] summary::after { content:"–"; }
.faq p { margin-top:.8rem; }
.site-footer { background:var(--wine); color:#fff7f8; padding:3.5rem 0; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2rem; }
.site-footer .brand { display:inline-block; margin-bottom:1rem; }
.site-footer p,.site-footer a { color:#e7bdc7; }
.site-footer a { text-decoration:none; }
.site-footer nav { display:grid; gap:.5rem; }
.site-footer h2 { color:var(--gold); font:700 .7rem/1.3 "DM Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.9rem; }
.copyright { border-top:1px solid rgba(255,255,255,.2); color:#d7afb9; margin-top:2.3rem; padding-top:1.25rem; font-size:.77rem; }
@media (max-width:900px) { .nav { flex-wrap:wrap; padding:1rem 0; justify-content:center; } .nav-links { order:3; width:100%; overflow:auto; justify-content:flex-start; padding-bottom:.2rem; } .hero--split { grid-template-columns:1fr; } .hero--split .hero__image { min-height:360px; } .hero--split .hero__copy { padding:4rem 1.5rem; order:1; } .hero--split .hero__image { order:2; } .services,.occasion-grid { grid-template-columns:repeat(2,1fr); } .pricing,.feature-list { grid-template-columns:1fr; } .intro,.contact-grid { grid-template-columns:1fr; } .intro img { order:-1; } }
@media (max-width:600px) { .container { width:min(var(--max), calc(100% - 2rem)); } .nav .button { display:none; } .announcement { font-size:.62rem; } .hero { min-height:620px; } .hero::after { background:linear-gradient(0deg,rgba(25,8,13,.9),rgba(25,8,13,.25)); } .section { padding:4rem 0; } .services,.occasion-grid,.gallery,.quote-grid,.cards,.stats-grid,.footer-grid { grid-template-columns:1fr; } .stat { border-right:0; border-bottom:1px solid rgba(255,247,248,.25); } .stat:last-child { border:0; } .cta__inner,.form-row { grid-template-columns:1fr; } }
