/* ═══════════════════════════════════════════════════════════
   components.css — nav, buttons, tiles, FAQ, forms, cookie, footer
   Shape language: sharp. border-radius is 0 everywhere.
   ═══════════════════════════════════════════════════════════ */

a{color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

/* Inline links in running text: gold underline that thickens on hover */
.prose a,.tile p a,.lead a,.note a{
  color:var(--brand-primary);
  text-decoration:underline;text-decoration-color:var(--brand-accent);
  text-decoration-thickness:2px;text-underline-offset:.2em;
  transition:text-decoration-thickness var(--dur-fast), color var(--dur-fast);
}
.prose a:hover,.tile p a:hover,.lead a:hover,.note a:hover{text-decoration-thickness:4px}
.tile--primary a,.tile--pine a,.tile--ink a,.section--primary a{color:var(--brand-accent)}

/* ───────────── Top bar (morphing) ───────────── */
.topbar{
  --tb-fg:var(--text-primary);
  --tb-rule:var(--border-subtle);
  --mark-dot:var(--brand-primary);
  --wm-size:1.75rem;
  position:fixed;inset:0 0 auto 0;z-index:60;
  color:var(--tb-fg);
  background:transparent;
  transition:background-color .35s var(--ease), box-shadow .35s var(--ease), color .35s var(--ease);
}
body[data-hero="dark"] .topbar:not(.is-scrolled){--tb-fg:var(--text-inverse);--tb-rule:var(--rule-on-primary);--mark-dot:var(--brand-accent)}
.topbar.is-scrolled{
  --wm-size:1.3rem;
  background:rgb(var(--paper-rgb) / .95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--border-strong);
}
.topbar__inner{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}

.topbar__strip{display:grid;grid-template-rows:1fr;transition:grid-template-rows .35s var(--ease), opacity .3s}
.topbar__strip > div{overflow:hidden;min-height:0}
.topbar.is-scrolled .topbar__strip{grid-template-rows:0fr;opacity:0}
.topbar__strip .topbar__inner{
  display:flex;align-items:center;gap:.8rem;
  padding-block:.55rem;
  font-size:var(--text-sm);line-height:1.35;
  border-bottom:1px solid var(--tb-rule);
}
.topbar__strip a{color:inherit;text-decoration-color:var(--brand-accent);text-underline-offset:.2em}
.topbar__strip .stamp{flex:none;color:inherit}
body[data-hero="dark"] .topbar:not(.is-scrolled) .stamp{background:var(--brand-accent);color:var(--text-primary);border-color:var(--brand-accent)}

.topbar__bar .topbar__inner{
  display:flex;align-items:center;gap:var(--space-5);
  padding-block:1rem;
  transition:padding .35s var(--ease);
}
.topbar.is-scrolled .topbar__bar .topbar__inner{padding-block:.55rem}
.topbar .wordmark{transition:font-size .35s var(--ease)}
.topbar__tag{display:none;font-size:.6rem;white-space:nowrap;flex:none}
.topbar.is-scrolled .topbar__tag{display:inline-block;animation:fadeUp .4s var(--ease) both}

.nav{margin-left:auto;display:flex;align-items:center;gap:clamp(.9rem,1.9vw,1.9rem)}
.nav a{
  position:relative;text-decoration:none;white-space:nowrap;
  font-family:var(--font-display);font-weight:700;
  font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;
  padding-block:.4rem;color:inherit;
}
.topbar .wordmark,.topbar .btn{white-space:nowrap;flex:none}
.nav a:not(.nav__cta)::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--brand-accent);transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur) var(--ease);
}
.nav a:not(.nav__cta):hover::after,
.nav a.is-active::after,
.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a.nav__cta{display:none}
.burger{display:none;position:relative;width:2.75rem;height:2.75rem;margin-left:auto;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;padding:0}
.burger span{position:absolute;left:.7rem;right:.7rem;height:2px;background:currentColor;transition:transform var(--dur) var(--ease), opacity var(--dur-fast), top var(--dur) var(--ease)}
.burger span:nth-child(1){top:.95rem}
.burger span:nth-child(2){top:1.3rem}
.burger span:nth-child(3){top:1.65rem}
.burger[aria-expanded="true"] span:nth-child(1){top:1.3rem;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:1.3rem;transform:rotate(-45deg)}
.topbar .btn--sm{margin-left:0}

@media (max-width:1300px){
  .burger{display:block}
  .topbar .btn--sm{display:none}
  .nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;margin:0;
    background:var(--surface-base);color:var(--text-primary);
    border-top:1px solid var(--border-strong);border-bottom:3px double var(--border-strong);
    max-height:calc(100dvh - var(--topbar-compact));overflow:auto;
  }
  .nav.is-open{display:flex;animation:navIn .3s var(--ease)}
  .nav a{font-size:1.15rem;letter-spacing:.04em;padding:1rem var(--gutter);border-bottom:1px solid var(--border-subtle)}
  .nav a:not(.nav__cta)::after{display:none}
  .nav a.is-active,.nav a[aria-current="page"]{background:var(--surface-sand)}
  .nav a.nav__cta{display:flex;margin:var(--gutter);padding:1.1rem 1.5rem;justify-content:center;font-size:.78rem;letter-spacing:.09em;border:1px solid var(--text-primary)}
  .topbar__strip .topbar__inner{font-size:.72rem}
}
@media (max-width:700px){
  .topbar .topbar__tag,.topbar.is-scrolled .topbar__tag{display:none}
  .topbar{--wm-size:1.45rem}
  .topbar.is-scrolled{--wm-size:1.2rem}
}
@keyframes navIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ───────────── Buttons ───────────── */
.btn{
  --btn-fill:var(--brand-primary);--btn-fill-text:var(--text-inverse);
  position:relative;isolation:isolate;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:.8rem;
  padding:1.05rem 1.5rem;
  background:var(--brand-accent);color:var(--text-primary)!important;
  border:1px solid var(--btn-border,var(--text-primary));border-radius:0;
  font-family:var(--font-display);font-weight:700;font-size:.78rem;line-height:1.1;
  letter-spacing:.09em;text-transform:uppercase;text-align:left;
  text-decoration:none!important;cursor:pointer;
  transition:color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--btn-fill);
  transform:translateX(-101%);transition:transform .32s var(--ease);
}
.btn:hover,.btn:focus-visible{color:var(--btn-fill-text)!important;transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--btn-shadow,var(--text-primary))}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:active{transform:none;box-shadow:none}
.btn .ico{width:1.25rem;height:1.25rem;flex:none;transition:transform var(--dur) var(--ease)}
.btn:hover .ico{transform:translateX(4px)}
.btn--sm{padding:.7rem 1rem;font-size:.68rem}
.btn--lg{padding:1.35rem 1.8rem;font-size:.9rem}
.btn--ghost{background:transparent;color:inherit!important;--btn-fill:var(--text-primary);--btn-fill-text:var(--surface-base)}
.btn--block{display:flex;width:100%}

.hero .btn,.section--primary .btn,.tile--primary .btn,.topbar:not(.is-scrolled) .btn{
  --btn-fill:var(--surface-base);--btn-fill-text:var(--text-primary);--btn-border:var(--brand-accent);--btn-shadow:var(--brand-accent);
}
body:not([data-hero="dark"]) .topbar .btn{--btn-border:var(--text-primary)}
body:not([data-hero="dark"]) .topbar .btn,
.topbar.is-scrolled .btn{--btn-fill:var(--brand-primary);--btn-fill-text:var(--text-inverse);--btn-border:var(--text-primary);--btn-shadow:var(--text-primary)}
.tile--accent .btn{--btn-fill:var(--brand-primary);--btn-fill-text:var(--text-inverse);background:var(--surface-base)}

/* ───────────── Tile typography ───────────── */
.tile h2{font-size:var(--text-h2)}
.tile h2.t-xl{font-size:var(--text-h1)}
.tile h3{font-size:var(--text-h3)}
.tile .lead{margin-bottom:0}
.tile--primary .lead,.tile--primary .note,.tile--pine .lead,.tile--pine .note,.hero .lead{color:var(--text-inverse-muted)}
.tile--ink .note{color:var(--text-on-ink-muted)}
.tile--accent .note,.tile--accent .lead{color:var(--text-primary)}

/* HERO */
.hero__kicker{justify-content:center;padding-block:1.1rem}
.hero__kicker .dateline{color:var(--brand-accent)}
.hero__kicker .orn{margin-right:.6rem}
.hero__title{justify-content:center;padding-block:clamp(1.5rem,4vw,3.5rem)}
.hero__h1{
  font-size:calc(var(--text-hero) * .8);
  line-height:.98;letter-spacing:-.045em;color:var(--text-inverse);
  max-width:12ch;
}
.hero__h1 em{color:var(--brand-accent);letter-spacing:-.02em;font-size:1.04em}
.hero__lead{justify-content:space-between;gap:var(--space-5)}
.hero__lead p{font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.5;margin:0;max-width:34ch}
.hero__meta{justify-content:center;color:var(--text-inverse)}
.hero__meta .dateline{--rule:var(--rule-on-primary)}
.hero__meta .dateline > *{font-size:.68rem}
.hero__img{--focus-pt:62% 50%}
.hero__img .frame{position:absolute;inset:0}

/* CONTEXTO */
.ctx__rail{background:var(--surface-sand);overflow:hidden;justify-content:space-between}
.ctx__rail .glyph{font-size:clamp(14rem,34vw,32rem);right:-.12em;bottom:-.14em;color:var(--brand-primary);opacity:.09;-webkit-text-stroke:0}
.ctx__rail .eyebrow{margin:0}
.ctx__rail .vertical{
  writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start;
  font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-secondary);
}
.ctx__title{padding-block:clamp(2rem,5vw,4.5rem) clamp(1.5rem,3vw,2.5rem);justify-content:flex-end}
.ctx__title h2{max-width:14ch}
.ctx__a p,.ctx__b p{font-size:var(--text-body);margin:0;line-height:1.7}
.ctx__a{--tile-bg:var(--surface-raised)}
.ctx__pad{background-image:var(--hatch-ruled)}

/* HÁBITOS */
.habits__head{justify-content:space-between;gap:var(--space-6);--tile-bg:var(--surface-raised)}
.habits__head h2{font-size:calc(var(--text-h2) * 1.25);overflow-wrap:break-word}
.habits__head .lead{margin-top:var(--space-4)}
.habit{gap:.9rem;overflow:hidden}
.habit .n{
  font-family:var(--font-display);font-weight:800;line-height:.8;
  font-size:clamp(3rem,6.4vw,5.6rem);letter-spacing:-.06em;
  color:var(--brand-primary);
  margin-bottom:auto;
}
.habit h3{font-size:var(--text-h3);max-width:16ch}
.habit p{margin:0;font-size:1rem;line-height:1.6;max-width:44ch}
.habit--1{--tile-bg:var(--surface-base)}
.habit--2{--tile-bg:var(--surface-sand)}
.habit--3{--tile-bg:var(--brand-accent)}
.habit--3 .n{color:var(--text-primary)}
.habit--4{--tile-bg:var(--surface-raised)}
.habit--5{--tile-bg:var(--surface-base)}
.habit--1 .n{align-self:flex-end;margin:0;position:absolute;right:var(--tile-pad);top:var(--tile-pad)}
.habit--1,.habit--5{padding-right:clamp(1.1rem,26%,12rem)}
.habit--5 .n{position:absolute;right:var(--tile-pad);top:var(--tile-pad);margin:0}
@media (min-width:601px) and (max-width:960px){
  .habit.habit--5{padding-right:var(--tile-pad)}
  .habit.habit--5 .n{position:static;margin-bottom:auto}
}
@media (max-width:600px){
  .habit.habit--1,.habit.habit--5{padding-right:var(--tile-pad)}
  .habit.habit--1 .n,.habit.habit--5 .n{position:static;margin-bottom:0}
}
.habits__note{--tile-bg:var(--brand-secondary);color:var(--text-inverse);justify-content:center;gap:1rem}
.habits__note p{margin:0;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.45}
.habits__note .stamp{align-self:flex-start;color:var(--text-inverse);border-color:var(--brand-accent)}

/* EN EL PLATO */
.foods__head{justify-content:flex-end;--tile-bg:var(--surface-raised);padding-top:clamp(2rem,5vw,4rem)}
.foods__head h2{font-size:var(--text-h1);max-width:12ch}
.foods__head .lead{margin-top:var(--space-4)}
.food{padding:0;overflow:hidden;min-height:18rem;justify-content:flex-end}
.food--eggs{min-height:26rem}
.food--eggs{--focus-pt:50% 55%}
.food--greens{--focus-pt:50% 50%}
.food--berries{--focus-pt:50% 40%}
.food--yogurt{--focus-pt:50% 62%}
.food--seeds{--focus-pt:40% 50%}
.food--water{--focus-pt:50% 55%}
.cap{
  position:relative;z-index:2;
  background:var(--surface-raised);color:var(--text-primary);
  border-top:1px solid var(--border-strong);
  padding:1rem 1.15rem 1.15rem;
  margin:0;
}
.cap h3{font-size:1.1rem;letter-spacing:-.02em;margin-bottom:.35rem}
.cap p{margin:0;font-size:.95rem;line-height:1.45;color:var(--text-secondary)}
.food:hover .cap{background:var(--brand-accent)}
.food:hover .cap p{color:var(--text-primary)}
.cap,.cap p{transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease)}
.foods__note{--tile-bg:var(--surface-sand);flex-direction:row;align-items:center;gap:1rem;padding-block:1.1rem}
.foods__note p{margin:0}

/* PULL QUOTE */
.quote .shell{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-5) var(--gutter);align-items:center}
.quote__orn{grid-column:1/3}
.quote blockquote{grid-column:3/13;margin:0}
.quote blockquote p{
  font-family:var(--font-display);font-weight:800;
  font-size:var(--text-h1);line-height:1.04;letter-spacing:-.04em;margin:0;text-wrap:balance;
  font-feature-settings:"liga";
}
.quote mark{background:linear-gradient(transparent 62%, rgb(var(--gold-rgb) / .75) 62% 92%, transparent 92%);color:inherit;padding:0 .08em}
.quote cite{display:block;margin-top:var(--space-5);font-style:normal;font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary)}
.quote .glyph{font-size:clamp(14rem,36vw,34rem);left:-.08em;top:-.05em;color:var(--brand-primary);opacity:.1;-webkit-text-stroke:0}
@media (max-width:760px){.quote__orn{display:none}.quote blockquote{grid-column:1/-1}}

/* MOVIMIENTO */
.move__img{--focus-pt:42% 55%}
.move__calm{--focus-pt:60% 40%}
.move__img .frame,.move__calm .frame{position:absolute;inset:0}
.move__text{--tile-bg:var(--surface-raised);border-top:1px solid var(--rule);justify-content:center;box-shadow:var(--shadow-hard)}
.move__text h2{font-size:var(--text-h2);max-width:18ch;margin-bottom:var(--space-4)}
.move__home{--tile-bg:var(--surface-base);justify-content:center}
.move__home h2{font-size:var(--text-h2);margin-bottom:var(--space-4)}
.move__home .lead{max-width:40ch}

/* PRODUCTO */
.prod__media{--tile-bg:var(--surface-raised);padding:0;min-height:26rem;overflow:hidden}
.prod__media .frame{position:absolute;inset:0}
.prod__media img{object-position:50% 50%}
.prod__title{--tile-bg:var(--surface-base);justify-content:flex-end;gap:1rem}
.prod__title h2{font-size:var(--text-h1)}
.prod__title .lead{max-width:56ch}
.prod__price{--tile-bg:var(--surface-sand);justify-content:center}
.prod__price .eyebrow{margin-bottom:.5rem}
.price{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(2.4rem,3.8vw,3.6rem);line-height:.9;letter-spacing:-.06em;white-space:nowrap;
  color:var(--brand-primary);margin:.15em 0 .3em;
  font-variant-numeric:lining-nums;
}
.prod__spec{--tile-bg:var(--surface-raised);justify-content:center}
.spec{list-style:none;margin:0;padding:0;counter-reset:spec}
.spec li{
  counter-increment:spec;position:relative;
  padding:1.1rem 0 1.1rem 3rem;border-bottom:1px solid var(--border-strong);
  font-size:1.05rem;line-height:1.45;
}
.spec li:first-child{padding-top:0}
.spec li:last-child{border-bottom:0;padding-bottom:0}
.spec li::before{
  content:counter(spec,decimal-leading-zero);
  position:absolute;left:0;top:1.1rem;
  font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.12em;color:var(--accent-ink);
}
.spec li:first-child::before{top:.2rem}
.prod__cta{gap:1rem;justify-content:space-between}
.prod__cta .note{margin:0;color:var(--text-primary)}

/* FAQ */
.faq__label{--tile-bg:var(--surface-sand);justify-content:space-between;overflow:hidden;min-height:18rem}
.faq__label h2{font-size:calc(var(--text-h2) * .95);position:relative;z-index:1;overflow-wrap:break-word}
.faq__label .glyph{font-size:clamp(12rem,24vw,24rem);right:-.04em;bottom:-.2em;color:var(--brand-primary);opacity:.1;-webkit-text-stroke:0}
.faq__list{--tile-bg:var(--surface-raised);padding-block:calc(var(--tile-pad) * .6)}
.faq details{border-bottom:1px solid var(--border-strong)}
.faq details:last-child{border-bottom:0}
.faq summary{
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  cursor:pointer;list-style:none;
  font-family:var(--font-display);font-weight:700;font-size:clamp(1rem,1.7vw,1.3rem);letter-spacing:-.02em;line-height:1.2;
  padding:1.25rem 0;transition:color var(--dur-fast);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";flex:none;width:1.4rem;height:1.4rem;
  background:
    linear-gradient(var(--brand-primary),var(--brand-primary)) center/100% 2px no-repeat,
    linear-gradient(var(--brand-primary),var(--brand-primary)) center/2px 100% no-repeat;
  transition:transform var(--dur) var(--ease);
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--brand-primary)}
.faq details p{margin:0 0 1.35rem;max-width:58ch;color:var(--text-secondary);animation:fadeUp .35s var(--ease)}
.disc{justify-content:flex-start}
.disc p{font-size:.95rem;line-height:1.6;margin:0}
.disc .eyebrow{margin-bottom:.8rem}
.disc__a{--tile-bg:var(--surface-base)}
.disc__b{--tile-bg:var(--surface-sand)}
.disc__c{--tile-bg:var(--surface-base)}

/* CTA */
.cta{--focus:var(--brand-accent)}
.cta__text{justify-content:center;gap:var(--space-5);padding-block:clamp(2.5rem,7vw,6rem)}
.cta__text h2{font-size:calc(var(--text-hero) * .72);line-height:.98;letter-spacing:-.045em;max-width:15ch;color:var(--text-inverse)}
.cta__text h2 em{color:var(--brand-accent)}
.cta__text p{hyphens:manual;margin:0;font-size:clamp(1.05rem,1.8vw,1.35rem);color:var(--text-inverse-muted);max-width:44ch}
.cta__go{justify-content:center;gap:var(--space-5)}
.cta__go .btn{width:100%}
.cta__go .dateline{color:var(--text-inverse-muted)}
.cta .glyph{font-size:clamp(18rem,44vw,44rem);right:-.06em;top:-.12em;color:var(--brand-accent);opacity:.12;-webkit-text-stroke:0;z-index:0}
.cta .mosaic{position:relative;z-index:1}

/* ───────────── Footer ───────────── */
.ftr a{color:inherit;text-decoration:none}
.ftr__top{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}
.ftr__statement p:not(.eyebrow){font-family:var(--font-body);font-style:italic;font-size:clamp(1.5rem,3.2vw,2.6rem);line-height:1.2;letter-spacing:-.01em;margin:0;max-width:26ch}
.ftr__statement .eyebrow{color:var(--brand-accent)}
.ftr__entity p{font-size:var(--text-sm);line-height:1.6;color:var(--text-on-ink-muted);margin:0 0 .8rem}
.ftr__entity .entity{color:var(--text-inverse)}
.ftr__links,.ftr__word,.ftr__legal{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}
.ftr__links h4{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-accent);margin-bottom:.9rem}
.ftr__links ul{list-style:none;margin:0;padding:0}
.ftr__links li{margin:.4rem 0}
.ftr__links a{position:relative;font-size:1rem;background:linear-gradient(var(--brand-accent),var(--brand-accent)) 0 100%/0 2px no-repeat;transition:background-size var(--dur) var(--ease);padding-bottom:.1rem}
.ftr__links a:hover{background-size:100% 2px}
.ftr__word{color:var(--text-inverse);overflow:hidden}
.ftr__word .wordmark{--mark-dot:var(--brand-accent);line-height:.78;display:flex;width:100%}
.ftr__legal p{font-size:var(--text-sm);line-height:1.6;color:var(--text-on-ink-muted);max-width:90ch;margin:0 0 .9rem}
.ftr__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;font-family:var(--font-display);font-weight:700;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-on-ink-muted)}

/* ───────────── Subpages ───────────── */
.phead__crumbs{--tile-bg:var(--surface-sand);flex-direction:row;align-items:center;padding-block:.8rem}
.crumbs{margin:0;font-family:var(--font-display);font-weight:700;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.crumbs a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--brand-accent)}
.crumbs a:hover{color:var(--brand-primary)}
.phead__title{justify-content:flex-end;padding-block:clamp(2rem,6vw,5rem) clamp(1.5rem,3vw,2.5rem);--tile-bg:var(--surface-base);position:relative;overflow:hidden}
.phead__title h1{font-size:var(--text-h1);max-width:14ch;position:relative;z-index:1}
.phead__aside{--tile-bg:var(--brand-primary);color:var(--text-inverse);justify-content:space-between;gap:var(--space-5);--rule:var(--rule-on-primary)}
.phead__aside .lead{color:var(--text-inverse);font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.45}
.phead__aside .note{color:var(--text-inverse-muted);margin:0}
.doc__rail{--tile-bg:var(--surface-sand);overflow:hidden;position:relative}
.doc__rail .glyph{font-size:clamp(12rem,22vw,22rem);left:-.04em;top:-.04em;color:var(--brand-primary);opacity:.1;-webkit-text-stroke:0}
.doc__pad{background-image:var(--hatch-ruled);background-color:var(--surface-raised)}
.doc__body,.doc__a,.doc__b{--tile-bg:var(--surface-raised);padding-block:clamp(2rem,4.5vw,4rem)}
.doc__a{--tile-bg:var(--surface-base)}

.prose a,.tile p a,.lead a,.note a{hyphens:none;overflow-wrap:anywhere}
.prose:not(.tile){max-width:66ch}
.tile.prose > *{max-width:66ch}
.prose > :first-child{margin-top:0}
.prose p,.prose li{color:var(--text-secondary);line-height:1.7}
.prose strong{color:var(--text-primary)}
.prose h2{
  font-size:var(--text-h3);letter-spacing:-.03em;
  margin:2.2rem 0 .8rem;padding-top:1rem;border-top:3px double var(--border-strong);
}
.prose ul{padding-left:1.2rem}
.prose li::marker{color:var(--brand-primary)}
.entity{font-size:1.05rem;line-height:1.7}
.entity strong{color:var(--text-primary)}

/* Form: ruled, sharp, typographic */
.form{display:grid;gap:1.6rem}
.form label{display:block;font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-primary)}
.form input:not([type="checkbox"]),.form textarea{
  display:block;width:100%;margin-top:.4rem;padding:.7rem 0;
  font:inherit;font-size:1.1rem;color:var(--text-primary);
  background:transparent;border:0;border-bottom:2px solid var(--text-primary);border-radius:0;
  transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.form textarea{min-height:9rem;resize:vertical;background-image:var(--hatch-ruled);background-size:100% 1.7rem;line-height:1.7rem;padding:0 0 .5rem}
.form input:not([type="checkbox"]):focus,.form textarea:focus{outline:0;border-color:var(--brand-primary);box-shadow:0 3px 0 var(--brand-accent)}
.form input:user-invalid,.form textarea:user-invalid{border-color:var(--brand-primary);box-shadow:0 3px 0 var(--brand-primary)}
.field-hint{margin:.45rem 0 0;font-size:var(--text-sm);color:var(--text-secondary)}
.check{display:flex!important;align-items:flex-start;gap:.8rem;font-family:var(--font-body)!important;font-weight:400!important;font-size:1rem!important;letter-spacing:0!important;text-transform:none!important;color:var(--text-secondary)!important;cursor:pointer}
.check input{flex:none;width:1.25rem;height:1.25rem;margin:.2rem 0 0;accent-color:var(--brand-primary)}
.check span{flex:1;min-width:0}
.form .btn{justify-self:start}

/* ───────────── Cookie banner ───────────── */
.cookie{
  position:fixed;left:var(--gutter);bottom:var(--gutter);z-index:80;
  width:min(26rem, 100% - 2 * var(--gutter));
  background:var(--surface-raised);color:var(--text-primary);
  border:1px solid var(--text-primary);border-radius:0;
  box-shadow:var(--shadow-hard);
  padding:1.3rem 1.4rem 1.4rem;display:none;
}
.cookie.is-on{display:block;animation:fadeUp .4s var(--ease)}
.cookie h4{font-size:1.15rem;margin-bottom:.5rem;padding-bottom:.6rem;border-bottom:3px double var(--border-strong)}
.cookie p{font-size:.95rem;line-height:1.55;margin:0 0 1rem;color:var(--text-secondary)}
.cookie p a{color:var(--brand-primary);text-decoration-color:var(--brand-accent);text-decoration-thickness:2px;text-underline-offset:.2em}
.cookie-btns{display:flex;gap:.6rem;flex-wrap:wrap}
.cookie .btn{--btn-border:var(--text-primary);flex:1 1 auto;justify-content:center}
