
:root{
  --ink:#1d1d1b; --paper:#ffffff; --mute:#6a6a66; --line:rgba(29,29,27,.14); --soft:#f2f2f0;
  --pad:clamp(20px,3.2vw,44px); --gap:clamp(16px,2vw,28px);
  --f:'Chivo',"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:400 17px/1.55 var(--f);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.wrap{padding-inline:var(--pad)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ulink{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px;transition:background-size .3s}
.ulink:hover{background-size:0 1px;background-position:100% 100%}

/* ---------- header ---------- */
.hd{position:fixed;inset:0 0 auto 0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .3s;border-bottom:1px solid transparent}
.hd.scrolled{border-color:var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:19px;letter-spacing:-.02em}
.brand img{width:17px;height:auto}
.nav{display:flex;gap:28px;list-style:none}
.nav a{text-decoration:none;font-size:15px}
.nav a:hover{opacity:.55}
.hd-cta{font:500 15px var(--f);background:var(--ink);color:var(--paper);border:0;border-radius:999px;padding:10px 18px;cursor:pointer;display:flex;align-items:center;gap:8px}
.dot{width:7px;height:7px;border-radius:50%;background:#2fb562;display:inline-block;flex:none}
.dot.off{background:#b9b9b4}

/* ---------- hero ---------- */
.hero{padding-top:clamp(120px,16vh,170px)}
.hero-grid{align-items:end;row-gap:0}
.hero h1{grid-column:1/9;grid-row:1;font-weight:500;font-size:clamp(44px,6.6vw,118px);line-height:.94;letter-spacing:-.045em}
@media (min-width:981px){.hero h1 .ln{white-space:nowrap}}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln>span{display:block;animation:rise .9s cubic-bezier(.2,.7,.1,1) both}
.hero h1 .ln:nth-child(2)>span{animation-delay:.08s}
.hero h1 .ln:nth-child(3)>span{animation-delay:.16s}
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
.hero-txt{grid-column:1/6;grid-row:2;margin-top:clamp(32px,4vw,56px);align-self:start}
.hero-txt p{font-size:clamp(17px,1.3vw,19px);color:var(--mute);max-width:36ch}
.hero-txt .acts{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:26px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:500;font-size:15px;border-radius:999px;padding:13px 22px;transition:opacity .2s}
.btn:hover{opacity:.82}
.slider{grid-column:9/-1;grid-row:1/3;align-self:end;position:relative}
.slider .slides{aspect-ratio:4/5}
.slides{position:relative;aspect-ratio:16/10;background:var(--soft);overflow:hidden}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.slides img.on{opacity:1}
.slide-cap{display:flex;justify-content:space-between;gap:16px;margin-top:12px;font-size:14px}
.slide-cap a{text-decoration:none}
.slide-cap .n{color:var(--mute);font-variant-numeric:tabular-nums}

/* ---------- sections ---------- */
.sec{padding-block:clamp(88px,11vw,160px)}
.sec-hd{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:clamp(36px,4vw,56px);border-top:1px solid var(--ink);padding-top:16px}
.sec-hd h2{font-size:clamp(28px,3.4vw,52px);font-weight:500;letter-spacing:-.035em;line-height:1}
.sec-hd a{font-size:15px}

.statement{grid-column:4/-1;font-size:clamp(24px,2.7vw,42px);line-height:1.18;letter-spacing:-.025em;font-weight:400}
.statement em{font-style:normal;color:var(--mute)}
.statement-links{grid-column:4/-1;display:flex;gap:28px;margin-top:36px;font-size:15px}
.label{grid-column:1/4;font-size:15px;color:var(--mute);padding-top:.5em}

/* projects */
.projects{row-gap:clamp(48px,6vw,96px)}
.proj{text-decoration:none;display:block}
.proj:nth-child(4n+1){grid-column:1/8}
.proj:nth-child(4n+2){grid-column:9/-1;margin-top:clamp(60px,10vw,180px)}
.proj:nth-child(4n+3){grid-column:1/6}
.proj:nth-child(4n+4){grid-column:7/-1;margin-top:clamp(40px,6vw,100px)}
.proj figure{overflow:hidden;background:var(--soft);aspect-ratio:4/3}
.proj:nth-child(4n+2) figure,.proj:nth-child(4n+3) figure{aspect-ratio:4/5}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.1,1)}
.proj:hover img{transform:scale(1.035)}
.proj-meta{display:flex;justify-content:space-between;gap:16px;margin-top:14px}
.proj-meta h3{font-size:clamp(19px,1.5vw,22px);font-weight:600;letter-spacing:-.02em}
.proj-meta span{font-size:14px;color:var(--mute);white-space:nowrap;padding-top:4px}
.proj p{margin-top:6px;color:var(--mute);max-width:44ch;font-size:16px}

/* accordion (servicios + faq) */
.acc{grid-column:4/-1;border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font-size:clamp(21px,2vw,30px);font-weight:500;letter-spacing:-.025em;line-height:1.15}
.acc summary::-webkit-details-marker{display:none}
.acc summary .pm{position:relative;width:18px;height:18px;flex:none}
.acc summary .pm::before,.acc summary .pm::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:currentColor;transition:transform .35s}
.acc summary .pm::after{transform:rotate(90deg)}
.acc details[open] summary .pm::after{transform:rotate(0)}
.acc summary:hover{opacity:.6}
.acc .body{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);padding:0 0 30px}
.acc .body p{color:var(--mute);max-width:52ch}
.acc .body .side{font-size:15px}
.acc .body ul{list-style:none;font-size:15px;color:var(--mute)}
.acc .body li{padding:5px 0;border-bottom:1px solid var(--line)}
.acc .body li:last-child{border:0}
.acc .body a{display:inline-block;margin-top:14px;font-size:15px;color:var(--ink)}
.faq .acc summary{font-size:clamp(18px,1.6vw,23px)}
.faq .acc .body{grid-template-columns:1fr}

/* sectores */
.sectors{border-top:1px solid var(--line)}
.sector{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:baseline;padding:clamp(22px,2.6vw,36px) 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .35s}
.sector:hover{padding-left:14px}
.sector h3{grid-column:1/8;font-size:clamp(34px,5.6vw,92px);font-weight:500;letter-spacing:-.045em;line-height:.95}
.sector p{grid-column:8/-1;color:var(--mute);font-size:16px;max-width:40ch}

/* estudio */
.studio-img{grid-column:1/5}
.studio-img figure{aspect-ratio:4/5;background:var(--soft);overflow:hidden}
.studio-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.studio-img figcaption{margin-top:12px;font-size:14px}
.studio-img figcaption span{color:var(--mute);display:block}
.studio-txt{grid-column:6/-1;align-self:end}
.studio-txt p{font-size:clamp(20px,1.9vw,28px);line-height:1.3;letter-spacing:-.015em}
.studio-txt p+p{margin-top:1em}
.studio-txt p.small{font-size:17px;color:var(--mute);letter-spacing:0;line-height:1.55;max-width:52ch}

/* blog */
.posts{border-top:1px solid var(--line)}
.post{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline}
.post time{grid-column:1/3;font-size:14px;color:var(--mute);font-variant-numeric:tabular-nums}
.post h3{grid-column:4/11;font-size:clamp(19px,1.7vw,26px);font-weight:500;letter-spacing:-.02em;line-height:1.2}
.post span{grid-column:11/-1;text-align:right;font-size:14px;color:var(--mute)}
.post:hover h3{opacity:.55}

/* footer contacto */
.ft{background:var(--ink);color:var(--paper);padding-block:clamp(88px,10vw,150px) 32px}
.ft .big{display:block;font-size:clamp(46px,9vw,150px);font-weight:500;letter-spacing:-.05em;line-height:.92;text-decoration:none;max-width:12ch}
.ft .big:hover{opacity:.75}
.ft .cols{margin-top:clamp(64px,8vw,120px);row-gap:36px}
.ft .col{grid-column:span 3;font-size:15px}
.ft .col h4{font-weight:400;color:rgba(255,255,255,.55);margin-bottom:10px;font-size:14px}
.ft .col a{display:block;text-decoration:none;padding:2px 0}
.ft .col a:hover{opacity:.6}
.ft .bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:clamp(64px,8vw,110px);padding-top:18px;border-top:1px solid rgba(255,255,255,.18);font-size:13px;color:rgba(255,255,255,.55)}
.ft .bottom a{text-decoration:none;margin-left:20px}
.ft .bottom a:hover{color:#fff}

/* ---------- panel de contacto ---------- */
.scrim{position:fixed;inset:0;background:rgba(29,29,27,.35);opacity:0;pointer-events:none;transition:opacity .35s;z-index:80}
.panel{position:fixed;top:12px;right:12px;bottom:12px;width:min(420px,calc(100vw - 24px));background:var(--paper);z-index:90;transform:translateX(calc(100% + 24px));transition:transform .5s cubic-bezier(.2,.7,.1,1);display:flex;flex-direction:column;overflow:auto;border-radius:6px}
body.open .scrim{opacity:1;pointer-events:auto}
body.open .panel{transform:none}
.panel-top{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}
.panel-top strong{font-weight:500}
.x{background:none;border:0;font:400 15px var(--f);cursor:pointer;padding:6px}
.person{display:flex;gap:16px;align-items:center;padding:22px}
.person img{width:72px;height:88px;object-fit:cover;background:var(--soft);filter:grayscale(1)}
.person b{display:block;font-weight:600}
.person small{display:block;color:var(--mute);font-size:14px}
.status{display:flex;align-items:center;gap:8px;font-size:14px;margin-top:8px}
.panel-body{padding:4px 22px 22px;display:flex;flex-direction:column;gap:20px;flex:1}
.panel-body h3{font-size:30px;font-weight:500;letter-spacing:-.035em;line-height:1.05}
.panel-body .btn{justify-content:center}
.panel-links{border-top:1px solid var(--line)}
.panel-links a{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:15px}
.panel-links a span{color:var(--mute)}
.panel-links a:hover{opacity:.6}
.panel-foot{font-size:13px;color:var(--mute);margin-top:auto}

.panel-nav{display:none;padding:18px 22px 6px;border-bottom:1px solid var(--line)}
.panel-nav a{display:block;font-size:30px;font-weight:500;letter-spacing:-.035em;line-height:1.25;text-decoration:none}
.lbl-m{display:none}
.sector{align-items:center}
/* ---------- responsive ---------- */
@media (max-width:980px){
  .nav{display:none}
  .hero-txt,.slider,.statement,.statement-links,.label,.acc,.studio-img,.studio-txt{grid-column:1/-1}
  .hero h1,.hero-txt,.slider{grid-row:auto;grid-column:1/-1}
  .panel-nav{display:block}
  .lbl-d{display:none}
  .lbl-m{display:inline}
  .slider{margin-top:40px}
  .slider .slides{aspect-ratio:16/10}
  .label{margin-bottom:18px}
  .proj:nth-child(n){grid-column:1/-1;margin-top:0}
  .proj:nth-child(n) figure{aspect-ratio:4/3}
  .sector h3,.sector p{grid-column:1/-1}
  .sector p{margin-top:8px}
  .studio-img{max-width:420px;margin-bottom:36px}
  .post time{grid-column:1/-1;margin-bottom:6px}
  .post h3{grid-column:1/-1}
  .post span{display:none}
  .ft .col{grid-column:span 6}
  .acc .body{grid-template-columns:1fr}
}
@media (max-width:520px){
  .ft .col{grid-column:1/-1}
  .ft .bottom a{margin:0 16px 0 0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ===== componentes para el resto de páginas ===== */
.hd .nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}
.crumbs{font-size:14px;color:var(--mute);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink)}

/* cabecera de página interior */
.phero{padding-top:clamp(120px,15vh,160px);padding-bottom:clamp(56px,7vw,96px)}
.phero .over{font-size:15px;color:var(--mute);margin-bottom:22px;display:block}
.phero h1{font-weight:500;font-size:clamp(40px,6.2vw,108px);line-height:.96;letter-spacing:-.045em;max-width:16ch;animation:fade .8s cubic-bezier(.2,.7,.1,1) both}
@keyframes fade{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.phero-low{margin-top:clamp(32px,4vw,56px);align-items:start}
.phero-low .lead{grid-column:1/7;font-size:clamp(18px,1.5vw,22px);line-height:1.45;color:var(--mute);max-width:46ch}
.phero-low .lead p+p{margin-top:.8em}
.phero-low .side{grid-column:8/-1}
.phero-low .acts{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:28px}
.checks{list-style:none;font-size:16px}
.checks li{padding:12px 0;border-bottom:1px solid var(--line)}
.checks li:first-child{border-top:1px solid var(--line)}

/* bloques genéricos */
.block{padding-bottom:clamp(80px,9vw,140px)}
.block .lbl{grid-column:1/4;font-size:15px;color:var(--mute);padding-top:.35em}
.block .content{grid-column:4/-1}
.block .intro{font-size:clamp(20px,1.9vw,28px);line-height:1.3;letter-spacing:-.015em;max-width:40ch}
.block .intro p+p{margin-top:.8em}
.block .intro em{font-style:normal}
.block .intro .mute,.block .intro p:not(:first-child){color:var(--mute)}
.block .acts{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:28px}
.block figure.wide{grid-column:1/-1;margin-top:40px;background:var(--soft)}
.rows{border-top:1px solid var(--line);margin-top:40px}
.block .intro + .rows{margin-top:44px}
.row{display:grid;grid-template-columns:repeat(9,1fr);column-gap:var(--gap);padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none}
.row .n{grid-column:1/2;font-size:14px;color:var(--mute);font-variant-numeric:tabular-nums;padding-top:.3em}
.row h3{grid-column:2/5;font-size:clamp(19px,1.6vw,24px);font-weight:500;letter-spacing:-.02em;line-height:1.2}
.row .d{grid-column:5/-1;color:var(--mute);font-size:16px}
.row .d p+p{margin-top:.6em}
.row .d ul{list-style:none;margin-top:10px;font-size:15px}
.row .d li{padding:4px 0}
.row .d li::before{content:"– ";color:var(--mute)}
.row.no-n h3{grid-column:1/5}
.row.only-d .d{grid-column:2/-1;color:var(--ink);font-size:17px}
.row.only-d.no-n .d{grid-column:1/-1}
a.row:hover h3{opacity:.55}
.row .more{display:inline-block;margin-top:10px;font-size:15px;color:var(--ink)}
.block .acc{grid-column:auto}

/* CTA de cierre */
.cta{padding-block:clamp(80px,10vw,150px);border-top:1px solid var(--ink)}
.cta h2{font-size:clamp(34px,5vw,84px);font-weight:500;letter-spacing:-.045em;line-height:.98;max-width:18ch}
.cta p{margin-top:24px;color:var(--mute);max-width:52ch;font-size:clamp(17px,1.3vw,20px)}
.cta .acts{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:32px}

/* formulario */
.form{display:grid;gap:12px}
.form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{width:100%;font:400 16px var(--f);color:var(--ink);background:var(--paper);border:0;border-bottom:1px solid var(--ink);padding:14px 0;border-radius:0;appearance:none}
.field:focus{outline:none;border-bottom-width:2px}
select.field{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231d1d1b'/%3E%3C/svg%3E") no-repeat right 4px center}
.field-textarea{min-height:120px;resize:vertical}
.form-submit{margin-top:18px;display:grid;gap:12px;justify-items:start}
.form-submit button{border:0;cursor:pointer;font:500 15px var(--f)}
.form-submit p{font-size:14px;color:var(--mute)}

/* artículo */
.ahero{padding-top:clamp(120px,15vh,160px)}
.ahero h1{grid-column:1/11;font-weight:500;font-size:clamp(36px,5vw,84px);line-height:1;letter-spacing:-.04em}
.ameta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:32px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--mute)}
.ameta b{color:var(--ink);font-weight:500}
.acover{margin-top:clamp(40px,5vw,72px);background:var(--soft);aspect-ratio:16/8;overflow:hidden}
.acover img{width:100%;height:100%;object-fit:cover}
.prose-wrap{padding-block:clamp(56px,7vw,100px)}
.prose{grid-column:4/11;font-size:18px;line-height:1.7}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(26px,2.4vw,36px);font-weight:500;letter-spacing:-.03em;line-height:1.15;margin-top:2.2em}
.prose h3{font-size:clamp(20px,1.7vw,24px);font-weight:600;letter-spacing:-.02em;line-height:1.25;margin-top:1.8em}
.prose h2+*,.prose h3+*{margin-top:.6em}
.prose ul,.prose ol{padding-left:1.2em}
.prose li+li{margin-top:.4em}
.prose a{text-underline-offset:3px}
.prose strong{font-weight:600}
.prose blockquote{font-size:clamp(22px,2.1vw,30px);line-height:1.3;letter-spacing:-.02em;border-left:2px solid var(--ink);padding-left:24px;margin-block:1.6em}
.prose figure{margin-block:2em}
.prose figure img{width:100%}
.prose figcaption{font-size:14px;color:var(--mute);margin-top:10px}
.prose .table-x{overflow-x:auto}
.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45}
.prose th,.prose td{text-align:left;padding:12px 14px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{font-weight:600}
.prose .card-list{border-top:1px solid var(--line);margin-top:1.4em}
.prose .card-list>div{padding:16px 0;border-bottom:1px solid var(--line)}
.prose .card-list b{display:block;font-weight:600}
.prose .card-list span{color:var(--mute);display:block}
.prose .ficha{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--gap);border-top:1px solid var(--line)}
.prose .ficha>div{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.prose .ficha b{display:block;font-weight:400;color:var(--mute);font-size:14px}
.author{grid-column:4/11;display:flex;gap:16px;align-items:center;border-top:1px solid var(--line);padding-top:24px;margin-top:56px;font-size:15px}
.author img{width:56px;height:56px;object-fit:cover;filter:grayscale(1);background:var(--soft)}
.author span{color:var(--mute);display:block;font-size:14px}
.pager{grid-column:1/-1;display:flex;justify-content:space-between;gap:24px;margin-top:40px;font-size:15px}

/* proyecto */
.pjhero{padding-top:clamp(110px,14vh,150px)}
.pjhero .top{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.pjhero h1{font-weight:500;font-size:clamp(48px,9vw,160px);line-height:.9;letter-spacing:-.055em}
.pjhero .yr{font-size:15px;color:var(--mute);padding-bottom:12px}
.pjimg{margin-top:clamp(28px,3vw,44px);background:var(--soft);aspect-ratio:16/8;overflow:hidden}
.pjimg img{width:100%;height:100%;object-fit:cover}
.strip{display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--gap);margin-top:20px;font-size:15px}
.strip div{border-top:1px solid var(--ink);padding-top:12px}
.strip b{display:block;font-weight:400;color:var(--mute);font-size:14px;margin-bottom:4px}
.pjsec{padding-top:clamp(64px,8vw,120px)}
.pjsec .lbl{grid-column:1/4;font-size:15px;color:var(--mute);padding-top:.4em}
.pjsec .txt{grid-column:4/11;font-size:18px;line-height:1.65}
.pjsec .txt>*+*{margin-top:1em}
.pjsec .txt .big{font-size:clamp(22px,2.3vw,34px);line-height:1.22;letter-spacing:-.02em}
.gallery{padding-top:clamp(64px,8vw,120px);columns:2;column-gap:var(--gap)}
.gallery figure{break-inside:avoid;margin-bottom:var(--gap);background:var(--soft);cursor:zoom-in}
.gallery figure.full{column-span:all}
.gallery img{width:100%}
.next{display:block;text-decoration:none;padding-block:clamp(72px,9vw,140px);border-top:1px solid var(--ink);margin-top:clamp(72px,9vw,140px)}
.next span{font-size:15px;color:var(--mute)}
.next b{display:block;font-weight:500;font-size:clamp(44px,8vw,140px);letter-spacing:-.05em;line-height:.95;margin-top:10px}
.next:hover b{opacity:.55}
.lb{position:fixed;inset:0;background:rgba(255,255,255,.97);z-index:100;display:none;align-items:center;justify-content:center;padding:56px 20px 20px}
.lb.on{display:flex}
.lb img{max-height:100%;max-width:100%;object-fit:contain}
.lb button{position:absolute;top:16px;right:20px;background:none;border:0;font:400 15px var(--f);cursor:pointer}

/* listados */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:40px}
.filters button{font:400 15px var(--f);border:1px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:999px;padding:8px 16px;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(48px,6vw,88px) var(--gap)}
.pgrid .proj:nth-child(n){grid-column:auto;margin-top:0}
.pgrid .proj:nth-child(even){margin-top:clamp(0px,8vw,120px)}
.pgrid .proj figure{aspect-ratio:4/3}
.pgrid .proj[hidden]{display:none}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px var(--gap)}
.bcard{text-decoration:none;display:block}
.bcard figure{aspect-ratio:4/3;background:var(--soft);overflow:hidden}
.bcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.1,1)}
.bcard:hover img{transform:scale(1.035)}
.bcard .m{font-size:14px;color:var(--mute);margin-top:14px;display:flex;justify-content:space-between}
.bcard h3{font-size:clamp(19px,1.5vw,22px);font-weight:500;letter-spacing:-.02em;line-height:1.25;margin-top:6px}
.bcard p{color:var(--mute);font-size:15px;margin-top:8px}

/* legales y 404 */
.legal .prose{grid-column:1/9}
.e404 h1{font-size:clamp(120px,24vw,360px);font-weight:500;letter-spacing:-.06em;line-height:.85}

/* cookies con la estética del sitio */
.cc-banner{font-family:var(--f)!important;border-radius:6px!important;background:var(--ink)!important;box-shadow:none!important}
.cc-button{font-family:var(--f)!important}
.cc-settings{font-family:var(--f)!important;background:var(--ink)!important}

@media (max-width:980px){
  .phero-low .lead,.phero-low .side,.block .lbl,.block .content,.prose,.author,.ahero h1,.pjsec .lbl,.pjsec .txt,.legal .prose{grid-column:1/-1}
  .phero-low .side{margin-top:32px}
  .block .lbl,.pjsec .lbl{margin-bottom:16px}
  .row{grid-template-columns:1fr;row-gap:6px}
  .row .n,.row h3,.row .d,.row.no-n h3,.row.only-d .d{grid-column:1/-1}
  .strip{grid-template-columns:1fr;row-gap:14px}
  .gallery{columns:1}
  .pgrid{grid-template-columns:1fr}
  .pgrid .proj:nth-child(even){margin-top:0}
  .bgrid{grid-template-columns:1fr 1fr}
  .form .form-row{grid-template-columns:1fr}
  .prose .ficha{grid-template-columns:1fr}
}
@media (max-width:600px){.bgrid{grid-template-columns:1fr}}
.prose .callout{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:22px 0;font-size:19px;line-height:1.5}
.prose .callout>*+*{margin-top:.6em}
.prose .lead{font-size:clamp(20px,1.7vw,24px);line-height:1.45;letter-spacing:-.01em}
.prose .img-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.prose img{background:var(--soft)}
.prose .card-list .ci{padding:16px 0;border-bottom:1px solid var(--line)}
.block .intro p:not(:first-child){font-size:18px;line-height:1.6;letter-spacing:0;max-width:62ch}
.block .intro p:first-child{max-width:34ch}
