/* ============================================================
   ACB · EASY LINK — Landing
   Brand-strict · responsive · all imagery full-bleed (a sangre)
   Self-contained deliverable for client hand-off.
   ============================================================ */

/* ---------- Fonts + brand tokens (single source of truth) ----------
   Inherits the official @font-face set from the canonical foundation file,
   so fonts are declared ONCE across the whole system. For a standalone
   client hand-off, export this page via the inliner (fonts embedded). */
@import url('../colors_and_type.css');

/* ---------- Tokens ---------- */
:root{
  --ink:#0E0D0D;
  --white:#FFFFFF;
  --sand-50:#F7F3EF;
  --sand-100:#EFE9E2;
  --greige:#DBD1C8;
  --muted:rgba(14,13,13,0.55);
  --muted-2:rgba(14,13,13,0.40);
  --line:rgba(14,13,13,0.14);
  --line-strong:rgba(14,13,13,0.24);
  --sans:'Brandon Grotesque', system-ui, sans-serif; /* @kind font */
  --display:'Montserrat ACB', system-ui, sans-serif; /* @kind font */
  --script:'Lumios Marker', cursive; /* @kind font */
  --maxw:1320px;
  --gutter:clamp(20px, 5vw, 72px); /* @kind spacing */
  --header-h:84px;
}

/* ---------- Reset ---------- */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--sans); font-weight:400; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,p{ margin:0; text-wrap:pretty; }

/* ---------- Reusable type ---------- */
.kicker{
  font-family:var(--sans); font-weight:600; font-size:13px;
  letter-spacing:0.22em; text-transform:uppercase; color:var(--muted);
}
.kicker--light{ color:rgba(255,255,255,0.78); }
.rule{ width:54px; height:1.5px; background:var(--line-strong); border:0; margin:0 0 22px; }
.rule--light{ background:rgba(255,255,255,0.45); }

.h-display{ font-family:var(--sans); font-weight:700; letter-spacing:-0.045em; line-height:1.02; }
.lead{ font-family:var(--sans); font-weight:400; color:var(--muted); letter-spacing:-0.01em;
  font-size:clamp(17px,1.25vw,20px); line-height:1.5; }

/* ---------- Buttons (landing standard: black rectangular, sharp) ---------- */
.btn{
  display:inline-flex; align-items:center; gap:12px; justify-content:center;
  font-family:var(--sans); font-weight:700; font-size:14px; letter-spacing:0.14em;
  text-transform:uppercase; padding:18px 30px; border:1.5px solid var(--ink);
  background:var(--ink); color:var(--white); border-radius:0; transition:background .2s, color .2s, transform .15s;
}
.btn svg{ width:17px; height:17px; }
.btn:hover{ background:#272424; }
.btn:active{ transform:translateY(1px); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--white); }
.btn--ghost:hover svg path{ stroke:var(--white); }
.btn--on-dark{ background:var(--white); color:var(--ink); border-color:var(--white); }
.btn--on-dark:hover{ background:transparent; color:var(--white); }
.btn--on-dark:hover svg path{ stroke:var(--white); }
.btn--lg{ padding:20px 38px; }
.btn--block{ width:100%; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter);
  height:var(--header-h); display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand-lockup{ display:flex; align-items:center; gap:20px; min-width:0; }
/* Official ACB lockup — real artwork as supplied (do not redraw) */
.brand-logo{ height:42px; width:auto; display:block; }
.brand-logo--footer{ height:62px; }
.brand-divider{ width:1.5px; height:46px; background:var(--line-strong); flex:0 0 auto; }
.brand-sub{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.brand-sub .l1{ font-family:var(--sans); font-weight:700; font-size:18px; letter-spacing:0.22em; text-transform:uppercase; white-space:nowrap; }
.brand-sub .l2{ font-family:var(--sans); font-weight:500; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }

.nav{ display:flex; align-items:center; gap:34px; }
.nav a.nav-link{ font-family:var(--sans); font-weight:600; font-size:13px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink); padding:6px 0; position:relative; }
.nav a.nav-link::after{ content:''; position:absolute; left:0; right:100%; bottom:-2px; height:1.5px; background:var(--ink); transition:right .25s; }
.nav a.nav-link:hover::after{ right:0; }
.nav .btn{ padding:13px 24px; font-size:12px; }

/* Language selector */
.lang{ display:flex; align-items:center; gap:2px; border:1px solid var(--line-strong); border-radius:0; }
.lang button{ background:transparent; border:0; font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:0.1em; color:var(--muted); padding:9px 11px; }
.lang button[aria-pressed="true"]{ background:var(--ink); color:var(--white); }

/* Language switcher (header) */
.lang-switch{ display:flex; align-items:center; gap:2px; border:1px solid var(--line-strong); flex:0 0 auto; }
.lang-switch button{ background:transparent; border:0; cursor:pointer; font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:0.08em; color:var(--muted); padding:9px 11px; transition:background .18s, color .18s; }
.lang-switch button:hover{ color:var(--ink); }
.lang-switch button[aria-pressed="true"]{ background:var(--ink); color:var(--white); }
@media (max-width:560px){
  .lang-switch button{ padding:7px 8px; font-size:11px; letter-spacing:0.04em; }
}

.nav-toggle{ display:none; background:transparent; border:0; width:44px; height:44px; align-items:center; justify-content:center; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--ink); position:relative; }
.nav-toggle span::before,.nav-toggle span::after{ content:''; position:absolute; left:0; width:24px; height:2px; background:var(--ink); transition:transform .25s, top .25s; }
.nav-toggle span::before{ top:-7px; } .nav-toggle span::after{ top:7px; }
.nav-open .nav-toggle span{ background:transparent; }
.nav-open .nav-toggle span::before{ top:0; transform:rotate(45deg); }
.nav-open .nav-toggle span::after{ top:0; transform:rotate(-45deg); }

/* ============================================================
   HERO — full-bleed image (a sangre)
   ============================================================ */
.hero{ position:relative; min-height:min(88vh,860px); display:flex; align-items:flex-end; overflow:hidden; }
.hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.hero__scrim{ position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(14,13,13,0.74) 0%, rgba(14,13,13,0.42) 36%, rgba(14,13,13,0.05) 64%),
             linear-gradient(to top, rgba(14,13,13,0.6) 0%, rgba(14,13,13,0) 42%); }
.hero__inner{ position:relative; max-width:var(--maxw); margin:0 auto; width:100%; padding:0 var(--gutter) clamp(56px,7vw,96px); }
.hero__content{ max-width:860px; }
.hero h1{ color:var(--white); font-size:clamp(40px,6.6vw,92px); margin:20px 0 0; }
.hero .lead{ color:rgba(255,255,255,0.9); max-width:620px; margin-top:26px; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:16px; margin-top:38px; }
.vlabel{ position:absolute; right:calc(var(--gutter) - 6px); top:50%; transform:rotate(180deg) translateY(50%); writing-mode:vertical-rl;
  font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:0.32em; text-transform:uppercase; color:rgba(255,255,255,0.7); }

/* ============================================================
   SECTION scaffold
   ============================================================ */
section{ position:relative; }
.section-pad{ padding:clamp(64px,9vw,128px) 0; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
.section-head{ max-width:760px; margin:0 auto clamp(40px,5vw,64px); text-align:center; }
.section-head .kicker{ display:inline-block; }
.section-head h2{ font-size:clamp(30px,4vw,52px); margin-top:18px; }

/* ============================================================
   SISTEMA MODULAR — split, image a sangre
   ============================================================ */
.split{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; min-height:min(70vh,680px); }
.split--reverse .split__media{ order:2; }
.split__media{ position:relative; overflow:hidden; }
.split__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.split__body{ display:flex; flex-direction:column; justify-content:center; padding:clamp(40px,6vw,96px); }
.split--sand{ background:var(--sand-50); }
.split--ink{ background:var(--ink); }
.split--ink .split__body{ color:var(--white); }
.split--ink h2{ color:var(--white); }
.split__body h2{ font-size:clamp(30px,3.6vw,52px); margin:18px 0 0; }
.split__body .lead{ margin-top:24px; max-width:520px; }
.split--ink .split__body .lead{ color:rgba(255,255,255,0.78); }
.split__body .btn-row{ margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; }
.feature-list{ margin:30px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:0; }
.feature-list li{ display:flex; gap:18px; align-items:baseline; padding:18px 0; border-top:1px solid var(--line); }
.split--ink .feature-list li{ border-top-color:rgba(255,255,255,0.16); }
.feature-list li:last-child{ border-bottom:1px solid var(--line); }
.split--ink .feature-list li:last-child{ border-bottom-color:rgba(255,255,255,0.16); }
.feature-list .n{ font-family:var(--display); font-weight:700; font-size:15px; opacity:0.5; flex:0 0 auto; }
.feature-list .t{ font-weight:500; font-size:clamp(16px,1.3vw,19px); letter-spacing:-0.01em; }
.feature-list .t small{ display:block; font-weight:400; font-size:14px; color:var(--muted); letter-spacing:0; margin-top:4px; }
.split--ink .feature-list .t small{ color:rgba(255,255,255,0.6); }

/* ============================================================
   CONFIGURADOR — image a sangre, bottom aligned to button
   ============================================================ */
.configurador{ background:var(--sand-50); }
.cfg-grid{ display:grid; grid-template-columns:1.5fr 0.85fr; gap:clamp(28px,4vw,64px); align-items:end; }
.cfg-shot{ position:relative; width:100%; aspect-ratio:1400/728; overflow:hidden; box-shadow:0 40px 90px -40px rgba(14,13,13,0.5); background:var(--ink); }
.cfg-shot img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.cfg-body{ padding-bottom:6px; }
.cfg-body h2{ font-size:clamp(30px,3.6vw,50px); margin:18px 0 0; }
.cfg-body .lead{ margin-top:26px; max-width:520px; }
.cfg-body .btn{ margin-top:34px; }

/* ============================================================
   CARRUSEL — full-bleed slides, NO titles (per client comment)
   ============================================================ */
.projects{ background:var(--white); }
.carousel{ position:relative; max-width:1500px; margin:0 auto; padding:0 var(--gutter); }
.carousel__viewport{ overflow:hidden; }
.carousel__track{ display:flex; transition:transform .55s cubic-bezier(.4,.01,.2,1); }
.carousel__slide{ flex:0 0 100%; position:relative; aspect-ratio:1211/847; overflow:hidden; background:var(--sand-100); }
.carousel__slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.carousel__btn{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:54px; height:54px; border:0;
  background:rgba(255,255,255,0.9); color:var(--ink); display:flex; align-items:center; justify-content:center; transition:background .2s; }
.carousel__btn:hover{ background:var(--white); }
.carousel__btn svg{ width:22px; height:22px; }
.carousel__btn--prev{ left:calc(var(--gutter) + 14px); }
.carousel__btn--next{ right:calc(var(--gutter) + 14px); }
.carousel__dots{ display:flex; gap:10px; justify-content:center; margin-top:26px; }
.carousel__dots button{ width:30px; height:3px; border:0; background:var(--line-strong); padding:0; transition:background .2s; }
.carousel__dots button[aria-current="true"]{ background:var(--ink); }

/* ============================================================
   CATÁLOGO — split form, image a sangre
   ============================================================ */
.catalogo{ background:var(--sand-50); }
.cat-grid{ display:grid; grid-template-columns:1fr 1fr; min-height:min(82vh,820px); }
.cat-media{ position:relative; overflow:hidden; }
.cat-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cat-form-wrap{ display:flex; align-items:center; padding:clamp(40px,6vw,96px); }
.cat-form{ width:100%; max-width:520px; }
.cat-form h2{ font-size:clamp(28px,3.2vw,46px); margin:16px 0 12px; }
.cat-form > p.lead{ margin-bottom:30px; }
.field{ margin-bottom:22px; }
.field label{ display:block; font-family:var(--sans); font-weight:700; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); margin-bottom:9px; }
.field input,.field select{
  width:100%; border:0; border-bottom:1.5px solid var(--line-strong); background:transparent;
  font-family:var(--sans); font-size:17px; color:var(--ink); padding:8px 0; border-radius:0; transition:border-color .2s;
}
.field input::placeholder{ color:var(--muted-2); }
.field input:focus,.field select:focus{ outline:0; border-bottom-color:var(--ink); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.consent{ display:flex; gap:12px; align-items:flex-start; margin:6px 0 28px; font-size:13.5px; color:var(--muted); }
.consent input{ margin-top:3px; width:16px; height:16px; accent-color:var(--ink); flex:0 0 auto; }
.consent a{ text-decoration:underline; color:var(--ink); }

/* ============================================================
   FOOTER — bigger logo + CONFIGURADOR.EASY LINK
   ============================================================ */
.site-footer{ background:var(--ink); color:rgba(255,255,255,0.7); padding:clamp(56px,7vw,88px) 0 40px; }
.footer-top{ display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; align-items:flex-start; }
.footer-brand .brand-logo--footer{ height:78px; }
.footer-config{ font-family:var(--sans); font-weight:700; font-size:clamp(20px,2.4vw,30px); letter-spacing:0.06em; color:var(--white); }
.footer-config span{ color:rgba(255,255,255,0.45); }
.footer-nav{ display:flex; gap:30px; flex-wrap:wrap; }
.footer-nav a{ font-family:var(--sans); font-weight:600; font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.8); }
.footer-nav a:hover{ color:var(--white); }
.footer-bottom{ margin-top:clamp(40px,5vw,64px); padding-top:26px; border-top:1px solid rgba(255,255,255,0.16);
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:12.5px; letter-spacing:0.04em; color:rgba(255,255,255,0.55); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .brand-sub .l2{ display:none; }
  .cfg-grid{ grid-template-columns:1fr; align-items:start; gap:32px; }
  .cfg-body{ order:-1; }
}
@media (max-width:1000px){
  .nav{
    position:fixed; inset:var(--header-h) 0 auto 0; background:var(--white); flex-direction:column; align-items:flex-start;
    gap:0; padding:8px var(--gutter) 28px; border-bottom:1px solid var(--line); transform:translateY(-120%);
    transition:transform .32s cubic-bezier(.4,.01,.2,1); box-shadow:0 24px 40px -28px rgba(14,13,13,0.4);
  }
  .nav-open .nav{ transform:translateY(0); }
  .nav a.nav-link{ width:100%; padding:18px 0; border-bottom:1px solid var(--line); font-size:15px; }
  .nav a.nav-link::after{ display:none; }
  .nav .btn{ width:100%; margin-top:18px; padding:18px; }
  .nav .lang{ margin-top:18px; }
  .nav-toggle{ display:flex; }
}
@media (max-width:880px){
  :root{ --header-h:72px; }
  .split{ grid-template-columns:1fr; }
  .split__media{ min-height:58vw; }
  .split--reverse .split__media{ order:0; }
  .split--ink .split__media,.split--sand .split__media{ order:-1; }
  .cat-grid{ grid-template-columns:1fr; }
  .cat-media{ min-height:62vw; order:-1; }
  .carousel__btn{ width:44px; height:44px; }
  .carousel__btn--prev{ left:calc(var(--gutter) + 6px); }
  .carousel__btn--next{ right:calc(var(--gutter) + 6px); }
  .vlabel{ display:none; }
}
@media (max-width:520px){
  .brand-logo{ height:34px; }
  .brand-divider{ height:38px; }
  .brand-sub .l1{ font-size:14px; letter-spacing:0.18em; }
  .hero{ min-height:82vh; }
  .hero__cta .btn{ width:100%; }
  .field-row{ grid-template-columns:1fr; gap:0; }
  .footer-top{ flex-direction:column; gap:28px; }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto !important; }
  .carousel__track{ transition:none; }
}

/* Reveal-on-scroll (progressive enhancement) */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }

/* ── Form message (error / success) ─────────────────────────────── */
.form-msg {
  margin-top: .75rem;
  padding: .65rem .9rem;
  border-radius: 4px;
  font-size: .9rem;
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}
