body{margin:0}img{max-width:100%}[hidden]{display:none!important}

/* Layout: one calm column on phones, widening to a 1120px frame; the brand's lilac and greige
   as surfaces, plum for anything that must be read or tapped, and one dark night band for the laser. */
:root{
  --blush:#FAF6F5; --paper:#FFFFFF; --greige:#DCD4CF; --mist:#ECE8E8;
  --lilac:#C8ADCF; --lilac-soft:#EFE5F1; --plum:#6B4A75; --plum-deep:#4E3357;
  --ink:#1A1618; --ink-soft:#5A5256; --line:#D9CFD3;
  --night:#12101C; --night-2:#241A33; --laser:#6BFF9C; --wa:#1F8F55;
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --body:"Poppins","Helvetica Neue",Arial,sans-serif;
  --label:"Jost","Futura","Century Gothic",Arial,sans-serif;
  --gut:20px; --max:1120px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{background:var(--blush);color:var(--ink);font-family:var(--body);font-weight:300;font-size:16px;line-height:1.7;padding-bottom:76px;overflow-wrap:break-word}
a{color:var(--plum)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15;margin:0;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--plum-deep);outline-offset:3px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.eyebrow{font-family:var(--label);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--plum)}
.sec{padding-block:56px}
.sec-head{display:grid;gap:10px;margin-bottom:28px;max-width:40rem}
.sec-head h2{font-size:clamp(28px,7vw,40px)}
.sec-head p{color:var(--ink-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 24px;font-family:var(--label);font-size:15px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid var(--plum);cursor:pointer;background:var(--plum);color:#fff;text-align:center}
.btn:hover{background:var(--plum-deep)}
.btn.ghost{background:transparent;color:var(--plum)}
.btn.ghost:hover{background:var(--lilac-soft)}
.btn.wa{background:var(--wa);border-color:var(--wa)}
.btn.wa:hover{background:#177344}
.btn svg{width:20px;height:20px;flex:none;fill:currentColor}

/* preview strip */
.note{background:var(--plum-deep);color:#fff;font-family:var(--label);font-size:13px;letter-spacing:.08em;text-align:center;padding:8px var(--gut)}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px}
.brand{display:grid;justify-items:center;text-decoration:none;color:var(--lilac);line-height:1}
.brand b{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.06em;color:#B592BE}
.brand b i{font-style:normal;font-family:var(--label);font-weight:300;letter-spacing:.04em}
.brand small{font-family:var(--label);font-size:9px;letter-spacing:.5em;color:#B592BE;margin-top:4px;padding-left:.5em}
.lang{display:flex;border:1px solid var(--line)}
.lang button{font-family:var(--label);font-size:13px;letter-spacing:.1em;min-width:40px;min-height:36px;border:0;background:transparent;color:var(--ink-soft);cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--plum);color:#fff}
.burger{width:44px;height:44px;border:0;background:transparent;display:grid;place-content:center;gap:6px;cursor:pointer}
.burger span{display:block;width:24px;height:1.5px;background:var(--ink)}
.nav{border-top:1px solid var(--line);background:var(--paper)}
.nav ul{list-style:none;margin:0;padding:8px var(--gut) 16px;display:grid}
.nav a{display:block;padding:14px 0;font-family:var(--label);font-size:15px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--mist)}

/* hero */
.hero{background:var(--mist)}
.hero .wrap{display:grid;gap:28px;padding-block:36px 44px}
.hero h1{font-size:clamp(34px,9.4vw,60px)}
.hero h1 em{font-style:italic;color:var(--plum)}
.hero-copy{display:grid;gap:18px;min-width:0}
.hero-copy>p{color:var(--ink-soft);max-width:34rem}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;padding-block:14px;border-block:1px solid var(--line)}
.price strong{font-family:var(--display);font-weight:400;font-size:32px}
.price span{font-size:14px;color:var(--ink-soft)}
.cta{display:grid;gap:12px}
.ph{position:relative;display:grid;place-items:center;max-width:100%;background:linear-gradient(135deg,var(--greige),var(--lilac-soft));color:var(--plum-deep);overflow:hidden}
.ph span{font-family:var(--label);font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:12px;max-width:22ch}
.ph.dark{background:linear-gradient(160deg,var(--night-2),var(--night));color:#D9C9DE}
.ph.video{aspect-ratio:16/10}
.ph.video::before{content:"";width:60px;height:60px;border:1.5px solid currentColor;border-radius:50%;position:absolute;top:calc(50% - 46px)}
.ph.video::after{content:"";position:absolute;top:calc(50% - 26px);left:calc(50% - 6px);border-left:16px solid currentColor;border-block:10px solid transparent}
.ph.video span{margin-top:70px}

/* occasions */
.occ{display:grid;gap:14px}
.occ a{display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px 16px;padding:22px 20px;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.occ a:hover{border-color:var(--plum)}
.occ h3{font-size:22px;grid-column:1/-1}
.occ p{font-size:15px;color:var(--ink-soft);min-width:0}
.occ em{font-family:var(--label);font-style:normal;font-size:14px;letter-spacing:.08em;color:var(--plum);white-space:nowrap}

/* laser band */
.laser{background:linear-gradient(180deg,var(--night),var(--night-2));color:#EDE6F0}
.laser .wrap{display:grid;gap:26px;padding-block:56px}
.laser .eyebrow{color:var(--lilac)}
.laser h2{font-size:clamp(28px,7vw,40px)}
.laser p{color:#CFC4D4;max-width:36rem}
.bridge{display:grid;gap:0;justify-items:center}
.bridge svg{width:100%;height:auto;max-width:640px;display:block}
.beam{font-family:var(--label);font-weight:400;font-size:clamp(18px,6.2vw,34px);letter-spacing:.16em;color:var(--laser);text-shadow:0 0 14px rgba(107,255,156,.75),0 0 44px rgba(107,255,156,.35);text-align:center;margin-top:-4px}
.laser a{color:var(--lilac)}

/* packages */
.packs{display:grid;gap:16px}
.pack{display:grid;gap:16px;align-content:start;padding:26px 22px;background:var(--paper);border:1px solid var(--line)}
.pack.pick{border-color:var(--plum);box-shadow:inset 0 3px 0 var(--plum)}
.pack h3{font-size:26px}
.pack .tag{font-family:var(--label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--plum)}
.pack ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px}
.pack li{padding-left:18px;position:relative}
.pack li::before{content:"";position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--plum)}
.rates{display:grid;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
.rates div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.rates b{font-family:var(--display);font-weight:400;font-size:20px}
.rates small{display:block;font-size:12px;color:var(--ink-soft)}
.deposit{margin-top:20px;padding:20px;background:var(--lilac-soft);border:1px solid var(--plum);display:grid;gap:6px;max-width:none}
.deposit strong{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.25;color:var(--plum-deep)}
.deposit span{font-size:15px}
.fine{margin-top:16px;font-size:14px;color:var(--ink-soft);max-width:44rem}
.extras{margin-top:36px;display:grid;gap:14px}
.extras h3{font-size:24px}
.extras dl{margin:0;display:grid;font-variant-numeric:tabular-nums}
.extras dl div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.extras dt{min-width:0}
.extras dd{margin:0;white-space:nowrap;color:var(--plum-deep);font-weight:400}

/* steps */
.steps-sec{background:var(--paper)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:24px;counter-reset:s}
.steps li{counter-increment:s;display:grid;gap:8px;padding-top:18px;border-top:1px solid var(--line)}
.steps li::before{content:counter(s);font-family:var(--display);font-style:italic;font-size:34px;line-height:1;color:var(--lilac)}
.steps h3{font-size:21px}
.steps p{font-size:15px;color:var(--ink-soft)}

/* gallery */
.gal{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gal .ph{aspect-ratio:3/4}
.gal .ph:first-child{grid-column:1/-1;aspect-ratio:3/2}
.slot{margin-top:28px;padding:20px;border:1px dashed var(--plum);font-size:14px;color:var(--plum-deep);background:var(--lilac-soft)}

/* faq */
.faq{display:grid;max-width:46rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 0;font-family:var(--display);font-size:19px;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--label);font-size:24px;color:var(--plum);flex:none}
.faq details[open] summary::after{content:"–"}
.faq p{padding-bottom:20px;font-size:15px;color:var(--ink-soft)}

/* contact */
.contact{background:var(--greige)}
.contact .wrap{display:grid;gap:32px}
.direct{display:grid;gap:14px;align-content:start}
.direct dl{margin:0;display:grid;gap:12px}
.direct dt{font-family:var(--label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--plum-deep)}
.direct dd{margin:0;font-size:17px;user-select:all}
form{display:grid;gap:16px;background:var(--paper);padding:24px 20px;min-width:0}
.row{display:grid;gap:16px;align-items:start}
.field{display:grid;gap:6px;min-width:0;align-content:start}
.field small{font-size:12px;color:var(--ink-soft)}
form{container-type:inline-size}
@container (min-width:32rem){.row{grid-template-columns:1fr 1fr}}
.tel{display:grid;grid-template-columns:6.75rem minmax(0,1fr);gap:8px}
.dateline{display:flex;flex-wrap:wrap;gap:8px}
.dateline input{flex:1 1 9rem;width:auto}
.dateline .chip{flex:0 0 auto;height:50px;min-height:0;padding:0 14px;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--plum);color:#fff}
input:disabled{opacity:.45}
.tel select,.tel input{padding-inline:10px}
label{display:grid;gap:6px;align-content:start;font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);min-width:0}
input,select,textarea{font:300 16px/1.4 var(--body);color:var(--ink);background:var(--blush);border:1px solid var(--line);border-radius:0;padding:13px 12px;width:100%;min-width:0;min-height:50px}
input,select{height:50px}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--plum);outline-offset:0}
label small{font-family:var(--body);font-size:12px;letter-spacing:0;text-transform:none;color:var(--ink-soft)}
[aria-invalid="true"]{border-color:#A3263B;background:#FBEFF1}
.formnote{font-size:14px;color:var(--ink-soft)}
.msg.err{background:#FBEFF1;color:#8A1F31}
.msg{font-size:14px;padding:12px 14px;background:var(--lilac-soft);color:var(--plum-deep)}

/* footer */
.foot{background:var(--ink);color:#D8CFD4;font-size:14px}
.foot .wrap{display:grid;gap:22px;padding-block:40px}
.foot a{color:#D8CFD4}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font-family:var(--label);letter-spacing:.12em;text-transform:uppercase;font-size:13px}

/* fixed WhatsApp bar on phones */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.bar p{font-size:12px;line-height:1.3;color:var(--ink-soft)}
.bar p b{display:block;font-family:var(--display);font-weight:400;font-size:19px;color:var(--ink)}
.bar .btn{min-height:48px;padding:10px 14px;font-size:14px;letter-spacing:.1em}


/* guided request assistant */
.fab{position:fixed;right:24px;bottom:24px;z-index:30;display:none;box-shadow:0 6px 24px rgba(26,22,24,.22)}
.chat{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--paper);border-top:1px solid var(--plum);box-shadow:0 -10px 40px rgba(26,22,24,.25);display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:86%;padding-bottom:env(safe-area-inset-bottom,0px)}
.chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--plum-deep);color:#fff}
.chat-head b{font-family:var(--display);font-weight:400;font-size:19px}
.chat-head small{display:block;font-family:var(--label);font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.chat-x{width:44px;height:44px;border:0;background:transparent;color:#fff;font-size:26px;line-height:1;cursor:pointer}
.chat-log{overflow-y:auto;padding:16px;display:grid;gap:10px;align-content:start;background:var(--blush)}
.bub{max-width:85%;padding:10px 14px;font-size:15px;line-height:1.45;white-space:pre-line}
.bub.bot{background:var(--paper);border:1px solid var(--line);justify-self:start}
.bub.me{background:var(--lilac-soft);border:1px solid var(--lilac);justify-self:end;color:var(--plum-deep)}
.chat-opts{padding:14px 16px 16px;display:grid;gap:10px;border-top:1px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:46px;padding:8px 16px;border:1px solid var(--plum);background:var(--paper);color:var(--plum-deep);font:400 15px var(--body);cursor:pointer}
.chip:hover{background:var(--lilac-soft)}
.chat-opts .btn{width:100%}
.chat-opts small{font-size:12px;color:var(--ink-soft)}
.chat-back{justify-self:start;border:0;background:transparent;padding:6px 0;font:400 13px var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;text-decoration:underline}
@media (min-width:900px){
  .fab{display:inline-flex}
  .chat{left:auto;right:24px;bottom:24px;width:400px;max-height:min(640px,86%);border:1px solid var(--plum)}
}

/* three backdrops on the home page */
.scenes{display:grid;gap:16px}
.scenes a{display:grid;grid-template-rows:auto 1fr;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);min-width:0}
.scenes a:hover{border-color:var(--plum)}
.scenes .ph,.scenes .pic{aspect-ratio:1/1}
.scenes .pic{overflow:hidden;background:var(--night)}
.scenes .pic img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.scene-t{display:grid;gap:8px;align-content:start;padding:20px}
.scene-t h3{font-size:22px}
.scene-t p{font-size:15px;color:var(--ink-soft)}
.scene-t em{font-family:var(--label);font-style:normal;font-size:14px;letter-spacing:.08em;color:var(--plum);align-self:end}
@media (min-width:720px){.scenes{grid-template-columns:repeat(3,1fr)}.scene-t{grid-template-rows:auto 1fr auto;height:100%}}
.pagepic.sq{aspect-ratio:1/1;overflow:hidden;background:var(--night);width:100%;max-width:520px;justify-self:center}
.pagepic.sq img{display:block;width:100%;height:100%;object-fit:cover}
.pic.pagepic.wide{aspect-ratio:4/3;overflow:hidden;background:var(--night);width:100%;max-width:640px;justify-self:center}
.pagepic.wide img{display:block;width:100%;height:100%;object-fit:cover}
.pack ul{align-content:start}
/* gallery carousel: swipe on phones, arrows on larger screens, no auto-play */
.car{display:grid;gap:14px;min-width:0}
.car-track{list-style:none;margin:0;padding:0;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
.car-track::-webkit-scrollbar{display:none}
.car-track li{flex:0 0 84%;scroll-snap-align:start;aspect-ratio:1/1;background:var(--night);overflow:hidden}
.car-track img{display:block;width:100%;height:100%;object-fit:cover}
.car-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}
.car-dots{display:flex;gap:2px;flex-wrap:wrap;min-width:0}
.car-dots button{width:22px;height:28px;border:0;background:transparent;padding:0;cursor:pointer;display:grid;place-items:center}
.car-dots button::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--line)}
.car-dots button[aria-current="true"]::before{background:var(--plum)}
.car-count{font-family:var(--label);font-size:14px;letter-spacing:.1em;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}
.car-btn{display:none;width:48px;height:48px;border:1px solid var(--plum);background:var(--paper);color:var(--plum);font-size:20px;line-height:1;cursor:pointer}
.car-btn:hover{background:var(--lilac-soft)}
.car-btn:disabled{opacity:.35;cursor:default}
@media (min-width:600px){.car-track li{flex-basis:calc((100% - 10px)/2.2)}}
@media (min-width:900px){
  .car-track{gap:16px}
  .car-track li{flex-basis:calc((100% - 32px)/3)}
  .car-btn{display:block}
  .car-nav{justify-content:center;gap:20px}
}
@media (prefers-reduced-motion:reduce){.car-track{scroll-behavior:auto}}
/* menu with sub-items */
.nav .sub{padding:0 0 4px 18px;display:grid}
.nav .sub a{font-size:14px;letter-spacing:.1em;color:var(--ink-soft);padding:12px 0}
.nav .sub li:last-child a{border-bottom:1px solid var(--mist)}
.sub-t{display:none}
.nav{position:absolute;left:0;right:0;top:100%;border-bottom:1px solid var(--line);box-shadow:0 14px 30px rgba(26,22,24,.14);max-height:calc(100vh - 200px);max-height:calc(100dvh - 200px);overflow-y:auto;overscroll-behavior:contain}
@media (min-width:900px){
  .nav{position:static;box-shadow:none;border-bottom:0;max-height:none;overflow:visible}
  .nav.shut .sub{display:none!important}
  .nav .has-sub{position:relative;display:flex;align-items:center;gap:4px}
  .nav a{white-space:nowrap}
  .sub-t{display:block;width:18px;height:28px;border:0;background:transparent;padding:0;cursor:pointer}
  .sub-t::before{content:"";display:block;width:6px;height:6px;margin:0 auto 3px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg)}
  .nav .sub{display:none;position:absolute;top:100%;left:-18px;flex-direction:column;gap:0;min-width:15rem;padding:8px 0;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 30px rgba(26,22,24,.12);z-index:25}
  .nav .has-sub:hover>.sub,.nav .has-sub:focus-within>.sub,.nav .has-sub.open>.sub{display:flex}
  .nav .sub a{display:block;padding:11px 18px;white-space:nowrap;color:var(--ink);font-size:13px;border:0}
  .nav .sub li:last-child a{border:0}
  .nav .sub a:hover{background:var(--lilac-soft);color:var(--plum-deep)}
}
@media (min-width:900px) and (max-width:1079px){
  .nav ul{gap:6px}
  .nav .has-sub{gap:1px}
  .sub-t{width:13px}
  .brand small{letter-spacing:.4em}
  .nav a{font-size:11.5px;letter-spacing:.06em}
  .brand b{font-size:19px}
  .lang button{min-width:31px}
}
@media (min-width:900px) and (max-width:979px){
  .nav a{font-size:11px;letter-spacing:.03em}
  .nav ul{gap:4px}
  .brand b{font-size:17px}
  .top .wrap{gap:8px}
}
.extras.flat{margin-top:0}
@media (min-width:900px){.extras dl{grid-auto-flow:column;grid-template-rows:repeat(4,auto)}.extras dl>div:nth-child(-n+3){grid-column:1}.extras dl>div:nth-child(n+4):nth-child(-n+6){grid-column:2}.extras dl>div:nth-child(4){grid-row:1}.extras dl>div:nth-child(5){grid-row:2}.extras dl>div:nth-child(6){grid-row:3}.extras dl>div:nth-child(7){grid-column:1;grid-row:4}.extras dl>div:nth-child(8){grid-column:2;grid-row:4}}
.pagebody .fine{margin-top:-12px}
/* photo strip on subpages: swipe on phones, three across on larger screens */
.strip{list-style:none;margin:0;padding:0;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
.strip::-webkit-scrollbar{display:none}
.strip li{flex:0 0 78%;scroll-snap-align:start;aspect-ratio:1/1;overflow:hidden;background:var(--night)}
.strip img{display:block;width:100%;height:100%;object-fit:cover}
@media (min-width:600px){.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;overflow:visible}.strip li{flex:none}}
.band{background:var(--lilac-soft)}
.band .sec-head{margin-bottom:24px}
.occ a{grid-template-columns:1fr}
.occ em{white-space:normal}
.brand .logo{display:block;height:34px;width:auto}
.foot .brand .logo{height:40px}
@media (max-width:379px){.brand .logo{height:28px}}
@media (min-width:900px){.brand .logo{height:40px}}
@media (min-width:900px) and (max-width:1079px){.brand .logo{height:30px}}
.ph.video span{margin-top:104px}
/* subpages */
.pagehero .wrap{padding-block:28px 40px}
.pagehero h1{font-size:clamp(30px,8vw,48px)}
.crumb{font-family:var(--label);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.crumb a{color:var(--ink-soft)}
.pagepic{aspect-ratio:16/10}
.pagebody{display:grid;gap:28px}
.pagebody>*{min-width:0}
.pagebody .sec-head{margin-bottom:0}
.spacer{height:12px}
.legal-h{font-size:clamp(30px,8vw,44px)}
.legal{max-width:46rem;margin-top:28px}.legal h2{font-size:clamp(20px,5vw,24px);margin:32px 0 10px}.legal p{margin:0 0 12px;font-size:15px;line-height:1.7}.legal mark{background:#FFF1A8;color:inherit;padding:0 3px}
.occ .plain{display:grid;gap:8px;align-content:start;padding:22px 20px;background:var(--paper);border:1px solid var(--line)}
.occ .plain p{font-size:15px;color:var(--ink-soft)}
.occ .plain em{font-family:var(--label);font-style:normal;font-size:14px;letter-spacing:.08em;color:var(--plum)}
.info{margin:0;display:grid;border-top:1px solid var(--line);max-width:46rem}
.info div{display:grid;gap:2px;padding:14px 0;border-bottom:1px solid var(--line)}
.info dt{font-family:var(--label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--plum)}
.info dd{margin:0;font-size:15px}
.addons{display:grid;gap:12px}
.addons h3{font-size:22px}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags li{padding:8px 14px;border:1px solid var(--line);background:var(--paper);font-size:14px}
@media (min-width:600px){
  .occ.two,.occ.three,.occ.six{grid-template-columns:1fr 1fr}
  .info div{grid-template-columns:11rem 1fr;gap:16px;align-items:baseline}
}
@media (min-width:900px){
  .occ.six,.occ.three{grid-template-columns:repeat(3,1fr)}
  .occ.two{grid-template-columns:1fr 1fr}
  .packs.n2{grid-template-columns:repeat(2,minmax(0,22rem))}
  .packs.n4{grid-template-columns:repeat(4,1fr)}
  .packs.n4 .pack{padding:22px 18px}
  .pagehero .wrap{padding-block:56px}
  .nav ul{gap:22px}
}

/* calmer transition from the three backdrops to the occasions */
#kulissen{padding-bottom:36px}#anlaesse{padding-top:0}#anlaesse .wrap::before{content:"";display:block;height:1px;background:var(--line);margin-bottom:36px}
@media (min-width:900px){#kulissen{padding-bottom:52px}#anlaesse .wrap::before{margin-bottom:52px}}
.sec-head p strong,.head p strong,p strong{font-weight:500;color:var(--ink)}
.sec.band{padding-block:36px}
@media (min-width:900px){.sec.band{padding-block:52px}}
.clip{width:100%;max-width:340px;margin-inline:auto;aspect-ratio:9/16;background:var(--night);overflow:hidden}
.clip video{display:block;width:100%;height:100%;object-fit:cover}
/* portrait clip: shown on phones and tablets only */
@media (min-width:900px){.sec.band.only-mobile{display:none}}
.clip.extra{margin-bottom:20px}
@media (min-width:900px){.clip.extra{display:none}}
/* motion: calm reveals on scroll, laser text writes itself, soft hover lifts */
.btn{transition:background-color .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease}
.occ a,.scenes>*,.pack{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,border-color .3s ease}
.pic img,.car-track img,.strip img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(78,51,87,.16)}
.occ a:hover,.scenes>*:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(26,22,24,.10);border-color:var(--lilac)}
.pic:hover img,.car-track li:hover img,.strip li:hover img{transform:scale(1.04)}
}
.car-track li,.strip li{overflow:hidden}
.js-rv .rv{opacity:0;transform:translateY(22px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js-rv .rv.in{opacity:1;transform:none}
.js-rv .beam{clip-path:inset(-50px 100% -50px -50px)}
.js-rv .beam.in{animation:beamwrite 2.4s steps(24,end) .35s forwards,beamglow 3.6s ease-in-out 2.9s infinite}
@keyframes beamwrite{to{clip-path:inset(-50px -50px -50px -50px)}}
@keyframes beamglow{50%{text-shadow:0 0 22px rgba(107,255,156,.95),0 0 64px rgba(107,255,156,.5)}}
.top{transition:box-shadow .3s ease}.top.scrolled{box-shadow:0 6px 24px rgba(26,22,24,.07)}
@media (prefers-reduced-motion:reduce){.js-rv .rv{opacity:1;transform:none;transition:none}.js-rv .beam{clip-path:none;animation:none}.btn,.occ a,.scenes>*,.pic img,.car-track img,.strip img{transition:none}}
@media print{.js-rv .rv{opacity:1;transform:none}.js-rv .beam{clip-path:none}}
/* motion, round 2 (V100): small details that tie the pages together */
/* smooth crossfade between pages and languages (browsers without support simply jump) */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.32s}
.top{view-transition-name:topbar}
/* eyebrows are written in from left to right, like the laser writing */
.js-rv .rv.in .eyebrow,.js-rv .eyebrow.rv.in{animation:dn-write 1.1s cubic-bezier(.6,.1,.2,1) .15s both}
@keyframes dn-write{from{clip-path:inset(-4px 100% -4px 0)}to{clip-path:inset(-4px -4px -4px 0)}}
/* photos settle softly into their frame */
.js-rv .rv:not(.in) .pic img,.js-rv .pic.rv:not(.in) img,.js-rv .strip.rv:not(.in) img{transform:scale(1.08)}
/* a light press on phones */
.btn:active,.js-rv .btn.rv.in:active{transform:scale(.97);transition-duration:.12s}
.occ a:active,.scenes>*:active,.pack:active,.js-rv .occ a.rv.in:active,.js-rv .scenes>.rv.in:active,.js-rv .pack.rv.in:active{transform:scale(.985);transition-duration:.15s}
/* burger turns into a cross */
.burger span{transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
@keyframes dn-down{from{opacity:0;transform:translateY(-10px)}}
@keyframes dn-up{from{transform:translateY(105%)}}
@keyframes dn-shine{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(420%) skewX(-18deg)}}
@media (max-width:899px){
.nav:not([hidden]){animation:dn-down .35s cubic-bezier(.2,.7,.2,1) both}
.nav:not([hidden])>ul>li{animation:dn-down .45s cubic-bezier(.2,.7,.2,1) both}
.nav:not([hidden])>ul>li:nth-child(2){animation-delay:.04s}.nav:not([hidden])>ul>li:nth-child(3){animation-delay:.08s}.nav:not([hidden])>ul>li:nth-child(4){animation-delay:.12s}.nav:not([hidden])>ul>li:nth-child(5){animation-delay:.16s}.nav:not([hidden])>ul>li:nth-child(6){animation-delay:.2s}
/* the WhatsApp bar glides in from below, its button catches the light once */
.bar{animation:dn-up .6s cubic-bezier(.2,.7,.2,1) .5s both}
.bar .btn{position:relative;overflow:hidden}
.bar .btn::after{content:"";position:absolute;top:0;bottom:0;left:0;width:30%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-120%) skewX(-18deg);animation:dn-shine 1.4s ease-in-out 2.6s 1 both;pointer-events:none}
}
/* FAQ: plus turns into minus, the answer fades in */
html .faq summary::after,html .faq details[open] summary::after{content:"";width:14px;height:14px;margin-right:4px;background:linear-gradient(var(--plum),var(--plum)) center/14px 1.5px no-repeat,linear-gradient(var(--plum),var(--plum)) center/1.5px 14px no-repeat;transition:background-size .3s ease,transform .3s ease}
html .faq details[open] summary::after{background-size:14px 1.5px,1.5px 0;transform:rotate(180deg)}
.faq details[open]>:not(summary){animation:dn-down .45s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){.js-rv .rv.in .eyebrow,.js-rv .eyebrow.rv.in{animation:none}.burger span,html .faq summary::after{transition:none}.nav:not([hidden]),.nav:not([hidden])>ul>li,.bar,.bar .btn::after,.faq details[open]>:not(summary){animation:none}.bar .btn::after{display:none}}
/* guest reviews */
#galerie{padding-bottom:28px}#faq{padding-top:40px}
@media (min-width:900px){#galerie{padding-bottom:36px}#faq{padding-top:56px}}
.revs{margin-top:48px;padding-top:40px;border-top:1px solid var(--line)}
.revs h3{font-family:var(--label);font-weight:400;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--plum-deep);text-align:center;margin:0 0 26px}
.rev-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gut)*-1);padding:0 0 8px;scrollbar-width:none}
.rev-row::-webkit-scrollbar{display:none}
.rev-row.strip{gap:0;grid-template-columns:none}
.rev{box-sizing:border-box;flex:0 0 84%;scroll-snap-align:center;margin:0;padding:0 22px;display:grid;gap:14px;align-content:start;justify-items:center;text-align:center}
.rev+.rev{border-left:1px solid var(--line)}
.rev::before{content:"\201C";font-family:var(--display);font-size:54px;line-height:1;height:30px;color:var(--lilac)}
.rev blockquote{margin:0;font-family:var(--display);font-style:italic;font-size:17px;line-height:1.6;color:var(--ink)}
.rev figcaption{display:grid;gap:3px;justify-items:center;font-family:var(--label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.rev figcaption::before{content:"";width:28px;height:1px;background:var(--lilac);margin-bottom:9px}
.rev figcaption b{font-weight:500;color:var(--plum-deep)}
.rev figcaption small{font-family:var(--body);font-size:11px;letter-spacing:0;text-transform:none}.rev figcaption small:empty{display:none}
@media (min-width:600px){.rev{flex-basis:50%;scroll-snap-align:start}}
@media (min-width:900px){.rev-row{margin-inline:0}.rev{flex:0 0 33.3333%;padding:0 30px;scroll-snap-align:start}}
.rev-dots{display:flex;justify-content:center;gap:4px;margin-top:8px}.rev-dots button{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}.rev-dots button::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--greige);transition:background .2s}.rev-dots button[aria-current="true"]::before{background:var(--plum)}
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}.hp input{min-height:0;height:1px;padding:0;border:0}
.ck{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper);border-top:1px solid var(--plum);box-shadow:0 -10px 40px rgba(26,22,24,.25);padding:18px var(--gut) calc(18px + env(safe-area-inset-bottom,0px));max-height:85dvh;overflow-y:auto}
.ck-in{max-width:var(--max);margin-inline:auto;display:grid;gap:12px}
.ck h2{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.25;margin:0}
.ck p{margin:0;font-size:14px;line-height:1.6}.ck p a{color:var(--plum-deep)}
.ck-set{display:grid;gap:10px;padding:12px 14px;background:var(--blush)}
.ck-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font:300 13px/1.5 var(--body);letter-spacing:0;text-transform:none;color:var(--ink)}
.ck-row input{width:22px;height:22px;min-height:0;padding:0;margin:2px 0 0;accent-color:var(--plum)}
.ck-row b{display:block;font-weight:500;font-size:14px}
.ck-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ck-btns .btn{min-height:48px;padding:8px 10px;font-size:13px;letter-spacing:.08em;line-height:1.25;text-align:center;cursor:pointer}.ck-btns #ck-cfg{grid-column:1/-1;order:3;min-height:40px}
.ck-link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.ck-link:hover{text-decoration:underline}
@media (min-width:700px){.ck-btns{grid-template-columns:auto auto auto;justify-content:end}.ck-btns .btn{min-width:11rem;min-height:48px;padding-inline:16px}.ck-btns #ck-cfg{grid-column:auto;order:0;min-height:48px}}
.btn.wa{background:var(--plum-deep);border-color:var(--plum-deep);color:#fff}
.btn.wa:hover{background:#3A2542;border-color:#3A2542}
.btn.wa::before{content:"";flex:none;box-sizing:border-box;width:19px;height:16px;border:1.6px solid currentColor;border-radius:9px 9px 9px 2px;margin-top:-1px}
@media (max-width:899px){.nav-open .bar,.nav-open .fab{display:none}.nav-open .nav{max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);padding-bottom:env(safe-area-inset-bottom,0px)}}
h1,h2,.ck h2{font-weight:600}h1 em,h2 em{font-weight:400}
.bar{grid-template-columns:1fr}.bar .btn{width:100%}
.hero-pic{aspect-ratio:16/10;overflow:hidden;background:var(--night)}.hero-pic img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:379px){form{padding-inline:14px}.brand b{font-size:18px}.brand small{letter-spacing:.4em}.lang button{min-width:32px;font-size:12px}.burger{width:36px}.top .wrap{gap:6px}}
@media (min-width:600px){
  :root{--gut:32px}
  .cta{grid-template-columns:auto auto;justify-content:start}
  .occ{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:2fr 1fr 1fr}
  .gal .ph,.gal .ph:first-child{grid-column:auto;aspect-ratio:auto;height:340px}
  .steps{grid-template-columns:repeat(3,1fr)}
  .extras dl{grid-template-columns:1fr 1fr;column-gap:40px}
}
@media (min-width:900px){
  body{padding-bottom:0;font-size:17px}
  .bar,.burger{display:none}
  .sec{padding-block:88px}
  .top .wrap{min-height:76px}
  header.top nav.nav[hidden],header.top nav.nav{display:block!important}
  .nav{border:0;background:transparent;margin-left:auto}
  .nav ul{display:flex;gap:28px;padding:0}
  .nav a{border:0;padding:8px 0;font-size:14px}
  .nav a:hover{color:var(--plum)}
  .hero .wrap{grid-template-columns:1.05fr 1fr;align-items:center;gap:56px;padding-block:72px}
  .packs{grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto 1fr auto}
  .pack{grid-row:span 4;grid-template-rows:subgrid;row-gap:16px}
  .pack .rates{align-self:start}
  .pack .btn{align-self:end}
  .occ{grid-template-columns:repeat(4,1fr)}
  .occ a{grid-template-columns:1fr;align-content:space-between;min-height:210px}
  .laser .wrap{grid-template-columns:1fr 1.1fr;align-items:center;gap:56px;padding-block:88px}
  .contact .wrap{grid-template-columns:1fr 1.6fr;gap:56px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.lang a{font-family:var(--label);font-size:13px;letter-spacing:.1em;min-width:40px;min-height:36px;display:grid;place-items:center;text-decoration:none;color:var(--ink-soft)}.lang a[aria-current="page"]{background:var(--plum);color:#fff}
@media (max-width:379px){.lang a{min-width:32px;font-size:12px}}

/* VORUEBERGEHEND: Impressum/Datenschutz-Links ausgeblendet */
.foot li:has(> a[href*="impressum"]),.foot li:has(> a[href*="legal-notice"]),.foot li:has(> a[href*="kunye"]),.foot li:has(> a[href*="datenschutz"]),.foot li:has(> a[href*="privacy"]),.foot li:has(> a[href*="gizlilik"]),.ck a[href*="datenschutz"],.ck a[href*="privacy"],.ck a[href*="gizlilik"]{display:none!important}
