@import "fonts.css";

/* ============ TOKENS (2026 identity) ============ */
:root{
  --brown:#95522C; --tan:#AC7E5C; --mauve:#B58585; --cream:#E9DED2; --offwhite:#F2F1F1;
  --ink:#2B1C12; --ink-soft:#5A4636; --text-on-dark:#F2F1F1;
  --border:color-mix(in srgb, var(--brown) 20%, transparent);
  --font-title:"Apple Garamond",Georgia,"Times New Roman",serif;
  --font-body:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --maxw:1200px;
  --gutter:clamp(20px,5vw,80px);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:var(--font-body); font-weight:300; color:var(--ink);
  background:var(--offwhite); line-height:1.7; -webkit-font-smoothing:antialiased;
}
/* Elegant, light serif headings (match Claude Design line) */
h1,h2,h3,h4{font-family:var(--font-title); font-weight:400; line-height:1.08; letter-spacing:0; margin:0;}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter);}
.italic{font-style:italic; color:var(--tan);}
.eyebrow{display:flex; align-items:center; gap:14px; font-family:var(--font-body); font-weight:500;
  text-transform:uppercase; letter-spacing:.24em; font-size:.72rem; color:var(--tan);}
.eyebrow .rule{width:44px; height:1px; background:var(--tan); opacity:.7;}

/* ============ BUTTONS ============ */
.btn{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-body); font-weight:500;
  font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; border:none; border-radius:999px;
  padding:16px 32px; cursor:pointer; transition:transform .2s, background .2s, color .2s; white-space:nowrap;}
.btn-primary{background:var(--brown); color:var(--text-on-dark);}
.btn-primary:hover{transform:translateY(-2px); background:#7e4523;}
.btn-cream{background:var(--cream); color:var(--brown);}
.btn-cream:hover{transform:translateY(-2px); background:#ded0bf;}
.btn-ghost{background:transparent; color:var(--brown); border:1px solid var(--border); margin-top:30px;}
.btn-ghost:hover{background:var(--cream);}
.btn-link{background:transparent; color:var(--brown); padding:16px 8px;}
.btn-link:hover{color:#7e4523;}

/* ============ NAV ============ */
.nav{position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--cream) 90%, transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--border);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; height:84px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:48px; width:auto;}
.brand .wm{line-height:1;}
.brand .wm b{font-family:var(--font-title); font-weight:400; font-size:1.4rem; letter-spacing:.2em; color:var(--brown); display:block;}
.brand .wm span{font-family:var(--font-body); font-weight:400; font-size:.6rem; letter-spacing:.34em; color:var(--tan); text-transform:uppercase;}
.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{font-family:var(--font-body); font-weight:400; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); transition:color .2s; white-space:nowrap;}
.nav-links a:hover{color:var(--brown);}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px;}
.nav-toggle span{display:block; width:26px; height:2px; background:var(--brown); margin:5px 0;}

/* --- Menú cascada (Tratamientos) --- */
.nav-item{position:relative;}
.mega-trigger{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-body); font-weight:400; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); cursor:pointer; transition:color .2s;}
.mega-trigger:hover, .nav-item:hover .mega-trigger{color:var(--brown);}
.mega-trigger .caret{font-size:.6em; transition:transform .25s;}
.nav-item:hover .caret{transform:rotate(180deg);}
.mega{position:absolute; top:calc(100% + 20px); left:50%; transform:translateX(-50%) translateY(10px);
  display:grid; grid-template-columns:repeat(3,minmax(190px,1fr)); gap:30px; min-width:660px;
  background:var(--offwhite); border:1px solid var(--border); border-radius:16px; padding:28px 32px;
  box-shadow:0 34px 66px -30px rgba(90,50,20,.45); opacity:0; visibility:hidden; transition:opacity .22s ease, transform .22s ease; z-index:60;}
.nav-item:hover .mega, .nav-item:focus-within .mega, .mega.open{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.mega::before{content:""; position:absolute; bottom:100%; left:0; right:0; height:22px;}
.mega-col{display:flex; flex-direction:column; gap:11px;}
.nav-links .mega a{text-transform:none; letter-spacing:0; white-space:normal;}
.nav-links .mega-head{font-family:var(--font-title); font-weight:400; font-size:1.2rem; color:var(--brown); padding-bottom:9px; border-bottom:1px solid var(--border); margin-bottom:3px;}
.nav-links .mega-head:hover{color:#7e4523;}
.nav-links .mega-col a:not(.mega-head){font-family:var(--font-body); font-weight:400; font-size:.86rem; color:var(--ink-soft); transition:color .2s, padding .2s;}
.nav-links .mega-col a:not(.mega-head):hover{color:var(--brown); padding-left:4px;}

/* ============ HERO (imagen Artboard 3) ============ */
.hero{position:relative; overflow:hidden;
  background:
    linear-gradient(90deg, rgba(243,238,229,.94) 0%, rgba(243,238,229,.55) 46%, rgba(243,238,229,0) 72%),
    #f3eee5 url("../img/fotos/Artboard 3.png") right center/cover no-repeat;}
.hero-inner{padding-block:clamp(80px,13vw,180px); max-width:1000px;}
.hero .eyebrow{color:color-mix(in srgb,var(--ink-soft) 70%, transparent);}
.hero .eyebrow .rule{background:var(--ink-soft); opacity:.4;}
.hero h1{margin-top:34px; font-size:clamp(3rem,8vw,6.4rem); color:var(--ink); line-height:1.02; letter-spacing:-.005em;}
.hero .lead{margin-top:34px; max-width:52ch; font-size:1.12rem; color:var(--ink-soft);}
.hero .lead strong{color:var(--brown); font-weight:600;}
.hero-actions{margin-top:40px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}

/* ============ MANIFIESTO ============ */
.manifesto{background:var(--cream);}
.manifesto-inner{display:grid; grid-template-columns:1fr 1fr; gap:64px; padding-block:clamp(72px,10vw,132px); align-items:start;}
.manifesto h2{margin-top:22px; font-size:clamp(2rem,4vw,3.1rem); color:var(--brown); line-height:1.12;}
.manifesto-body p{color:var(--ink-soft); font-size:1.05rem;}
.manifesto-body p + p{margin-top:20px;}
.manifesto-body strong{color:var(--ink);}
.manifesto-body .quote{margin-top:30px; padding-left:20px; border-left:3px solid var(--brown); font-family:var(--font-title); font-style:italic; font-size:1.5rem; color:var(--brown);}

/* ============ MÉTODO ============ */
.method{background:var(--cream);}
.method-intro{text-align:center; padding:clamp(64px,9vw,112px) var(--gutter) clamp(40px,5vw,60px);}
.method-intro .eyebrow{justify-content:center;}
.method-intro h2{font-size:clamp(2.6rem,5.5vw,4.2rem); color:var(--brown); margin-top:14px; line-height:1.05;}
.method-intro h2 .italic{color:var(--tan);}
.method-intro p{margin:18px auto 0; max-width:46ch; color:var(--ink-soft);}
/* Bandas del método (Artboard 4) — desktop horizontal acordeón / móvil apilado */
.wa-bands{display:flex; height:min(74vh,660px);}
.wa-band{position:relative; flex:1; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-decoration:none; transition:flex .55s cubic-bezier(.4,0,.2,1); border-right:1px solid rgba(255,255,255,.14);}
.wa-band:last-child{border-right:none;}
.wa-band::before{content:""; position:absolute; inset:0; z-index:0; background:var(--img) center/cover no-repeat; transition:transform .7s ease;}
.wa-band::after{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(50,26,10,.12), rgba(50,26,10,.62)); transition:background .4s;}
.wa-band:hover{flex:2.6;}
.wa-band:hover::before{transform:scale(1.07);}
.wa-band:hover::after{background:linear-gradient(180deg, rgba(50,26,10,.25), rgba(50,26,10,.72));}
.wa-n{position:relative; z-index:2; font-family:var(--font-body); font-weight:400; font-size:.78rem; letter-spacing:.28em; color:rgba(255,255,255,.7);}
.wa-name{position:relative; z-index:2; font-family:var(--font-title); font-style:italic; font-weight:400; font-size:clamp(1.7rem,2.6vw,2.9rem); color:#fff; margin-top:8px; text-align:center; padding:0 12px; line-height:1.1; text-shadow:0 2px 20px rgba(0,0,0,.3);}
.wa-desc{position:relative; z-index:2; font-family:var(--font-body); font-weight:400; font-size:.92rem; color:rgba(255,255,255,.92); max-width:28ch; text-align:center; margin-top:16px; padding:0 18px; opacity:0; transform:translateY(10px); transition:opacity .45s .1s ease, transform .45s .1s ease;}
.wa-band:hover .wa-desc{opacity:1; transform:translateY(0);}
@media (max-width:900px){
  .wa-bands{flex-direction:column; height:auto;}
  .wa-band{flex:none; min-height:170px; padding:30px 22px; border-right:none; border-bottom:1px solid rgba(255,255,255,.14);}
  .wa-band:hover{flex:none;}
  .wa-band:last-child{border-bottom:none;}
  .wa-desc{opacity:1; transform:none; margin-top:10px;}
}

/* ============ SERVICIOS (3 áreas mosaico) ============ */
.services{background:var(--offwhite);}
.services .wrap{padding-block:clamp(72px,10vw,128px);}
.services .head{text-align:center; max-width:62ch; margin:0 auto;}
.services .head .eyebrow{justify-content:center;}
.services h2{font-size:clamp(2.4rem,5.5vw,3.6rem); color:var(--brown); margin-top:16px;}
.services .sub{margin-top:18px; color:var(--ink-soft);}
.mosaic{margin-top:52px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.tile{display:flex; flex-direction:column; background:var(--cream); border-radius:20px; overflow:hidden; transition:transform .3s, box-shadow .3s;}
.tile:hover{transform:translateY(-6px); box-shadow:0 34px 60px -34px rgba(90,50,20,.5);}
.tile > img{width:100%; height:auto; display:block;}
.tile .cap{padding:24px 26px 28px;}
.tile .desc{color:var(--ink-soft); font-size:.96rem;}
.tile .more{margin-top:16px; display:inline-flex; align-items:center; gap:8px; color:var(--brown); font-family:var(--font-body); font-weight:500; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;}
.tile .more span{transition:transform .25s;}
.tile:hover .more span{transform:translateX(5px);}

/* ============ EQUIPO ============ */
.team{background:
  linear-gradient(90deg, rgba(233,222,210,.94) 0%, rgba(233,222,210,.55) 40%, rgba(233,222,210,.06) 70%),
  #efe9e0 url("../img/fotos/FONDO_05.jpg") right center/cover no-repeat;}
.team-inner{display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; padding-block:clamp(72px,10vw,124px);}
.team .eyebrow{color:var(--tan);}
.team h2{font-size:clamp(2.1rem,4.6vw,3.1rem); color:var(--brown); margin-top:16px;}
.team p{margin-top:22px; max-width:46ch; color:var(--ink-soft); font-size:1.05rem;}
.team-card{background:rgba(255,255,255,.5); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(149,82,44,.22); border-radius:22px; padding:44px 40px; box-shadow:0 24px 50px -34px rgba(90,50,20,.35);}
.team-card .tq{font-family:var(--font-title); font-style:italic; font-size:1.7rem; color:var(--brown); line-height:1.3;}
.team-card .tn{margin-top:26px; font-family:var(--font-title); font-size:1.3rem; color:var(--ink);}
.team-card .tr{margin-top:4px; font-family:var(--font-body); font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft);}

/* ============ CTA ============ */
.cta{text-align:center; background:
  linear-gradient(180deg, rgba(243,238,229,.78), rgba(243,238,229,.72)),
  #f0e8dd url("../img/fotos/FONDO_02.jpg") center/cover no-repeat;}
.cta .wrap{padding-block:clamp(80px,11vw,140px);}
.cta h2{font-size:clamp(2.4rem,6vw,4.2rem); color:var(--brown); max-width:16ch; margin:0 auto; line-height:1.08;}
.cta p{margin:22px auto 0; max-width:46ch; color:var(--ink-soft);}
.cta .actions{margin-top:38px;}

/* ============ FOOTER / CONTACTO ============ */
.footer{background:var(--offwhite); border-top:1px solid var(--border);}
.footer .wrap{padding-block:68px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;}
.footer .fbrand img{height:66px; width:auto; opacity:.92;}
.footer .socials{display:flex; gap:14px; margin-top:24px;}
.footer .socials a{width:40px; height:40px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--brown); transition:background .2s,color .2s;}
.footer .socials a:hover{background:var(--brown); color:#fff;}
.footer .socials svg{width:18px; height:18px;}
.footer h4{font-family:var(--font-body); font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.16em; color:var(--ink);}
.footer p, .footer a.line{margin-top:16px; color:var(--ink-soft); font-size:.96rem; line-height:1.7;}
.footer a.line{display:inline-block; color:var(--brown); font-weight:500;}
.footer a.line:hover{text-decoration:underline;}
.footer .legal{border-top:1px solid var(--border);}
.footer .legal .wrap{padding-block:22px; display:flex; justify-content:space-between; gap:16px; font-size:.78rem; color:var(--ink-soft); grid-template-columns:none;}

/* ============ INTRO VIDEO SPLASH ============ */
body.intro-active{overflow:hidden;}
.intro{position:fixed; inset:0; z-index:9999; background:var(--brown); display:flex; align-items:center; justify-content:center; transition:opacity .8s ease;}
.intro.hide{opacity:0; pointer-events:none;}
.intro-video{width:100%; height:100%; object-fit:cover;}
.intro-skip{position:absolute; bottom:26px; right:26px; background:rgba(255,255,255,.16); color:#fff; border:1px solid rgba(255,255,255,.55); border-radius:999px; padding:9px 20px; font-family:var(--font-body); font-size:.82rem; letter-spacing:.04em; cursor:pointer; backdrop-filter:blur(4px); transition:background .2s;}
.intro-skip:hover{background:rgba(255,255,255,.3);}

/* ============ RESPONSIVE ============ */
@media (max-width:960px){
  .manifesto-inner,.method-head,.team-inner{grid-template-columns:1fr; gap:32px;}
  .phases{grid-template-columns:repeat(2,1fr); gap:10px 26px;}
  .footer .wrap{grid-template-columns:1fr; gap:32px;}
  .nav-links{position:fixed; inset:84px 0 auto 0; flex-direction:column; align-items:flex-start; background:var(--cream); padding:26px var(--gutter); gap:22px; border-bottom:1px solid var(--border); transform:translateY(-130%); transition:transform .3s; box-shadow:0 20px 40px -20px rgba(0,0,0,.2);}
  .nav-links.open{transform:translateY(0);}
  .nav-toggle{display:block;}
  /* Menú cascada en móvil: lista expandida */
  .nav-item{width:100%;}
  .mega-trigger .caret{display:none;}
  .mega{position:static; transform:none; opacity:1; visibility:visible; display:block;
    min-width:0; background:transparent; border:none; box-shadow:none; padding:10px 0 4px 14px;}
  .mega-col{gap:8px; margin-bottom:14px;}
  .mega-head{font-size:1.05rem; padding-bottom:6px;}
}
@media (max-width:540px){
  .phases{grid-template-columns:1fr;}
  .footer .legal .wrap{flex-direction:column;}
}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* ============ PÁGINAS DE CATEGORÍA ============ */
.cat-hero{background:linear-gradient(165deg,#efe8dd,#e2d3c1 100%);}
.cat-hero.cat-regen{position:relative; overflow:hidden; background:#efe8dd;}
.cat-hero.cat-regen::before{content:""; position:absolute; inset:0; z-index:0;
  background:url("../img/fotos/FONDO_04.jpg") right center/cover no-repeat; transform:scaleX(-1);}
.cat-hero.cat-regen::after{content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(90deg, rgba(239,232,221,.9) 0%, rgba(239,232,221,.48) 50%, rgba(239,232,221,.06) 80%);}
.cat-hero.cat-regen .wrap{position:relative; z-index:1;}

.cat-hero.cat-func{background:
  linear-gradient(90deg, rgba(239,232,221,.93) 0%, rgba(239,232,221,.5) 48%, rgba(239,232,221,.06) 78%),
  #efe8dd url("../img/fotos/FONDO_02.jpg") right center/cover no-repeat;}

.cat-hero.cat-estet{background:
  linear-gradient(90deg, rgba(240,236,229,.92) 0%, rgba(240,236,229,.5) 46%, rgba(240,236,229,.05) 78%),
  #f0ece5 url("../img/fotos/FONDO_05.jpg") right center/cover no-repeat;}
.cat-hero .wrap{padding-block:clamp(64px,9vw,120px); max-width:900px;}
.cat-hero h1{margin-top:26px; font-size:clamp(2.6rem,6vw,4.4rem); color:var(--brown); line-height:1.04;}
.cat-hero .cat-lead{margin-top:26px; max-width:52ch; font-size:1.12rem; color:var(--ink-soft);}
.cat-hero .crumb{font-family:var(--font-body); font-size:.8rem; letter-spacing:.06em; color:var(--ink-soft);}
.cat-hero .crumb a{color:var(--brown);}
.cat-body{background:var(--offwhite);}
.cat-body .wrap{padding-block:clamp(56px,8vw,104px);}
.cat-group{margin-bottom:56px;}
.cat-group:last-child{margin-bottom:0;}
.cat-group > h2{font-family:var(--font-body); font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.18em; color:var(--brown); padding-bottom:14px; border-bottom:1px solid var(--border);}
.tx-grid{margin-top:26px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.tx-card{background:var(--cream); border:1px solid var(--border); border-radius:16px; padding:24px 24px 26px; transition:transform .25s, box-shadow .25s;}
.tx-card:hover{transform:translateY(-4px); box-shadow:0 24px 44px -28px rgba(90,50,20,.45);}
.tx-card h3{font-family:var(--font-title); font-weight:400; font-size:1.4rem; color:var(--ink);}
.tx-card p{margin-top:10px; font-family:var(--font-body); font-size:.92rem; color:var(--ink-soft); line-height:1.55;}
.cat-cta{background:var(--brown); color:var(--text-on-dark); text-align:center;}
.cat-cta .wrap{padding-block:clamp(56px,8vw,96px);}
.cat-cta h2{font-size:clamp(2rem,4.5vw,3rem); color:var(--offwhite); max-width:20ch; margin:0 auto;}
.cat-cta p{margin:16px auto 0; max-width:48ch; color:color-mix(in srgb,var(--cream) 82%, transparent); font-family:var(--font-body);}
.cat-cta .actions{margin-top:30px;}
@media (max-width:960px){ .tx-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .tx-grid{grid-template-columns:1fr;} }
