/* fuentes guardadas en el sitio (Google Fonts, solo latin y latin-ext) */
/* latin-ext */ @font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300; font-display: swap; src: url(/fonts/cormorant-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 300; font-display: swap; src: url(/fonts/cormorant-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url(/fonts/cormorant-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url(/fonts/cormorant-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300; font-display: swap; src: url(/fonts/cormorant-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300; font-display: swap; src: url(/fonts/cormorant-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/cormorant-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/cormorant-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Manrope'; font-style: normal; font-weight: 300; font-display: swap; src: url(/fonts/manrope-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Manrope'; font-style: normal; font-weight: 300; font-display: swap; src: url(/fonts/manrope-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/manrope-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/manrope-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext */ @font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/manrope-normal-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* latin */ @font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/manrope-normal-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root{
  --cream:#f8f0ea; --nude:#ecd6c8; --rose:#c76f78; --berry:#7a2e3f; --ink:#1d1416; --gold:#c9a36a;
  --accent:#e7a3a0;
  --serif:"Cormorant Garamond",Georgia,serif; --sans:"Manrope",system-ui,sans-serif;
  --pad:clamp(16px,5vw,80px);
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .8s}
body.loading{overflow:hidden}
/* grano de polvo sobre toda la página */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:95;opacity:.09;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit}
em{font-style:italic;font-weight:300}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:.95}
h2{font-size:clamp(2.8rem,7vw,6rem);margin-bottom:.4em}
h2 em,h1 em{color:var(--rose)}
:focus-visible{outline:2px solid var(--berry);outline-offset:4px}
.sprite{position:absolute;overflow:hidden}

/* trazos de brocha */
.stroke{fill:none;stroke:var(--accent);stroke-linecap:round;filter:url(#rough);transition:stroke .8s}
.stroke.shine{stroke:#fff;stroke-opacity:.45;filter:none}

/* ---------- loader ---------- */
.loader{display:none}
.js .loader{position:fixed;inset:0;z-index:100;background:var(--cream);display:grid;place-items:center;clip-path:circle(150% at 50% 50%)}
.loader svg{position:absolute;inset:0;width:100%;height:100%}
.loader-word{position:relative;font-family:var(--serif);font-size:clamp(2rem,6vw,4.5rem);color:var(--ink);opacity:0;text-align:center;padding:0 16px}
.loader-word em{color:var(--berry)}
.loader-skip{position:absolute;bottom:28px;left:0;right:0;text-align:center;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);opacity:.45}

/* ---------- polvo + borla (cursor) ---------- */
#powder{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:90}
.puff{display:none}
@media (hover:hover) and (pointer:fine){
  body,a,button{cursor:none}
  .puff{display:block;position:fixed;left:0;top:0;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;pointer-events:none;z-index:99;
    background:radial-gradient(circle at 35% 30%,#fff 0 18%,#fbe3df 40%,var(--accent) 100%);
    box-shadow:0 0 0 3px rgba(255,255,255,.6),0 6px 18px rgba(122,46,63,.25);transition:width .3s,height .3s,margin .3s,background .8s}
  .puff::after{content:"";position:absolute;left:50%;top:-6px;width:14px;height:8px;margin-left:-7px;border-radius:8px 8px 2px 2px;background:var(--gold)}
  .puff.big{width:64px;height:64px;margin:-32px 0 0 -32px;mix-blend-mode:multiply}
}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad);transition:background .4s,padding .4s}
.nav.scrolled{background:rgba(248,240,234,.75);backdrop-filter:blur(14px);padding-block:10px}
.logo{font-family:var(--serif);font-size:2rem;text-decoration:none;letter-spacing:-.02em}
.logo em{color:var(--rose)}
.nav-links{display:flex;gap:2.2rem}
.nav-links a{text-decoration:none;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-4px;height:6px;width:100%;background:var(--accent);border-radius:6px;transform:scaleX(0);transform-origin:left;transition:transform .4s;z-index:-1}
.nav-links a:hover::after{transform:scaleX(1)}
@media (max-width:760px){.nav-links{display:none}}
.nav-end{display:flex;align-items:center;gap:1rem}
.lang{text-decoration:none;font-size:.8rem;letter-spacing:.12em;padding:.45rem .7rem;border:1px solid rgba(29,20,22,.25);border-radius:999px}
.lang:hover{background:var(--accent)}

/* ---------- faq ---------- */
.faq{padding:clamp(60px,10vw,140px) var(--pad);max-width:1000px}
.faq details{border-bottom:1px solid rgba(29,20,22,.15);padding:1.3rem 0}
.faq summary{font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2rem);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--rose);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:.8rem;max-width:65ch}

/* ---------- botones ---------- */
.btn{display:inline-block;padding:1rem 2rem;border-radius:999px;background:var(--ink);color:var(--cream);text-decoration:none;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate;transition:color .4s}
.btn::before{content:"";position:absolute;inset:0;background:var(--accent);border-radius:40% 60% 55% 45%/60% 40% 60% 40%;transform:translateX(-105%) scaleY(1.4);transition:transform .55s cubic-bezier(.7,0,.2,1);z-index:-1}
.btn:hover{color:var(--ink)}
.btn:hover::before{transform:translateX(0) scaleY(1.4)}
.btn-sm{padding:.7rem 1.4rem;font-size:.75rem}
.btn-light{background:var(--cream);color:var(--ink)}
.link{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:4vw;padding:120px var(--pad) 80px;position:relative;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;z-index:-1;transition:background .8s}
.b1{width:45vw;height:45vw;background:var(--accent);top:-10vw;right:-8vw}
.b2{width:30vw;height:30vw;background:#f3d9b0;bottom:-8vw;left:10vw}
.b3{width:22vw;height:22vw;background:#e9c6e0;top:30%;left:-8vw}
.eyebrow{font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1.5rem;color:var(--berry)}
.hero-title{font-size:clamp(4rem,12vw,11rem);letter-spacing:-.03em;margin-bottom:2rem}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.08em}
.hero-title em.line{padding-left:.6em}
.ch{display:inline-block;will-change:transform}
.hero-sub{max-width:34ch;font-size:1.1rem;margin-bottom:2.5rem}
.hero-cta{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}
.hero-cta.center{justify-content:center}
.hero-frame{position:relative;aspect-ratio:3/4;border-radius:999px 999px 30px 30px;
  background:radial-gradient(circle at 30% 25%,#f6e0d4,transparent 55%),radial-gradient(circle at 75% 85%,var(--accent),transparent 60%),linear-gradient(160deg,#efd6c8,#c98f86)}
.hero-frame img,.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.badge{position:absolute;background:var(--cream);padding:.7rem 1.2rem;border-radius:999px;font-size:.85rem;box-shadow:0 10px 30px rgba(122,46,63,.15);white-space:nowrap}
.badge b{font-family:var(--serif);font-size:1.5rem;font-weight:500;margin-right:.2em}
.badge-a{left:-12%;top:18%}
.badge-b{right:-6%;bottom:14%}
.scroll-hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;opacity:.6}
.scroll-hint::after{content:"";display:block;width:1px;height:40px;margin:8px auto 0;background:var(--ink);animation:drip 2s infinite}
@keyframes drip{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}}
@media (max-width:860px){
  .hero{grid-template-columns:1fr;padding-top:110px}
  .hero-frame{max-width:340px;width:80%;justify-self:center}
  .badge-a{left:-10%}
}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;background:var(--ink);color:var(--cream);padding:1.2rem 0;transform:rotate(-2deg) scale(1.05)}
.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee span{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,4vw,3rem);white-space:nowrap}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- títulos con barrido de labial ---------- */
.swipe{position:relative;display:inline-block}
.swipe-bar{position:absolute;inset:.05em -.15em;background:var(--accent);border-radius:45% 55% 50% 40%/60% 45% 55% 40%;transform:scaleX(0);transform-origin:left;pointer-events:none}

/* ---------- sobre ---------- */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;padding:clamp(80px,14vw,180px) var(--pad);align-items:center}
.about-num{font-family:var(--serif);font-size:clamp(9rem,26vw,22rem);line-height:.8;color:var(--rose)}
.about-photo{aspect-ratio:2/3;border-radius:999px 999px 30px 30px;overflow:hidden;max-width:400px;box-shadow:0 30px 60px rgba(122,46,63,.18)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-side .about-num{font-size:clamp(6rem,13vw,11rem);margin:-.45em 0 0 1.5rem;position:relative}
.about-num sup{font-size:.4em;vertical-align:top}
.about-num small{display:block;font-family:var(--sans);font-size:.9rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);margin-top:1.5rem}
.about-copy p{font-size:1.1rem;max-width:52ch;margin-bottom:1.2rem}
@media (max-width:760px){.about{grid-template-columns:1fr}}

/* ---------- divisores ---------- */
.divider{padding:0;margin:-4vw 0;pointer-events:none;overflow:hidden}
.divider svg{display:block;width:100%;height:auto;overflow:visible}

/* ---------- servicios ---------- */
.services{padding:clamp(60px,10vw,140px) var(--pad)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
@media (max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.cards{grid-template-columns:1fr}}
.card{position:relative;padding:2rem 1.6rem 2.2rem;border-radius:28px;background:rgba(255,255,255,.55);border:1px solid rgba(29,20,22,.08);overflow:hidden;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.card:hover{transform:translateY(-10px) rotate(-1deg);box-shadow:0 30px 60px -20px rgba(122,46,63,.3)}
.smudge{display:block;width:90px;height:60px;background:var(--c);margin-bottom:2.5rem;transition:transform .6s cubic-bezier(.2,.8,.2,1);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 60'%3E%3Cpath d='M6 34C4 18 22 8 44 7c22-1 46 2 50 18 4 15-12 27-36 28C30 54 8 50 6 34Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 60'%3E%3Cpath d='M6 34C4 18 22 8 44 7c22-1 46 2 50 18 4 15-12 27-36 28C30 54 8 50 6 34Z'/%3E%3C/svg%3E") center/contain no-repeat}
.card:hover .smudge{transform:scale(5) translate(10%,10%);opacity:.35}
.card-media{position:relative;aspect-ratio:3/2;margin:-.6rem -.6rem 1.6rem;border-radius:20px;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,transparent)}
.card-media .smudge{margin:0}
.card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.card:hover .card-media img{transform:scale(1.06)}
.num{position:absolute;z-index:1;top:1.6rem;right:1.6rem;padding:.1rem .55rem;border-radius:99px;background:rgba(255,255,255,.7);font-family:var(--serif);font-size:1.2rem;opacity:.5}
.card h3{font-size:2.4rem;margin-bottom:.8rem;position:relative}
.card p{position:relative;font-size:.95rem}

/* ---------- paleta ---------- */
.palette{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;padding:clamp(60px,10vw,140px) var(--pad)}
.palette-copy p{font-size:1.1rem;max-width:40ch}
.tone-name{font-family:var(--serif);font-style:italic;font-size:2.4rem !important;color:var(--rose);margin-top:1rem}
.compact{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,22px);padding:clamp(20px,3vw,36px);border-radius:32px;
  background:linear-gradient(145deg,#2a1d20,#120c0d);box-shadow:0 0 0 2px var(--gold),0 40px 80px -30px rgba(29,20,22,.6)}
.pan{aspect-ratio:1;border-radius:50%;border:0;position:relative;
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.75),transparent 28%),radial-gradient(circle at 60% 70%,rgba(0,0,0,.15),transparent 60%),var(--c);
  box-shadow:inset 0 0 0 6px rgba(201,163,106,.6),inset 0 -8px 18px rgba(0,0,0,.25);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.pan:hover{transform:scale(1.08)}
.pan.active{box-shadow:inset 0 0 0 6px var(--gold),0 0 0 4px var(--cream)}
@media (max-width:760px){.palette{grid-template-columns:1fr}}

/* ---------- galería ---------- */
.gallery{overflow:hidden}
.g-track{display:flex;align-items:center;gap:3vw;padding:clamp(60px,8vw,100px) var(--pad);width:max-content;height:100vh}
.g-intro{width:min(380px,80vw);flex-shrink:0}
.shot{position:relative;flex-shrink:0;height:62vh}
.shot,.tile.ph{background:radial-gradient(circle at 30% 25%,#fff8,transparent 50%),linear-gradient(160deg,var(--g1),var(--g2))}
.stretched{position:absolute;inset:0;z-index:2;border-radius:inherit}
/* revelado tipo esponja: main.js anima --m de 0% a 320% */
.shot,.tile{--m:320%;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M48 6c18-2 38 8 44 28 6 18 2 40-16 52-17 11-42 10-58-4C4 70 2 46 12 28 20 14 32 7 48 6Z'/%3E%3C/svg%3E") center/var(--m) no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M48 6c18-2 38 8 44 28 6 18 2 40-16 52-17 11-42 10-58-4C4 70 2 46 12 28 20 14 32 7 48 6Z'/%3E%3C/svg%3E") center/var(--m) no-repeat}
.shot.arch{aspect-ratio:3/4;border-radius:999px 999px 24px 24px}
.shot.tall{aspect-ratio:2/3;border-radius:24px;height:70vh}
.shot.round{aspect-ratio:1;border-radius:50%;height:48vh}
.shot figcaption{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);font-family:var(--serif);font-style:italic;font-size:1.3rem;white-space:nowrap;background:rgba(248,240,234,.85);padding:.2rem 1.1rem;border-radius:999px}
.shot:nth-of-type(odd){align-self:flex-start;margin-top:4vh}
@media (max-width:899px){
  .g-track{flex-wrap:wrap;width:auto;height:auto;justify-content:center;gap:2rem 4vw}
  .g-intro{width:100%}
  .shot,.shot.tall,.shot.round{height:auto;width:min(42vw,320px)}
  .shot:nth-of-type(odd){margin-top:0}
}

/* ---------- proceso ---------- */
.process{padding:clamp(60px,10vw,140px) var(--pad)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:3vw;margin-top:2rem;counter-reset:s}
.steps li{border-top:1px solid rgba(29,20,22,.2);padding-top:1.5rem}
.steps span{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--rose)}
.steps h3{font-size:2.6rem;margin:.4rem 0 .8rem}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* ---------- cursos ---------- */
.courses{background:var(--ink);color:var(--cream);display:grid;grid-template-columns:1.1fr .9fr;gap:6vw;padding:clamp(80px,12vw,160px) var(--pad);border-radius:48px 48px 0 0}
.courses .eyebrow{color:var(--accent)}
.courses h2 em{color:var(--accent)}
.courses p{max-width:46ch;font-size:1.1rem;margin-bottom:2.5rem}
.courses .swipe-bar{mix-blend-mode:normal}
.modules{list-style:none;align-self:center}
.modules li{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.4rem);padding:1rem 0;border-bottom:1px solid rgba(248,240,234,.15);transition:padding .4s,color .4s}
.modules li:hover{padding-left:1rem;color:var(--accent)}
@media (max-width:760px){.courses{grid-template-columns:1fr}}

/* ---------- cta ---------- */
.cta{text-align:center;padding:clamp(100px,16vw,220px) var(--pad);position:relative;overflow:hidden}
.cta-title{font-size:clamp(3.5rem,11vw,10rem);margin-bottom:.3em}
.cta p{font-size:1.1rem;margin-bottom:2.5rem}
.footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:30px var(--pad);border-top:1px solid rgba(29,20,22,.1);font-size:.85rem}

/* ---------- páginas de galería ---------- */
body.sub .nav{background:rgba(248,240,234,.75);backdrop-filter:blur(14px)}
.gpage{position:relative;overflow:hidden;padding:130px var(--pad) 0;min-height:100vh}
.crumbs{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:1.5rem}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--rose)}
.g-title{font-size:clamp(3rem,9vw,8rem);margin-bottom:1.5rem;letter-spacing:-.02em}
.g-lead{max-width:60ch;font-size:1.1rem;margin-bottom:2rem}
.pills{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:3.5rem}
.pill{--c:var(--accent);text-decoration:none;padding:.6rem 1.3rem;border-radius:999px;border:1px solid rgba(29,20,22,.2);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate}
.pill::before{content:"";position:absolute;inset:0;background:var(--c);border-radius:45% 55% 50% 40%/60% 45% 55% 40%;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.7,0,.2,1);z-index:-1}
.pill:hover::before,.pill.on::before{transform:scaleX(1.15)}
.pill.on{border-color:transparent;font-weight:600}
.covers{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.2rem;margin-bottom:6rem}
.cover{position:relative;isolation:isolate;aspect-ratio:3/4;border-radius:999px 999px 20px 20px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:1.4rem;text-decoration:none;
  background:radial-gradient(circle at 30% 25%,#fff9,transparent 50%),linear-gradient(160deg,#f6e6dc,var(--c));transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.cover:hover{transform:translateY(-10px) rotate(-1deg);box-shadow:0 30px 60px -20px rgba(122,46,63,.35)}
.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.cover span{font-family:var(--serif);font-style:italic;font-size:1.6rem;background:rgba(248,240,234,.88);padding:.1rem 1.1rem;border-radius:999px}
.cover small{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.5rem;background:rgba(248,240,234,.7);padding:.1rem .6rem;border-radius:999px}
.dest-covers{margin-bottom:.8rem}
.credit{font-size:.72rem;opacity:.7;margin-bottom:5rem}
.credit a{color:inherit}
.masonry{columns:3 260px;column-gap:1.2rem}
.tile{break-inside:avoid;margin:0 0 1.2rem;position:relative;border-radius:22px;overflow:hidden}
.tile img{display:block;width:100%;height:auto;cursor:zoom-in}
.tile figcaption{position:absolute;left:12px;bottom:12px;font-family:var(--serif);font-style:italic;font-size:1.1rem;background:rgba(248,240,234,.88);padding:.1rem .9rem;border-radius:999px}
.gpage .cta{padding-inline:0}
.lb{border:0;padding:0;background:transparent;margin:auto;max-width:94vw;max-height:94vh;overflow:visible}
.lb::backdrop{background:rgba(29,20,22,.88);backdrop-filter:blur(6px)}
.lb img{display:block;max-width:94vw;max-height:90vh;border-radius:18px}
.lb-x{position:fixed;top:16px;right:24px;font-size:2.6rem;line-height:1;background:none;border:0;color:var(--cream)}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;border:0;background:rgba(248,240,234,.18);color:var(--cream);font-size:2.4rem;line-height:1;cursor:pointer}
.lb-nav:hover{background:rgba(248,240,234,.32)}
.lb-prev{left:16px}.lb-next{right:16px}

/* ---------- páginas de servicio ---------- */
.gpage .process,.gpage .faq{padding-inline:0}
.svc .process{padding-top:0}
.svc .dot{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--c);margin-right:.6rem;vertical-align:-1px}
.svc-lead{font-size:clamp(1.1rem,1.6vw,1.3rem);max-width:62ch}
.svc > .hero-cta{margin-bottom:clamp(4rem,8vw,7rem)}
.svc-block{margin-bottom:clamp(4rem,8vw,7rem)}
.incl{list-style:none;counter-reset:i;display:grid;grid-template-columns:repeat(2,1fr);gap:0 4vw;margin-top:1.5rem}
.incl li{counter-increment:i;position:relative;padding:1.3rem 0 1.3rem 3.6rem;border-top:1px solid rgba(29,20,22,.15);font-size:1.05rem}
.incl li::before{content:counter(i,decimal-leading-zero);position:absolute;left:0;top:.95rem;font-family:var(--serif);font-style:italic;font-size:1.7rem;color:var(--rose)}
.chips{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}
.chip{padding:.7rem 1.4rem;border-radius:999px;background:color-mix(in srgb,var(--c) 35%,transparent);font-size:.95rem}
.g-more{margin:1.5rem 0 2.5rem}
.card-more{display:inline-block;margin-top:1.4rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;position:static}
.card-more::after{content:"";position:absolute;inset:0;border-radius:28px}
@media (max-width:760px){.incl{grid-template-columns:1fr}}

/* ---------- transición entre páginas: se abre como un polvo compacto ---------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:none}
::view-transition-new(root){animation:compact-open .9s cubic-bezier(.7,0,.2,1)}
@keyframes compact-open{from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(75% at 50% 50%)}}


/* ---------- 404 ---------- */
.nf-code{font-family:var(--serif);font-size:clamp(6rem,22vw,16rem);line-height:.8;color:var(--accent)}
.nf-code em{color:var(--berry)}
.nf-en{font-size:clamp(1.8rem,4vw,3rem);margin:2rem 0 1rem}

/* ---------- guías ---------- */
.guide .svc-block p,.guide .incl li{max-width:68ch}
.guide .svc-block p{font-size:1.08rem;margin:0 0 1.2rem}
.guide .svc-block h2{font-size:clamp(2rem,4.5vw,3.4rem);margin-bottom:1.5rem}
.guide a:not(.btn){color:var(--berry)}

/* Tarifas: lista con puntos guía, como una carta */
.prices{display:grid;grid-template-columns:repeat(2,1fr);gap:0 4vw;margin-top:1.5rem}
.prices div{display:flex;align-items:baseline;gap:.8rem;padding:1.1rem 0;border-top:1px solid rgba(29,20,22,.15)}
.prices dt{font-size:1.05rem}
.prices dd{margin-left:auto;font-family:var(--serif);font-size:1.6rem;color:var(--berry);white-space:nowrap}
.prices div::after{content:"";order:1;flex:1;border-bottom:1px dotted rgba(29,20,22,.3);min-width:1rem}
.prices dd{order:2;margin-left:0}
.pnote{margin-top:1rem;font-size:.9rem;opacity:.7}
@media (max-width:760px){.prices{grid-template-columns:1fr}}
/* WhatsApp siempre a mano */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:85;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:#25d366;color:#fff;box-shadow:0 8px 24px rgba(29,20,22,.25);transition:transform .3s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:30px;height:30px}
.cta-wa{margin:1.5rem 0 0;font-size:.95rem}
.cta-wa a{color:var(--berry)}
.card p.card-price{margin-top:.9rem;font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--berry)}
