:root{
  --maroon-900:#4E0B22;
  --maroon-700:#7B1236;
  --maroon-600:#8F1740;
  --maroon-500:#A31752;
  --gold-700:#9C7523;
  --gold-600:#B8892B;
  --gold-400:#D9AF5C;
  --gold-200:#EFDBA6;
  --blush-100:#FCEEF2;
  --blush-50:#FFF7F8;
  --cream-50:#FFFBF6;
  --ink-900:#2B1620;
  --ink-600:#6B4E56;
  --font-display:'Playfair Display', serif;
  --font-script:'Dancing Script', cursive;
  --font-body:'Jost', sans-serif;
}

*{ scroll-behavior:smooth; box-sizing:border-box; }
html, body{ max-width:100%; overflow-x:hidden; }
img{ max-width:100%; height:auto; }
body{ font-family:var(--font-body); color:var(--ink-900); background:var(--cream-50); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4, .font-display{ font-family:var(--font-display); }
.font-script{ font-family:var(--font-script); }
a{ text-decoration:none; }

.flourish{ display:flex; align-items:center; justify-content:center; gap:.75rem; color:var(--gold-600); margin:0 auto 1.25rem; }
.flourish .line{ height:1px; width:56px; background:linear-gradient(90deg,transparent,var(--gold-600)); }
.flourish .line.reverse{ background:linear-gradient(90deg,var(--gold-600),transparent); }
.flourish i{ font-size:.75rem; }

.eyebrow{ letter-spacing:.22em; text-transform:uppercase; font-size:.75rem; font-weight:600; color:var(--maroon-600); }

.navbar-dreckiee{ background:rgba(255,251,246,.92); backdrop-filter:blur(10px); transition:box-shadow .3s ease, padding .3s ease; padding-top:.85rem; padding-bottom:.85rem; border-bottom:1px solid rgba(184,137,43,.18); }
.navbar-dreckiee.scrolled{ box-shadow:0 8px 24px -12px rgba(75,10,30,.25); padding-top:.5rem; padding-bottom:.5rem; }
.brand-mark{ display:flex; align-items:center; gap:.6rem; }
.brand-crown{ width:40px; height:40px; border-radius:50%; background:radial-gradient(circle at 30% 30%, var(--gold-200), var(--gold-600) 70%); display:flex; align-items:center; justify-content:center; color:var(--maroon-900); font-size:1.05rem; flex-shrink:0; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5); }
.brand-text{ line-height:1.05; }
.brand-text .name{ font-family:var(--font-display); font-weight:800; font-size:1.35rem; color:var(--maroon-700); letter-spacing:.01em; }
.brand-text .sub{ font-family:var(--font-script); font-size:1.05rem; color:var(--gold-700); margin-top:-2px; display:block; }
.navbar-dreckiee .nav-link{ font-weight:500; color:var(--ink-900); letter-spacing:.02em; margin:0 .5rem; position:relative; }
.navbar-dreckiee .nav-link::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold-600); transition:width .25s ease; }
.navbar-dreckiee .nav-link:hover::after, .navbar-dreckiee .nav-link.active::after{ width:100%; }
.navbar-dreckiee .nav-link.active{ color:var(--maroon-700); }

.btn-maroon{ background:linear-gradient(135deg, var(--maroon-600), var(--maroon-900)); color:var(--cream-50); border:1px solid var(--maroon-900); font-weight:600; letter-spacing:.02em; padding:.6rem 1.3rem; border-radius:50px; transition:transform .2s ease, box-shadow .2s ease; }
.btn-maroon:hover{ color:var(--cream-50); transform:translateY(-2px); box-shadow:0 10px 22px -10px rgba(75,10,30,.55); }
.btn-gold-outline{ border:1.5px solid var(--gold-600); color:var(--maroon-700); background:transparent; font-weight:600; padding:.58rem 1.3rem; border-radius:50px; transition:all .2s ease; }
.btn-gold-outline:hover{ background:var(--gold-600); color:var(--cream-50); border-color:var(--gold-600); }

.hero{ position:relative; overflow:hidden; padding-top:7.5rem; padding-bottom:5rem; background: radial-gradient(1200px 600px at 85% -10%, rgba(184,137,43,.16), transparent 60%), radial-gradient(900px 500px at -10% 10%, rgba(163,23,82,.10), transparent 55%), linear-gradient(180deg, var(--blush-50), var(--blush-100) 65%, var(--cream-50)); }
.hero::before{ content:""; position:absolute; inset:0; opacity:.5; pointer-events:none; background-image: repeating-radial-gradient(circle at 20% 30%, rgba(184,137,43,.04) 0, rgba(184,137,43,.04) 1px, transparent 1px, transparent 40px); }
.hero-badge{ display:inline-flex; align-items:center; gap:.5rem; background:var(--cream-50); border:1px solid var(--gold-400); color:var(--maroon-700); font-size:.8rem; font-weight:600; padding:.4rem .9rem; border-radius:50px; letter-spacing:.03em; }
.hero-title{ font-weight:900; color:var(--maroon-700); font-size:clamp(2.6rem, 6vw, 4.4rem); line-height:1; margin-top:1rem; background:linear-gradient(120deg, var(--maroon-900), var(--maroon-500) 55%, var(--gold-600)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-script{ font-family:var(--font-script); font-weight:700; color:var(--gold-700); font-size:clamp(1.8rem, 3.4vw, 2.6rem); margin-top:-.6rem; display:block; }
.hero-tagline{ font-family:var(--font-display); font-style:italic; color:var(--maroon-600); font-size:1.15rem; margin-top:.75rem; }
.hero-copy{ color:var(--ink-600); max-width:34rem; font-size:1.02rem; }

.collage{ position:relative; height:420px; overflow:hidden; }
.photo-card{ position:absolute; border-radius:22px; overflow:hidden; box-shadow:0 20px 40px -18px rgba(75,10,30,.35); border:3px solid var(--cream-50); outline:1px solid var(--gold-400); display:flex; align-items:end; justify-content:flex-start; }
.photo-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-card .photo-caption{ position:absolute; left:0; right:0; bottom:0; padding:.9rem; color:#fff; font-family:var(--font-display); font-weight:700; font-size:1.05rem; text-shadow:0 2px 8px rgba(0,0,0,.45); background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.45)); }
.pc-1{ width:clamp(160px, 42vw, 220px); height:clamp(200px, 52vw, 270px); top:0; left:10%; transform:rotate(-4deg); z-index:2;}
.pc-2{ width:clamp(130px, 36vw, 190px); aspect-ratio:1/1; height:auto; border-radius:50%; bottom:0; right:2%; z-index:1;}
.pc-3{ width:clamp(105px, 28vw, 150px); aspect-ratio:1/1; height:auto; border-radius:50%; top:10%; right:20%; z-index:3; border-width:4px;}
.collage-ring{ position:absolute; width:140px; height:140px; border:2px dashed var(--gold-400); border-radius:50%; bottom:6%; left:0; opacity:.6; }

.feature-card{ text-align:center; padding:2rem 1.25rem; height:100%; }
.feature-icon{ width:74px; height:74px; margin:0 auto 1.1rem; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--cream-50); border:2px solid var(--gold-400); color:var(--maroon-700); font-size:1.6rem; box-shadow:0 10px 22px -14px rgba(75,10,30,.4); }
.feature-card h5{ color:var(--maroon-700); font-weight:700; }
.feature-card p{ color:var(--ink-600); font-size:.94rem; margin-bottom:0; }

.section-blush{ background:var(--blush-100); }
.price-card{ background:var(--cream-50); border:1.5px solid var(--gold-400); border-radius:24px; padding:3rem 2rem 2.4rem; position:relative; box-shadow:0 24px 50px -30px rgba(75,10,30,.35); overflow:hidden; }
.price-card::before, .price-card::after{ content:""; position:absolute; width:14px; height:14px; border:2px solid var(--gold-600); border-radius:50%; background:var(--blush-100); }
.price-card::before{ top:8px; left:8px; }
.price-card::after{ bottom:8px; right:8px; }

.menu-ribbon{ position:relative; display:flex; justify-content:center; margin:-4.6rem auto 2.2rem; z-index:2; max-width:100%; padding:0 1.75rem; }
.menu-ribbon .ribbon-body{ background:linear-gradient(135deg, var(--maroon-500), var(--maroon-700)); color:#fff; font-family:var(--font-display); font-weight:800; letter-spacing:.04em; font-size:clamp(1rem, 4vw, 1.6rem); text-align:center; padding:.9rem 2.4rem; border-top:2px solid var(--gold-400); border-bottom:2px solid var(--gold-400); box-shadow:0 16px 30px -14px rgba(75,10,30,.55); position:relative; text-transform:uppercase; max-width:100%; display:flex; align-items:center; justify-content:center; gap:.6rem; flex-wrap:wrap; }
.menu-ribbon .ribbon-body::before, .menu-ribbon .ribbon-body::after{ content:""; position:absolute; top:0; border-top:26px solid var(--maroon-900); border-bottom:26px solid var(--maroon-900); }
.menu-ribbon .ribbon-body::before{ left:-22px; border-left:22px solid transparent; }
.menu-ribbon .ribbon-body::after{ right:-22px; border-right:22px solid transparent; }
.menu-ribbon .ribbon-dot{ width:6px; height:6px; border-radius:50%; background:var(--gold-400); display:inline-block; flex-shrink:0; }

.price-category{ margin-top:2.1rem; }
.price-category:first-of-type{ margin-top:0; }
.category-pill-wrap{ display:flex; justify-content:center; margin-bottom:1.1rem; }
.category-pill{ background:linear-gradient(135deg, var(--maroon-600), var(--maroon-900)); color:#fff; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; padding:.5rem 1.6rem; border-radius:50px; border:1px solid var(--gold-400); box-shadow:0 10px 20px -12px rgba(75,10,30,.5); }

.price-category-body{ display:flex; gap:1.25rem; align-items:flex-start; }
.price-icon-medal{ flex-shrink:0; width:64px; height:64px; border-radius:50%; background:radial-gradient(circle at 32% 28%, var(--maroon-500), var(--maroon-900) 75%); border:2px solid var(--gold-400); display:flex; align-items:center; justify-content:center; color:var(--gold-200); font-size:1.5rem; box-shadow:0 10px 20px -12px rgba(75,10,30,.5); }
.price-category-list{ flex:1 1 auto; min-width:0; }

.price-row{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .6rem; padding:.5rem 0; border-bottom:1px dashed rgba(184,137,43,.25); }
.price-row:last-child{ border-bottom:0; }
.price-row .name{ font-weight:500; color:var(--ink-900); font-size:.96rem; min-width:0; overflow-wrap:break-word; word-break:break-word; flex:1 1 140px; }
.price-row .fill{ flex:1 1 auto; border-bottom:2px dotted var(--gold-600); margin-bottom:5px; min-width:12px; }
.price-row .amount{ white-space:nowrap; font-weight:700; color:var(--maroon-600); font-family:var(--font-display); font-size:1.02rem; }
.price-note{ font-size:.82rem; color:var(--ink-600); }

.price-divider{ display:flex; align-items:center; gap:.6rem; margin:2rem 0 1.6rem; color:var(--gold-600); }
.price-divider .line{ flex:1 1 auto; height:1px; background:linear-gradient(90deg, transparent, var(--gold-600), transparent); }

@media (max-width: 575.98px){
  .price-category-body{ flex-direction:column; align-items:center; text-align:center; gap:.6rem; }
  .price-row{ justify-content:space-between; }
  .price-row .fill{ display:none; }
  .price-row .name{ flex:1 1 auto; }
}

.pkg-card{ border:1px solid rgba(184,137,43,.35); border-radius:18px; padding:1.75rem 1.5rem; height:100%; background:var(--cream-50); transition:transform .25s ease, box-shadow .25s ease; }
.pkg-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -22px rgba(75,10,30,.35); }
.pkg-card .pkg-eyebrow{ color:var(--gold-700); font-weight:700; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; }
.pkg-card h5{ font-family:var(--font-display); color:var(--maroon-700); font-weight:700; margin:.35rem 0 1rem; }
.pkg-card ul{ list-style:none; padding:0; margin:0; }
.pkg-card ul li{ display:flex; align-items:flex-start; gap:.55rem; margin-bottom:.55rem; color:var(--ink-900); font-size:.93rem; }
.pkg-card ul li i{ color:var(--gold-600); margin-top:.2rem; }

.gallery-circle{ width:100%; aspect-ratio:1/1; border-radius:50%; overflow:hidden; border:4px solid var(--cream-50); outline:2px solid var(--gold-400); display:flex; align-items:center; justify-content:center; position:relative; box-shadow:0 18px 32px -18px rgba(75,10,30,.4); transition:transform .3s ease; }
.gallery-circle:hover{ transform:translateY(-6px) scale(1.02); }
.gallery-circle img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery-caption{ text-align:center; margin-top:.75rem; font-weight:600; color:var(--maroon-700); font-size:.9rem; }

.about-check li{ display:flex; gap:.65rem; margin-bottom:.85rem; color:var(--ink-900); }
.about-check i{ color:var(--gold-600); font-size:1.1rem; margin-top:.15rem; }
.about-frame{ border-radius:20px; overflow:hidden; aspect-ratio:4/5; position:relative; box-shadow:0 24px 46px -24px rgba(75,10,30,.45); border:3px solid var(--cream-50); outline:1px solid var(--gold-400); }
.about-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
.about-frame .frame-caption{ position:absolute; left:0; right:0; bottom:0; padding:1.25rem; color:#fff; font-family:var(--font-display); font-size:1.1rem; font-weight:700; background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.55)); text-shadow:0 2px 8px rgba(0,0,0,.4); }

.location-card{ background:linear-gradient(135deg, var(--maroon-700), var(--maroon-900)); color:var(--blush-50); border-radius:24px; padding:2.75rem; position:relative; overflow:hidden; }
.location-card::after{ content:""; position:absolute; inset:0; background:radial-gradient(500px 260px at 90% 0%, rgba(216,175,92,.25), transparent 60%); }
.loc-item{ display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.4rem; position:relative; z-index:1;}
.loc-item .ic{ width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.08); border:1.5px solid var(--gold-400); display:flex; align-items:center; justify-content:center; color:var(--gold-200); flex-shrink:0; }
.loc-item h6{ font-weight:700; margin-bottom:.15rem; color:#fff; }
.loc-item p, .loc-item a{ color:var(--blush-100); margin-bottom:0; font-size:.94rem; overflow-wrap:break-word; }
.loc-item a{ text-decoration:underline; text-decoration-color:var(--gold-400); }

.map-frame{ border-radius:20px; overflow:hidden; height:100%; min-height:320px; border:1px solid rgba(184,137,43,.3); }
.map-frame iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; }

footer.site-footer{ background:var(--maroon-900); color:var(--blush-100); padding-top:3.5rem; }
footer.site-footer h6{ color:var(--gold-200); font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:.8rem; margin-bottom:1rem;}
footer.site-footer a{ color:var(--blush-100); }
footer.site-footer a:hover{ color:var(--gold-200); }
footer.site-footer ul{ list-style:none; padding:0; }
footer.site-footer ul li{ margin-bottom:.55rem; font-size:.92rem; overflow-wrap:break-word; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:2.5rem; padding:1.25rem 0; font-size:.82rem; color:rgba(255,255,255,.65);}
.social-circle{ width:38px; height:38px; border-radius:50%; border:1px solid var(--gold-400); display:inline-flex; align-items:center; justify-content:center; margin-right:.5rem; color:var(--gold-200); transition:all .2s ease; }
.social-circle:hover{ background:var(--gold-600); color:var(--maroon-900); }

.wa-float{ position:fixed; right:22px; bottom:22px; z-index:1050; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem; box-shadow:0 14px 28px -10px rgba(0,0,0,.4); animation:wa-pulse 2.4s infinite; }
@keyframes wa-pulse{ 0%{ box-shadow:0 0 0 0 rgba(37,211,102,.55); } 70%{ box-shadow:0 0 0 14px rgba(37,211,102,0); } 100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); } }

@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

@media (max-width: 991.98px){ .collage{ height:340px; margin-top:2.5rem; } }
@media (max-width: 767.98px){
  .hero{ padding-top:6.5rem; text-align:center; }
  .hero-copy{ margin-left:auto; margin-right:auto; }
  .collage{ height:300px; }
  .price-card{ padding:2.6rem 1.25rem 1.75rem; }
  .menu-ribbon{ margin-top:-3.6rem; padding:0 1rem; }
  .menu-ribbon .ribbon-body{ padding:.75rem 1.25rem; }
  .menu-ribbon .ribbon-body::before, .menu-ribbon .ribbon-body::after{ border-top-width:20px; border-bottom-width:20px; }
  .menu-ribbon .ribbon-body::before{ left:-14px; border-left-width:14px; }
  .menu-ribbon .ribbon-body::after{ right:-14px; border-right-width:14px; }
}
@media (max-width: 400px){ .menu-ribbon .ribbon-body::before, .menu-ribbon .ribbon-body::after{ display:none; } }
