/*
Theme Name: R25 Consultores — Signature
Theme URI: https://r25consultores.com
Author: R25 Consultores
Description: Tema corporativo editorial para R25 Consultores. Diseño premium, minimalista y responsive, inspirado en la estética de firmas patrimoniales contemporáneas, sin copiar contenidos ni identidad de terceros.
Version: 3.0.0
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: r25consultores
*/

:root{
  --ink:#11100e;
  --ink-soft:#302e29;
  --paper:#f3f0e9;
  --paper-2:#e8e3d8;
  --white:#fff;
  --line:rgba(17,16,14,.18);
  --gold:#9b7a42;
  --max:1440px;
  --pad:clamp(24px,5vw,84px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{opacity:.72}
img{display:block;max-width:100%;height:auto}
button,input,textarea{font:inherit}
.r25-shell{width:min(calc(100% - (var(--pad)*2)),var(--max));margin-inline:auto}
.r25-serif{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.045em}
.r25-eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin:0 0 22px}
.r25-arrow{font-size:1.15em;margin-left:.35em}

.site-header{position:fixed;inset:0 0 auto;z-index:100;color:#fff;transition:background .25s,color .25s,border-color .25s;background:linear-gradient(to bottom,rgba(0,0,0,.46),transparent)}
.site-header.is-solid{background:rgba(243,240,233,.96);color:var(--ink);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.site-header__inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.site-brand{display:flex;align-items:baseline;gap:10px;font-size:1.22rem;letter-spacing:.1em;text-transform:uppercase;font-weight:750}
.site-brand small{font-size:.62rem;letter-spacing:.22em;font-weight:600;opacity:.78}
.site-nav ul{display:flex;align-items:center;gap:30px;margin:0;padding:0;list-style:none}
.site-nav a{font-size:.83rem;letter-spacing:.04em}
.site-nav .menu-item:last-child a{border-bottom:1px solid currentColor;padding-bottom:4px}
.menu-toggle{display:none;background:none;border:0;color:inherit;font-weight:700;padding:8px 0}

.hero{position:relative;min-height:94vh;display:flex;align-items:flex-end;background:#12110f;color:#fff;overflow:hidden}
.hero__media{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.38) 42%,rgba(0,0,0,.08) 78%),url('assets/images/office-hero.webp');background-size:cover;background-position:center 46%;transform:scale(1.015)}
.hero__content{position:relative;z-index:1;padding-top:170px;padding-bottom:clamp(64px,9vw,130px);max-width:1030px}
.hero h1{font-size:clamp(3.2rem,7.8vw,8.4rem);line-height:.91;margin:0;max-width:980px;text-wrap:balance}
.hero__lead{font-size:clamp(1rem,1.35vw,1.28rem);max-width:680px;margin:34px 0 0;color:rgba(255,255,255,.89)}
.hero__cta{display:flex;align-items:center;gap:24px;margin-top:42px;font-size:.84rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.hero__cta a{border-bottom:1px solid rgba(255,255,255,.75);padding-bottom:5px}
.hero__index{position:absolute;right:var(--pad);bottom:28px;z-index:2;font-family:Georgia,"Times New Roman",serif;font-size:1rem;letter-spacing:.04em;color:rgba(255,255,255,.65)}

.intro{padding:clamp(90px,12vw,180px) 0;border-bottom:1px solid var(--line)}
.intro__grid{display:grid;grid-template-columns:.36fr 1fr;gap:clamp(40px,8vw,120px);align-items:start}
.intro h2{font-size:clamp(2.6rem,5.3vw,6.1rem);line-height:.96;margin:0;max-width:1020px;text-wrap:balance}
.intro__copy{grid-column:2;max-width:790px;font-size:clamp(1.05rem,1.45vw,1.35rem);color:var(--ink-soft);margin-top:42px}

.disciplines{padding:0 0 clamp(90px,12vw,180px)}
.disciplines__head{padding:clamp(70px,8vw,120px) 0 44px;display:flex;justify-content:space-between;gap:30px;align-items:flex-end}
.disciplines__head h2{margin:0;font-size:clamp(2.3rem,4vw,4.8rem);line-height:1}
.disciplines__grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.discipline{min-height:620px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-rows:320px auto;background:var(--paper);transition:background .25s}
.discipline:hover{background:var(--paper-2)}
.discipline__image{overflow:hidden;background:#d9d4ca}
.discipline__image img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(.97);transition:transform .45s,filter .35s}
.discipline:hover img{transform:scale(1.035);filter:grayscale(35%)}
.discipline__body{padding:30px 30px 36px;display:flex;flex-direction:column}
.discipline__num{font-size:.72rem;letter-spacing:.18em;margin-bottom:48px}
.discipline h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(1.7rem,2.25vw,2.65rem);line-height:1.04;letter-spacing:-.035em;margin:0 0 18px}
.discipline p{margin:0;color:#57534b;max-width:360px}
.discipline__link{margin-top:auto;padding-top:34px;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}

.manifesto{background:var(--ink);color:#f7f4ed;padding:clamp(100px,13vw,190px) 0;overflow:hidden}
.manifesto__grid{display:grid;grid-template-columns:.34fr 1fr;gap:clamp(38px,8vw,120px)}
.manifesto h2{font-size:clamp(3.1rem,6vw,7.2rem);line-height:.92;margin:0;max-width:1000px}
.manifesto__copy{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:58px;color:#cbc5ba}
.manifesto__copy p{margin:0}

.method{padding:clamp(95px,12vw,175px) 0}
.method__grid{display:grid;grid-template-columns:.5fr 1fr;gap:clamp(48px,9vw,130px)}
.method h2{font-size:clamp(2.6rem,5vw,5.7rem);line-height:.96;margin:0}
.method__steps{border-top:1px solid var(--line)}
.method__step{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}
.method__step span{font-size:.72rem;letter-spacing:.15em;padding-top:6px}
.method__step h3{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,2vw,2rem);font-weight:400;margin:0 0 8px}
.method__step p{margin:0;color:#5c574e}

.office{display:grid;grid-template-columns:1.25fr .75fr;min-height:720px;border-top:1px solid var(--line)}
.office__image{min-height:620px;background:url('assets/images/office-hero.webp') center/cover no-repeat}
.office__copy{padding:clamp(50px,7vw,110px);display:flex;flex-direction:column;justify-content:center;background:#ded8cc}
.office h2{font-size:clamp(2.6rem,4.6vw,5.2rem);line-height:.95;margin:0 0 30px}
.office p{font-size:1.08rem;max-width:490px;color:#514d45}

.final-cta{padding:clamp(105px,14vw,200px) 0;background:#f8f6f0}
.final-cta__grid{display:grid;grid-template-columns:.36fr 1fr;gap:clamp(40px,8vw,120px)}
.final-cta h2{font-size:clamp(3rem,6vw,7rem);line-height:.92;margin:0;max-width:1050px}
.final-cta__link{grid-column:2;margin-top:50px;display:inline-flex;width:max-content;border-bottom:1px solid var(--ink);padding-bottom:8px;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:700}

.site-footer{background:#0d0c0a;color:#eee8dd;padding:76px 0 32px}
.footer__grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:48px;padding-bottom:72px}
.footer__brand{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,3.5vw,4rem);line-height:1;margin:0 0 22px}
.footer__muted{color:#9d978d;font-size:.9rem;max-width:460px}
.footer__title{font-size:.69rem;text-transform:uppercase;letter-spacing:.16em;color:#9d978d;margin-bottom:18px}
.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin:9px 0}
.footer__bottom{display:flex;justify-content:space-between;gap:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.16);font-size:.75rem;color:#8f8a81}

.page-main{padding:150px 0 100px;min-height:70vh}.page-main article{max-width:920px}.page-main h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6vw,6.5rem);line-height:.95;font-weight:400;letter-spacing:-.045em}.page-main h2{font-family:Georgia,"Times New Roman",serif;font-size:2.1rem;font-weight:400;margin-top:50px}.page-main p,.page-main li{font-size:1.05rem;color:#4d4942}.page-main a{text-decoration:underline}.contact-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0;margin-top:50px}

@media(max-width:980px){
  .site-nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);padding:22px var(--pad)}
  .site-nav.is-open{display:block}.site-nav ul{display:block}.site-nav li{margin:16px 0}.menu-toggle{display:block}.site-header__inner{min-height:76px}
  .intro__grid,.manifesto__grid,.method__grid,.final-cta__grid{grid-template-columns:1fr}.intro__copy,.manifesto__copy,.final-cta__link{grid-column:1}.disciplines__grid{grid-template-columns:1fr}.discipline{min-height:auto;grid-template-columns:.9fr 1.1fr;grid-template-rows:auto}.discipline__image{min-height:360px}.manifesto__copy{grid-template-columns:1fr}.office{grid-template-columns:1fr}.office__image{min-height:520px}.footer__grid{grid-template-columns:1fr 1fr}.hero{min-height:86vh}
}
@media(max-width:650px){
  :root{--pad:20px}.site-brand small{display:none}.hero__content{padding-top:130px}.hero h1{font-size:clamp(3rem,15vw,5.4rem)}.hero__media{background-image:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.26)),url('assets/images/office-hero.webp');background-position:58% center}.disciplines__head{display:block}.disciplines__head .r25-eyebrow{margin-top:18px}.discipline{grid-template-columns:1fr}.discipline__image{min-height:280px}.manifesto__copy{margin-top:36px}.method__step{grid-template-columns:50px 1fr}.footer__grid{grid-template-columns:1fr}.footer__bottom{display:block}.footer__bottom span{display:block;margin-top:8px}
}


/* R25 Motion System — scroll-driven, subtle and performance-friendly */
.r25-scroll-progress{
  position:fixed;left:0;top:0;width:100%;height:2px;z-index:250;
  background:var(--gold);transform:scaleX(0);transform-origin:left center;
  pointer-events:none;will-change:transform;
}
.r25-motion-ready .hero__media{
  transform:translate3d(0,var(--hero-y,0),0) scale(var(--hero-scale,1.04));
  will-change:transform;transition:none;
}
.r25-motion-ready .hero__content{
  transform:translate3d(0,var(--hero-copy-y,0),0);
  opacity:var(--hero-copy-opacity,1);will-change:transform,opacity;
}
.r25-motion-ready .discipline__image img{
  height:calc(100% + 72px);margin-top:-36px;
  transform:translate3d(0,var(--img-y,0),0) scale(1.045);
  will-change:transform;transition:filter .45s ease,transform .18s linear;
}
.r25-motion-ready .discipline:hover .discipline__image img{
  transform:translate3d(0,var(--img-y,0),0) scale(1.085);
}
.r25-motion-ready .manifesto h2{
  transform:translate3d(var(--manifesto-x,0),0,0);will-change:transform;
}
.r25-motion-ready .office__image{
  background-size:cover;background-position:center 48%;will-change:background-position;
}
.r25-reveal{
  opacity:0;transform:translate3d(0,46px,0);
  transition:opacity .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms),
             transform .95s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
.r25-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.discipline.r25-reveal:nth-child(2){--reveal-delay:90ms}
.discipline.r25-reveal:nth-child(3){--reveal-delay:180ms}

/* A more cinematic viewport for the first image, without JS pinning. */
@media(min-width:981px){
  .hero{min-height:100svh}
  .hero__media{inset:-8% 0 -8%}
  .office{overflow:hidden}
  .office__image{min-height:780px;background-size:115% auto}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .r25-scroll-progress{display:none}
  .r25-reveal,.r25-reveal.is-visible{opacity:1;transform:none;transition:none}
  .r25-motion-ready .hero__media,.r25-motion-ready .hero__content,
  .r25-motion-ready .discipline__image img,.r25-motion-ready .manifesto h2{
    transform:none!important;opacity:1!important;transition:none!important
  }
}

/* R25 Mobile refinement v2.2 */
@media(max-width:650px){
  html,body{overflow-x:hidden}
  body{font-size:16px;-webkit-text-size-adjust:100%}
  .r25-shell{width:min(100% - 32px, 100%);margin-inline:auto}
  .site-header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .site-header__inner{min-height:68px}
  .site-brand{font-size:1.15rem;letter-spacing:.03em}
  .menu-toggle{min-width:48px;min-height:48px;font-size:.86rem}
  .site-nav{top:68px;padding:18px 20px 26px;max-height:calc(100svh - 68px);overflow:auto}
  .site-nav a{display:block;padding:9px 0;font-size:1rem}

  .hero{min-height:92svh;display:flex;align-items:flex-end}
  .hero__content{padding:112px 0 54px}
  .hero h1{font-size:clamp(3.1rem,15.8vw,5.25rem);line-height:.9;letter-spacing:-.055em;max-width:10ch}
  .hero__lede{font-size:1rem;line-height:1.5;max-width:31ch;margin-top:24px}
  .hero__media{background-position:62% center}

  .intro,.disciplines,.manifesto,.method,.office,.final-cta{padding-top:78px;padding-bottom:78px}
  .intro h2,.disciplines h2,.manifesto h2,.method h2,.final-cta h2{font-size:clamp(2.35rem,11vw,4rem);line-height:.96;letter-spacing:-.045em}
  .intro__copy p,.manifesto__copy p,.office__copy p{font-size:1rem;line-height:1.62}

  .disciplines__grid{gap:16px}
  .discipline{border-top:1px solid var(--line);padding-top:22px}
  .discipline__image{min-height:245px;aspect-ratio:4/3;overflow:hidden}
  .discipline__body{padding:24px 0 10px}
  .discipline__body h3{font-size:1.65rem;line-height:1.05}
  .discipline__body p{font-size:.98rem;line-height:1.55}

  .manifesto__copy,.method__steps{gap:26px}
  .method__step{grid-template-columns:40px 1fr;gap:14px;padding:20px 0}
  .method__step h3{font-size:1.2rem}

  .office__image{min-height:360px;aspect-ratio:4/5;background-position:center 50%}
  .office__copy{padding-top:34px}

  .final-cta{padding:88px 0 94px}
  .final-cta__link{margin-top:30px;white-space:normal;line-height:1.45}

  .site-footer{padding:58px 0 28px}
  .footer__grid{gap:34px;padding-bottom:48px}
  .footer__brand{font-size:2.25rem}
  .footer__bottom{font-size:.72rem;line-height:1.5}

  .page-main{padding:112px 0 72px}
  .page-main h1{font-size:clamp(2.8rem,13vw,4.4rem)}

  /* Keep motion elegant and stable on phones */
  .r25-motion-ready .hero__media{transform:translate3d(0,var(--hero-y,0),0) scale(1.035)}
  .r25-motion-ready .discipline__image img{height:calc(100% + 34px);margin-top:-17px;transform:translate3d(0,var(--img-y,0),0) scale(1.025)}
  .r25-reveal{transform:translate3d(0,24px,0);transition-duration:.7s,.78s}
  .r25-scroll-progress{height:1px}
}

@supports(padding:max(0px)){
  @media(max-width:650px){
    .site-header__inner{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
    .site-footer{padding-bottom:max(28px,env(safe-area-inset-bottom))}
  }
}


/* R25 Depth Motion v3.0 — cinematic 3D depth tied to scroll */
:root{
  --depth-perspective: 1200px;
  --depth-ease: cubic-bezier(.16,1,.3,1);
}

.hero,
.intro,
.disciplines,
.manifesto,
.method,
.office,
.final-cta{
  perspective:var(--depth-perspective);
  perspective-origin:50% 45%;
}

.hero__content,
.intro__grid,
.disciplines__head,
.discipline,
.manifesto__grid,
.method__grid,
.office__copy,
.final-cta__grid{
  transform-style:preserve-3d;
  backface-visibility:hidden;
}

/* Hero: image sits deeper, type appears to advance toward the viewer */
.r25-depth-ready .hero__media{
  transform:translate3d(0,var(--hero-y,0),var(--hero-bg-z,-90px)) scale(var(--hero-scale,1.09));
  filter:brightness(var(--hero-brightness,.94)) blur(var(--hero-blur,0px));
}
.r25-depth-ready .hero__content{
  transform:translate3d(0,var(--hero-copy-y,0),var(--hero-copy-z,0px)) scale(var(--hero-copy-scale,1));
  opacity:var(--hero-copy-opacity,1);
}
.r25-depth-ready .hero h1{
  transform:translate3d(0,var(--hero-title-y,0),var(--hero-title-z,0px));
  text-shadow:0 calc(10px * var(--hero-shadow,0)) calc(34px * var(--hero-shadow,0)) rgba(0,0,0,.22);
  will-change:transform,text-shadow;
}
.r25-depth-ready .hero__lead,
.r25-depth-ready .hero__cta,
.r25-depth-ready .hero__index{
  transform:translate3d(0,0,var(--hero-detail-z,18px));
}

/* Intro and section titles approach from depth */
.r25-depth-ready .intro h2,
.r25-depth-ready .disciplines__head h2,
.r25-depth-ready .manifesto h2,
.r25-depth-ready .method h2,
.r25-depth-ready .final-cta h2{
  transform:translate3d(var(--depth-x,0),var(--depth-y,0),var(--depth-z,-70px)) scale(var(--depth-scale,.96));
  opacity:var(--depth-opacity,.65);
  filter:blur(var(--depth-blur,2px));
  will-change:transform,opacity,filter;
}

/* Cards become layered planes */
.r25-depth-ready .discipline{
  transform:translate3d(0,var(--card-y,0),var(--card-z,-50px)) rotateX(var(--card-rx,2deg)) scale(var(--card-scale,.985));
  box-shadow:0 var(--card-shadow-y,8px) var(--card-shadow-blur,28px) rgba(17,16,14,var(--card-shadow-alpha,.06));
  transition:background .25s, box-shadow .2s linear;
  will-change:transform,box-shadow;
}
.r25-depth-ready .discipline__image{
  transform:translateZ(38px);
}
.r25-depth-ready .discipline__body{
  transform:translateZ(64px);
}
.r25-depth-ready .discipline__image img{
  transform:translate3d(0,var(--img-y,0),var(--img-z,-28px)) scale(var(--img-scale,1.08));
  filter:grayscale(100%) contrast(.97) brightness(var(--img-brightness,.95));
}
.r25-depth-ready .discipline:hover{
  transform:translate3d(0,-4px,26px) rotateX(0deg) scale(1.006);
  box-shadow:0 28px 70px rgba(17,16,14,.14);
}
.r25-depth-ready .discipline:hover .discipline__image img{
  transform:translate3d(0,var(--img-y,0),4px) scale(1.11);
}

/* Dark manifesto gains separate depth planes */
.r25-depth-ready .manifesto__grid{perspective:1400px}
.r25-depth-ready .manifesto .r25-eyebrow{transform:translateZ(36px)}
.r25-depth-ready .manifesto__copy{transform:translate3d(0,var(--manifesto-copy-y,0),var(--manifesto-copy-z,-28px));opacity:var(--manifesto-copy-opacity,.82)}

/* Office image feels like a window behind the copy */
.r25-depth-ready .office{perspective:1600px;overflow:hidden}
.r25-depth-ready .office__image{
  transform:translate3d(var(--office-x,0),var(--office-y,0),var(--office-z,-80px)) scale(var(--office-scale,1.1));
  filter:saturate(var(--office-sat,.92)) contrast(1.02);
  will-change:transform,filter;
}
.r25-depth-ready .office__copy{
  transform:translate3d(0,var(--office-copy-y,0),var(--office-copy-z,44px));
  box-shadow:-24px 0 70px rgba(17,16,14,.08);
  will-change:transform;
}

/* Small floating treatment for CTA */
.r25-depth-ready .final-cta__link{
  transform:translate3d(0,var(--cta-y,0),var(--cta-z,30px));
  will-change:transform;
}

@media(max-width:650px){
  :root{--depth-perspective:900px}
  .r25-depth-ready .hero__media{
    transform:translate3d(0,var(--hero-y,0),var(--hero-bg-z,-32px)) scale(var(--hero-scale,1.055));
  }
  .r25-depth-ready .hero__content{
    transform:translate3d(0,var(--hero-copy-y,0),var(--hero-copy-z,0)) scale(var(--hero-copy-scale,1));
  }
  .r25-depth-ready .intro h2,
  .r25-depth-ready .disciplines__head h2,
  .r25-depth-ready .manifesto h2,
  .r25-depth-ready .method h2,
  .r25-depth-ready .final-cta h2{
    transform:translate3d(0,var(--depth-y,0),var(--depth-z,-28px)) scale(var(--depth-scale,.985));
    filter:blur(var(--depth-blur,1px));
  }
  .r25-depth-ready .discipline{
    transform:translate3d(0,var(--card-y,0),var(--card-z,-16px)) rotateX(var(--card-rx,1deg)) scale(var(--card-scale,.995));
  }
  .r25-depth-ready .discipline__image{transform:translateZ(12px)}
  .r25-depth-ready .discipline__body{transform:translateZ(18px)}
  .r25-depth-ready .office__image{
    transform:translate3d(0,var(--office-y,0),var(--office-z,-24px)) scale(var(--office-scale,1.045));
  }
  .r25-depth-ready .office__copy{transform:translate3d(0,var(--office-copy-y,0),18px)}
}

@media(prefers-reduced-motion:reduce){
  .r25-depth-ready .hero__media,.r25-depth-ready .hero__content,.r25-depth-ready .hero h1,
  .r25-depth-ready .intro h2,.r25-depth-ready .disciplines__head h2,.r25-depth-ready .manifesto h2,
  .r25-depth-ready .method h2,.r25-depth-ready .final-cta h2,.r25-depth-ready .discipline,
  .r25-depth-ready .discipline__image img,.r25-depth-ready .manifesto__copy,.r25-depth-ready .office__image,
  .r25-depth-ready .office__copy,.r25-depth-ready .final-cta__link{transform:none!important;filter:none!important;opacity:1!important}
}
