
:root{
  --bg:#FFF9F1;--bg2:#FFF3E0;--panel:#fff;--line:#EAD9B8;--text:#3A2B1A;--muted:#7B6B53;--accent:#E67E22;
  --alt:#FDEED3;
  --radius:18px;--shadow:0 18px 40px rgba(0,0,0,.08);
  --footer-top:#2B1A0F; --footer-bot:#4A2B18; --footer-text:#F7EAD6; --footer-muted:#DCC7A3;
}
html,body{height:100%} html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);color:var(--text);font:16px/1.7 Inter,system-ui;position:relative;overflow-x:hidden}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%}

/* Background layers */
#svgBg{position:fixed; inset:0; z-index:-3; pointer-events:none; opacity:.85}
#particles{position:fixed; inset:0; z-index:-2; pointer-events:none; display:none}
#tsparticles{position:fixed; inset:0; z-index:-2; pointer-events:none}
.float-petals{position:fixed; inset:0; z-index:-1; pointer-events:none}
.float-petals span{position:absolute; width:30px; height:30px; opacity:.35; filter:drop-shadow(0 8px 18px rgba(175,92,0,.18));
  background-repeat:no-repeat; background-size:cover; animation:rise 18s linear infinite; }
.float-petals span:nth-child(odd){animation-duration:22s; opacity:.5}
@keyframes rise{ 0%{transform:translateY(20vh)} 50%{transform:translateY(-20vh)} 100%{transform:translateY(20vh)} }

/* Hero */
.navbar{backdrop-filter:blur(8px);background:rgba(255,249,241,.9)!important;border-bottom:1px solid var(--line)}
header.hero{position:relative;overflow:hidden;padding-top:96px}
.hero-bg{position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image: radial-gradient(1200px 600px at 70% -10%, rgba(255,210,150,.55), transparent 60%);
  opacity:.36;
}
.hero-pattern{position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.5}
.stage{position:relative;height:360px;border:1px dashed var(--line);border-radius:16px;background: var(--panel);overflow:hidden}
/* tiles visible by default */
.tile{position:absolute;opacity:1;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.tile img{display:block;width:100%;height:100%;object-fit:cover}

/* v17 additions */
.hero-photo{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  filter:saturate(1.05) contrast(1.03) brightness(1.03);
  opacity:.36;
}
.hero-floaters img{
  position:absolute; width:120px; height:120px; object-fit:contain; pointer-events:none;
  filter: drop-shadow(0 12px 22px rgba(0,0,0,.18));
  opacity:.95; transition:transform .4s ease;
}
.hero-floaters img.f1{ left:-10px; top:20%; }
.hero-floaters img.f2{ right:-10px; top:28%; }
.hero-floaters img.f3{ left:10%; bottom:10%; }
.hero-floaters img.f4{ right:8%; bottom:12%; }
@keyframes floatIdle{ 0%{ transform:translateY(0) } 50%{ transform:translateY(-8px) } 100%{ transform:translateY(0) } }
.hero-floaters img{ animation: floatIdle 6s ease-in-out infinite; }

.card-soft{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.btn-accent{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:#d86f12;--bs-btn-hover-border-color:#d86f12;border-radius:999px;font-weight:700;color:#fff}
.btn-wrap{display:flex;flex-wrap:wrap;gap:.5rem}
.btn-resp{min-width:160px} @media(max-width:576px){.btn-resp{width:100%}}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;border:1px solid #2b1a0f;border-radius:999px;padding:.6rem 1rem;font-weight:700;background:transparent}
.btn-ghost:focus{outline:2px solid rgba(230,126,34,.35);outline-offset:2px}
.btn-gleam{position:relative;overflow:hidden;border:0;border-radius:999px;padding:.6rem 1rem;font-weight:700;color:#2b1a0f;background:linear-gradient(90deg,#FFD8A8,#FFC078,#FFA94D)}
.btn-gleam i{margin-right:.4rem}
.btn-gleam:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.6),transparent);transform:translateX(-100%);}
.btn-gleam:hover:before{animation:shine 1.2s}
@keyframes shine{to{transform:translateX(100%)}}

.badge-chip{border:1px solid var(--line);background: var(--panel);border-radius:999px;padding:.25rem .6rem;font-size:.75rem;color:#7B6B53}

.hero-collage{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-collage img{border-radius:16px;border:1px solid var(--line);object-fit:cover;height:180px}
.hero-collage .big{grid-column:span 2;height:230px}

section{padding:80px 0}
.section-title{font-weight:900;letter-spacing:.2px}
.section-alt{background:var(--alt)}

.step{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center}
.step .thumb{width:120px;height:90px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#FDF0DA}
.step .thumb img{width:100%;height:100%;object-fit:cover}
.masonry{column-count:1;column-gap:16px}
.masonry .shot{break-inside:avoid;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:0 0 16px;position:relative;box-shadow:var(--shadow)}
.zoom{position:absolute;right:.6rem;top:.6rem;background:rgba(255,255,255,.85);padding:.25rem .5rem;border-radius:999px;font-size:.8rem;color:#6b4a1c}
@media(min-width:768px){.masonry{column-count:2}} @media(min-width:1200px){.masonry{column-count:3}}

/* FAQ smooth animation */
.acc-item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#FFFDF8}
.acc-head{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer}
.acc-body{max-height:0;overflow:hidden;padding:0 16px; color:#7B6B53; transition:max-height .35s ease, padding .35s ease}
.acc-item.open .acc-body{padding:0 16px 16px 16px}

/* Footer */
.footer{background:linear-gradient(180deg,var(--footer-top),var(--footer-bot));color:#F7EAD6;padding:54px 0 28px;margin-top:40px}
.footer a{color:#F7EAD6;opacity:.95}
.footer a:hover{opacity:1;color:#FFD8A8}
.footer h6{font-weight:800;letter-spacing:.2px;margin-bottom:10px;color:#FFE4B8}
.footer .brand{font-weight:900;font-size:1.1rem}
.footer .social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:12px;margin-right:10px}
.footer .copy{border-top:1px solid rgba(255,255,255,.18);margin-top:24px;padding-top:16px;color:#FFE4B8AA}
.footer .chip{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#FFE4B8;padding:.2rem .6rem;font-size:.75rem}

/* Sticky CTA */
.sticky-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:1070;border-radius:16px;
  background:linear-gradient(135deg,rgba(255,235,205,.75),rgba(255,220,180,.65));
  border:1px solid rgba(255,200,140,.7); backdrop-filter: blur(12px);
  box-shadow:0 20px 40px rgba(0,0,0,.12); padding:.55rem .75rem}
html.lb-open .sticky-cta{display:none}
.sticky-cta .label{display:flex;align-items:center;gap:.5rem;font-weight:700}
.sticky-cta .btns{display:flex;gap:.5rem}
.btn-wa{
  display:inline-flex;align-items:center;gap:.4rem;
  background:linear-gradient(90deg,#00C6FF 0%,#0072FF 100%);
  color:#fff;border:0;border-radius:999px;font-weight:800;
  padding:.55rem 1.1rem;position:relative;overflow:hidden;
  box-shadow:0 0 20px rgba(0,114,255,.35);
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-wa:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-120%);}
.btn-wa:hover:before{animation:shine 1.1s}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 0 30px rgba(0,114,255,.55);}
.btn-wa:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.8),transparent);transform:translateX(-100%);}
.btn-wa:hover:before{animation:shine 1.1s}
@keyframes softGlow{0%,100%{box-shadow:0 0 0 rgba(230,126,34,.0)}50%{box-shadow:0 0 24px rgba(230,126,34,.45)}}
.btn-book{display:inline-flex;align-items:center;gap:.45rem;border-radius:999px;border:1px solid #e5b07a;background: var(--panel);color:#7a4a12;font-weight:800;padding:.5rem 1rem}
.btn-book:hover{animation:softGlow 1.2s ease-in-out}
@media(max-width: 768px){
  .sticky-cta{display:block}
  body{padding-bottom:84px}
  .sticky-cta .wrap{display:flex;flex-direction:column;gap:.55rem}
  .sticky-cta .btns{flex-direction:column}
  .btn-wa,.btn-book{width:100%;justify-content:center}
}

/* Overlay */
.overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6);z-index:20000}
.overlay.show{display:flex}
.overlay .box{width:min(92vw,1200px)}
.overlay .close{position:absolute;top:14px;right:18px;background: var(--panel);border:1px solid var(--line);color:#6b4a1c;border-radius:999px;padding:8px 12px}

/* Lightbox (fast, no thumbs) */
#lightbox .content{position:relative;background:#000;border-radius:16px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5);z-index:20001}
#lightbox img{max-width:88vw;max-height:78vh;display:block;margin:auto}
#lightbox .toolbar{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;color:#fff;padding:8px 12px;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent)}
#lightbox .counter{font-weight:600}
#lightbox .nav{position:absolute;top:50%;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}
#lightbox .nav button{pointer-events:auto;width:48px;height:48px;border-radius:999px;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center}

/* Dark Neon theme variables */
:root[data-theme="dark"]{
  --bg:#0B0C12; --bg2:#0A0B10; --panel:#0F1118; --line:rgba(255,255,255,.14);
  --text:#F5F7FF; --muted:#C3C8D8; --accent:#FF7A1A; --accent2:#8A2BE2; --alt:#0E111A;
  --radius:18px; --shadow:0 14px 40px rgba(0,0,0,.5);
  --footer-top:#0D0F16; --footer-bot:#0B0C12; --footer-text:#CDD2E0; --footer-muted:#9AA2B3;
}
/* Dark-specific refinements */
:root[data-theme="dark"] body{
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(255,122,26,.12), transparent 60%),
    radial-gradient(800px 420px at 10% 110%, rgba(138,43,226,.12), transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
}
:root[data-theme="dark"] .navbar{background:rgba(10,12,18,.7)!important}
:root[data-theme="dark"] .hero-bg{
  background-image:
    radial-gradient(900px 420px at 70% 0%, rgba(255,122,26,.16), transparent 60%),
    radial-gradient(820px 380px at 0% 100%, rgba(138,43,226,.18), transparent 60%);
  opacity:.8;
}
:root[data-theme="dark"] .hero-photo{filter:saturate(1.05) contrast(1.05) brightness(.7); opacity:.28}
:root[data-theme="dark"] .btn-ghost{border-color:rgba(255,255,255,.45); color:#fff}
:root[data-theme="dark"] .zoom{background:rgba(15,17,26,.7); color:#e6e6e6; border:1px solid var(--line)}
:root[data-theme="dark"] .footer a{color:#E9EEF9}
:root[data-theme="dark"] .section-title{color:#fff; text-shadow:0 0 16px rgba(255,122,26,.18)}


/* v24: Global type tokens ensure readable text on both themes */
body, p, li, dt, dd, span, label, input, textarea, select { color: var(--text); }
h1,h2,h3,h4,h5,h6 { color: var(--text); font-weight: 900; }
.lead { color: var(--muted); }
.small, .text-muted { color: var(--muted) !important; }

/* Ensure components inherit tokens */
.card-soft, .ribbon, .badge-chip, .zoom, .btn-ghost, .btn-book, .btn-wa, .btn-accent { color: inherit; }
.card-soft p, .card-soft li, .card-soft .small { color: var(--muted); }
.section-title { color: var(--text); }

/* Inputs readable in both themes */
.form-control, .form-select, textarea.form-control {
  background: var(--panel);
  color: var(--text);
  border: 1px solid var(--line);
}
.form-control::placeholder, .form-select::placeholder, textarea.form-control::placeholder { color: var(--muted); }
.form-control:focus, .form-select:focus, textarea.form-control:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 .2rem rgba(230,126,34,.25);
  color: var(--text);
}

/* Ribbons and chips */
.ribbon.luxe .ri { color: var(--text); }
.badge-chip { color: var(--muted); }
.footer p, .footer .small, .footer .chip { color: var(--footer-text); opacity: .9; }

/* Buttons contrast */
.btn-ghost { color: var(--text); }
:root[data-theme="dark"] .btn-ghost { border-color: rgba(255,255,255,.5); }
:root:not([data-theme="dark"]) .btn-ghost { border-color: #2b1a0f; }

/* Navbar links readable */
.navbar .nav-link { color: var(--text); opacity: .9; }
.navbar .nav-link:hover { opacity: 1; color: var(--text); }

/* Lightbox toolbar text */
#lightbox .toolbar, #lightbox .counter { color: #fff; }


/* v25: FAQ visibility fixes */
#faq .acc-item{ background: var(--panel); border:1px solid var(--line); }
#faq .acc-head{ color: var(--text); }
#faq .acc-head span:last-child{ color: currentColor; opacity:.8 } /* the +/- glyph */
#faq .acc-body{ color: var(--muted); background: var(--panel); }


/* v25: Sticky CTA contrast & visibility */
.sticky-cta{ z-index: 1080; } /* above navbar */
:root[data-theme="dark"] .sticky-cta{
  background: linear-gradient(135deg, rgba(22,24,32,.88), rgba(22,24,32,.82));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 20px 50px rgba(0,0,0,.6), 0 0 24px rgba(138,43,226,.22);
}
:root[data-theme="dark"] .sticky-cta .label{ color:#F5F7FF; }
:root[data-theme="dark"] .btn-wa{
  display:inline-flex;align-items:center;gap:.4rem;
  background:linear-gradient(90deg,#00C6FF 0%,#0072FF 100%);
  color:#fff;border:0;border-radius:999px;font-weight:800;
  padding:.55rem 1.1rem;position:relative;overflow:hidden;
  box-shadow:0 0 20px rgba(0,114,255,.35);
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-wa:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-120%);}
.btn-wa:hover:before{animation:shine 1.1s}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 0 30px rgba(0,114,255,.55);} /* readable on neon */
:root[data-theme="dark"] .btn-book{ color:#F5F7FF; border-color: rgba(255,255,255,.22); background:#0E1118; }

:root[data-theme="dark"] .btn-wa{
  background:linear-gradient(90deg,#00E1FF 0%,#8A2BE2 100%);
  color:#fff; box-shadow:0 0 24px rgba(138,43,226,.4);
}
