/* ══════════════════════════════════════════════════════════════
   SUNSHINE EVENTS — Design system v2 (refonte 2026)
   Palette inchangée : or #D4AF37 / #F0D060 / #A07820 — noir #080706
   Partagé par toutes les pages publiques (index + fiches + packages…)
   ══════════════════════════════════════════════════════════════ */
:root{
  --gold:#D4AF37;--gold2:#F0D060;--gold3:#A07820;
  --black:#080706;--black2:#0F0E0C;--black3:#161410;
  --white:#FDF9F0;--grey:rgba(253,249,240,.5);--red:#E53935;--green:#43A047;
  --line:rgba(212,175,55,.14);--line2:rgba(212,175,55,.3);
  --card:linear-gradient(165deg,rgba(24,22,17,.92),rgba(14,13,11,.96));
  --glow:0 24px 60px -24px rgba(212,175,55,.35);
  --r:18px;--r2:12px;
  --ease:cubic-bezier(.22,1,.36,1);
  --nav-h:72px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;background:var(--black);-webkit-text-size-adjust:100%;text-size-adjust:100%;}
/* overflow-x:hidden faisait de body un conteneur de defilement ; overscroll-
   behavior-y:contain interdisait alors au defilement d'en ressortir vers la
   page. La molette etait avalee par une boite qui ne pouvait pas bouger.
   clip coupe le debordement sans creer de conteneur, et plus rien ne
   retient le defilement. */
body{background:transparent;color:var(--white);font-family:'Jost',sans-serif;line-height:1.7;overflow-x:clip;min-height:100vh;-webkit-tap-highlight-color:transparent;}
/* halo ambiant fixe (léger, pas d'animation coûteuse) */
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(55% 40% at 12% 0%,rgba(212,175,55,.09),transparent 65%),
             radial-gradient(45% 35% at 92% 12%,rgba(160,120,32,.07),transparent 60%),
             radial-gradient(50% 40% at 50% 110%,rgba(212,175,55,.05),transparent 60%);}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
button,input,select,textarea{font-family:inherit;}
input,select,textarea,button{font-size:16px;}
::selection{background:rgba(212,175,55,.35);color:#fff;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px;}

/* ===== UTILS ===== */
.gold{color:var(--gold);}
.italic{font-family:'Libre Baskerville',serif;font-style:italic;font-weight:400;}
.cinzel{font-family:'Cinzel',serif;}
.grad-text,.section-title .italic,.hero-h1 .gold,.italic.gold,.hero-mini h1 .gold{
  background:linear-gradient(115deg,var(--gold3) 0%,var(--gold) 30%,var(--gold2) 55%,var(--gold) 80%,var(--gold3) 100%);
  background-size:200% 100%;background-position:40% 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;}
/* Le reflet animait background-position sur du texte decoupe dans un degrade :
   le navigateur repeignait ce texte a chaque image, sans fin, sur le fil qui
   gere aussi le defilement. Le degrade dore reste, fige a l'endroit ou le
   reflet passait. @keyframes shine est conserve, plus rien ne l'utilise. */
@keyframes shine{to{background-position:200% 0;}}
.section-label{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:16px;}
.section-label::before{content:'';display:inline-block;vertical-align:middle;width:26px;height:1px;margin-right:12px;background:linear-gradient(90deg,transparent,var(--gold));}
.section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:400;letter-spacing:.03em;line-height:1.18;margin-bottom:22px;}
.deco-divider{display:flex;align-items:center;gap:12px;margin-bottom:32px;}
.deco-divider .dl{height:1px;width:50px;background:linear-gradient(90deg,rgba(212,175,55,.05),rgba(212,175,55,.5));}
.deco-divider .dl:last-child{background:linear-gradient(90deg,rgba(212,175,55,.5),rgba(212,175,55,.05));}
.deco-divider .dd{width:7px;height:7px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 12px rgba(212,175,55,.8);}

/* ===== BOUTONS ===== */
.btn-gold,.btn-outline,.btn-outline-gold{font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 34px;border-radius:999px;cursor:pointer;min-height:48px;line-height:1.2;text-align:center;transition:transform .35s var(--ease),box-shadow .35s,background .35s,color .35s,border-color .35s;}
.btn-gold{position:relative;overflow:hidden;color:var(--black);font-weight:700;border:none;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold2) 50%,var(--gold) 100%);background-size:200% 100%;
  box-shadow:0 12px 30px -12px rgba(212,175,55,.7);}
.btn-gold::after{content:'';position:absolute;top:0;left:-80%;width:45%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .8s var(--ease);}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 20px 44px -14px rgba(212,175,55,.85);background-position:100% 0;opacity:1;}
.btn-gold:hover::after{left:140%;}
.btn-gold:active{transform:translateY(0);}
.btn-outline,.btn-outline-gold{color:var(--gold);background:rgba(212,175,55,.04);border:1px solid rgba(212,175,55,.4);backdrop-filter:blur(6px);}
.btn-outline:hover,.btn-outline-gold:hover{background:rgba(212,175,55,.12);border-color:var(--gold);color:var(--gold2);transform:translateY(-2px);}

/* ===== NAV ===== */
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px max(40px,env(safe-area-inset-right)) 16px max(40px,env(safe-area-inset-left));
  background:rgba(8,7,6,.55);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
  border-bottom:1px solid rgba(212,175,55,.1);transition:padding .35s var(--ease),background .35s,box-shadow .35s;}
/* backdrop-filter sur un bandeau fixe oblige le navigateur a re-flouter tout
   ce qui passe derriere, a chaque image affichee pendant le defilement. Des
   que la page bouge, le fond du bandeau passe a 86% d'opacite : le flou n'y
   est quasiment plus visible, mais il continuait d'etre calcule. On le garde
   en haut de page, la ou rien ne defile, et on le retire des que ca bouge. */
#nav.scrolled{padding-top:10px;padding-bottom:10px;background:rgba(8,7,6,.94);
  backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 10px 40px -20px rgba(0,0,0,.8);}
.nav-logo{font-family:'Cinzel',serif;font-size:1.05rem;font-weight:700;letter-spacing:.22em;color:var(--gold);line-height:1.15;cursor:pointer;white-space:nowrap;}
.nav-logo small,.nav-logo span{display:block;font-family:'Cinzel',serif;font-size:.46rem;letter-spacing:.42em;color:rgba(212,175,55,.5);font-weight:400;text-transform:uppercase;}
.nav-links{display:flex;gap:2px;align-items:center;}
.nav-links a{position:relative;font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(253,249,240,.65);padding:10px 14px;white-space:nowrap;transition:color .3s;}
.nav-links a::after{content:'';position:absolute;left:14px;right:14px;bottom:5px;height:1px;background:linear-gradient(90deg,var(--gold),var(--gold2));transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}
.nav-cart-btn,.nav-cta{margin-left:10px;background:linear-gradient(135deg,var(--gold),var(--gold2))!important;color:var(--black)!important;padding:11px 22px!important;border-radius:999px;font-weight:700!important;box-shadow:0 8px 24px -8px rgba(212,175,55,.6);transition:transform .3s var(--ease),box-shadow .3s!important;}
.nav-cart-btn::after,.nav-cta::after{display:none;}
.nav-cart-btn:hover,.nav-cta:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(212,175,55,.8);}
.cart-badge{position:absolute;top:-7px;right:-4px;background:var(--red);color:#fff;border-radius:999px;min-width:19px;height:19px;padding:0 5px;font-size:.62rem;display:flex;align-items:center;justify-content:center;font-family:'Jost',sans-serif;font-weight:700;border:2px solid var(--black);}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:10px;border-radius:10px;border:1px solid rgba(212,175,55,.15);}
.hamburger span{width:22px;height:2px;background:var(--gold);border-radius:2px;transition:all .3s;}
/* drawer mobile */
.mobile-nav{position:fixed;top:0;right:-300px;width:min(300px,86vw);height:100dvh;z-index:1100;background:rgba(15,14,12,.96);backdrop-filter:blur(20px);border-left:1px solid rgba(212,175,55,.15);transition:right .4s var(--ease);padding:90px 28px max(30px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:4px;overflow-y:auto;}
.mobile-nav.open{right:0;}
.mobile-nav a{font-family:'Cinzel',serif;font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(253,249,240,.7);padding:14px 12px;border-radius:10px;transition:all .25s;}
.mobile-nav a:hover,.mobile-nav a.active{color:var(--gold);background:rgba(212,175,55,.07);}
.overlay-nav,.mobile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);z-index:1050;display:none;}
.overlay-nav.open,.mobile-overlay.open{display:block;}

/* ===== REVEAL ===== */
.rv{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);}
.rv.rv-hidden{opacity:0;transform:translateY(28px);}
.rv.show,.rv.visible{opacity:1;transform:none;}
.rv1{transition-delay:.08s;}.rv2{transition-delay:.16s;}.rv3{transition-delay:.24s;}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}.rv.rv-hidden{opacity:1;transform:none;}}

/* ===== CARTE GÉNÉRIQUE ===== */
.card-glass{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;}
.card-glass::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(212,175,55,.35),transparent 40%,transparent 60%,rgba(212,175,55,.15));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.6;transition:opacity .45s;}
.card-glass:hover{transform:translateY(-6px);border-color:rgba(212,175,55,.4);box-shadow:var(--glow);}
.card-glass:hover::before{opacity:1;}

/* ===== FOOTER ===== */
footer{position:relative;background:var(--black2);border-top:1px solid var(--line);padding:72px 40px 28px;margin-top:40px;}
footer::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:min(700px,80%);height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.footer-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:44px;margin-bottom:44px;}
.footer-brand .footer-logo,.footer-brand > div:first-child{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:700;color:var(--gold);letter-spacing:.22em;}
.footer-brand p,.footer-tagline{font-size:.84rem;font-weight:300;color:rgba(253,249,240,.45);line-height:1.8;margin-top:12px;max-width:320px;}
.footer-socials{display:flex;gap:10px;margin-top:20px;}
.footer-socials a{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:rgba(253,249,240,.6);transition:all .3s;}
.footer-socials a:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-3px);background:rgba(212,175,55,.06);}
.footer-socials svg{width:16px;height:16px;fill:currentColor;}
.footer-col h4{font-family:'Cinzel',serif;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.footer-col a,.footer-col p{display:block;font-size:.84rem;color:rgba(253,249,240,.5);margin-bottom:10px;transition:color .3s,transform .3s;}
.footer-col a:hover{color:var(--gold);transform:translateX(4px);}
.footer-bottom{max-width:1200px;margin:0 auto;border-top:1px solid rgba(212,175,55,.08);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.72rem;color:rgba(253,249,240,.3);}

/* ===== FORMULAIRES (partagés) ===== */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.fg{display:flex;flex-direction:column;gap:7px;}
.fg.full{grid-column:1/-1;}
.fg label{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.fg label .req{color:var(--red);}
.fg input,.fg select,.fg textarea{background:rgba(253,249,240,.04);border:1px solid rgba(212,175,55,.18);color:var(--white);padding:12px 14px;border-radius:var(--r2);font-family:'Jost',sans-serif;font-size:.92rem;outline:none;transition:border-color .3s,box-shadow .3s,background .3s;width:100%;}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,.12);background:rgba(253,249,240,.06);}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(253,249,240,.25);}
.fg select option{background:var(--black3);color:#fff;}
.fg textarea{resize:vertical;min-height:96px;}
.fg .err{font-size:.7rem;color:var(--red);display:none;}
.fg.has-error input,.fg.has-error select,.fg.has-error textarea{border-color:var(--red);}
.fg.has-error .err{display:block;}

/* ===== PAGES FICHES PRESTATIONS / PACKAGES ===== */
.breadcrumb{max-width:1200px;margin:calc(var(--nav-h) + 22px) auto 0;padding:0 40px;font-size:.72rem;color:rgba(253,249,240,.4);letter-spacing:.04em;}
.breadcrumb a{color:rgba(212,175,55,.75);transition:color .3s;}
.breadcrumb a:hover{color:var(--gold);}
.presta-hero{max-width:1200px;margin:0 auto;padding:30px 40px 44px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.presta-hero.center{grid-template-columns:1fr;text-align:center;padding-top:calc(var(--nav-h) + 50px);}
.presta-hero.center .hero-mini{text-align:center;}
.presta-hero.center .hero-cta,.presta-hero.center .hero-mini .lead{margin-left:auto;margin-right:auto;justify-content:center;}
.hero-mini{text-align:left;animation:fadeUp .9s var(--ease) both;}
.hero-mini .icon{font-size:2.6rem;margin-bottom:12px;display:inline-block;filter:drop-shadow(0 6px 18px rgba(212,175,55,.35));}
.hero-mini .tag{font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;display:block;}
.hero-mini h1{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4.2vw,3rem);font-weight:700;letter-spacing:.02em;line-height:1.18;margin-bottom:16px;}
.hero-mini h1 .italic{font-size:.72em;display:block;margin-top:8px;font-weight:400;}
.hero-mini .lead{font-family:'Libre Baskerville',serif;font-style:italic;font-size:1.02rem;color:rgba(253,249,240,.6);max-width:600px;margin:0 0 24px;line-height:1.8;}
.price-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.35);color:var(--gold);font-family:'Cinzel',serif;font-size:.74rem;letter-spacing:.08em;padding:10px 20px;border-radius:999px;margin-bottom:24px;box-shadow:inset 0 0 20px rgba(212,175,55,.05);}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;}
.hero-visual{position:relative;animation:fadeUp 1s .15s var(--ease) both;}
.hero-visual::before{content:'';position:absolute;inset:-18px;border-radius:calc(var(--r) + 10px);background:radial-gradient(60% 60% at 50% 50%,rgba(212,175,55,.22),transparent 70%);filter:blur(24px);z-index:0;}
.hero-visual::after{content:'';position:absolute;right:-14px;bottom:-14px;width:45%;height:45%;border:1px solid rgba(212,175,55,.35);border-radius:var(--r);z-index:0;}
.presta-photo{position:relative;z-index:1;width:100%;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;border:1px solid rgba(212,175,55,.25);background:var(--black2);box-shadow:0 40px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.02) inset;margin:0;}
.presta-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.hero-visual:hover .presta-photo img{transform:scale(1.05);}
main.presta-main{max-width:1200px;margin:0 auto;padding:10px 40px 80px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start;}
main.presta-main > article{min-width:0;}
main.presta-main .section-title{font-size:clamp(1.3rem,3vw,1.75rem);margin:52px 0 16px;}
main.presta-main .section-title:first-child{margin-top:8px;}
main.presta-main p{color:rgba(253,249,240,.72);font-weight:300;margin-bottom:16px;}
.presta-aside{position:sticky;top:calc(var(--nav-h) + 24px);}
.aside-card{background:var(--card);border:1px solid rgba(212,175,55,.22);border-radius:var(--r);padding:28px 26px;box-shadow:var(--glow);}
.aside-card .aside-label{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(212,175,55,.6);margin-bottom:8px;}
.aside-card .aside-price{font-family:'Cinzel',serif;font-size:1.7rem;color:var(--gold);font-weight:700;line-height:1.1;margin-bottom:4px;}
.aside-card .aside-sub{font-size:.78rem;color:rgba(253,249,240,.45);margin-bottom:20px;}
.aside-card .btn-gold,.aside-card .btn-outline{width:100%;}
.aside-card .btn-outline{margin-top:10px;}
.aside-list{list-style:none;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px;}
.aside-list li{font-size:.8rem;color:rgba(253,249,240,.6);display:flex;gap:10px;align-items:center;}
.aside-list li::before{content:'✓';color:var(--gold);font-weight:700;font-size:.75rem;width:18px;height:18px;border-radius:50%;background:rgba(212,175,55,.12);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.incl-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:8px 0;}
.incl-list li{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:15px 18px;font-size:.88rem;color:rgba(253,249,240,.8);display:flex;gap:12px;align-items:flex-start;transition:border-color .3s,transform .3s var(--ease);}
.incl-list li:hover{border-color:rgba(212,175,55,.4);transform:translateY(-3px);}
/* Options d'une prestation : une vignette par option, sans prix. */
.opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:12px 0 8px;}
.opt-card{border:1px solid var(--line);border-radius:var(--r2);padding:16px 16px 17px;background:rgba(253,249,240,.02);transition:border-color .25s ease,background .25s ease;}
.opt-card:hover{border-color:rgba(212,175,55,.3);background:rgba(212,175,55,.05);}
.opt-ic{display:block;font-size:1.2rem;line-height:1;margin-bottom:10px;}
.opt-lb{display:block;font-size:.88rem;line-height:1.45;color:rgba(253,249,240,.88);}
@media(max-width:520px){.opt-grid{grid-template-columns:1fr 1fr;gap:10px;}}
.formule{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--r2);padding:18px 22px;margin-bottom:12px;}
.formule strong{display:block;font-size:.8rem;letter-spacing:.1em;margin-bottom:6px;}
.formule p{margin:0!important;font-size:.9rem;}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);margin-bottom:10px;overflow:hidden;transition:border-color .3s;}
.faq-item[open]{border-color:rgba(212,175,55,.4);}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 22px;font-family:'Cinzel',serif;font-size:.9rem;color:var(--gold);font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-family:'Jost',sans-serif;font-size:1.4rem;font-weight:300;color:rgba(212,175,55,.7);transition:transform .35s var(--ease);flex-shrink:0;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{padding:0 22px 20px;margin:0!important;}
.faq-item h3{font-family:'Cinzel',serif;font-size:.92rem;color:var(--gold);margin-bottom:8px;font-weight:600;}
.related{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}
.related a{font-size:.8rem;border:1px solid rgba(212,175,55,.25);background:rgba(212,175,55,.04);padding:9px 18px;border-radius:999px;color:rgba(253,249,240,.75);transition:all .3s var(--ease);}
.related a:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px);background:rgba(212,175,55,.1);}
.cta-block{position:relative;overflow:hidden;text-align:center;background:var(--card);border:1px solid rgba(212,175,55,.25);border-radius:var(--r);padding:56px 28px;margin-top:64px;grid-column:1/-1;}
.cta-block::before{content:'';position:absolute;inset:-40%;background:radial-gradient(40% 40% at 50% 50%,rgba(212,175,55,.18),transparent 70%);animation:pulseGlow 6s ease-in-out infinite alternate;pointer-events:none;}
.cta-block > *{position:relative;}
.cta-block h2{font-family:'Cinzel',serif;font-size:clamp(1.3rem,3vw,1.9rem);margin-bottom:12px;}
.cta-block p{max-width:520px;margin:0 auto 24px;color:rgba(253,249,240,.6);}
@keyframes pulseGlow{from{transform:scale(.9) translate(-4%,0);}to{transform:scale(1.15) translate(4%,4%);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}
@keyframes float{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-14px,0);}}

/* ===== PACKAGES ===== */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-top:40px;grid-column:1/-1;}
.pkg-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px 26px;display:flex;flex-direction:column;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;overflow:hidden;}
.pkg-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold3),var(--gold2),var(--gold3));}
.pkg-card:hover{transform:translateY(-6px);border-color:rgba(212,175,55,.4);box-shadow:var(--glow);}
.pkg-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.pkg-icon{font-size:1.8rem;width:52px;height:52px;border-radius:14px;background:rgba(212,175,55,.08);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;}
.pkg-head h3{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;flex:1;color:var(--white);}
.pkg-items{list-style:none;margin-bottom:14px;}
.pkg-items li{font-size:.86rem;color:rgba(253,249,240,.8);padding:10px 0;border-bottom:1px solid rgba(212,175,55,.08);display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;}
.pkg-items a{color:rgba(253,249,240,.85);}
.pkg-items a:hover{color:var(--gold);}
.pkg-tag{font-size:.64rem;padding:3px 10px;border-radius:999px;white-space:nowrap;letter-spacing:.04em;}
.pkg-tag-live{background:rgba(212,175,55,.14);color:var(--gold);}
.pkg-tag-fixed{background:rgba(253,249,240,.08);color:rgba(253,249,240,.5);}
.pkg-price{text-align:center;margin:18px 0 20px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px;border-radius:var(--r2);background:rgba(212,175,55,.05);border:1px dashed rgba(212,175,55,.25);}
.pkg-price-old{font-size:1rem;color:rgba(253,249,240,.4);text-decoration:line-through;}
.pkg-price-final{font-family:'Cinzel',serif;font-size:2.2rem;font-weight:700;color:var(--gold);}
.pkg-disclaimer{font-size:.72rem;color:rgba(253,249,240,.4);margin:0 0 16px;line-height:1.5;text-align:center;}
.pkg-cta{text-align:center;margin-top:auto;}
.pkg-cta .btn-gold{width:100%;}
.pkg-empty,.pkg-loading{grid-column:1/-1;text-align:center;padding:60px 20px;color:rgba(253,249,240,.4);}
.custom-pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:24px;margin-top:12px;grid-column:1/-1;}
.custom-pack{position:relative;background:var(--card);border:1px solid rgba(212,175,55,.28);border-radius:var(--r);padding:26px 22px;box-shadow:var(--glow);}
.custom-pack-head{text-align:center;margin-bottom:12px;}
.custom-pack-head .tag{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);}
.custom-pack-head h2{font-family:'Cinzel',serif;font-size:1.25rem;margin:6px 0 8px;color:var(--white);}
.custom-pack-head p{font-size:.8rem;color:rgba(253,249,240,.55);max-width:560px;margin:0 auto;line-height:1.5;}
.custom-guests{max-width:280px;margin:14px auto 16px;text-align:center;}
.custom-guests label{display:block;font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.custom-guests input{width:100%;background:rgba(0,0,0,.35);border:1px solid rgba(212,175,55,.35);color:var(--gold);padding:10px;font-size:1.1rem;text-align:center;border-radius:var(--r2);font-family:'Cinzel',serif;outline:none;}
.custom-guests input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,.12);}
.custom-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:6px;}
.custom-slot{background:rgba(0,0,0,.25);border:1px solid rgba(212,175,55,.14);border-radius:var(--r2);padding:10px 12px;transition:border-color .3s;}
.custom-slot:focus-within{border-color:rgba(212,175,55,.5);}
.custom-slot-label{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.custom-slot select,.custom-slot input{width:100%;background:rgba(0,0,0,.4);border:1px solid rgba(212,175,55,.2);color:var(--white);padding:8px 10px;font-size:.8rem;border-radius:8px;font-family:'Jost',sans-serif;margin-bottom:6px;outline:none;}
.custom-slot select option{background:var(--black3);}
.custom-slot select:last-child,.custom-slot input:last-child{margin-bottom:0;}
.custom-hint{font-size:.66rem;color:rgba(253,249,240,.35);margin-top:4px;line-height:1.4;}
.custom-pack-price{text-align:center;margin:14px 0 4px;padding-top:14px;border-top:1px solid rgba(212,175,55,.15);}
.custom-pack-cta{display:flex;max-width:380px;margin:16px auto 0;}
.custom-pack-msg{text-align:center;font-size:.8rem;color:rgba(253,249,240,.4);margin-top:10px;}

/* ===== RESPONSIVE ===== */
@media(max-width:1000px){
  main.presta-main{grid-template-columns:1fr;gap:20px;}
  .presta-aside{position:static;}
  .presta-hero{grid-template-columns:1fr;gap:32px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:900px){
  #nav{padding:12px 18px;}
  .nav-links{display:none;}
  .hamburger{display:flex;}
  .breadcrumb,.presta-hero,main.presta-main{padding-left:18px;padding-right:18px;}
  footer{padding:56px 18px 24px;}
  .form-grid{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .nav-logo{font-size:.88rem;}
  .btn-gold,.btn-outline{padding:13px 24px;font-size:.6rem;width:100%;}
  .hero-cta{flex-direction:column;}
  .footer-grid{grid-template-columns:1fr;gap:30px;}
  .footer-bottom{flex-direction:column;text-align:center;}
  .cta-block{padding:40px 18px;}
  .presta-hero{padding-top:20px;}
  .hero-visual::after{display:none;}
}

main.presta-main.single{grid-template-columns:1fr;}
