/* ===== KR Makeup Studio ===== */
:root{
  --wine:#2a0a10; --wine2:#3d0f19; --crimson:#a50f2d; --crimson2:#c8183c;
  --gold:#d4af37; --gold2:#f3dc8a; --ivory:#fff8f0; --cream:#f7ebdd; --ink:#2b1a1d; --muted:#7a6468;
  --grad-gold:linear-gradient(135deg,#b8902a,#f3dc8a 45%,#d4af37 70%,#a97f1c);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif; --script:'Great Vibes',cursive;
  --ease:cubic-bezier(.22,.8,.24,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:70px}
body{font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.is-loading{overflow:hidden}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
em{font-style:italic;color:var(--crimson)}
.container{width:min(1200px,92%);margin-inline:auto}
.narrow{width:min(860px,92%)}
.section{padding:clamp(70px,10vw,120px) 0;position:relative}
.dark-sec{background:radial-gradient(circle at 20% 0%,var(--wine2),var(--wine) 70%);color:#f6e9e2}
.dark-sec em{color:var(--gold2)}

.eyebrow{font-size:.8rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:14px}
.eyebrow.dark{color:var(--crimson)}
.title{font-family:var(--serif);font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.12;font-weight:600;margin-bottom:18px}
.title.light{color:#fff}
.sec-head{text-align:center;margin-bottom:clamp(36px,6vw,64px)}
.sec-sub{max-width:560px;margin:0 auto;color:#d8c3bd}
.sec-sub.dark{color:var(--muted)}

/* Buttons */
.btn{display:inline-block;padding:14px 34px;border-radius:50px;font-weight:500;letter-spacing:.08em;font-size:.88rem;text-transform:uppercase;position:relative;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s;z-index:-1}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-3px)}
.btn-gold{background:var(--grad-gold);color:#3a0d15;box-shadow:0 8px 24px rgba(212,175,55,.35)}
.btn-crimson{background:linear-gradient(135deg,var(--crimson),var(--crimson2));color:#fff;box-shadow:0 8px 24px rgba(165,15,45,.3)}
.btn-ghost{border:1.5px solid var(--gold);color:var(--gold2)}
.btn-ghost:hover{background:var(--gold);color:var(--wine)}
.full{width:100%}

/* ===== Preloader ===== */
.preloader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center}
.curtain{position:absolute;top:0;bottom:0;width:50.5%;background:repeating-linear-gradient(90deg,#7d0a20 0 18px,#a50f2d 18px 40px,#8c0c24 40px 56px);box-shadow:inset 0 0 120px rgba(0,0,0,.5);transition:transform 1.3s cubic-bezier(.77,0,.18,1)}
.curtain-l{left:0}.curtain-r{right:0}
.pre-center{position:relative;text-align:center;color:var(--gold2);transition:opacity .5s,transform .6s}
.pre-mono .ring{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:570;stroke-dashoffset:570;animation:draw 2s .2s forwards ease}
.pre-mono .mono-text{font-family:var(--serif);font-size:80px;font-weight:600;fill:transparent;stroke:var(--gold2);stroke-width:1.2;stroke-dasharray:300;stroke-dashoffset:300;animation:draw 2s .5s forwards ease,fillin .8s 2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fillin{to{fill:var(--gold2)}}
.pre-name{font-family:var(--script);font-size:2.4rem;opacity:0;animation:fade 1s 1.2s forwards}
.pre-line{width:180px;height:2px;background:rgba(255,255,255,.2);margin:12px auto;overflow:hidden;border-radius:2px}
.pre-line span{display:block;height:100%;width:0;background:var(--grad-gold);transition:width .2s}
.pre-count{font-size:.8rem;letter-spacing:.3em}
@keyframes fade{to{opacity:1}}
.preloader.open .pre-center{opacity:0;transform:scale(1.2)}
.preloader.open .curtain-l{transform:translateX(-101%)}
.preloader.open .curtain-r{transform:translateX(101%)}
.preloader.gone{display:none}

.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad-gold);z-index:1100}
#sparkles{position:fixed;inset:0;pointer-events:none;z-index:1050}

/* ===== Header ===== */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:padding .4s,box-shadow .4s;padding:18px 0}
.header::before{content:"";position:absolute;inset:0;background:rgba(42,10,16,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .4s;z-index:-1;pointer-events:none}
.header.scrolled{padding:10px 0;box-shadow:0 6px 30px rgba(0,0,0,.25)}
.header.scrolled::before{opacity:1}
.nav-wrap{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px;color:#fff}
.logo-mark{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--wine);background:var(--grad-gold);box-shadow:0 0 0 3px rgba(212,175,55,.3)}
.logo-text{font-family:var(--serif);font-size:1.3rem;font-weight:600;line-height:1.1;display:flex;flex-direction:column}
.logo-text small{font-family:var(--sans);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold2);font-weight:400}
.nav{display:flex;align-items:center;gap:26px}
.nav a{color:#fff;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;position:relative;padding:4px 0}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--gold);transition:width .35s}
.nav a:not(.btn):hover::after,.nav a.active::after{width:100%}
.nav .btn{padding:10px 24px;color:#3a0d15}
.burger{display:none;width:44px;height:44px;position:relative;z-index:1002}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:.35s}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
.burger.open span:nth-child(1){top:21px;transform:rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* ===== Hero / Video intro ===== */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:110px 0 70px;background:var(--wine);color:#fff;overflow:hidden}
.bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(28px) saturate(1.2) brightness(.55);transform:scale(1.25)}
.hero-shade{position:absolute;inset:0;background:radial-gradient(circle at 25% 40%,rgba(42,10,16,.55),rgba(42,10,16,.9))}
.hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.hero h1{font-family:var(--serif);font-size:clamp(2.8rem,7vw,5.6rem);line-height:1.02;font-weight:600;margin-bottom:20px;background:linear-gradient(90deg,#fff,var(--gold2),#fff);background-size:200%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite}
.hero h1 .script{font-family:var(--script);font-weight:400;font-size:1.15em;margin-right:6px}
@keyframes shine{to{background-position:200% 0}}
.hero-sub{max-width:520px;color:#ecd9d3;font-size:1.05rem;margin-bottom:32px}
.hero-btns{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:40px}
.hero-badges{display:flex;gap:34px;flex-wrap:wrap}
.hero-badges strong{display:block;font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--gold2)}
.hero-badges span{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:#d8c3bd}

.hero-video-wrap{position:relative;justify-self:center;width:min(340px,100%)}
.arch{position:relative;aspect-ratio:9/16;max-height:76vh;margin-inline:auto;border-radius:200px 200px 24px 24px;overflow:hidden;border:3px solid var(--gold);box-shadow:0 0 0 10px rgba(212,175,55,.15),0 40px 80px rgba(0,0,0,.6);cursor:pointer;animation:floaty 6s ease-in-out infinite}
.intro-video{width:100%;height:100%;object-fit:cover}
.video-tap{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .3s}
.arch.paused .video-tap{opacity:1;background:rgba(0,0,0,.35)}
.play-ico{width:72px;height:72px;border-radius:50%;background:var(--grad-gold);position:relative}
.play-ico::after{content:"";position:absolute;left:29px;top:21px;border-left:22px solid var(--wine);border-top:15px solid transparent;border-bottom:15px solid transparent}
.video-ctrls{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:8px;z-index:3}
.vbtn{background:rgba(42,10,16,.7);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(212,175,55,.6);border-radius:30px;padding:6px 14px;font-size:.78rem;min-height:34px;transition:.3s}
.vbtn:hover{background:var(--gold);color:var(--wine)}
.vbtn-sound .snd-on{display:none}
.vbtn-sound.on .snd-on{display:inline}.vbtn-sound.on .snd-off{display:none}
.float-card{position:absolute;background:rgba(255,248,240,.95);color:var(--wine);padding:10px 18px;border-radius:40px;font-size:.82rem;font-weight:500;box-shadow:0 14px 30px rgba(0,0,0,.35);white-space:nowrap}
.float-card span{color:var(--crimson)}
.fc1{left:-70px;top:22%;animation:floaty 5s ease-in-out infinite}
.fc2{right:-60px;bottom:24%;animation:floaty 5s 1.5s ease-in-out infinite}
@keyframes floaty{50%{transform:translateY(-14px)}}
.petals{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.petal{position:absolute;top:-30px;width:14px;height:18px;background:radial-gradient(circle at 30% 30%,#ff7a96,#c8183c);border-radius:80% 0 80% 0;opacity:.8;animation:fall linear infinite}
@keyframes fall{to{transform:translate3d(var(--dx),110vh,0) rotate(540deg)}}
.scroll-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold2);display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-hint span{width:1px;height:34px;background:var(--gold);animation:drop 1.8s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ===== Carousel ===== */
.carousel{position:relative;overflow:hidden}
.slides{position:relative}
.banner .slides{height:clamp(560px,86vh,760px)}
.banner .slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s,visibility 1s;display:flex;align-items:center;color:#fff;overflow:hidden}
.banner .slide.is-active{opacity:1;visibility:visible;z-index:2}
.slide-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(30px) brightness(.45) saturate(1.3);transform:scale(1.3)}
.slide.is-active .slide-bg{animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1.3)}to{transform:scale(1.45)}}
.slide-in{position:relative;display:grid;grid-template-columns:1.1fr .8fr;gap:50px;align-items:center}
.slide-copy h2{font-family:var(--serif);font-size:clamp(2.2rem,5.2vw,4.2rem);line-height:1.05;font-weight:600;margin-bottom:18px}
.slide-copy h2 em{color:var(--gold2)}
.slide-copy p:not(.eyebrow){max-width:480px;margin-bottom:28px;color:#ecd9d3}
.slide-photo{justify-self:center;width:min(300px,100%);aspect-ratio:3/4;border-radius:150px 150px 20px 20px;overflow:hidden;border:3px solid var(--gold);box-shadow:0 30px 70px rgba(0,0,0,.55)}
.slide-photo img{width:100%;height:100%;object-fit:cover}
.slide-copy>*,.slide-photo{opacity:0;transform:translateY(34px)}
.slide.is-active .slide-copy>*{animation:up .9s var(--ease) forwards}
.slide.is-active .slide-copy>*:nth-child(2){animation-delay:.15s}
.slide.is-active .slide-copy>*:nth-child(3){animation-delay:.3s}
.slide.is-active .slide-copy>*:nth-child(4){animation-delay:.45s}
.slide.is-active .slide-photo{animation:zoomin 1.1s .2s var(--ease) forwards}
@keyframes up{to{opacity:1;transform:none}}
@keyframes zoomin{from{opacity:0;transform:scale(.8) rotate(-3deg)}to{opacity:1;transform:none}}
.c-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold2);font-size:2rem;line-height:1;display:grid;place-items:center;background:rgba(42,10,16,.4);backdrop-filter:blur(4px);transition:.3s}
.c-arrow:hover{background:var(--gold);color:var(--wine)}
.prev{left:22px}.next{right:22px}
.c-dots{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:center;gap:10px;z-index:5}
.c-dots button{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.4);transition:.35s}
.c-dots button.on{background:var(--gold);width:34px;border-radius:10px}
.c-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.15);z-index:5}
.c-progress span{display:block;height:100%;width:0;background:var(--grad-gold)}

/* testimonials carousel */
.t-carousel{padding-bottom:50px}
.t-carousel .slides{display:grid}
.t-carousel .slide{grid-area:1/1;text-align:center;opacity:0;visibility:hidden;transition:opacity .8s,transform .8s;transform:translateY(20px)}
.t-carousel .slide.is-active{opacity:1;visibility:visible;transform:none}
.t-carousel p{font-family:var(--serif);font-size:clamp(1.4rem,3vw,2rem);font-style:italic;line-height:1.4;margin-bottom:20px}
.t-carousel cite{color:var(--crimson);letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;font-style:normal}
.t-carousel .c-dots{bottom:0}
.t-carousel .c-dots button{background:rgba(165,15,45,.25)}
.t-carousel .c-dots button.on{background:var(--crimson)}

/* ===== Marquee ===== */
.marquee{background:var(--grad-gold);overflow:hidden;padding:16px 0;white-space:nowrap}
.marquee-track{display:inline-flex;gap:30px;animation:marq 28s linear infinite;font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--wine)}
.marquee i{font-style:normal;color:var(--crimson)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ===== About ===== */
.about{background:var(--ivory)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.about-media{position:relative;padding:0 40px 60px 0}
.frame{border-radius:200px 200px 20px 20px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 30px 60px rgba(42,10,16,.25);border:3px solid var(--gold)}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.frame:hover img{transform:scale(1.08)}
.frame-2{position:absolute;right:0;bottom:0;width:44%;aspect-ratio:1;border-radius:50%;border:6px solid var(--ivory);box-shadow:0 20px 40px rgba(42,10,16,.3)}
.exp-badge{position:absolute;left:-10px;top:40px;background:var(--crimson);color:#fff;border-radius:50%;width:110px;height:110px;display:grid;place-content:center;text-align:center;box-shadow:0 14px 30px rgba(165,15,45,.4);animation:floaty 5s ease-in-out infinite}
.exp-badge strong{font-family:var(--serif);font-size:2rem;line-height:1}
.exp-badge span{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;margin-top:4px}
.about-copy p{margin-bottom:16px;color:#5b464a}
.ticks{margin:20px 0 30px}
.ticks li{padding-left:34px;position:relative;margin-bottom:10px;font-weight:500}
.ticks li::before{content:"✦";position:absolute;left:0;color:var(--gold);font-size:1.1rem}

/* ===== Services ===== */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.card{padding:36px 26px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(212,175,55,.25);text-align:center;transition:background .4s,border-color .4s,box-shadow .4s;transform-style:preserve-3d}
.card:hover{background:rgba(212,175,55,.1);border-color:var(--gold);box-shadow:0 20px 50px rgba(0,0,0,.4)}
.ico{width:76px;height:76px;margin:0 auto 18px;display:grid;place-items:center;font-size:2rem;border-radius:50%;background:rgba(212,175,55,.12);border:1px dashed var(--gold);transition:transform .6s}
.card:hover .ico{transform:rotateY(360deg)}
.card h3{font-family:var(--serif);font-size:1.5rem;color:var(--gold2);margin-bottom:8px}
.card p{font-size:.93rem;color:#d8c3bd}

/* ===== Process ===== */
.process{background:var(--cream)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.step{text-align:center;padding:30px 20px;background:#fff;border-radius:18px;box-shadow:0 14px 40px rgba(42,10,16,.08);transition:transform .4s}
.step:hover{transform:translateY(-8px)}
.num{display:inline-grid;place-items:center;width:62px;height:62px;border-radius:50%;font-family:var(--serif);font-size:1.5rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--crimson),var(--crimson2));margin-bottom:14px;box-shadow:0 0 0 6px rgba(165,15,45,.12)}
.step h3{font-family:var(--serif);font-size:1.5rem;margin-bottom:6px}
.step p{font-size:.92rem;color:var(--muted)}

/* ===== Gallery ===== */
.gallery{background:var(--ivory)}
.masonry{columns:4;column-gap:18px}
.g-item{break-inside:avoid;margin-bottom:18px;border-radius:16px;overflow:hidden;position:relative;cursor:zoom-in;box-shadow:0 10px 30px rgba(42,10,16,.15)}
.g-item img{width:100%;transition:transform .9s var(--ease)}
.g-item::after{content:"+";position:absolute;inset:0;display:grid;place-items:center;font-size:3rem;color:#fff;background:linear-gradient(to top,rgba(165,15,45,.7),rgba(42,10,16,.25));opacity:0;transition:opacity .4s}
.g-item:hover img{transform:scale(1.1)}
.g-item:hover::after{opacity:1}

/* ===== Packages ===== */
.pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:stretch}
.pack{position:relative;padding:44px 32px;border-radius:24px;background:rgba(255,255,255,.05);border:1px solid rgba(212,175,55,.3);text-align:center;display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s}
.pack:hover{transform:translateY(-10px);box-shadow:0 30px 60px rgba(0,0,0,.4)}
.pack.featured{background:linear-gradient(160deg,rgba(212,175,55,.18),rgba(165,15,45,.25));border-color:var(--gold);transform:scale(1.04)}
.pack.featured:hover{transform:scale(1.04) translateY(-10px)}
.ribbon{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--grad-gold);color:var(--wine);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:5px 18px;border-radius:30px}
.pack h3{font-family:var(--serif);font-size:2rem;color:var(--gold2)}
.pack-for{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#d8c3bd;margin-bottom:22px}
.pack ul{margin-bottom:28px;flex:1}
.pack li{padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.15);font-size:.95rem}
.note{text-align:center;margin-top:36px;color:var(--gold2);font-style:italic;font-family:var(--serif);font-size:1.2rem}

/* ===== FAQ ===== */
.acc-item{border-bottom:1px solid rgba(212,175,55,.3)}
.acc-q{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:22px 0;font-family:var(--serif);font-size:1.4rem;color:#fff;gap:20px}
.acc-q span{flex:none;width:28px;height:28px;position:relative}
.acc-q span::before,.acc-q span::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;background:var(--gold);transform:translate(-50%,-50%);transition:.35s}
.acc-q span::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc-item.open .acc-q span::after{transform:translate(-50%,-50%) rotate(0)}
.acc-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.acc-a p{padding-bottom:22px;color:#d8c3bd}

/* ===== Contact ===== */
.contact{background:var(--cream)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.contact-info>p{color:#5b464a;margin-bottom:26px}
.info-list li{display:flex;gap:16px;align-items:center;margin-bottom:20px}
.info-list li>span{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 8px 20px rgba(42,10,16,.12);font-size:1.3rem}
.info-list b{display:block;font-family:var(--serif);font-size:1.2rem}
.info-list a,.info-list em{color:var(--muted);font-style:normal}
.info-list a:hover{color:var(--crimson)}
.form{background:#fff;padding:clamp(24px,4vw,44px);border-radius:24px;box-shadow:0 30px 70px rgba(42,10,16,.15);border-top:5px solid var(--gold)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;font-weight:500}
.form input,.form select,.form textarea{width:100%;margin-top:6px;padding:13px 16px;border:1.5px solid #e6d6cb;border-radius:12px;font:inherit;font-size:1rem;background:var(--ivory);color:var(--ink);transition:border-color .3s,box-shadow .3s}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--crimson);box-shadow:0 0 0 4px rgba(165,15,45,.1)}
.form .invalid{border-color:#d33}
.form-msg{margin-top:12px;text-align:center;font-size:.9rem;color:var(--crimson);min-height:1.2em}

/* ===== Footer ===== */
.footer{background:var(--wine);color:#d8c3bd;padding:50px 0 30px;text-align:center}
.foot-in{display:flex;flex-direction:column;align-items:center;gap:20px}
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
.foot-nav a:hover{color:var(--gold)}
.footer p{font-size:.82rem;opacity:.8}

/* floating */
.wa-float{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;z-index:900;box-shadow:0 10px 26px rgba(37,211,102,.5);animation:pulse 2.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.6)}70%{box-shadow:0 0 0 20px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
.to-top{position:fixed;right:28px;bottom:90px;width:44px;height:44px;border-radius:50%;background:var(--grad-gold);color:var(--wine);font-size:1.2rem;z-index:900;opacity:0;visibility:hidden;transform:translateY(20px);transition:.4s}
.to-top.show{opacity:1;visibility:visible;transform:none}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(20,4,8,.94);z-index:2000;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.4s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-height:88vh;max-width:88vw;border-radius:12px;border:2px solid var(--gold);animation:zoomin .5s var(--ease)}
.lb-close{position:absolute;top:18px;right:24px;font-size:2.8rem;color:#fff;line-height:1}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:3rem;color:var(--gold2);width:56px;height:56px}
.lb-prev{left:10px}.lb-next{right:10px}

/* Scroll reveal */
.reveal-up,.reveal-left,.reveal-right{opacity:0;transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal-up{transform:translateY(50px)}
.reveal-left{transform:translateX(-60px)}
.reveal-right{transform:translateX(60px)}
.reveal-up.d1{transition-delay:.12s}.reveal-up.d2{transition-delay:.24s}.reveal-up.d3{transition-delay:.36s}.reveal-up.d4{transition-delay:.48s}
.in{opacity:1!important;transform:none!important}
body.is-loading .hero .reveal-up{opacity:0;transform:translateY(50px)}

/* ===== Responsive ===== */
@media (max-width:1100px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .masonry{columns:3}
  .fc1{left:-30px}.fc2{right:-30px}
}
@media (max-width:900px){
  .burger{display:block}
  .nav{position:fixed;inset:0 0 0 auto;width:min(320px,82%);background:var(--wine);flex-direction:column;justify-content:center;align-items:flex-start;padding:40px;gap:22px;transform:translateX(100%);transition:transform .5s var(--ease);box-shadow:-20px 0 60px rgba(0,0,0,.5)}
  .nav.open{transform:none}
  .nav a{font-size:1rem}
  .about-grid,.contact-grid{grid-template-columns:1fr;gap:50px}
  .about-media{max-width:460px;margin-inline:auto}
  .steps{grid-template-columns:repeat(2,1fr)}
  .pack-grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto}
  .pack.featured{transform:none}.pack.featured:hover{transform:translateY(-10px)}
  .masonry{columns:2}
  .slide-in{grid-template-columns:1fr .7fr;gap:24px}
  .slide-photo{width:min(220px,100%)}
}
/* Phone: video becomes the full-screen intro */
@media (max-width:768px){
  .hero{padding:0;align-items:flex-end;min-height:100svh}
  .hero-grid{display:block;width:100%}
  .hero-video-wrap{position:absolute;inset:0;width:100%;justify-self:auto}
  .arch{position:absolute;inset:0;max-height:none;aspect-ratio:auto;border-radius:0;border:0;box-shadow:none;animation:none}
  .float-card{display:none}
  .video-ctrls{bottom:auto;top:84px;justify-content:flex-end;right:14px;left:auto}
  .hero-text{position:relative;z-index:4;padding:70px 6% 34px;background:linear-gradient(to top,rgba(30,6,12,.96) 25%,rgba(30,6,12,.55) 70%,transparent);margin-top:auto;pointer-events:none}
  .hero-text a{pointer-events:auto}
  .hero{position:relative}
  .hero-grid{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;min-height:100svh;width:100%;max-width:none;padding:0}
  .hero h1{font-size:2.5rem;margin-bottom:10px}
  .hero .eyebrow{font-size:.68rem;letter-spacing:.25em;margin-bottom:8px}
  .hero-sub{display:none}
  .hero-btns{margin-bottom:18px;gap:10px;flex-wrap:nowrap}
  .hero-btns .btn{padding:12px 18px;font-size:.74rem;flex:1;text-align:center}
  .hero-badges{gap:18px;flex-wrap:nowrap}.hero-badges strong{font-size:1.5rem}.hero-badges span{font-size:.6rem;letter-spacing:.1em}
  .scroll-hint{display:none}
  .banner .slides{height:auto;min-height:620px}
  .banner .slide{padding:90px 0 80px}
  .slide-in{grid-template-columns:1fr;text-align:center;gap:26px}
  .slide-photo{order:-1;width:170px;margin-inline:auto}
  .slide-copy p:not(.eyebrow){margin-inline:auto}
  .c-arrow{width:40px;height:40px;font-size:1.5rem;top:auto;bottom:18px;transform:none}
  .prev{left:14px}.next{right:14px}
  .exp-badge{width:90px;height:90px;left:-4px}
  .exp-badge strong{font-size:1.6rem}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .masonry{column-gap:12px}.g-item{margin-bottom:12px}
  .logo-text{font-size:1.1rem}.logo-mark{width:40px;height:40px}
  .about-media{padding:0 24px 50px 0}
  .acc-q{font-size:1.15rem}
  .to-top{right:22px;bottom:86px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ===== Added: contact socials, call button, form title ===== */
.social-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.social-row.center{justify-content:center;margin-top:0}
.soc{padding:10px 18px;border-radius:50px;border:1.5px solid var(--gold);color:var(--crimson);font-weight:500;font-size:.92rem;transition:.3s var(--ease);background:#fff}
.soc:hover{background:var(--crimson);color:#fff;border-color:var(--crimson);transform:translateY(-3px)}
.footer .soc{background:transparent;color:var(--gold2)}
.footer .soc:hover{background:var(--gold);color:var(--wine);border-color:var(--gold)}
.form-title{font-family:var(--serif);font-size:1.7rem;margin-bottom:18px;color:var(--crimson)}
.call-float{position:fixed;left:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:var(--grad-gold);color:var(--wine);display:grid;place-items:center;font-size:1.5rem;z-index:900;box-shadow:0 10px 26px rgba(212,175,55,.5)}
.btn-ghost-dark{border:1.5px solid var(--crimson);color:var(--crimson)}
.btn-ghost-dark:hover{background:var(--crimson);color:#fff}

/* ===== Added: premium gallery ===== */
.g-filters{display:flex;justify-content:center;gap:10px;margin-bottom:34px;flex-wrap:wrap}
.g-filters button{padding:11px 28px;border-radius:50px;border:1.5px solid var(--gold);color:var(--crimson);font-weight:500;letter-spacing:.06em;transition:.35s var(--ease);background:transparent}
.g-filters button.on,.g-filters button:hover{background:var(--crimson);border-color:var(--crimson);color:#fff;box-shadow:0 10px 24px rgba(165,15,45,.3)}
.g-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;gap:18px}
.g-card{position:relative;margin:0;border-radius:20px;overflow:hidden;cursor:pointer;aspect-ratio:3/4;background:var(--wine);box-shadow:0 14px 34px rgba(42,10,16,.18);transition:transform .6s var(--ease),box-shadow .6s var(--ease),opacity .5s;transition-delay:var(--d,0s)}
.g-card.tall{grid-row:auto;aspect-ratio:3/4}
.g-card.hide{display:none}
.g-card img,.g-card video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--ease),filter .6s}
.g-card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(243,220,138,.0);border-radius:14px;z-index:2;transition:.5s var(--ease);pointer-events:none}
.g-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(42,10,16,.88),rgba(42,10,16,0) 55%);opacity:.55;transition:opacity .5s;pointer-events:none}
.g-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 18px;z-index:3;color:#fff;font-family:var(--serif);font-size:1.25rem;transform:translateY(14px);opacity:0;transition:.5s var(--ease)}
.g-card figcaption span{background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.g-card:hover,.g-card:focus-visible{transform:translateY(-8px) scale(1.015);box-shadow:0 30px 60px rgba(165,15,45,.3);outline:none}
.g-card:hover img,.g-card:hover video{transform:scale(1.1)}
.g-card:hover::before{border-color:rgba(243,220,138,.9);inset:14px}
.g-card:hover::after{opacity:1}
.g-card:hover figcaption{opacity:1;transform:none}
.g-badge{position:absolute;top:14px;left:14px;z-index:3;padding:6px 14px;border-radius:50px;background:rgba(42,10,16,.7);backdrop-filter:blur(6px);color:var(--gold2);font-size:.78rem;letter-spacing:.08em;border:1px solid rgba(243,220,138,.5)}
.is-video::before{content:"";}
.g-more{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:44px}
@media (max-width:1100px){.g-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.g-grid{grid-template-columns:repeat(2,1fr);gap:12px}.g-card{border-radius:14px}.g-card figcaption{opacity:1;transform:none;font-size:1rem;padding:12px}.call-float{left:14px;bottom:14px}}

/* lightbox stage (photo + video) */
.lb-stage{display:grid;place-items:center;max-width:92vw;max-height:88vh}
.lb-stage img,.lb-stage video{max-height:84vh;max-width:90vw;border-radius:12px;border:2px solid var(--gold);background:#000}
.lb-stage video{display:none}
.lb-count{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:var(--gold2);font-family:var(--serif);font-size:1.1rem;letter-spacing:.06em}


/* ===================== v3 additions ===================== */
section[id]{scroll-margin-top:68px}
body.menu-open{overflow:hidden}
.nav-overlay{position:fixed;inset:0;background:rgba(15,3,6,.62);opacity:0;visibility:hidden;transition:.4s;z-index:999}
.nav-overlay.show{opacity:1;visibility:visible}
@media (max-width:900px){
  .nav{top:0;right:0;bottom:0;left:auto;inset:auto 0 0 auto;height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:90px 34px 40px;justify-content:flex-start;gap:6px}
  .nav a:not(.btn){display:block;width:100%;padding:14px 0;border-bottom:1px solid rgba(212,175,55,.18)}
  .nav a:not(.btn)::after{display:none}
  .nav a.active{color:var(--gold2)}
  .nav .btn{margin-top:20px;align-self:stretch;text-align:center}
}
.hero-badges strong.txt{font-size:1.7rem}

/* services: 10 cards, centred rows */
.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.card{flex:0 1 calc((100% - 66px)/4);display:flex;flex-direction:column;align-items:center}
.card p{flex:1}
.card-link{margin-top:16px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold2);border-bottom:1px solid transparent;transition:.3s}
.card-link:hover{color:#fff;border-color:var(--gold)}
@media (max-width:1100px){.card{flex-basis:calc((100% - 22px)/2)}}
@media (max-width:560px){.card{flex-basis:100%}}

/* about */
.about-vid{padding:0;background:#000;cursor:pointer;display:block}
.frame video{width:100%;height:100%;object-fit:cover;display:block}
.about-play{position:absolute;inset:0;display:grid;place-items:center;font-size:1.6rem;color:#fff;background:rgba(42,10,16,.28);transition:.4s}
.about-vid:hover .about-play{background:rgba(165,15,45,.45)}
.about-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.about-media .frame:first-child img{object-position:center 20%}

/* contact: socials + map */
.map-wrap{position:relative;margin-top:56px;border-radius:24px;overflow:hidden;border:3px solid var(--gold);box-shadow:0 30px 70px rgba(42,10,16,.18)}
.map-wrap iframe{display:block;width:100%;height:clamp(280px,42vw,420px);border:0}
.map-btn{position:absolute;left:18px;bottom:18px;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.insta-cta{padding:clamp(54px,8vw,90px) 0}
.insta-cta .g-more{margin-top:10px}

/* luxury gallery */
.gallery-lux{background:radial-gradient(1200px 600px at 15% 0,#4a1220 0,transparent 60%),radial-gradient(900px 500px at 90% 100%,#3d0f19 0,transparent 60%),var(--wine);color:#fff;overflow:hidden}
.gallery-lux::before{content:"";position:absolute;left:50%;top:0;width:1px;height:70px;background:linear-gradient(var(--gold),transparent)}
.gallery-lux .g-filters button{color:var(--gold2);border-color:rgba(212,175,55,.5)}
.gallery-lux .g-filters button.on,.gallery-lux .g-filters button:hover{background:var(--grad-gold);color:var(--wine);border-color:var(--gold);box-shadow:0 10px 30px rgba(212,175,55,.35)}
.gallery-lux .g-card{box-shadow:0 20px 50px rgba(0,0,0,.5);border:1px solid rgba(212,175,55,.35)}
.gallery-lux .g-card:hover{box-shadow:0 30px 70px rgba(0,0,0,.65),0 0 0 2px rgba(243,220,138,.7)}
.g-card.tall video{object-fit:cover}
.g-badge{display:flex;align-items:center;gap:6px}
.g-play{position:absolute;right:14px;bottom:14px;z-index:3;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--grad-gold);color:var(--wine);font-size:.9rem;box-shadow:0 8px 20px rgba(0,0,0,.4);transition:transform .4s var(--ease)}
.g-card:hover .g-play{transform:scale(1.15)}

/* lightbox filmstrip */
.lb-bottom{position:absolute;left:0;right:0;bottom:0;padding:10px 12px 14px;background:linear-gradient(to top,rgba(20,4,8,.95),transparent);z-index:3}
.lb-count{position:static;margin-bottom:8px;font-size:1rem}
.lb-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px;justify-content:flex-start;scrollbar-width:thin;scrollbar-color:var(--gold) transparent;-webkit-overflow-scrolling:touch}
.lb-strip::before,.lb-strip::after{content:"";margin:auto}
.lb-strip button{flex:none;width:52px;height:74px;border-radius:8px;overflow:hidden;border:2px solid transparent;opacity:.55;transition:.3s;position:relative;padding:0;background:#000}
.lb-strip button img{width:100%;height:100%;object-fit:cover;display:block}
.lb-strip button.on{opacity:1;border-color:var(--gold2);transform:translateY(-4px)}
.lb-strip button .vi{position:absolute;inset:auto 0 0 0;font-size:.6rem;color:var(--gold2);text-align:center;background:rgba(0,0,0,.55)}
.lb-stage img,.lb-stage video{max-height:calc(100vh - 190px);max-height:calc(100dvh - 190px)}
.lb-nav{z-index:4;background:rgba(42,10,16,.5);border-radius:50%;backdrop-filter:blur(4px)}
.lb-close{z-index:4}
.lb-book{display:inline-block;margin-top:2px}

/* quote popup */
.qmodal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:16px;background:rgba(20,4,8,.82);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:.4s}
.qmodal.open{opacity:1;visibility:visible}
.qbox{position:relative;width:min(580px,100%);max-height:94vh;max-height:94dvh;overflow-y:auto;background:#fff;border-radius:24px;border-top:5px solid var(--gold);padding:clamp(24px,4vw,40px);box-shadow:0 40px 90px rgba(0,0,0,.55);transform:translateY(30px) scale(.97);transition:transform .5s var(--ease)}
.qmodal.open .qbox{transform:none}
.qbox h3{font-family:var(--serif);font-size:2rem;color:var(--crimson);margin-bottom:4px}
.q-sub{color:var(--muted);margin-bottom:20px;font-size:.95rem}
.q-close{position:absolute;top:10px;right:16px;font-size:2.2rem;line-height:1;color:var(--muted)}
.q-close:hover{color:var(--crimson)}
.qmodal label{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-weight:500}
.qmodal input,.qmodal select,.qmodal textarea{width:100%;margin-top:6px;padding:13px 16px;border:1.5px solid #e6d6cb;border-radius:12px;font:inherit;font-size:1rem;background:var(--ivory);color:var(--ink)}
.qmodal input:focus,.qmodal select:focus,.qmodal textarea:focus{outline:0;border-color:var(--crimson);box-shadow:0 0 0 4px rgba(165,15,45,.1)}
.qmodal .invalid{border-color:#d33}
.qmodal .eyebrow{margin-bottom:6px}

/* gallery grid refinements for all sizes */
@media (max-width:1100px){.g-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){
  .g-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .g-card.tall{grid-row:auto;aspect-ratio:3/4}
  .lb-nav{width:42px;height:42px;font-size:2rem}
  .lb-strip button{width:44px;height:62px}
  .map-btn{left:50%;transform:translateX(-50%);bottom:12px;white-space:nowrap}
  .about-btns .btn{flex:1;text-align:center}
}
@media (max-width:420px){
  .container{padding-inline:18px}
  .qbox h3{font-size:1.6rem}
  .hero h1{font-size:2.2rem}
}
.g-card img,.g-card video{position:absolute;inset:0}
.g-card video{opacity:0;transition:opacity .5s,transform 1.1s var(--ease)}
.g-card video.on{opacity:1}

/* v3 polish */
.gallery-lux .title em,.gallery-lux .sec-head em{color:var(--gold2)}
.lightbox{padding:56px 0 138px}
@media (max-width:900px){
  .nav{padding:72px 30px 28px}
  .nav a:not(.btn){padding:11px 0}
  .nav .btn{margin-top:14px}
}
@media (max-width:560px){
  .card{flex-basis:calc((100% - 12px)/2);padding:24px 12px}
  .cards{gap:12px}
  .card h3{font-size:1.15rem}
  .card p{font-size:.82rem}
  .card .ico{transform:scale(.85)}
  .g-filters{gap:8px}.g-filters button{padding:10px 20px}
}
@media (max-width:360px){.card{flex-basis:100%}}

/* =====================================================
   FULL RESPONSIVE PASS (layout unchanged, fixes only)
   ===================================================== */
html,body{max-width:100%;overflow-x:hidden}
img,video,iframe{max-width:100%;height:auto}
iframe{height:clamp(280px,42vw,420px)}
.map-wrap iframe{height:clamp(280px,42vw,420px)}

/* Desktop nav needs ~960px; switch to the side drawer up to 1180px */
@media (max-width:1180px){
  .burger{display:block}
  .nav{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(320px,82%);height:100vh;height:100dvh;background:var(--wine);flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:90px 34px 40px;gap:6px;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(100%);transition:transform .5s var(--ease);box-shadow:-20px 0 60px rgba(0,0,0,.5);z-index:1001}
  .nav.open{transform:none}
  .nav a{font-size:1rem}
  .nav a:not(.btn){display:block;width:100%;padding:14px 0;border-bottom:1px solid rgba(212,175,55,.18)}
  .nav a:not(.btn)::after{display:none}
  .nav a.active{color:var(--gold2)}
  .nav .btn{margin-top:20px;align-self:stretch;text-align:center;padding:12px 24px}
}

/* Tablet */
@media (min-width:561px) and (max-width:1024px){
  .hero-grid{gap:36px}
  .hero h1{font-size:clamp(2.6rem,6vw,4.4rem)}
  .slide-in{gap:30px}
  .slide-photo{width:min(240px,100%)}
  .frame-2{width:40%}
}

/* Large phones & small tablets */
@media (max-width:768px){
  .hero-text{padding-bottom:96px}
  .call-float,.wa-float{width:52px;height:52px}
  .call-float{font-size:1.3rem}
  .to-top{width:40px;height:40px;right:20px;bottom:84px}
  .sec-head{margin-bottom:40px}
  .footer{padding-bottom:110px}
  .container{width:min(1200px,92%)}
}

/* Buttons never clip their text */
.btn{white-space:normal;text-align:center;line-height:1.35}
.about-btns{flex-wrap:wrap}
.about-btns .btn{flex:1 1 200px;max-width:100%;overflow-wrap:anywhere}
.g-more .btn{max-width:100%}
.nav-cta{white-space:nowrap}

/* Phones */
@media (max-width:560px){
  .container{width:92%;padding-inline:0}
  .section{padding:64px 0}
  .title{font-size:clamp(1.9rem,8vw,2.4rem)}
  .sec-sub{font-size:.95rem}
  .hero-btns .btn{font-size:.7rem;padding:12px 10px;letter-spacing:.05em}
  .hero-badges{justify-content:space-between;gap:10px}
  .hero-badges strong.txt{font-size:1.25rem}
  .hero-badges span{font-size:.55rem;letter-spacing:.06em}
  .slide-copy h2{font-size:clamp(1.9rem,9vw,2.4rem)}
  .slide-copy p:not(.eyebrow){font-size:.95rem}
  .banner .slide{padding:70px 0 90px}
  .c-arrow{width:36px;height:36px;font-size:1.3rem}
  .pack{padding:36px 22px}
  .pack h3{font-size:1.75rem}
  .card{padding:22px 10px}
  .info-list li{gap:12px}
  .info-list li>span{width:44px;height:44px;font-size:1.1rem}
  .soc{padding:9px 14px;font-size:.84rem}
  .social-row{gap:8px}
  .map-wrap{margin-top:40px;border-radius:18px}
  .map-btn{font-size:.72rem;padding:11px 18px}
  .form{border-radius:18px}
  .qbox{border-radius:18px}
  .qbox .row,.form .row{grid-template-columns:1fr}
  .exp-badge{width:84px;height:84px;left:0;top:20px}
  .exp-badge strong{font-size:1.4rem}
  .about-media{padding:0 14px 40px 0}
  .frame-2{width:42%}
  .acc-q{font-size:1.1rem;padding:18px 0}
  .foot-nav{gap:14px 18px}
  .steps .step{padding:24px 16px}
  .gallery .g-more .btn,.insta-cta .g-more .btn{width:100%}
}

/* Very small phones (≤360px) */
@media (max-width:360px){
  .hero h1{font-size:1.9rem}
  .hero-badges strong{font-size:1.25rem}
  .logo-mark{width:36px;height:36px;font-size:1.1rem}
  .logo-text{font-size:1rem}
  .logo{gap:8px}
  .nav{width:88%}
  .pre-mono{width:110px;height:110px}
}

/* Gallery: 2 columns on phones, reels and photos share one tile size */
@media (max-width:560px){
  .g-grid{gap:8px}
  .g-card{border-radius:12px}
  .g-card figcaption{font-size:.88rem;padding:10px}
  .g-badge{top:8px;left:8px;font-size:.66rem;padding:4px 10px}
  .g-play{width:36px;height:36px;right:8px;bottom:8px;font-size:.75rem}
  .g-filters button{font-size:.85rem}
}

/* Touch devices: no hover-only effects getting stuck */
@media (hover:none){
  .btn:hover,.card:hover,.step:hover,.pack:hover{transform:none}
  .pack.featured:hover{transform:scale(1.04)}
}
@media (max-width:900px){
  .pack.featured{transform:none}
  .pack.featured:hover{transform:none}
}