/* =========================================================
   CUÍDATE STUDIO — redesign concept
   Palette: white base, light sand for alternating bands, peach
   as a small accent only (buttons, hover states) — no dead cream
   wash across whole sections.
   Type: display titles in the real Melodrama variable font
   (Arianna's own file, loaded via @font-face). Body copy and
   logo: Manrope.
   Motion: parallax drift on large photos, staggered text reveal,
   scroll-linked word focus on a few statements, plus a preloader.
   Photos: real Cuídate Studio shots for identity-specific imagery
   (Giada, the studio, certifications); topic-relevant Unsplash
   stock for treatment imagery; picsum placeholder only for
   services with no photography yet (laser, Natural Freckles, shop).
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');

@font-face{
  font-family:'Melodrama';
  src:url('Melodrama-Variable.ttf') format('truetype');
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}

:root{
  --ink:#2B2018;
  --ink-soft:#7C6E5F;
  --cream:#FFFFFF;
  --cream-deep:#FFFFFF;
  --panel:#F3EEE4;
  --orb-sand:#EFE4CE;
  --peach:#FFD9A8;
  --peach-deep:#D98A46;
  --white:#FFFFFF;
  --line:rgba(43,32,24,.14);

  --display:'Melodrama', serif;
  --body:'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --container:1200px;
  --edge:max(32px, calc((100vw - 1200px)/2 + 32px));
  --ease:cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--white);color:var(--ink);
  font-family:var(--body);font-weight:300;font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;background:var(--cream-deep);}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2{margin:0;font-family:var(--display);font-weight:400;color:var(--ink);letter-spacing:-.005em;line-height:1.12;}
h3{margin:0;font-family:var(--body);font-weight:500;color:var(--ink);letter-spacing:-.005em;line-height:1.3;}
p{margin:0;}
strong{font-weight:500;color:var(--ink);}
button{font-family:inherit;cursor:pointer;background:none;border:none;}
.wrap{max-width:var(--container);margin:0 auto;padding:0 32px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .parallax-img{transform:none !important;}
}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}

.cream{background:var(--cream);}
.soft{background:var(--cream-deep);}
.peach-bg{background:var(--peach);}

.eyebrow{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);}

/* ---------- buttons & links (kept light — only titles get extra weight) ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:500;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;padding:16px 32px;border:1px solid var(--ink);border-radius:999px;white-space:nowrap;transition:background .25s,color .25s,border-color .25s;}
.btn svg{width:17px;height:17px;flex:none;}
.btn-outline{color:var(--ink);background:transparent;}
.btn-shop{background:var(--peach);color:var(--ink);border-color:var(--peach);}
.btn-shop:hover{background:var(--peach-deep);border-color:var(--peach-deep);}
.btn-shop svg{width:16px;height:16px;}
.btn-outline:hover{background:var(--ink);color:var(--cream);}
.btn-outline-light{border-color:rgba(255,255,255,.75);color:#fff;background:transparent;}
.btn-outline-light:hover{background:#fff;color:var(--ink);border-color:#fff;}
.text-link{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:400;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;}
.text-link svg{width:13px;height:13px;flex:none;}
.round-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s;}
.round-btn:hover{background:#d2d2d2;color:#fff;}
.round-btn svg{width:18px;height:18px;color: var(--ink);}

/* ---------- nav (hamburger, always — desktop and mobile) ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:22px 32px;}
.logo{display:flex;align-items:center;}
.logo-img{height:36px;width:auto;background:none;}
body.menu-open{overflow:hidden;}
.nav-toggle{position:fixed;top:16px;right:var(--edge);width:56px;height:56px;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;z-index:61;}
.nav-toggle-bars{display:flex;flex-direction:column;gap:9px;}
.nav-toggle-bars span{display:block;width:38px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .3s;}
body.menu-open .nav-toggle-bars span:first-child{transform:translateY(5.75px) rotate(45deg);}
body.menu-open .nav-toggle-bars span:last-child{transform:translateY(-5.75px) rotate(-45deg);}

/* fullscreen overlay menu — links flow horizontally, editorial and open */
.nav-overlay{
  position:fixed;inset:0;z-index:70;background:var(--white);
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease);
  display:flex;align-items:center;justify-content:center;
}
body.menu-open .nav-overlay{opacity:1;pointer-events:auto;}
.nav-close{position:fixed;top:16px;right:var(--edge);width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);border-radius:50%;color:var(--ink);z-index:71;transition:border-color .25s,transform .3s var(--ease);}
.nav-close:hover{border-color:var(--ink);transform:rotate(90deg);}
.nav-close svg{width:20px;height:20px;}
.nav-overlay-inner{width:100%;max-width:980px;padding:0 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:40px;}
.nav-overlay-eyebrow{justify-content:center;}
.nav-overlay-links{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:0 28px;row-gap:10px;}
.nav-overlay-links a{font-family:var(--display);font-size:clamp(26px,4.2vw,48px);font-weight:400;color:var(--ink);width:fit-content;position:relative;transition:color .25s;}
.nav-overlay-links a::after{content:'/';position:absolute;right:-18px;top:0;color:var(--line);font-family:var(--body);}
.nav-overlay-links a:last-child::after{content:'';}
.nav-overlay-links a:hover,.nav-overlay-links a[aria-current="page"]{color:var(--peach-deep);}
.nav-overlay-bottom{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding-top:32px;border-top:1px solid var(--line);width:100%;}
.nav-overlay-social{display:flex;gap:12px;margin-right:8px;}
.nav-overlay-social a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:background .25s,border-color .25s;}
.nav-overlay-social a:hover{background:var(--ink);border-color:var(--ink);}
.nav-overlay-social svg{width:15px;height:15px;color:var(--ink);transition:color .25s;}
.nav-overlay-social a:hover svg{color:var(--white);}
@media (max-width:860px){
  .nav-toggle-label{display:none;}
  .nav-overlay-inner{gap:32px;}
  .nav-overlay-links{gap:0 18px;}
  .nav-overlay-links a{font-size:26px;}
  .nav-overlay-links a::after{right:-11px;}
  .nav-overlay-bottom{flex-direction:column;gap:16px;}
  .nav-overlay{overflow-y:auto;padding:100px 0 40px;}
}


/* ---------- section rhythm ---------- */
.section{padding:100px 0;}
.section-tight{padding:64px 0;}
@media (max-width:720px){.section{padding:60px 0;}.section-tight{padding:44px 0;}}
.section-head{max-width:600px;margin-bottom:48px;}
.section-head h2{font-size:clamp(28px,3.6vw,42px);line-height:1.14;margin-top:14px;}
.center{text-align:center;margin-left:auto;margin-right:auto;}
.center-block{text-align:center;}

/* ---------- parallax figure wrapper — used by hero, split, feature images ---------- */
.parallax-frame{position:relative;overflow:hidden;}
.parallax-img{position:absolute;/*inset:-30% 0;*/width:100%;height:160%;object-fit:cover;will-change:transform;}

/* ---------- home hero — split, matches the real site ---------- */
.home-hero{display:grid;grid-template-columns:1.15fr .85fr;min-height:82vh;position:relative;}
.home-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:64px 6% 64px var(--edge);}
.home-hero-copy h1{font-size:clamp(42px,5.2vw,68px);font-weight:400;text-transform:uppercase;line-height:1.04;}
.home-hero-copy p{margin-top:22px;color:var(--ink-soft);font-size:17px;font-weight:300;max-width:480px;}
.home-hero-copy p strong{color:var(--ink);font-weight:500;}
.home-hero-copy .btn{margin-top:32px;align-self:flex-start;}
.home-hero-media{position:relative;overflow:hidden;}
/*.home-hero-media img{width:100%;height:100%;object-fit:cover;}*/
@media (max-width:920px){
  .home-hero{grid-template-columns:1fr;min-height:0;}
  .home-hero-copy{padding:56px 28px 40px;/*order:1;*/}
  .home-hero-media{order:0;min-height:340px;}
}

/* ---------- full-width photo band with wordmark / caption ---------- */
.hero-mark{position:relative;height:78vh;min-height:78vh;overflow:hidden;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-mark::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,12,8,.5) 0%,rgba(20,12,8,0) 45%);}
.hero-mark-overlay{position:absolute;left:0;right:0;bottom:40px;padding:0 5% 0 var(--edge);z-index:1;}
.wordmark{font-family:var(--body);font-weight:700;font-size:clamp(46px,9vw,120px);color:#fff;line-height:.9;letter-spacing:0;text-transform:uppercase;}
.hero-mark-labels{margin-top:18px;display:flex;gap:36px;flex-wrap:wrap;}
.hero-mark-labels span{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.hero-mark-dark{height:60vh;min-height:60vh;}
.hero-mark-overlay-left{bottom:0;top:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:420px;}
.wordmark-sm{font-family:var(--display);font-weight:400;font-size:clamp(30px,4.2vw,48px);color:#fff;margin-top:10px;margin-bottom:26px;}
@media (max-width:720px){.hero-mark-labels{gap:18px;}}

/* ---------- centered statement block ---------- */
.statement{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.6vw,32px);line-height:1.4;max-width:660px;margin:0 auto;color:var(--ink);}
.center-actions{margin-top:32px;display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;}

/* ---------- solutions strip (horizontal, one photo per treatment) ---------- */
.solutions-grid{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none;-ms-overflow-style:none;}
.solutions-grid::-webkit-scrollbar{display:none;}
.solution-col{display:block;flex:none;width:300px;scroll-snap-align:start;}
.solution-imgs img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.solution-label{display:block;margin-top:14px;font-size:17px;color:var(--ink);}
.carousel-controls{margin-top:32px;display:flex;gap:14px;}
.carousel-controls.center{justify-content:center;}
@media (max-width:600px){.solution-col{width:220px;}}

/* ---------- laser / shop feature band ---------- */
.feature-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center;position:relative;}
/* cream-swipe decoration removed per feedback */
.feature-grid.reverse{grid-template-columns:1.2fr .8fr;}
.feature-grid.reverse .feature-media{order:2;}
.feature-media{aspect-ratio:5/4;}
.feature-copy h2{margin-top:12px;font-size:clamp(28px,3.2vw,38px);}
.feature-tagline{margin-top:12px;font-family:var(--display);font-size:18px;font-weight:400;color:var(--peach-deep);}
.feature-copy p{margin-top:14px;color:var(--ink-soft);font-size:17px;font-weight:300;}
.feature-copy .plain-list{margin-top:18px;}
.feature-copy .btn{margin-top:26px;}
@media (max-width:860px){.feature-grid,.feature-grid.reverse{grid-template-columns:1fr;gap:28px;}.feature-grid.reverse .feature-media{order:0;}}

/* ---------- numbered concern list ---------- */
.concern-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center;}
.concern-media{aspect-ratio:5/6;}
.concern-copy{text-align:center;}
.concern-list{display:flex;flex-direction:column;gap:14px;align-items:center;}
.concern-list li{font-family:var(--display);font-weight:400;font-size:clamp(18px,2vw,24px);color:var(--ink);}
.concern-list sup{font-size:12px;color:var(--peach-deep);margin-right:4px;}
@media (max-width:860px){.concern-grid{grid-template-columns:1fr;gap:36px;}}

/* ---------- collage ---------- */
.collage-wrap{position:relative;min-height:420px;display:flex;align-items:center;justify-content:center;}
.collage-frame{position:absolute;overflow:hidden;box-shadow:0 20px 40px -20px rgba(43,32,24,.18);}
.collage-frame.c1{width:180px;height:150px;top:0;left:4%;}
.collage-frame.c2{width:140px;height:190px;top:36%;right:6%;}
.collage-frame.c3{width:170px;height:140px;bottom:0;left:16%;}
.collage-copy{max-width:480px;text-align:center;position:relative;z-index:1;}
.collage-copy .statement{margin-top:14px;}
.collage-copy .btn{margin-top:28px;}
@media (max-width:800px){.collage-wrap{min-height:0;flex-direction:column;gap:20px;padding-top:40px;}.collage-frame{position:relative;margin:0 auto;}}

/* ---------- split hero (treatment / storia pages) ---------- */
.split-hero{display:grid;grid-template-columns:1.15fr .85fr;min-height:78vh;position:relative;}
.split-hero-media{position:relative;overflow:hidden;}
.split-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:64px 7% 64px var(--edge);background:var(--cream);}
.split-hero-copy h1{margin-top:14px;font-size:clamp(38px,5vw,58px);}
.split-hero-copy p{margin-top:20px;color:var(--ink-soft);font-size:17px;font-weight:300;max-width:440px;}
@media (max-width:860px){.split-hero{grid-template-columns:1fr;min-height:0;}.split-hero-media{min-height:340px;}.split-hero-copy{padding:48px 32px;}}

/* ---------- full-bleed split band (photo + text), reused across pages ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.split.reverse{direction:rtl;}
.split.reverse > *{direction:ltr;}
.split-media{position:relative;overflow:hidden;aspect-ratio:4/3;}
.split-copy{padding:0 5% 0 var(--edge);}
.split-copy h2{margin-top:14px;font-size:clamp(26px,3.2vw,36px);}
.split-copy p{margin-top:16px;color:var(--ink-soft);font-size:17px;font-weight:300;max-width:460px;}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:28px;}.split.reverse{direction:ltr;}.split-copy{padding:0 32px;}.split-media{min-height:300px;}}

/* ---------- presentation ---------- */
.present-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;}
.present-copy p{margin-top:16px;color:var(--ink-soft);font-size:17px;font-weight:300;}
.present-copy h3{margin-top:28px;font-size:19px;font-weight:400;}
.present-copy h3:first-child{margin-top:0;}
.present-copy .plain-list{margin-top:18px;}

/* ---------- plain typographic comparison (microblading vs tattoo) ---------- */
.compare-plain{display:grid;grid-template-columns:1fr auto 1fr;gap:44px;align-items:start;}
.compare-plain h3{font-size:19px;font-weight:400;margin-bottom:16px;}
.v-divider{width:1px;background:var(--line);align-self:stretch;}
@media (max-width:760px){.compare-plain{grid-template-columns:1fr;}.v-divider{display:none;}}
.present-media{aspect-ratio:6/5;position:sticky;top:110px;align-self:start;overflow:hidden;}
.present-media img{width:100%;height:100%;object-fit:cover;}
.plain-list{display:flex;flex-direction:column;gap:10px;}
.plain-list li{color:var(--ink-soft);font-size:17px;font-weight:300;padding-left:16px;position:relative;}
.plain-list li::before{content:'—';position:absolute;left:0;color:var(--peach-deep);}
.plain-list-num{counter-reset:pl-step;}
.plain-list-num li{counter-increment:pl-step;padding-left:24px;}
.plain-list-num li::before{content:counter(pl-step) '.';font-weight:600;}
.prose-col h3{margin-top:30px;font-size:19px;font-weight:500;}
.prose-col h3:first-child{margin-top:0;}
.prose-col .plain-list{margin-top:14px;margin-bottom:6px;}
@media (max-width:860px){.present-grid{grid-template-columns:1fr;gap:32px;}.present-media{position:static;}}

/* ---------- accordion ---------- */
.accordion-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;}
.accordion-head h2{font-size:clamp(26px,3vw,36px);line-height:1.2;}
.accordion{display:flex;flex-direction:column;}
.acc-item{border-top:1px solid var(--line);}
.acc-item:last-child{border-bottom:1px solid var(--line);}
.acc-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 2px;text-align:left;font-size:17px;font-weight:400;color:var(--ink);font-family:var(--body);}
.acc-q .plus{flex:none;width:18px;height:18px;position:relative;}
.acc-q .plus::before,.acc-q .plus::after{content:'';position:absolute;background:var(--ink);}
.acc-q .plus::before{width:14px;height:1px;top:8.5px;left:2px;}
.acc-q .plus::after{width:1px;height:14px;top:2px;left:8.5px;transition:transform .3s var(--ease);}
.acc-item.open .acc-q .plus::after{transform:rotate(90deg);}
.acc-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.acc-a p{padding:0 2px 22px;color:var(--ink-soft);font-size:17px;font-weight:300;max-width:520px;}
@media (max-width:860px){.accordion-grid{grid-template-columns:1fr;gap:24px;}}

/* ---------- results slider ---------- */
.results-intro{display:flex;flex-direction:column;gap:14px;margin-bottom:32px;max-width:640px;}
.results-intro p{color:var(--ink-soft);font-size:17px;font-weight:300;}
/* ---------- result photo + Instagram reel, side by side ---------- */
.reel-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.reel-photo{aspect-ratio:4/5;overflow:hidden;}
.reel-card{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--ink);}
.reel-card img{width:100%;height:100%;object-fit:cover;opacity:.82;transition:transform .6s var(--ease),opacity .3s;}
.reel-card:hover img{transform:scale(1.04);opacity:.7;}
.reel-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;transition:transform .3s var(--ease);}
.reel-card:hover .reel-play{transform:translate(-50%,-50%) scale(1.08);}
.reel-label{position:absolute;left:0;right:0;bottom:0;padding:18px;background:linear-gradient(0deg,rgba(20,12,8,.75),rgba(20,12,8,0));color:#fff;font-size:12.5px;font-weight:500;letter-spacing:.04em;display:flex;align-items:center;gap:8px;}
.reel-label svg{width:13px;height:13px;}
@media (max-width:700px){.reel-grid{grid-template-columns:1fr;}}

/* ---------- precautions ---------- */
.precautions-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;}
.precautions-head h2{font-size:clamp(26px,3vw,36px);line-height:1.2;}
.precautions-lists{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;}
@media (max-width:860px){.precautions-grid{grid-template-columns:1fr;gap:24px;}.precautions-lists{grid-template-columns:1fr;}}

/* ---------- reviews — fixed grid, title left / button right ---------- */
.section-head-row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:44px;}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.review-card{padding:30px 28px;background:var(--white);border:1px solid var(--line);}
.review-stars{display:flex;gap:3px;color:var(--peach-deep);}
.review-stars svg{width:14px;height:14px;}
.review-card p{margin-top:16px;color:var(--ink-soft);font-size:17px;font-weight:300;line-height:1.65;}
.review-name{display:block;margin-top:18px;font-size:13.5px;font-weight:600;color:var(--ink);}
.review-source{font-weight:300;color:var(--ink-soft);}
@media (max-width:900px){.review-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.review-grid{grid-template-columns:1fr;}}

/* ---------- certification row ---------- */
.cert-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:36px;}
.cert-row img{height:72px;width:150px;object-fit:contain;object-position:center;}
/* the source certificate images have very different amounts of internal
   padding around the actual logo mark, so equalize perceived size with
   per-logo scale corrections (PhiBrows/PhiLiner render tiny within their
   near-square frame, Speedy Lips fills its wide frame almost completely) */
.cert-row img:nth-child(1){transform:scale(1.32);}
.cert-row img:nth-child(2){transform:scale(1.34);}
.cert-row img:nth-child(3){transform:scale(0.62);}
.cert-row img:nth-child(4){transform:scale(0.85);}
@media (max-width:700px){.cert-row{gap:22px;}.cert-row img{height:52px;width:110px;}}

/* ---------- prose ---------- */
.prose-col{max-width:640px;}
.prose-col.center{margin:0 auto;text-align:center;}
.prose-col p{color:var(--ink-soft);font-weight:300;}

/* ---------- visit / map section (redesigned — no longer a dark leftover band) ---------- */
.visit-section{background:var(--cream-deep);}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:88px 32px;}
.visit-copy .section-head{margin-bottom:28px;}
.visit-info{display:flex;flex-direction:column;gap:14px;margin-bottom:30px;}
.visit-info li{display:flex;gap:12px;align-items:flex-start;font-size:17px;color:var(--ink-soft);font-weight:300;}
.visit-info svg{flex:none;margin-top:3px;width:16px;height:16px;color:var(--peach-deep);}
.visit-map{display:flex;flex-direction:column;gap:14px;}
.visit-map-frame{border:1px solid rgba(43,32,24,.18);background:var(--white);padding:8px;box-shadow:0 24px 48px -32px rgba(43,32,24,.35);}
.visit-map-frame iframe{width:100%;height:340px;border:0;display:block;filter:grayscale(.45) sepia(.12) saturate(.85) contrast(1.05);}
.visit-map .text-link{align-self:flex-start;}
@media (max-width:900px){.visit-grid{grid-template-columns:1fr;gap:36px;padding:64px 28px;}.visit-map-frame iframe{height:260px;}}

/* ---------- footer (light) ---------- */
.site-footer{background:var(--cream-deep);color:var(--ink-soft);padding:64px 0 0;border-top:1px solid var(--line);}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;padding-bottom:44px;}
.footer-col h5{color:var(--ink);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;margin-bottom:16px;}
.footer-col ul{display:flex;flex-direction:column;gap:11px;}
.footer-col a{font-size:14px;color:var(--ink-soft);transition:color .2s;font-weight:400;}
.footer-col a:hover{color:var(--ink);}
.footer-social{margin-top:18px;display:flex;gap:12px;}
.footer-social a{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .25s,background .25s;}
.footer-social a:hover{background:var(--peach-deep);border-color:var(--peach-deep);}
.footer-social svg{width:14px;height:14px;color:var(--ink);transition:color .25s;}
.footer-social a:hover svg{color:var(--white);}
.footer-word{font-family:var(--body);font-weight:700;font-size:clamp(40px,9vw,110px);letter-spacing:.02em;color:var(--ink);line-height:1;padding-top:24px;border-top:1px solid var(--line);text-transform:uppercase;}
.footer-bottom{padding:20px 0 30px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11.5px;color:var(--ink-soft);}
.footer-bottom a{color:var(--ink-soft);}
.footer-bottom a:hover{color:var(--ink);}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(36px) scale(.965);filter:blur(5px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease);}
.reveal.in-view{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}

/* hero text — drifts and fades at a different rate than the photo behind it */
.hero-text-parallax{will-change:transform,opacity;}
/* ---------- whatsapp float ---------- */
.wa-float{position:fixed;right:24px;bottom:24px;z-index:60;width:50px;height:50px;border-radius:50%;background:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .3s;}
.wa-float:hover{background:var(--peach-deep);}
.wa-float svg{width:21px;height:21px;color:#fff;}

/* ---------- scroll-linked text reveal — words darken as you scroll past ---------- */
.scroll-text{max-width:100%;}
.scroll-text .stx-word{color:var(--line);transition:color .25s linear;}
.scroll-text .stx-word.lit{color:var(--ink);}

/* ---------- scroll rail — thin line + dot that tracks scroll progress ---------- */
/* scroll-rail removed per feedback */

/* ---------- gradient wash — soft light blobs that fade in as sections scroll into view ---------- */
.orb-host{position:relative;overflow-x:clip;overflow-y:visible;}
.gradient-wash{position:absolute;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.4s ease;}
.gradient-wash.in-view{opacity:1;}
.gradient-wash-orb{width:100%;height:100%;border-radius:50%;filter:blur(70px);animation:orb-float 22s ease-in-out infinite;}
.gradient-wash.peach .gradient-wash-orb{background:radial-gradient(circle, var(--peach) 0%, transparent 72%);opacity:.55;}
.gradient-wash.sand .gradient-wash-orb{background:radial-gradient(circle, var(--orb-sand) 0%, transparent 72%);opacity:.85;}
.gradient-wash.tr{top:-20%;right:-10%;width:560px;height:560px;}
.gradient-wash.bl{bottom:-20%;left:-10%;width:520px;height:520px;}
.gradient-wash.tl{top:-18%;left:-8%;width:460px;height:460px;}
.gradient-wash.br{bottom:-18%;right:-8%;width:480px;height:480px;}
.gradient-wash.mid{top:-12%;left:50%;width:500px;height:500px;transform:translateX(-50%);}
.gradient-wash-orb.delay2{animation-delay:-7s;animation-duration:26s;}
.gradient-wash-orb.delay3{animation-delay:-14s;animation-duration:19s;}
@keyframes orb-float{
  0%{transform:translate(0,0) scale(1);}
  25%{transform:translate(6%,-8%) scale(1.1);}
  50%{transform:translate(-4%,6%) scale(0.94);}
  75%{transform:translate(-7%,-5%) scale(1.05);}
  100%{transform:translate(0,0) scale(1);}
}
@media (max-width:700px){.gradient-wash{width:220px !important;height:220px !important;}.gradient-wash-orb{filter:blur(45px);}}
@media (prefers-reduced-motion: reduce){.gradient-wash{transition:none;opacity:.5;}.gradient-wash-orb{animation:none;}}

/* ---------- cursor glow — soft gradient light following the mouse (desktop only) ---------- */
.cursor-glow{
  position:fixed;top:0;left:0;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle, var(--peach) 0%, transparent 68%);
  filter:blur(55px);opacity:0;pointer-events:none;z-index:3;
  transform:translate3d(-50%,-50%,0);transition:opacity .4s ease;will-change:transform;
}
.cursor-glow.active{opacity:.4;}
@media (hover:none), (pointer:coarse){.cursor-glow{display:none;}}
@media (prefers-reduced-motion: reduce){.cursor-glow{display:none;}}



/* ---------- instagram band — spinning "follow us" badge + feed mockup ---------- */
.instagram-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center;}
.instagram-copy{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.instagram-copy h2{margin-top:20px;}
.instagram-copy p{margin-top:14px;color:var(--ink-soft);font-size:17px;font-weight:300;max-width:400px;}
.instagram-copy .text-link{margin-top:22px;}
.ig-spin{position:relative;display:flex;align-items:center;justify-content:center;width:150px;height:150px;flex:none;}
.ig-spin-text{position:absolute;inset:0;width:100%;height:100%;animation:ig-spin 16s linear infinite;}
.ig-spin-text text{font-size:12.5px;letter-spacing:.05em;fill:var(--ink);font-family:var(--body);text-transform:uppercase;}
.ig-spin-center{position:absolute;width:44px;height:44px;border-radius:50%;background:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .25s;}
.ig-spin-center svg{width:18px;height:18px;color:var(--white);}
.ig-spin:hover .ig-spin-center{background:var(--peach-deep);}
@keyframes ig-spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){.ig-spin-text{animation:none;}}

.instagram-mock{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 30px 60px -35px rgba(43,32,24,.28);max-width:420px;margin-left:auto;}
.ig-mock-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:14px;}
.ig-mock-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg, var(--peach), var(--peach-deep));flex:none;}
.ig-mock-head div{display:flex;flex-direction:column;}
.ig-mock-name{font-size:13.5px;font-weight:600;color:var(--ink);}
.ig-mock-sub{font-size:11.5px;color:var(--ink-soft);}
.ig-mock-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.ig-thumb{aspect-ratio:1;overflow:hidden;border-radius:3px;background:var(--cream-deep);}
.ig-thumb img{width:100%;height:100%;object-fit:cover;}
@media (max-width:860px){.instagram-grid{grid-template-columns:1fr;gap:36px;}.instagram-mock{margin:0 auto;}}

/* ---------- "le mie specializzazioni" — bigger title + link, like the reference ---------- */
.specializ-head{margin-bottom:52px;}
.specializ-title{font-size:clamp(40px,5.5vw,68px);margin-top:14px;}
.specializ-row{display:grid;grid-template-columns:.62fr 1.38fr;gap:64px;align-items:start;}
.specializ-copy{max-width:420px;padding-top:8px;}
.specializ-copy p{color:var(--ink-soft);font-size:17px;font-weight:300;}
.specializ-copy .text-link{margin-top:26px;display:inline-flex;}
.specializ-media{aspect-ratio:16/11;overflow:hidden;position:relative;}
@media (max-width:860px){
  .specializ-row{grid-template-columns:1fr;gap:28px;}
  .specializ-copy{max-width:none;}
  .specializ-media{aspect-ratio:4/3;}
}
.specializ-band .split-copy .text-link{margin-top:26px;}

/* ---------- aftercare — two columns instead of one long block of text ---------- */
.aftercare-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;align-items:start;}
.aftercare-note{max-width:760px;margin-top:36px;color:var(--ink-soft);font-size:17px;font-weight:300;}
@media (max-width:860px){.aftercare-grid{grid-template-columns:1fr;gap:0;}}
