/* Marta C. — site styles. Tokens come from the design system (tokens.css). */
@font-face{font-family:"Pontiac Light";src:url("/assets/fonts/Pontiac-Light.otf") format("opentype");font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:"Seravek";src:url("/assets/fonts/Seravek.ttc") format("truetype");font-weight:400;font-style:normal;font-display:swap;}

:root{
  --font-body:"Seravek",-apple-system,"Helvetica Neue",Arial,sans-serif;
  /* Pontiac Light lacks accented glyphs and digits: logotype only. */
  --font-logo:"Pontiac Light","Seravek",sans-serif;
  --ink:var(--blue-800);
  --ink-deep:var(--blue-900);
  --paper:var(--beige-50);
  --sand:#e9e4da;
  --gutter:clamp(20px,4vw,56px);
  --ease-out:cubic-bezier(0.16,1,0.3,1);
}

*{box-sizing:border-box;}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);overflow-x:clip;}
::selection{background:var(--ink);color:var(--paper);}
a{color:var(--ink);text-decoration:none;}
a:hover{color:var(--ink-deep);}
img{display:block;}
h1,h2,h3,p{margin:0;}
h1,h2,h3{font-family:var(--font-body);font-weight:400;}
summary{list-style:none;cursor:pointer;}
summary::-webkit-details-marker{display:none;}
:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px;}

.page{position:relative;width:100%;overflow-x:clip;}

/* ── Shared bits ── */
.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:26px;}
.eyebrow::before{content:"";width:34px;height:1px;background:rgba(50,62,77,0.4);display:block;flex:none;}
.eyebrow span{font-size:11px;letter-spacing:0.26em;text-transform:uppercase;color:rgba(50,62,77,0.7);}
.eyebrow--dark::before{background:rgba(247,247,245,0.45);}
.eyebrow--dark span{color:rgba(247,247,245,0.7);}

.btn{display:inline-block;border-radius:2px;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;transition:background 300ms ease,border-color 300ms ease;}
.btn--solid{background:var(--ink);color:var(--paper);}
.btn--solid:hover{background:var(--ink-deep);color:var(--paper);}
.btn--line{border:1px solid rgba(50,62,77,0.3);}
.btn--line:hover{border-color:var(--ink);background:rgba(50,62,77,0.04);}
.u-link{border-bottom:1px solid rgba(50,62,77,0.25);transition:border-color 300ms ease;}
.u-link:hover{border-color:var(--ink);}

/* ── Loader ── */
@keyframes mcLoaderOut{0%,64%{transform:translateY(0);visibility:visible;}99%{transform:translateY(-101%);visibility:visible;}100%{transform:translateY(-101%);visibility:hidden;}}
@keyframes mcLoaderIn{0%{opacity:0;transform:translateY(6px);}22%{opacity:1;transform:none;}70%{opacity:1;transform:none;}82%,100%{opacity:0;transform:translateY(-10px);}}
@keyframes mcLoaderBar{0%{transform:scaleX(0);}62%{transform:scaleX(1);}100%{transform:scaleX(1);opacity:0;}}
.loader{position:fixed;inset:0;z-index:200;pointer-events:none;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;animation:mcLoaderOut 2600ms cubic-bezier(0.76,0,0.24,1) forwards;}
.loader__mark{width:52px;height:auto;opacity:0;animation:mcLoaderIn 2400ms ease forwards;}
.loader__word{font-size:11px;letter-spacing:0.32em;text-transform:uppercase;opacity:0;animation:mcLoaderIn 2400ms ease 120ms forwards;}
.loader__track{position:absolute;bottom:46px;left:50%;width:180px;height:1px;margin-left:-90px;background:rgba(50,62,77,0.18);overflow:hidden;}
.loader__bar{width:100%;height:100%;background:var(--ink);transform:scaleX(0);transform-origin:left center;animation:mcLoaderBar 2400ms cubic-bezier(0.6,0,0.2,1) forwards;}

/* ── Header: one layer, difference blend, no background ── */
.header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px var(--gutter);mix-blend-mode:difference;color:#fff;transition:padding 400ms ease;}
.header.is-compact{padding-top:14px;padding-bottom:14px;}
.header a,.header button{color:#fff;}
.header__brand{display:flex;align-items:center;gap:12px;}
.header__brand img{width:26px;height:auto;filter:brightness(0) invert(1);}
.header__brand span{white-space:nowrap;font-family:var(--font-logo);font-size:12px;letter-spacing:0.26em;text-transform:uppercase;}
.header__nav{display:flex;align-items:center;gap:34px;}
.header__nav a{font-size:12.5px;letter-spacing:0.16em;text-transform:uppercase;}
.header__actions{display:flex;align-items:center;gap:18px;}
.header__lang{display:inline-block;border:1px solid #fff;border-radius:2px;padding:7px 11px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;transition:background 300ms ease;}
.header .header__lang:hover{background:#fff;color:#000;}
.header__menu{display:none;background:none;border:0;padding:8px 0;font-family:inherit;font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;cursor:pointer;}
.header__book{border:1px solid #fff;padding:11px 20px;border-radius:2px;font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;white-space:nowrap;transition:border-color 300ms ease,background 300ms ease;}
.header .header__book:hover{background:#fff;color:#000;}

/* ── Hero ── */
@keyframes mcHeroIn{from{transform:scale(1.1);}to{transform:none;}}
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:1.02fr 0.98fr;align-items:stretch;}
.hero__copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:clamp(88px,13vh,130px) var(--gutter) clamp(24px,5vh,48px);}
.hero__copy .eyebrow{margin-bottom:clamp(14px,3.4vh,34px);}
.hero h1{font-size:clamp(32px,min(6.4vw,8.8vh),104px);line-height:0.96;letter-spacing:-0.015em;text-wrap:balance;}
.hero__lede{margin-top:clamp(13px,3vh,30px);max-width:44ch;font-size:clamp(14.5px,1.9vh,17px);line-height:1.6;color:rgba(50,62,77,0.82);text-wrap:pretty;}
.hero__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(16px,3.6vh,40px);}
.hero__ctas .btn{padding:clamp(12px,2.4vh,16px) clamp(22px,2.4vw,30px);}
.hero__proof{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(10px,1.6vw,22px);margin-top:clamp(16px,4vh,52px);padding-top:clamp(12px,2.6vh,26px);border-top:1px solid rgba(50,62,77,0.14);}
.hero__score{display:flex;align-items:baseline;gap:9px;}
.hero__score b{font-weight:400;font-size:24px;line-height:1;}
.hero__proof small{font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(50,62,77,0.6);}
.hero__rule{width:1px;height:22px;background:rgba(50,62,77,0.18);display:block;}
.hero__media{position:relative;overflow:hidden;background:var(--sand);min-height:56svh;}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 82%;animation:mcHeroIn 2200ms var(--ease-out) forwards;}
.hero__media canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 900ms ease;}
.hero__shade{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(to top,rgba(35,43,53,0.42),transparent);pointer-events:none;}
.hero__caption{position:absolute;left:clamp(18px,2.4vw,34px);bottom:clamp(18px,2.4vw,34px);display:flex;align-items:center;gap:10px;color:var(--paper);}
.hero__caption::before{content:"";width:26px;height:1px;background:rgba(247,247,245,0.7);display:block;}
.hero__caption span{font-size:10.5px;letter-spacing:0.24em;text-transform:uppercase;}

/* Desktop: hero image is pinned; the copy and everything below slide over it. */
@media (min-width:901px){
  .hero__media{position:fixed;top:0;right:0;width:49vw;height:100svh;min-height:0;}
  .below{position:relative;z-index:2;background:var(--paper);}
}

/* ── About ── */
.about{padding:clamp(70px,8vw,130px) var(--gutter) clamp(40px,5vw,70px);}
.about__value{max-width:34ch;margin:0 0 clamp(46px,6vw,86px);font-size:clamp(19px,2.1vw,30px);line-height:1.45;text-wrap:pretty;}
.about__grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(34px,5vw,86px);align-items:start;}
.about__media{position:sticky;top:110px;overflow:hidden;aspect-ratio:3/4;background:var(--sand);}
.about__media img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;}
.about h2{font-size:clamp(32px,4vw,62px);line-height:1.04;letter-spacing:-0.01em;text-wrap:balance;}
.about__body{margin-top:34px;max-width:56ch;display:flex;flex-direction:column;gap:20px;font-size:17px;line-height:1.75;color:rgba(50,62,77,0.82);}
.about__body p{text-wrap:pretty;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px;padding-top:34px;border-top:1px solid rgba(50,62,77,0.14);}
.stats b{display:block;font-weight:400;font-size:clamp(30px,3.2vw,46px);line-height:1;}
.stats span{display:block;margin-top:10px;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(50,62,77,0.6);}

/* ── Fixed band: image holds still while its window travels ── */
.band{position:relative;overflow:hidden;height:clamp(280px,42vw,560px);background:var(--sand);}
.band img{position:absolute;top:0;left:0;width:100%;height:100svh;object-fit:cover;will-change:transform;}

/* ── Services ── */
.services{padding:clamp(90px,11vw,170px) var(--gutter) clamp(60px,7vw,110px);}
.services__head{margin-bottom:clamp(50px,6vw,90px);}
.services h2{font-size:clamp(34px,4.4vw,68px);line-height:1.02;letter-spacing:-0.01em;}
.featured{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.2vw,30px);}
.card{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--sand);}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease-out);}
.card:hover img{transform:scale(1.05);}
.card__veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(35,43,53,0.88) 0%,rgba(35,43,53,0.62) 34%,rgba(35,43,53,0.12) 62%,transparent 100%);}
.card__text{position:absolute;left:clamp(18px,2vw,32px);right:clamp(18px,2vw,32px);bottom:clamp(18px,2vw,30px);display:flex;flex-direction:column;gap:10px;color:var(--paper);}
.card__meta{font-size:11px;letter-spacing:0.24em;text-transform:uppercase;opacity:0.8;}
.card__title{font-size:clamp(24px,2.6vw,40px);line-height:1.05;}
.card__more{font-size:11.5px;letter-spacing:0.18em;text-transform:uppercase;border-bottom:1px solid rgba(247,247,245,0.55);padding-bottom:4px;align-self:flex-start;}
.card,.card:hover{color:var(--paper);}

.rows{margin-top:clamp(44px,5vw,80px);border-top:1px solid rgba(50,62,77,0.2);}
.row{display:grid;grid-template-columns:52px 1fr minmax(150px,auto) 86px;gap:clamp(12px,2.6vw,34px);align-items:baseline;padding:22px 0;border-bottom:1px solid rgba(50,62,77,0.14);transition:background 300ms ease;}
.row:hover{background:rgba(50,62,77,0.035);}
.row__num{font-size:12px;letter-spacing:0.24em;color:rgba(50,62,77,0.42);}
.row__name{font-size:clamp(19px,1.9vw,26px);line-height:1.15;}
.row__price{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(50,62,77,0.6);text-align:right;white-space:nowrap;}
.row__more{font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(50,62,77,0.75);text-align:right;white-space:nowrap;}
.services__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:clamp(34px,4vw,56px);}
.services__foot p{font-size:13px;color:rgba(50,62,77,0.55);}
.services__foot a{font-size:12px;letter-spacing:0.18em;text-transform:uppercase;border-bottom:1px solid rgba(50,62,77,0.35);padding-bottom:4px;}
.services__foot a:hover{border-color:var(--ink);}

/* ── Reviews wall ── */
@keyframes mcColUp{from{transform:translateY(0);}to{transform:translateY(-50%);}}
.reviews{background:var(--ink);color:var(--paper);padding:clamp(80px,9vw,150px) 0;overflow:hidden;}
.reviews__head{padding:0 var(--gutter);display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(30px,4vw,70px);align-items:end;margin-bottom:clamp(40px,4.5vw,70px);}
.reviews h2{font-size:clamp(32px,4.2vw,64px);line-height:1.04;}
.reviews__aside{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:24px;}
.reviews__score{display:flex;align-items:baseline;gap:12px;}
.reviews__score b{font-weight:400;font-size:clamp(40px,4.4vw,66px);line-height:1;}
.reviews__score small{font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(247,247,245,0.65);}
.reviews__cta{background:var(--paper);color:var(--ink);padding:15px 26px;border-radius:2px;font-size:11.5px;letter-spacing:0.18em;text-transform:uppercase;white-space:nowrap;transition:background 300ms ease;}
.reviews__cta:hover{background:#fff;color:var(--ink-deep);}
.wall-wrap{position:relative;height:clamp(460px,58vh,660px);overflow:hidden;border-top:1px solid rgba(247,247,245,0.2);border-bottom:1px solid rgba(247,247,245,0.2);}
.wall{position:absolute;inset:0;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,20px);align-items:start;}
.wall__col{display:flex;flex-direction:column;gap:clamp(12px,1.4vw,20px);will-change:transform;animation:mcColUp var(--dur) linear infinite var(--dir,normal);animation-delay:var(--delay);}
.wall__fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,var(--ink) 0%,rgba(50,62,77,0) 22%,rgba(50,62,77,0) 78%,var(--ink) 100%);}
.review{display:flex;flex-direction:column;gap:12px;padding:clamp(18px,1.7vw,26px);border:1px solid rgba(247,247,245,0.18);color:var(--paper);transition:background 400ms ease,border-color 400ms ease;}
.review:hover{background:rgba(247,247,245,0.07);border-color:rgba(247,247,245,0.45);color:var(--paper);}
.review__stars{font-size:11px;letter-spacing:0.28em;color:rgba(247,247,245,0.55);}
.review__quote{font-size:clamp(14.5px,1.1vw,17px);line-height:1.5;color:rgba(247,247,245,0.9);}
.review__sig{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;}
.review__who{font-size:12.5px;}
.review__meta{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(247,247,245,0.5);}
.reviews__note{margin:clamp(24px,2.6vw,38px) var(--gutter) 0;font-size:12.5px;letter-spacing:0.02em;color:rgba(247,247,245,0.55);max-width:52ch;}

/* ── FAQ ── */
.faq{padding:clamp(80px,9vw,150px) var(--gutter);}
.faq__grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(34px,5vw,86px);align-items:start;}
.faq h2{font-size:clamp(30px,3.4vw,50px);line-height:1.06;}
.faq__list{display:flex;flex-direction:column;border-top:1px solid rgba(50,62,77,0.16);}
.faq__list details{border-bottom:1px solid rgba(50,62,77,0.16);}
.faq__list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;font-size:clamp(17px,1.6vw,21px);}
.faq__list summary i{font-style:normal;font-size:20px;line-height:1;transition:transform 300ms ease;color:rgba(50,62,77,0.5);}
.faq__list details[open] > summary i{transform:rotate(45deg);}
.faq__list details p{margin:0 0 26px;max-width:60ch;font-size:16px;line-height:1.7;color:rgba(50,62,77,0.75);}

/* ── Contact ── */
.contact{position:relative;padding:clamp(80px,9vw,150px) var(--gutter);overflow:hidden;}
.contact__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.5;}
.contact__veil{position:absolute;inset:0;background:linear-gradient(to right,rgba(247,247,245,0.94),rgba(247,247,245,0.7));}
.contact__grid{position:relative;display:grid;grid-template-columns:1.1fr 0.9fr;gap:clamp(38px,5vw,86px);align-items:start;}
.contact h2{font-size:clamp(36px,5vw,80px);line-height:1;letter-spacing:-0.015em;text-wrap:balance;}
.contact__ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px;}
.contact__ctas .btn{padding:17px 32px;}
.contact__info{display:flex;flex-direction:column;gap:30px;padding-top:8px;}
.contact__label{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(50,62,77,0.55);margin-bottom:10px;}
.contact__value{font-size:17px;line-height:1.6;}

/* ── Skip link & mobile menu ── */
.skip{position:absolute;left:-9999px;top:8px;z-index:300;background:var(--ink);color:var(--paper);padding:10px 16px;}
.skip:focus{left:8px;color:var(--paper);}
.mnav{position:fixed;inset:0;z-index:90;background:var(--paper);display:flex;flex-direction:column;justify-content:center;gap:40px;padding:110px var(--gutter) 40px;}
.mnav[hidden]{display:none;}
.mnav nav{display:flex;flex-direction:column;gap:6px;}
.mnav nav a{font-size:clamp(30px,8vw,44px);line-height:1.2;}
.mnav .btn{align-self:flex-start;padding:17px 28px;}
body.menu-open{overflow:hidden;}

/* ── Page head (inner pages) ── */
.phead{padding:clamp(110px,12vw,170px) var(--gutter) clamp(30px,4vw,50px);}
.phead__h1{margin:0 0 clamp(30px,4vw,52px);font-size:clamp(38px,6vw,92px);line-height:0.98;letter-spacing:-0.02em;max-width:16ch;text-wrap:balance;}
.phead__h1--svc{font-size:clamp(38px,6.2vw,96px);max-width:18ch;margin-bottom:0;}
.phead__grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:clamp(24px,4vw,64px);align-items:end;margin-top:clamp(26px,3vw,44px);}
.phead__lede{max-width:52ch;font-size:clamp(17px,1.6vw,21px);line-height:1.62;color:rgba(50,62,77,0.82);text-wrap:pretty;}
.phead__lede--solo{margin-top:clamp(22px,2.6vw,36px);}
.phead__note{margin-top:26px;font-size:12.5px;color:rgba(50,62,77,0.5);}
.phead--404{min-height:70svh;display:flex;flex-direction:column;justify-content:center;}
.facts{display:flex;flex-wrap:wrap;gap:26px 34px;margin:0;}
.facts dt{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(50,62,77,0.55);margin-bottom:8px;}
.facts dd{margin:0;font-size:clamp(22px,2vw,30px);line-height:1;}

.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px;padding:0;font-size:12px;letter-spacing:0.06em;color:rgba(50,62,77,0.55);}
.crumbs li+li::before{content:"/";margin-right:8px;color:rgba(50,62,77,0.3);}
.crumbs a{color:rgba(50,62,77,0.7);}
.crumbs a:hover{color:var(--ink);}

/* ── Wide image ── */
.wide{padding:0 var(--gutter);}
.wide__frame{position:relative;overflow:hidden;aspect-ratio:16/7;background:var(--sand);}
.wide__frame--short{aspect-ratio:16/6;}
.wide__frame img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;}
.wide__frame span{position:absolute;inset:0;background:linear-gradient(to top,rgba(35,43,53,0.34),transparent 55%);}

/* ── Two-column text sections ── */
.split{padding:clamp(60px,8vw,120px) var(--gutter);display:grid;grid-template-columns:0.72fr 1.28fr;gap:clamp(30px,5vw,80px);align-items:start;}
.split+.split{padding-top:0;}
.split__aside{position:sticky;top:96px;}
.split__aside h2,.steps h2,.mission .eyebrow+p{font-size:clamp(26px,3vw,44px);line-height:1.06;}
.split__h3{margin-top:44px;font-size:clamp(20px,1.9vw,26px);line-height:1.2;}
.prose{display:flex;flex-direction:column;gap:22px;max-width:62ch;font-size:17px;line-height:1.75;color:rgba(50,62,77,0.82);}
.prose p,.prose__p{text-wrap:pretty;}
.prose__p{margin-top:16px;max-width:62ch;font-size:17px;line-height:1.75;color:rgba(50,62,77,0.82);}
.ticks{list-style:none;margin:0;padding:0;border-top:1px solid rgba(50,62,77,0.16);max-width:62ch;}
.ticks li{position:relative;padding:16px 0 16px 34px;border-bottom:1px solid rgba(50,62,77,0.12);font-size:16.5px;line-height:1.55;color:rgba(50,62,77,0.86);}
.ticks li::before{content:"";position:absolute;left:4px;top:24px;width:14px;height:1px;background:var(--ink);}

/* ── Steps grid ── */
.steps{padding:clamp(50px,6vw,100px) var(--gutter);border-top:1px solid rgba(50,62,77,0.14);}
.steps h2{margin-bottom:clamp(30px,4vw,56px);}
.steps__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:rgba(50,62,77,0.16);border:1px solid rgba(50,62,77,0.16);}
.steps__grid li{background:var(--paper);padding:clamp(22px,2.4vw,34px);display:flex;flex-direction:column;gap:14px;min-height:200px;}
.steps__num{font-size:12px;letter-spacing:0.24em;color:rgba(50,62,77,0.42);}
.steps__name{font-size:clamp(18px,1.7vw,23px);line-height:1.2;}
.steps__desc{font-size:15px;line-height:1.6;color:rgba(50,62,77,0.72);text-wrap:pretty;}

/* ── "Es para ti si…" + "Tu seguridad, primero" ── */
.split--rule{border-top:1px solid rgba(50,62,77,0.14);}
.care{--care-bg:#efebe2;background:var(--care-bg);padding:clamp(70px,8vw,130px) var(--gutter);display:grid;grid-template-columns:0.78fr 1.22fr;gap:clamp(34px,5vw,86px);align-items:start;}
.care__aside{position:sticky;top:96px;}
.care h2{font-size:clamp(28px,3.2vw,48px);line-height:1.05;text-wrap:balance;}
.care__intro{margin-top:22px;max-width:40ch;font-size:16.5px;line-height:1.7;color:rgba(50,62,77,0.8);text-wrap:pretty;}
.care__ask{margin-top:clamp(30px,3.6vw,48px);padding-top:26px;border-top:1px solid rgba(50,62,77,0.18);display:flex;flex-direction:column;gap:12px;max-width:40ch;}
.care__ask-title{font-size:clamp(18px,1.6vw,21px);}
.care__ask p{font-size:15px;line-height:1.65;color:rgba(50,62,77,0.72);}
.care__ask .btn{align-self:flex-start;margin-top:6px;padding:15px 26px;}
.care__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.4vw,18px);}
.care__item{position:relative;background:var(--paper);border:1px solid rgba(50,62,77,0.1);padding:clamp(22px,2.2vw,30px);display:flex;flex-direction:column;gap:10px;transition:border-color 400ms ease,transform 600ms var(--ease-out);}
.care__item:hover{border-color:rgba(50,62,77,0.28);}
.care__mark{width:22px;height:22px;border-radius:50%;border:1px solid rgba(50,62,77,0.35);position:relative;margin-bottom:6px;}
.care__mark::after{content:"";position:absolute;inset:6px;border-radius:50%;background:rgba(50,62,77,0.55);}
.care__item h3{font-size:clamp(17px,1.5vw,20px);line-height:1.25;}
.care__item p{font-size:15px;line-height:1.65;color:rgba(50,62,77,0.74);text-wrap:pretty;}
.care__alert{margin-top:clamp(16px,2vw,24px);background:var(--paper);border-left:2px solid var(--ink);padding:clamp(22px,2.4vw,32px);}
.care__alert h3{font-size:clamp(18px,1.6vw,22px);margin-bottom:14px;}
.care__alert ul{margin:0 0 14px;padding-left:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px 28px;font-size:15.5px;line-height:1.55;}
.care__alert p{font-size:14.5px;line-height:1.6;color:rgba(50,62,77,0.7);}
.care__note{margin-top:22px;font-size:13px;line-height:1.6;color:rgba(50,62,77,0.55);}

/* ── Dark FAQ / protocol band ── */
.dfaq{background:var(--ink);color:var(--paper);padding:clamp(60px,7vw,120px) var(--gutter);}
.dfaq__grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(28px,5vw,80px);align-items:start;}
.dfaq h2{font-size:clamp(26px,3vw,46px);line-height:1.06;}
.dfaq__lede{margin-top:20px;max-width:40ch;font-size:16.5px;line-height:1.65;color:rgba(247,247,245,0.75);}
.dfaq__note{margin-top:26px;font-size:14.5px;line-height:1.6;color:rgba(247,247,245,0.65);}
.faq__list--dark{border-top-color:rgba(247,247,245,0.22);}
.faq__list--dark details{border-bottom-color:rgba(247,247,245,0.22);}
.faq__list--dark summary{padding:22px 0;font-size:clamp(16.5px,1.5vw,20px);}
.faq__list--dark summary i{color:rgba(247,247,245,0.6);}
.faq__list--dark details p{color:rgba(247,247,245,0.78);}
.protocol{list-style:none;margin:0;padding:0;border-top:1px solid rgba(247,247,245,0.22);}
.protocol li{display:grid;grid-template-columns:44px 0.8fr 1.2fr;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid rgba(247,247,245,0.22);}
.protocol span{font-size:12px;letter-spacing:0.24em;color:rgba(247,247,245,0.5);}
.protocol b{font-weight:400;font-size:clamp(17px,1.6vw,21px);}
.protocol em{font-style:normal;font-size:15px;line-height:1.6;color:rgba(247,247,245,0.75);}

/* ── CTA band ── */
.cta{padding:clamp(60px,7vw,120px) var(--gutter);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:30px;}
.cta h2{font-size:clamp(30px,4.4vw,68px);line-height:1;letter-spacing:-0.015em;max-width:20ch;text-wrap:balance;}
.cta p{margin-top:20px;max-width:44ch;font-size:16.5px;line-height:1.65;color:rgba(50,62,77,0.72);text-wrap:pretty;}
.cta__actions{display:flex;flex-wrap:wrap;gap:14px;}
.cta__actions .btn{padding:17px 32px;}
.darkcta{background:var(--ink);color:var(--paper);padding:clamp(70px,8vw,130px) var(--gutter);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:34px;}
.darkcta h2{font-size:clamp(30px,4.2vw,62px);line-height:1.04;}
.darkcta p{max-width:36ch;margin-bottom:22px;font-size:16.5px;line-height:1.65;color:rgba(247,247,245,0.75);}
.btn--light{background:var(--paper);color:var(--ink);padding:18px 34px;}
.btn--light:hover{background:#fff;color:var(--ink-deep);}

/* ── Lists of services / posts ── */
.listhead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid rgba(50,62,77,0.2);margin-bottom:0;}
.listhead h2{font-size:clamp(22px,2.4vw,32px);line-height:1.1;}
.listhead .u-link,.teaser__head .u-link{font-size:11.5px;letter-spacing:0.18em;text-transform:uppercase;padding-bottom:4px;}
.related{padding:0 var(--gutter) clamp(60px,7vw,110px);}
.readalso{padding:clamp(20px,3vw,40px) var(--gutter) clamp(60px,7vw,110px);}
.readalso .pgrid{margin-top:clamp(26px,3vw,40px);}
.row__star{font-style:normal;font-size:0.6em;vertical-align:super;color:rgba(50,62,77,0.5);}

.menu{padding:clamp(30px,4vw,60px) var(--gutter) clamp(60px,7vw,110px);}
.menu__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid rgba(50,62,77,0.2);}
.menu__head h2{font-size:clamp(24px,2.6vw,38px);line-height:1.1;}
.menu__head p{max-width:46ch;font-size:14.5px;line-height:1.6;color:rgba(50,62,77,0.65);}
.group__title{margin-top:clamp(36px,4vw,56px);padding-bottom:14px;border-bottom:1px solid rgba(50,62,77,0.2);font-size:11px;letter-spacing:0.26em;text-transform:uppercase;color:rgba(50,62,77,0.7);}
.row--desc{grid-template-columns:52px 1.05fr 1.15fr 170px 90px;padding:28px 0;}
.row--desc .row__name{font-size:clamp(21px,2.1vw,30px);line-height:1.12;}
.row__desc{font-size:15px;line-height:1.6;color:rgba(50,62,77,0.72);text-wrap:pretty;}

.teaser{padding:clamp(80px,9vw,150px) var(--gutter) 0;}
.teaser__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:20px;margin-bottom:clamp(30px,4vw,56px);}
.teaser h2{font-size:clamp(30px,3.4vw,50px);line-height:1.06;}
.bloglist{padding:clamp(20px,3vw,40px) var(--gutter) clamp(70px,8vw,130px);}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,34px);}
.pgrid--2{grid-template-columns:repeat(2,1fr);}
.pcard{display:flex;flex-direction:column;gap:12px;}
.pcard__img{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:var(--sand);margin-bottom:6px;}
.pcard__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease-out);}
.pcard:hover .pcard__img img{transform:scale(1.04);}
.pcard time{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(50,62,77,0.55);}
.pcard__title{font-size:clamp(19px,1.7vw,24px);line-height:1.2;text-wrap:balance;}
.pcard__excerpt{font-size:15px;line-height:1.6;color:rgba(50,62,77,0.72);}
.pcard__more{font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(50,62,77,0.75);}

/* ── About page ── */
.timeline{list-style:none;margin:0;padding:0;border-top:1px solid rgba(50,62,77,0.16);max-width:62ch;}
.timeline li{display:flex;flex-direction:column;gap:10px;padding:26px 0;border-bottom:1px solid rgba(50,62,77,0.12);}
.timeline h3{font-size:clamp(20px,1.9vw,26px);line-height:1.2;}
.timeline p{font-size:16.5px;line-height:1.7;color:rgba(50,62,77,0.82);text-wrap:pretty;}
.mission{padding:clamp(60px,8vw,120px) var(--gutter);border-top:1px solid rgba(50,62,77,0.14);}
.mission p{max-width:30ch;font-size:clamp(26px,3.4vw,52px) !important;line-height:1.18 !important;text-wrap:balance;}

/* ── Article ── */
.article__head{padding:clamp(110px,12vw,170px) var(--gutter) clamp(30px,4vw,50px);}
.article__h1{font-size:clamp(34px,4.8vw,72px);line-height:1.02;letter-spacing:-0.015em;max-width:22ch;text-wrap:balance;}
.article__lede{margin-top:clamp(20px,2.4vw,32px);max-width:52ch;font-size:clamp(17px,1.6vw,21px);line-height:1.6;color:rgba(50,62,77,0.82);}
.article__by{margin-top:18px;font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(50,62,77,0.55);}
.article__body{max-width:68ch;margin:0 auto;padding:clamp(50px,6vw,90px) var(--gutter) clamp(40px,5vw,70px);box-sizing:content-box;font-size:17.5px;line-height:1.78;color:rgba(50,62,77,0.86);}
.article__body p{margin:0 0 22px;text-wrap:pretty;}
.article__body h2{margin:48px 0 18px;font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:var(--ink);}
.article__body ul,.article__body ol{margin:0 0 26px;padding-left:22px;}
.article__body li{margin-bottom:10px;padding-left:4px;}
.article__cta{display:flex;flex-direction:column;gap:12px;margin:44px 0 30px;padding:clamp(24px,3vw,36px);border:1px solid rgba(50,62,77,0.2);background:rgba(50,62,77,0.03);}
.article__cta-eyebrow{font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(50,62,77,0.55);}
.article__cta-title{font-size:clamp(22px,2.2vw,30px);line-height:1.15;}
.article__cta span:not(.article__cta-eyebrow){font-size:15.5px;line-height:1.6;color:rgba(50,62,77,0.75);}
.article__cta .btn{align-self:flex-start;margin-top:8px;padding:15px 26px;}
.article__disclaimer{margin-top:40px !important;font-size:13px;color:rgba(50,62,77,0.5);}

/* ── Footer ── */
.footer{border-top:1px solid rgba(50,62,77,0.14);padding:clamp(50px,6vw,80px) var(--gutter) 34px;}
.footer__top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:clamp(28px,4vw,60px);}
.footer__brand img{height:38px;width:auto;}
.footer__brand p{margin-top:20px;max-width:34ch;font-size:14.5px;line-height:1.6;color:rgba(50,62,77,0.65);}
.footer__col h2{margin-bottom:16px;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(50,62,77,0.55);}
.footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14.5px;line-height:1.45;}
.footer__col a:hover{border-bottom:1px solid rgba(50,62,77,0.35);}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 26px;margin-top:clamp(40px,5vw,64px);padding-top:24px;border-top:1px solid rgba(50,62,77,0.12);font-size:12px;letter-spacing:0.04em;color:rgba(50,62,77,0.55);}
.footer__bottom a{color:inherit;border-bottom:1px solid rgba(50,62,77,0.25);}

.footer__legal{display:flex;flex-wrap:wrap;gap:8px 20px;}
.footer__legal button{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;border-bottom:1px solid rgba(50,62,77,0.25);}
.footer__legal button:hover,.footer__bottom a:hover{color:var(--ink);border-color:var(--ink);}

/* ── Cookie notice ── */
@keyframes mcConsentIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.consent{position:fixed;left:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);z-index:150;width:min(460px,calc(100vw - 24px));max-height:calc(100svh - 24px);overflow:auto;background:var(--paper);color:var(--ink);border:1px solid rgba(50,62,77,0.18);box-shadow:var(--shadow-lg);padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:18px;animation:mcConsentIn 600ms var(--ease-out) both;}
.consent[hidden]{display:none;}
.consent h2{font-size:20px;line-height:1.2;margin-bottom:8px;}
.consent p{font-size:14.5px;line-height:1.6;color:rgba(50,62,77,0.78);}
.consent__opts{display:flex;flex-direction:column;margin-top:14px;border-top:1px solid rgba(50,62,77,0.14);}
.consent__opts[hidden]{display:none;}
.consent__opt{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid rgba(50,62,77,0.1);cursor:pointer;}
.consent__opt input{position:absolute;opacity:0;width:1px;height:1px;}
.consent__switch{position:relative;width:36px;height:20px;margin-top:2px;border-radius:999px;background:rgba(50,62,77,0.2);transition:background 250ms ease;}
.consent__switch::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform 250ms var(--ease-out);}
.consent__opt input:checked + .consent__switch{background:var(--ink);}
.consent__opt input:checked + .consent__switch::after{transform:translateX(16px);}
.consent__opt input:disabled + .consent__switch{opacity:0.5;}
.consent__opt input:focus-visible + .consent__switch{outline:2px solid var(--color-focus-ring);outline-offset:2px;}
.consent__opt b{display:block;font-weight:400;font-size:15px;}
.consent__opt small{display:block;margin-top:2px;font-size:13px;line-height:1.5;color:rgba(50,62,77,0.65);}
.consent__actions{display:flex;flex-wrap:wrap;gap:8px;}
.consent__actions .btn{flex:1 1 auto;padding:12px 14px;font-family:inherit;font-size:11px;letter-spacing:0.14em;cursor:pointer;background:transparent;color:var(--ink);}
.consent__actions .btn--solid{background:var(--ink);color:var(--paper);border:1px solid var(--ink);}
.consent__actions [hidden]{display:none;}

/* ── Legal pages ── */
.ltable{overflow-x:auto;margin:0 0 26px;border:1px solid rgba(50,62,77,0.16);}
.ltable table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.5;}
.ltable th,.ltable td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(50,62,77,0.12);}
.ltable thead th{font-weight:400;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(50,62,77,0.6);background:rgba(50,62,77,0.03);}
.ltable tbody tr:last-child th,.ltable tbody tr:last-child td{border-bottom:0;}
.ltable code{font-family:ui-monospace,Menlo,monospace;font-size:13px;}
.article--legal .article__body h2{font-size:clamp(21px,2vw,26px);}

/* ── Scroll reveal (set up by main.js only for off-screen elements) ── */
.is-pending{opacity:0;transform:translateY(22px);}
.reveal{transition:opacity 900ms var(--ease-out),transform 900ms var(--ease-out);}

/* ── Small screens ── */
@media (max-width:1100px){
  .header__nav{display:none;}
  .header__menu{display:inline-block;}
}
@media (max-width:1000px){
  .footer__top{grid-template-columns:1fr 1fr;}
  .pgrid{grid-template-columns:1fr 1fr;}
}
@media (max-width:900px){
  .hero,.about__grid,.reviews__head,.faq__grid,.contact__grid,
  .phead__grid,.split,.care,.dfaq__grid{grid-template-columns:1fr;}
  .care__aside{position:static;}
  .care__alert ul{grid-template-columns:1fr;}
  .split__aside{position:static;}
  .wall{grid-template-columns:repeat(2,1fr);}
  .featured{grid-template-columns:1fr;}
  .row,.row--desc{grid-template-columns:1fr;gap:8px;}
  .row__price,.row__more{text-align:left;}
  .protocol li{grid-template-columns:36px 1fr;}
  .protocol em{grid-column:2;}
  .wide__frame{aspect-ratio:4/3;}
}
@media (max-width:440px){
  .header{gap:12px;}
  .header__actions{gap:12px;}
  .header__book{padding:10px 12px;font-size:10.5px;letter-spacing:0.12em;}
  .header__brand{gap:9px;}
  .header__brand span{font-size:11px;letter-spacing:0.2em;}
}
@media (max-width:360px){ .header__book{display:none;} }
@media (max-width:640px){
  .pgrid,.pgrid--2,.footer__top,.care__grid{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion:reduce){
  .loader{display:none;}
  .hero__media img{animation:none;}
  .wall__col{animation-play-state:paused;}
  html{scroll-behavior:auto;}
}
@media (max-width:900px){ .wall__col:nth-child(n+3){display:none;} }

/* ── Layout fixes (spacing, alignment, mobile) ── */
/* A ruled split always keeps its top padding, even right after another split. */
.split.split--rule{padding-top:clamp(60px,8vw,120px);}
/* Odd number of care cards: the last one spans the row instead of leaving a gap. */
.care__item:last-child:nth-child(odd){grid-column:1/-1;}
/* Articles and legal pages: head and body share one centered column. */
.article__col{max-width:760px;margin:0 auto;}
.article__body{max-width:760px;}
.article--legal .article__head{padding-bottom:0;}
.article--legal .article__body{padding-top:clamp(30px,4vw,50px);}
.article--legal .article__col{padding-bottom:clamp(26px,3vw,40px);border-bottom:1px solid rgba(50,62,77,0.14);}
.pgrid--2 .pcard__img{aspect-ratio:16/10;}

@media (max-width:900px){
  .steps__grid li{min-height:0;}
  .about__media{position:relative;top:auto;aspect-ratio:4/3;}
  /* Service rows: number on the left, name + "see more" on one line, details below. */
  .row,.row--desc{grid-template-columns:28px 1fr auto;column-gap:12px;row-gap:6px;padding:20px 0;}
  .row__num{grid-column:1;grid-row:1;}
  .row__name{grid-column:2;grid-row:1;}
  .row__more{grid-column:3;grid-row:1;font-size:10.5px;}
  .row__desc{grid-column:2/4;grid-row:2;}
  .row__price{grid-column:2/4;}
}
@media (max-width:640px){
  .stats{gap:14px;}
  .stats span{letter-spacing:0.12em;}
  /* Cookie table becomes one card per cookie. */
  .ltable{border:0;overflow:visible;}
  .ltable thead{display:none;}
  .ltable table,.ltable tbody,.ltable tr,.ltable th,.ltable td{display:block;width:100%;}
  .ltable tr{border:1px solid rgba(50,62,77,0.16);margin-bottom:12px;padding:6px 0;}
  .ltable th,.ltable td{border:0;padding:6px 14px;}
  .ltable td::before{content:attr(data-label);display:block;font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(50,62,77,0.55);margin-bottom:2px;}
}
@media (max-width:480px){
  .hero__ctas .btn,.contact__ctas .btn,.cta__actions .btn{flex:1 1 100%;text-align:center;}
}
