/* ===================================================================
   PUREDEF — interior pages (blog, products, content pages)
   Builds on styles.css tokens.
   =================================================================== */

/* ---- subpage header: always solid ---- */
.subpage .site-header{
  background:oklch(0.99 0.004 250 / .86);
  backdrop-filter:blur(14px) saturate(1.4);
  border-color:var(--line);
  box-shadow:0 10px 30px -24px oklch(0.3 0.12 264 / .5);
}
.subpage .brand-logo--light{ display:none; }
.subpage .brand-logo--dark{ display:block; }
.subpage .nav a{ color:var(--ink-soft); }
.subpage .nav a:hover{ color:var(--blue-700); background:var(--ice); }
.subpage .nav a[aria-current="page"]{ color:var(--blue-700); background:var(--ice); }
.subpage .ghost-phone{ color:var(--ink-soft); }
.subpage .ghost-phone:hover{ color:var(--blue-700); }
.subpage .burger span{ background:var(--ink); }
.subpage-main{ padding-top:calc(74px + clamp(12px, 1.6vw, 22px)); }

/* ---- page head ---- */
.page-head{ background:var(--ice); border-bottom:1px solid var(--line); }
.page-head .shell{ padding-block:clamp(2.6rem,6vw,4.6rem); }
.crumbs{ display:flex; flex-wrap:wrap; gap:.25rem .5rem; align-items:center; font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:1.4rem; }
.crumbs a{ color:var(--ink-faint); padding-block:.35rem; transition:color .2s; }
.crumbs a:hover{ color:var(--blue-700); }
.crumbs span[aria-hidden]{ color:var(--blue-400); }
.crumbs [aria-current]{ color:var(--ink-soft); min-width:0; max-width:46ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.page-title{ font-family:var(--display); font-weight:800; letter-spacing:-.03em; line-height:1.02; font-size:clamp(2.1rem,5vw,3.6rem); color:var(--ink); max-width:18ch; text-wrap:balance; }
.page-lead{ margin-top:1.1rem; max-width:60ch; color:var(--ink-soft); font-size:clamp(1.02rem,1.4vw,1.18rem); }

/* ===================== PROSE ===================== */
.prose{ max-width:70ch; margin-inline:auto; color:var(--ink); }
.prose > * + *{ margin-top:1.25em; }
.prose p{ color:var(--ink); font-size:1.08rem; line-height:1.75; }
.prose h2{ font-family:var(--display); font-weight:700; letter-spacing:-.02em; font-size:clamp(1.5rem,3vw,2rem); line-height:1.15; margin-top:2.6em; color:var(--profundo); }
.prose h3{ font-family:var(--display); font-weight:600; letter-spacing:-.01em; font-size:clamp(1.25rem,2.2vw,1.5rem); margin-top:2em; color:var(--profundo); }
.prose h4{ font-family:var(--display); font-weight:600; font-size:1.14rem; margin-top:1.7em; color:var(--profundo); }
.prose h2 + p, .prose h3 + p, .prose h4 + p{ margin-top:.7em; }
.prose ul, .prose ol{ padding-left:1.35em; color:var(--ink); }
.prose li{ margin-top:.55em; line-height:1.7; }
.prose li::marker{ color:var(--nucleo); }
.prose a{ color:var(--nucleo); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; font-weight:500; }
.prose strong{ font-weight:600; color:var(--profundo); }
.prose img{ border-radius:var(--r); margin-block:1.8em; border:1px solid var(--line); }
.prose blockquote{ margin-block:1.7em; background:var(--ice); border:1px solid var(--line); border-radius:var(--r); padding:1.2em 1.4em; font-family:var(--display); font-weight:500; font-size:1.16rem; line-height:1.5; color:var(--profundo); }
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--r); }
.prose .table-scroll{ margin-top:1.4em; }
.prose table{ width:100%; min-width:520px; border-collapse:collapse; font-size:.96rem; }
.prose th, .prose td{ border:1px solid var(--line); padding:.7em .9em; text-align:left; }
.prose th{ background:var(--ice); font-family:var(--mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--profundo); }
.prose hr{ border:0; border-top:1px solid var(--line); margin-block:2.4em; }

/* article-only reading enhancements (colors + hierarchy + easier to read) */
.article-wrap .prose{ max-width:68ch; }
.article-wrap .prose p{ font-size:1.13rem; line-height:1.8; }
.article-wrap .prose > p:first-of-type{ font-size:1.3rem; line-height:1.6; color:var(--profundo); }
.article-wrap .prose h2{ padding-top:.15em; }
.article-wrap .prose h2::before{ content:""; display:block; width:2.4rem; height:3px; background:var(--nucleo); border-radius:3px; margin-bottom:.8rem; }
.article-wrap .prose ul li::marker{ font-size:1.05em; }

/* ===================== ARTICLE ===================== */
.article-wrap{ padding-block:clamp(2.6rem,6vw,4.5rem); }
.article-head{ max-width:72ch; margin-inline:auto; margin-bottom:2.4rem; }
.article-cat{ font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-700); }
.article-title{ font-family:var(--display); font-weight:800; letter-spacing:-.025em; line-height:1.08; font-size:clamp(1.9rem,4.2vw,3rem); margin:1rem 0 .9rem; text-wrap:balance; }
.article-meta{ display:flex; gap:1.2rem; flex-wrap:wrap; font-size:.9rem; color:var(--ink-faint); font-family:var(--mono); letter-spacing:.02em; }
.article-divider{ height:1px; background:var(--line); max-width:72ch; margin:0 auto 2.4rem; }
.article-head .crumbs{ margin-bottom:1.6rem; }
/* contextual conversion at the end of every article */
.article-cta{ max-width:68ch; margin:3rem auto 0; padding:clamp(1.4rem,3vw,1.9rem) clamp(1.4rem,3vw,2rem); border-radius:var(--r-lg); background:var(--ice); border:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:.3rem 1.5rem; align-items:center; }
.article-cta-k{ grid-column:1; font-family:var(--mono); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--nucleo); }
.article-cta-t{ grid-column:1; font-family:var(--display); font-weight:700; font-size:clamp(1.15rem,2vw,1.35rem); letter-spacing:-.01em; color:var(--ink); }
.article-cta .btn{ grid-column:2; grid-row:1 / span 2; }
@media (max-width:620px){ .article-cta{ grid-template-columns:1fr; } .article-cta .btn{ grid-column:1; grid-row:auto; margin-top:.8rem; justify-self:start; } }

/* ===================== BLOG INDEX ===================== */
.blog-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(320px,100%),1fr)); gap:clamp(1.2rem,2.4vw,1.8rem); }
.post-card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--paper); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s; }
.post-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--blue-300); }
.post-card-fig{ aspect-ratio:16/10; overflow:hidden; background:var(--ice); border-bottom:1px solid var(--line); }
.post-card-fig img{ width:100%; height:100%; object-fit:cover; transition:transform .55s var(--ease); }
.post-card:hover .post-card-fig img{ transform:scale(1.05); }
.post-card-body{ display:flex; flex-direction:column; flex:1; padding:1.4rem 1.5rem 1.4rem; }
.post-card-cat{ font-family:var(--mono); font-size:.7rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-700); margin-bottom:.8rem; }
.post-card h3{ font-family:var(--display); font-weight:600; font-size:1.16rem; line-height:1.25; letter-spacing:-.01em; color:var(--ink); }
.post-card p{ margin-top:.6rem; color:var(--ink-soft); font-size:.92rem; line-height:1.55; }
.post-card-go{ margin-top:auto; padding-top:1.2rem; font-family:var(--mono); font-size:.76rem; font-weight:600; color:var(--blue-700); }
.article-hero{ max-width:60rem; margin:0 auto 2.6rem; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/7; background:var(--ice); }
.article-hero img{ width:100%; height:100%; object-fit:cover; display:block; }

/* featured article (blog index) */
.post-feature{
  display:grid; grid-template-columns:1.05fr .95fr; border:1px solid var(--line); border-radius:var(--r-lg);
  overflow:hidden; background:var(--paper); margin-bottom:clamp(1.8rem,3.5vw,2.8rem);
  transition:box-shadow .4s var(--ease), border-color .3s;
}
.post-feature:hover{ box-shadow:var(--shadow); border-color:var(--blue-300); }
.post-feature-fig{ min-height:300px; background:var(--ice); }
.post-feature-fig img{ width:100%; height:100%; object-fit:cover; display:block; }
.post-feature-body{ padding:clamp(1.6rem,3.5vw,2.8rem); display:flex; flex-direction:column; align-items:flex-start; gap:.9rem; }
.post-feature-tag{ font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-700); }
.post-feature h2{ font-family:var(--display); font-weight:700; font-size:clamp(1.5rem,2.9vw,2.15rem); line-height:1.12; letter-spacing:-.02em; color:var(--ink); text-wrap:balance; }
.post-feature p{ color:var(--ink-soft); line-height:1.6; max-width:56ch; }
.post-feature .post-card-go{ margin-top:auto; padding-top:.8rem; font-family:var(--mono); font-size:.78rem; font-weight:600; color:var(--blue-700); }
.post-feature:hover .post-card-go{ color:var(--potencia); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:820px){ .post-feature{ grid-template-columns:1fr; } .post-feature-fig{ min-height:0; aspect-ratio:16/9; } }

/* filter chips */
.blog-filter{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.4rem; }
.chip{ font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; padding:.5em 1em; min-height:36px; border-radius:100px; border:1px solid var(--line); color:var(--ink-soft); background:var(--paper); cursor:pointer; transition:background .25s, color .25s, border-color .25s; }
@media (pointer:coarse){ .chip{ min-height:44px; padding-inline:1.1em; } }
.chip:hover{ border-color:var(--blue-300); color:var(--blue-700); }
.chip.is-active{ background:var(--blue-700); border-color:var(--blue-700); color:var(--on-blue); }
.is-hidden{ display:none !important; }

/* ===================== PRODUCTS ===================== */
/* comparison table (/productos/) */
.compare{ width:100%; min-width:760px; border-collapse:collapse; font-size:.96rem; }
.compare th, .compare td{ text-align:left; vertical-align:top; padding:1rem 1.1rem 1rem 0; border-bottom:1px solid var(--line); }
.compare thead th{ font-family:var(--mono); font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); padding-top:0; }
.compare tbody th{ font-family:var(--display); font-weight:700; white-space:nowrap; }
.compare tbody th a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:4px; }
.compare tbody th a:hover{ color:var(--nucleo); text-decoration-color:currentColor; }
.compare td{ color:var(--ink-soft); }
.compare td:nth-child(3){ color:var(--profundo); font-weight:600; white-space:nowrap; }
.compare td:nth-child(2){ white-space:nowrap; }
.compare-note{ margin-top:1.2rem; color:var(--ink-soft); }
.compare-note a{ color:var(--nucleo); font-weight:600; text-decoration:underline; text-underline-offset:3px; }

/* the scale, compact (product pages): the current presentation is marked */
.scale--compact{ --fig-h:clamp(120px, 13vw, 170px); }
.scale-step.is-current .scale-name{ color:var(--nucleo); }
.scale-step.is-current .scale-tick::before{ background:var(--nucleo); height:16px; top:-7px; }
.scale-step.is-current .scale-range{ background:var(--nucleo); border-color:var(--nucleo); color:#fff; }
.section-head--tight{ margin-bottom:1.6rem; }

/* ===================== PRODUCT DETAIL (redesign) ===================== */
.prod-hero{ background:var(--ice); border-bottom:1px solid var(--line); }
.prod-hero + .strip{ border-top:0; }   /* avoid double hairline */
.prod-hero .shell{ padding-block:1.4rem clamp(2.4rem,5vw,4rem); }
.prod-hero .crumbs{ margin-bottom:clamp(1.4rem,3vw,2.2rem); }
.prod-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.prod-hero-title{ font-family:var(--display); font-weight:800; letter-spacing:-.03em; line-height:1; font-size:clamp(2.6rem,6vw,4.4rem); color:var(--ink); margin:.5rem 0 .9rem; text-wrap:balance; }
.prod-hero-sub{ display:block; margin-top:.35em; font-size:.4em; font-weight:600; letter-spacing:-.01em; line-height:1.2; color:var(--ink-soft); }
.prod-note{ margin-top:1.1rem; font-size:.9rem; color:var(--ink-soft); }
.prod-note a{ color:var(--nucleo); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.prod-about-title{ font-family:var(--display); font-weight:700; font-size:clamp(1.3rem,2.4vw,1.6rem); letter-spacing:-.015em; color:var(--profundo); margin-bottom:.4rem; }
.spec-val--sm{ font-size:1.02rem; font-weight:600; line-height:1.35; letter-spacing:0; }
.prod-hero-lead{ font-size:clamp(1.05rem,1.6vw,1.24rem); color:var(--ink-soft); max-width:42ch; line-height:1.5; }
/* personalized fit (arrives with ?u=&km=&t= from the calculator) */
.prod-fit{
  margin-top:1.2rem; padding:.95rem 1.15rem; max-width:46ch;
  border:1px solid var(--blue-300); background:#EEF3FF; border-radius:var(--r);
  font-size:.95rem; line-height:1.55; color:var(--ink);
}
.prod-fit strong{ color:var(--profundo); display:block; margin-bottom:.15rem; }
.prod-fit a{ display:inline-block; margin-top:.4rem; color:var(--nucleo); font-weight:600; text-decoration:underline; text-underline-offset:3px; }

.prod-chips{ display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:1.6rem 0 1.8rem; }
.prod-chips li{ font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-700); background:var(--paper); border:1px solid var(--line); padding:.55em 1em; border-radius:100px; }
.prod-hero-actions{ display:flex; flex-wrap:wrap; gap:.8rem; }
.prod-hero-fig{ position:relative; aspect-ratio:1/1; display:grid; place-items:center; }
.prod-hero-fig::before{ content:""; position:absolute; width:72%; height:72%; top:40%; left:50%; translate:-50% -50%; background:radial-gradient(circle, rgba(0,75,255,.18), transparent 70%); filter:blur(8px); }
.prod-hero-fig img{ position:relative; z-index:1; max-height:94%; max-width:90%; width:auto; object-fit:contain; filter:drop-shadow(0 36px 44px rgba(0,36,124,.30)); }
@media (max-width:860px){ .prod-hero-grid{ grid-template-columns:1fr; gap:1.4rem; } .prod-hero-fig{ order:-1; aspect-ratio:4/3; max-width:420px; margin-inline:auto; } }

.prod-body{ display:grid; grid-template-columns:1.5fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.prod-about .prose{ max-width:none; margin:0; }
.prod-about .prose > *:first-child{ margin-top:.4rem; }
.prod-benefits{ background:var(--ice); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.6rem,3vw,2rem); position:sticky; top:100px; }
.prod-benefits h2{ font-family:var(--display); font-weight:700; font-size:1.3rem; letter-spacing:-.01em; margin-bottom:1.2rem; }
.prod-benefits ul{ list-style:none; padding:0; display:flex; flex-direction:column; gap:.95rem; margin-bottom:1.6rem; }
.prod-benefits li{ display:grid; grid-template-columns:22px 1fr; gap:.7rem; align-items:start; color:var(--ink); font-size:.98rem; line-height:1.4; }
.prod-benefits li::before{ content:"✓"; width:22px; height:22px; border-radius:50%; background:var(--nucleo); color:#fff; display:grid; place-items:center; font-size:.72rem; font-weight:700; }
@media (max-width:860px){ .prod-body{ grid-template-columns:1fr; } .prod-benefits{ position:static; } }

/* customer reviews (product pages) */
.rev-carousel{ overflow:hidden; cursor:grab; touch-action:pan-y; }
.rev-carousel.grabbing{ cursor:grabbing; }
.rev-carousel.grabbing .rev-track{ user-select:none; }
.rev-track{ display:flex; gap:1.4rem; will-change:transform; }
.rev-card{ flex:0 0 calc((100% - 2.8rem)/3); display:flex; flex-direction:column; gap:1rem; background:var(--ice); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.6rem 1.5rem; user-select:none; }
@media (max-width:980px){ .rev-track{ gap:1.1rem; } .rev-card{ flex-basis:calc((100% - 1.1rem)/2); } }
@media (max-width:640px){ .rev-card{ flex-basis:100%; } }
@media (prefers-reduced-motion: reduce){ .rev-carousel{ overflow:visible; } .rev-track{ flex-wrap:wrap; transform:none !important; } }
.rev-who{ display:flex; flex-direction:column; }
.rev-who strong{ font-weight:600; color:var(--ink); }
.rev-who > span{ font-size:.82rem; color:var(--ink-soft); }
.rev-card blockquote{ color:var(--ink); line-height:1.55; font-size:.97rem; flex:1; }
.rev-tag{ align-self:flex-start; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-700); background:var(--paper); border:1px solid var(--line); padding:.4em .75em; border-radius:100px; }

/* ===================== FAQ ===================== */
.faq{ max-width:60rem; margin-inline:auto; }
.faq-toc{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:clamp(1.8rem,4vw,2.6rem); }
.faq-toc a{ font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; padding:.55em 1em; min-height:36px; display:inline-flex; align-items:center; border-radius:100px; border:1px solid var(--line); color:var(--ink-soft); transition:border-color .25s, color .25s; }
.faq-toc a:hover{ border-color:var(--blue-300); color:var(--blue-700); }
.faq-cat{ scroll-margin-top:100px; }
.faq-cat{ margin-top:clamp(2rem,4vw,2.8rem); }
.faq-cat:first-child{ margin-top:0; }
.faq-cat h2{ font-family:var(--display); font-weight:700; letter-spacing:-.01em; font-size:1.3rem; margin:0 0 1rem; color:var(--blue-700); }
.faq details{ border:1px solid var(--line); border-radius:var(--r); background:var(--paper); margin-top:.7rem; overflow:hidden; transition:border-color .3s, box-shadow .3s; }
.faq details[open]{ border-color:var(--blue-300); box-shadow:var(--shadow); }
.faq summary{ list-style:none; cursor:pointer; padding:1.1rem 1.4rem; font-family:var(--display); font-weight:500; font-size:1.06rem; color:var(--ink); display:flex; justify-content:space-between; gap:1rem; align-items:center; transition:color .2s; }
.faq summary:hover{ color:var(--nucleo); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+" / ""; font-family:var(--body); font-weight:400; font-size:1.5rem; color:var(--blue-500); transition:color .25s; line-height:1; flex:none; }
.faq details[open] summary::after{ content:"−" / ""; color:var(--nucleo); }
.faq-a{ padding:0 1.4rem 1.35rem; color:var(--ink-soft); line-height:1.65; }
.faq-a p{ margin:0; }
.faq-a p + p, .faq-a ul + p, .faq-a p + ul{ margin-top:.7em; }
.faq-a ul{ margin:.6em 0 0; padding-left:1.25em; }
.faq-a li{ margin-top:.32em; }
.faq-a li::marker{ color:var(--blue-400); }
.faq-a strong{ color:var(--ink); font-weight:600; }

/* ===================== NOSOTROS ===================== */
.steps{ list-style:none; counter-reset:step; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.2rem,2.6vw,2rem); }
.steps li{ counter-increment:step; border-top:2px solid var(--profundo); padding-top:1.1rem; }
.steps li::before{ content:counter(step, decimal-leading-zero); display:block; font-family:var(--mono); font-size:.8rem; font-weight:600; color:var(--nucleo); margin-bottom:.6rem; }
.steps h3{ font-family:var(--display); font-weight:700; font-size:1.15rem; letter-spacing:-.01em; margin-bottom:.45rem; }
.steps p{ color:var(--ink-soft); font-size:.96rem; line-height:1.55; }
@media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .steps{ grid-template-columns:1fr; } }

.pad--ice{ background:var(--ice); border-block:1px solid var(--line); }
.sectors{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,3vw,2.4rem); }
.sector-k{ font-family:var(--mono); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--nucleo); margin-bottom:.5rem; }
.sector h3{ font-family:var(--display); font-weight:700; font-size:1.25rem; letter-spacing:-.01em; margin-bottom:.45rem; }
.sector p{ color:var(--ink-soft); font-size:.96rem; line-height:1.55; }
@media (max-width:820px){ .sectors{ grid-template-columns:1fr; } }

.values-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:1.4rem; margin-top:1.6rem; }
.value{ border-top:2px solid var(--ink); padding-top:1.2rem; }
.value h3{ font-family:var(--display); font-weight:600; font-size:1.2rem; margin-bottom:.5rem; }
.value p{ color:var(--ink-soft); font-size:.96rem; }

.company-wrap{ margin-top:clamp(2.4rem,5vw,3.6rem); }
.company, .contact-facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:0 clamp(1.2rem,3vw,2.4rem); margin:1.2rem 0 0; }
.company div, .contact-facts div{ border-top:1px solid var(--line); padding:1rem 0 1.2rem; }
.company dt, .contact-facts dt{ font-family:var(--mono); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--nucleo); margin-bottom:.35rem; }
.company dd, .contact-facts dd{ margin:0; color:var(--ink); line-height:1.5; }
.company a, .contact-facts a{ color:var(--nucleo); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.contact-facts{ margin-top:0; }
.pad--short{ padding-block:clamp(1.6rem,4vw,2.6rem); }
.btn-row{ display:flex; gap:.8rem; flex-wrap:wrap; }

/* ===================== TESTIMONIOS ===================== */
.tgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(320px,100%),1fr)); gap:clamp(1.2rem,2.4vw,1.6rem); }
.tcard{ display:flex; flex-direction:column; gap:1.2rem; border-top:2px solid var(--profundo); padding-top:1.3rem; }
.tcard blockquote{ font-family:var(--display); font-weight:500; font-size:1.12rem; line-height:1.45; letter-spacing:-.01em; color:var(--ink); flex:1; }
.tcard-who{ display:flex; flex-direction:column; }
.tcard-who strong{ font-weight:600; color:var(--ink); }
.tcard-who > span{ font-size:.88rem; color:var(--ink-soft); }
.tcard-tag{ align-self:flex-start; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-700); background:var(--ice); border:1px solid var(--line); padding:.4em .75em; border-radius:100px; }

/* shared section container for interiors */
.pad{ padding-block:clamp(2.6rem,6vw,4.6rem); }
.pad--rule{ border-top:1px solid var(--line); }
.section-title--sm{ font-size:clamp(1.4rem,3vw,1.9rem); }
.measure{ max-width:72ch; margin-inline:auto; }

/* review carousel controls: pause + dots */
.rev-controls{ display:flex; justify-content:center; align-items:center; gap:1rem; margin-top:1.4rem; }
.rev-toggle{ font-family:var(--mono); font-size:.72rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-700); padding:.55em 1em; min-height:36px; border-radius:100px; border:1px solid var(--line); background:var(--paper); }
.rev-toggle:hover{ border-color:var(--blue-300); }
.rev-dots{ display:flex; justify-content:center; gap:.5rem; }
.rev-dot{ width:10px; height:10px; border-radius:50%; background:var(--line); padding:0; transition:background .25s, transform .25s var(--ease); position:relative; }
.rev-dot::after{ content:""; position:absolute; inset:-8px; }   /* touch target */
.rev-dot.is-active{ background:var(--nucleo); transform:scale(1.25); }

/* long figures (ISO 22241 · 130,000 L) in the product strip on small phones */
@media (max-width:420px){ .subpage .strip-fig{ font-size:clamp(1.35rem, 7vw, 1.9rem); } }
