/* Identidad Cumbra: diseño B seleccionado el 29 de octubre de 2026. */
@font-face{
  font-family:'Archivo';
  src:url('assets/fonts/archivo-variable.ttf') format('truetype');
  font-weight:100 900;
  font-stretch:62% 125%;
  font-style:normal;
  font-display:swap;
}
:root{
  --paper:#fff;
  --ink:#11120f;
  --bronze:#b88451;
  --muted:#535254;
  --line:#dedede;
  --sans:'Archivo',Arial,Helvetica,sans-serif;
  --serif:var(--sans);
}
body{font-weight:400;font-stretch:normal}

/* Editorial project carousel: original Caléa image first, then the portfolio. */
.hero-carousel{margin-inline:24px}
.hero-carousel .hero-visual{margin-inline:0;touch-action:pan-y pinch-zoom;cursor:grab;isolation:isolate}
.hero-carousel .hero-visual:after{display:none}
.hero-carousel .hero-visual.is-dragging{cursor:grabbing;user-select:none}
.hero-track{display:flex;width:100%;height:100%;transition:transform 1.4s cubic-bezier(.65,0,.35,1);will-change:transform}
.hero-slide{flex:0 0 100%;width:100%;height:100%;min-width:0;position:relative;overflow:hidden}
.hero-slide>img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-position);user-select:none;-webkit-user-drag:none}
.hero-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 32%,rgba(17,18,15,.15) 55%,rgba(17,18,15,.72) 100%);pointer-events:none}
.hero-slide .hero-caption{z-index:1;gap:28px}
.hero-slide .hero-caption>div{min-width:0;max-width:75%}
.hero-slide .hero-project{text-align:left;font-size:clamp(28px,3.4vw,44px);line-height:1.12;padding:10px 0 7px}
.hero-name-end{white-space:nowrap}
.hero-slide .hero-project .project-mark{margin-left:.5em;margin-bottom:.12em}
.hero-slide .image-note{flex-shrink:0}
.hero-slide button:focus-visible{outline-color:#fff;outline-offset:3px}
.hero-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;border-bottom:1px solid var(--line)}
.hero-pagination,.hero-dots{display:flex;align-items:center}
.hero-pagination{gap:24px}
.hero-counter{font-size:10px;letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.hero-dots button{width:30px;height:44px;padding:0 5px;display:grid;place-items:center}
.hero-dots span{display:block;width:100%;height:1px;background:#d4d4d4;transition:background-color .2s,transform .2s}
.hero-dots button[aria-pressed=true] span{background:var(--bronze);transform:scaleY(2)}
@media(min-width:1600px){.hero-carousel{max-width:1500px;margin-inline:auto}}
@media(max-width:800px){
  .hero-carousel{margin-inline:14px}
  .hero-slide>img{object-position:var(--hero-position-mobile)}
  .hero-slide .hero-caption{display:block}
  .hero-slide .hero-caption>div{max-width:100%}
  .hero-slide .hero-project{font-size:32px}
  .hero-slide .hero-caption .eyebrow{font-size:8px;letter-spacing:.1em}
  .hero-slide .hero-caption .image-note{display:block;text-align:left;max-width:none;margin-top:12px;padding:0;background:none;font-size:8px}
  .hero-carousel-controls{min-height:58px;gap:8px}
  .hero-pagination{gap:12px}
}
@media(max-width:380px){
  .hero-slide .hero-project{font-size:28px}
}

/* Keep navigation in view with a neutral frosted-glass finish. */
html{scroll-padding-top:120px}
.site-header{
  position:sticky;
  top:0;
  z-index:30;
  background:#fff;
  border-bottom-color:rgba(17,18,15,.08);
  box-shadow:0 5px 24px rgba(17,18,15,.035);
}
.site-header:not(.legal-header){
  --header-expanded:100px;
  --header-size:100px;
  --header-compact:76px;
  --brand-expanded:205px;
  --brand-compact:180px;
  height:var(--header-size);
  /* Preserve the document's flow while the sticky header gets shorter. */
  margin-bottom:calc(var(--header-expanded) - var(--header-size));
  transition:height .28s ease,margin-bottom .28s ease;
}
.site-header:not(.legal-header).is-compact{--header-size:var(--header-compact)}
.site-header:not(.legal-header) .brand{width:var(--brand-expanded);transition:width .28s ease}
.site-header:not(.legal-header).is-compact .brand{width:var(--brand-compact)}
.site-header #main-nav a{
  text-decoration:underline;
  text-decoration-color:transparent;
  text-decoration-thickness:1px;
  text-underline-offset:6px;
  transition:color .2s ease,text-decoration-color .2s ease;
}
.site-header #main-nav a[aria-current="location"]{
  color:#805a36;
  text-decoration-color:var(--bronze);
}
@media(max-width:1100px){
  .site-header:not(.legal-header){--brand-expanded:175px;--brand-compact:155px}
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .site-header{
    background:rgba(255,255,255,.80);
    -webkit-backdrop-filter:blur(20px) saturate(115%);
    backdrop-filter:blur(20px) saturate(115%);
  }
}
@media(max-width:800px){
  html{scroll-padding-top:104px}
  .site-header:not(.legal-header){
    --header-expanded:84px;
    --header-size:84px;
    --header-compact:68px;
    --brand-expanded:172px;
    --brand-compact:152px;
  }
  .site-header #main-nav{
    top:100%;
    background:rgba(255,255,255,.97);
    max-height:calc(100vh - var(--header-size,84px));
    max-height:calc(100dvh - var(--header-size,84px));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}
@media(max-width:380px){
  .site-header:not(.legal-header){--brand-expanded:140px;--brand-compact:132px}
}
@media(prefers-reduced-transparency:reduce){
  .site-header,.site-header #main-nav{background:#fff}
  .site-header{-webkit-backdrop-filter:none;backdrop-filter:none}
}

h1,h2{font-weight:500;letter-spacing:-.035em;line-height:1.08}
h1{font-size:clamp(46px,5vw,74px)}
h2{font-size:clamp(36px,3.9vw,56px)}
em{font-style:normal;font-weight:inherit}
.hero-heading>h1{min-width:0}
.hero-intro{flex-shrink:0}
.hero-project{font-weight:500;letter-spacing:-.035em}
.firm h2,.team h2{font-size:clamp(34px,3.4vw,49px)}
.step-no,.team-disciplines article>span{font-style:normal;font-weight:500;font-variant-numeric:tabular-nums}
.step-no{font-size:17px;letter-spacing:.04em;color:var(--bronze)}
.approach h3{font-size:30px;font-weight:500;letter-spacing:-.025em}
.card-title-row h3{font-size:29px;font-weight:500;letter-spacing:-.035em;line-height:1.2}
.featured .card-title-row h3{font-size:52px}
.card-scale{font-size:22px;font-weight:400;letter-spacing:-.025em;color:var(--ink)}
.team-disciplines h3{font-size:23px;font-weight:500;letter-spacing:-.02em}
.contact h2{font-size:clamp(46px,5.4vw,78px)}
.project-details h2{font-size:42px;font-weight:500;letter-spacing:-.035em}
.note-dialog h2{font-size:39px}
.project-mark,.hero-project .project-mark{width:8px;height:8px}
.card-title-row .project-mark{top:-.04em}

.team,.founder,.featured .card-link,.featured>.project-links{background:#f4f4f4}
.card-photo{background:#ededed}
.gallery{background:#f2f2f2}
.gallery>img{background:#e6e6e6}
.gallery-controls button{border-color:#ccc}
.team-disciplines,.portrait-caption{border-color:var(--line)}
.hero-caption .eyebrow,.hero-index span{color:#fff}
.approach,.site-footer{color:#fff}
.approach .section-heading>p,.approach-grid p,.footer-main p,.footer-bottom{color:#bcbcbc}
.approach-grid article,.footer-bottom{border-color:var(--muted)}
.approach em,.approach .section-label,.review-note{color:var(--bronze)}
.card-image-tag,.card-gallery-count{background:#11120fb8}
.card-category,.project-details .eyebrow,.note-dialog .eyebrow,.filter span,.team-disciplines article>span{color:var(--muted)}
.project-details dl>div:first-child dd{color:var(--ink)}
.project-map{color:var(--ink);border-color:var(--bronze)}
.project-map:hover,.project-links a:hover,.text-link:hover{color:var(--muted);border-color:var(--bronze)}
.site-header nav a:hover{color:var(--muted)}
.back-top:hover{color:#fff}

.office-grid{display:grid;grid-template-columns:1fr 1.55fr;gap:60px;border-top:1px solid var(--line);padding-top:38px;margin-top:54px}
.office-details h3{font-size:27px;font-weight:500;letter-spacing:-.025em;line-height:1.2;margin:18px 0 22px}
.office-details address{font-style:normal;font-size:14px;line-height:1.85;color:var(--muted)}
.office-details>.text-link{margin-top:12px}
.contact-privacy{font-size:11px;line-height:1.75;color:var(--muted);max-width:360px;margin-top:28px}
.contact-privacy a,.office-map figcaption a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--bronze)}
.office-map{margin:0;min-width:0}
.office-map iframe{display:block;width:100%;height:380px;background:#f2f2f2}
.office-map figcaption{display:flex;justify-content:space-between;gap:16px;margin-top:12px;font-size:10px;color:var(--muted)}
.footer-bottom{flex-wrap:wrap;align-items:center}
.footer-links{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.footer-links>a{color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bronze)}
.legal-header .text-link{font-size:12px}
.legal-content{max-width:850px;padding-block:76px 96px}
.legal-content h1{font-size:clamp(38px,4.6vw,60px);margin:22px 0}
.legal-intro{font-size:18px;line-height:1.6;max-width:720px}
.legal-date{font-size:12px;color:var(--muted);margin-top:22px}
.legal-section{margin-top:38px;padding-top:26px;border-top:1px solid var(--line)}
.legal-section h2{font-size:25px;letter-spacing:-.025em;line-height:1.25;margin-bottom:18px}
.legal-section p,.legal-section li{font-size:15px;line-height:1.8;color:var(--muted)}
.legal-section p+p{margin-top:14px}
.legal-section ul{padding-left:21px;margin-block:14px}
.legal-section li+li{margin-top:7px}
.legal-section a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--bronze);overflow-wrap:anywhere}
.legal-section address{font:inherit;font-style:normal;line-height:1.8;color:var(--muted)}
.legal-section strong{font-weight:600;color:var(--ink)}
.legal-footer{background:var(--ink);color:#fff;padding-block:30px}
.legal-footer>.wrap{display:flex;justify-content:space-between;gap:24px;font-size:12px}
.legal-footer a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bronze)}

@media(max-width:1100px){
  h1{font-size:clamp(44px,5.2vw,59px)}
  .featured .card-title-row h3{font-size:46px}
  .card-title-row h3{font-size:27px}
  .approach h3{font-size:28px}
}
@media(max-width:800px){
  .office-grid{gap:32px;grid-template-columns:1fr 1.25fr}
  .office-map iframe{height:390px}
  h1{font-size:clamp(42px,6.3vw,52px)}
  .hero-intro{flex-shrink:1}
  .firm h2,.team h2{font-size:38px}
  .hero-project{font-size:37px}
  .card-title-row h3{font-size:25px}
  .featured .card-title-row h3{font-size:42px}
  .card-scale{font-size:21px}
  .team-disciplines h3{font-size:22px}
  .project-details h2{font-size:38px}
}
@media(max-width:540px){
  .office-grid{grid-template-columns:1fr;gap:32px;margin-top:38px;padding-top:30px}
  .office-details h3{font-size:26px}
  .office-map iframe{height:320px}
  .office-map figcaption{flex-wrap:wrap;gap:5px 15px}
  .contact-privacy{max-width:none}
  .footer-bottom{align-items:start}
  .footer-links{gap:16px;margin-top:5px}
  .legal-content{padding-block:45px 64px}
  .legal-header .brand{width:140px}
  .legal-header .text-link{font-size:11px}
  .legal-content h1{font-size:37px}
  .legal-section h2{font-size:23px}
  .legal-intro{font-size:17px}
  .legal-footer>.wrap{flex-direction:column;gap:12px}
  h1{font-size:clamp(32px,8.9vw,43px);line-height:1.12;letter-spacing:-.04em}
  h2,.firm h2,.team h2{font-size:34px;line-height:1.14}
  .approach h3{font-size:26px}
  .card-title-row h3{font-size:27px}
  .featured .card-title-row h3{font-size:42px}
  .card-scale{font-size:22px}
  .team-disciplines h3{font-size:24px}
  .contact h2{font-size:52px}
  .project-details h2{font-size:34px}
  .note-dialog h2{font-size:32px}
  .back-top{border-top-color:var(--muted)}
}

/* ES / EN: visible in both languages and outside the mobile menu. */
.site-header{gap:28px}
.site-header #main-nav{margin-left:auto}
.header-tools{display:flex;align-items:center;gap:16px;flex-shrink:0}
.language-switch{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:10px;font-weight:500;letter-spacing:.09em;line-height:1.2}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:44px;color:var(--muted);position:relative}
.language-switch span{color:var(--line)}
.language-switch a[aria-current="page"]{color:var(--ink)}
.language-switch a[aria-current="page"]:after{content:'';position:absolute;bottom:9px;left:4px;right:4px;height:1px;background:var(--bronze)}
.language-switch a:hover{color:var(--bronze)}
.legal-header>.text-link{margin-left:auto;white-space:nowrap}
@media(min-width:801px) and (max-width:1100px){
  .site-header{gap:24px}
  .site-header #main-nav{gap:20px}
  .site-header #main-nav .nav-contact{padding-left:20px}
}
@media(max-width:800px){
  .header-tools{margin-left:auto;gap:12px}
  .site-header #main-nav{margin-left:0}
}
@media(max-width:540px){
  .site-header{gap:14px}
  .header-tools{gap:6px}
  .language-switch{gap:4px}
  .legal-header{height:auto;min-height:84px;flex-wrap:wrap;padding-block:16px;gap:8px 16px}
  .legal-header .language-switch{margin-left:auto}
}

@media(max-width:380px){
  .site-header{padding-inline:20px}
  .site-header .brand{width:140px}
  .header-tools{gap:4px}
}
