/* =========================================================
   Empresas César Díaz, Inc. — hoja de estilos
   Paleta extraída por código (PIL) de los activos reales:
     navy  #212240  → logo ECD (64.5% del logo)
     gold  #e7a73b  → arte promocional de Instagram (hexágono, badge "LLÁMENOS", título "SERVICIOS")
   Mobile-first. El toggle del menú va pegado a la derecha en móvil.
   ========================================================= */

:root{
  --navy:      #212240;
  --navy-900:  #14152a;
  --navy-800:  #1a1b35;
  --navy-700:  #2b2c52;
  --navy-600:  #3a3b66;
  --navy-line: #34355c;

  --gold:      #e7a73b;
  --gold-600:  #d0902a;
  --gold-100:  #fdf3e0;

  --ink:       #1b1c2c;
  --body:      #4d4f63;
  --muted:     #7c7e91;
  --line:      #e3e4ea;
  --soft:      #f4f5f8;
  --white:     #ffffff;

  --wrap: 1200px;
  --r:    14px;
  --r-sm: 10px;

  --shadow-sm: 0 1px 2px rgba(20,21,42,.06), 0 2px 8px rgba(20,21,42,.05);
  --shadow-md: 0 4px 12px rgba(20,21,42,.08), 0 12px 32px rgba(20,21,42,.09);
  --shadow-lg: 0 10px 24px rgba(20,21,42,.12), 0 28px 60px rgba(20,21,42,.16);

  --nav-h: 64px;

  --f-disp: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
  --f-body: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.62;
  color:var(--body);
  background:var(--white);
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }

h1,h2,h3{
  font-family:var(--f-disp);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.005em;
  color:var(--ink);
  margin:0 0 .5em;
  text-transform:uppercase;
}
h1{ font-size:clamp(2.5rem, 9.5vw, 4.6rem); }
h2{ font-size:clamp(2rem, 7vw, 3.2rem); }
h3{ font-size:1.32rem; letter-spacing:0; }
p{ margin:0 0 1.1em; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:20px; }

.ico{ width:20px; height:20px; flex:none; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:var(--navy-900);
  padding:12px 18px; font-weight:700; border-radius:0 0 var(--r-sm) 0;
}
.skip:focus{ left:0; }

:where(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--gold);
  outline-offset:2px;
  border-radius:4px;
}

/* ============ eyebrow ============ */
.eyebrow{
  display:flex; align-items:center; gap:12px;
  font-family:var(--f-disp);
  font-weight:700; font-size:.98rem;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold);
  margin:0 0 .9em;
}
.eyebrow__rule{ width:34px; height:3px; background:var(--gold); flex:none; }
.eyebrow--dark{ color:var(--gold-600); }

/* ============ buttons ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--f-disp);
  font-size:1.12rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
  padding:15px 26px;
  border:2px solid transparent;
  border-radius:var(--r-sm);
  text-decoration:none;
  cursor:pointer;
  transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn:active{ transform:translateY(1px); }
.btn--gold{ background:var(--gold); color:var(--navy-900); box-shadow:0 6px 18px rgba(231,167,59,.32); }
.btn--gold:hover{ background:#f2b64f; box-shadow:0 8px 24px rgba(231,167,59,.42); }
.btn--ghost{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.42); backdrop-filter:blur(4px); }
.btn--ghost:hover{ background:rgba(255,255,255,.16); border-color:#fff; }
.btn--navy{ background:var(--navy); color:#fff; }
.btn--navy:hover{ background:var(--navy-700); }
.btn--block{ width:100%; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.nav__inner{
  display:flex; align-items:center; gap:14px;
  min-height:var(--nav-h);
}

.brand{
  display:flex; align-items:center; gap:11px;
  text-decoration:none;
  margin-right:auto;              /* empuja todo lo demás a la derecha */
  min-width:0;
}
.brand img{ width:40px; height:40px; border-radius:8px; flex:none; }
.brand__txt{ display:flex; flex-direction:column; line-height:1.1; min-width:0; }
.brand__txt b{
  font-family:var(--f-disp); font-weight:800;
  font-size:1.16rem; letter-spacing:.005em; text-transform:uppercase;
  color:var(--ink);
  white-space:nowrap;
}
.brand__txt i{
  font-style:normal; font-size:.68rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}

.nav__tel{
  display:none;
  align-items:center; gap:8px;
  font-family:var(--f-disp); font-weight:700; font-size:1.1rem;
  color:var(--ink); text-decoration:none;
  white-space:nowrap;
}
.nav__tel:hover{ color:var(--gold-600); }
.nav__tel .ico{ color:var(--gold-600); }

/* toggle: pegado a la derecha en móvil */
.nav__toggle{
  margin-left:auto;
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px;
  background:var(--navy); color:#fff;
  border:0; border-radius:var(--r-sm);
  cursor:pointer; flex:none;
}
.nav__toggle .ico{ width:22px; height:22px; }
.nav__toggle .ico--close{ display:none; }
.nav__toggle[aria-expanded="true"] .ico--menu{ display:none; }
.nav__toggle[aria-expanded="true"] .ico--close{ display:block; }

/* drawer móvil */
.nav__links{
  position:fixed;
  top:var(--nav-h); left:0; right:0;
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow:var(--shadow-md);
  padding:10px 20px 22px;
  display:flex; flex-direction:column;
  transform:translateY(-12px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.nav__links.is-open{ transform:none; opacity:1; visibility:visible; pointer-events:auto; }
.nav__links a{
  font-family:var(--f-disp); font-weight:700; font-size:1.28rem;
  letter-spacing:.03em; text-transform:uppercase;
  color:var(--ink); text-decoration:none;
  padding:13px 2px;
  border-bottom:1px solid var(--line);
}
.nav__links a:last-child{ border-bottom:0; }
.nav__cta{
  margin-top:14px;
  background:var(--gold); color:var(--navy-900) !important;
  text-align:center; border-radius:var(--r-sm);
  padding:15px 20px !important;
}
/* sin JS el drawer no se puede abrir → mostrar los links en flujo */
html:not(.js) .nav__links{ position:static; opacity:1; visibility:visible; pointer-events:auto; transform:none; box-shadow:none; }
html:not(.js) .nav__toggle{ display:none; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:min(88svh, 760px);
  display:flex; align-items:flex-end;
  padding:96px 0 56px;
  background:var(--navy-900);
  overflow:hidden;
  isolation:isolate;
}
.hero__bg{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%;
  object-fit:cover; object-position:center 60%;
}
.hero__veil{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to top, rgba(20,21,42,.96) 4%, rgba(20,21,42,.80) 38%, rgba(20,21,42,.44) 72%, rgba(20,21,42,.62) 100%),
    linear-gradient(to right, rgba(33,34,64,.72), rgba(33,34,64,0) 70%);
}
.hero__inner{ position:relative; color:#fff; }
.hero h1{
  color:#fff;
  max-width:16ch;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero h1 em{ font-style:normal; color:var(--gold); display:block; }
.hero__lead{
  max-width:56ch;
  font-size:1.09rem;
  color:rgba(255,255,255,.9);
  margin-bottom:1.7em;
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; }
.hero__cta .btn{ flex:1 1 auto; min-width:min(100%, 240px); }
.hero__note{
  margin:18px 0 0;
  font-size:.94rem;
  color:rgba(255,255,255,.72);
}
.hero__note strong{ color:var(--gold); }

/* =========================================================
   TRUST BAR
   ========================================================= */
.trust{ background:var(--navy); color:#fff; }
.trust__grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1px;
  background:var(--navy-line);
  border-inline:1px solid var(--navy-line);
  padding:0;
}
.trust__item{
  background:var(--navy);
  padding:22px 18px;
  text-align:center;
}
.trust__item b{
  display:block;
  font-family:var(--f-disp); font-weight:800;
  font-size:1.85rem; line-height:1;
  color:var(--gold);
  text-transform:uppercase;
}
.trust__item span{
  display:block; margin-top:6px;
  font-size:.84rem; line-height:1.35;
  color:rgba(255,255,255,.74);
}

/* =========================================================
   SECCIONES
   ========================================================= */
.sec{ padding:76px 0; }
.sec--soft{ background:var(--soft); }
.sec--dark{ background:var(--navy-900); color:rgba(255,255,255,.78); }
.sec--dark h2, .sec--dark h3{ color:#fff; }

.sec__head{ max-width:62ch; margin-bottom:44px; }
.sec__head h2 em{ font-style:normal; color:var(--gold); display:block; }
.sec__lead{ font-size:1.06rem; margin:0; }
.sec:not(.sec--dark) .sec__lead{ color:var(--body); }

/* ============ SERVICIOS ============ */
.svc{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
.svc__card{
  position:relative;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:26px 24px 24px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  overflow:hidden;
}
.svc__card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--gold);
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.svc__card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:#d5d7e0; }
.svc__card:hover::before{ transform:scaleX(1); }
.svc__ico{
  width:44px; height:44px;
  color:var(--navy);
  margin-bottom:14px;
}
.svc__card h3{ margin-bottom:.35em; }
.svc__card p{ margin:0; font-size:.98rem; }
.svc__card--photo img{
  margin-top:18px;
  width:100%; height:150px;
  object-fit:cover;
  border-radius:var(--r-sm);
}
.svc__foot{
  margin:36px 0 0;
  padding:22px 24px;
  background:var(--gold-100);
  border-left:4px solid var(--gold);
  border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:1rem;
  color:var(--ink);
}
.svc__foot a{ font-weight:700; color:var(--gold-600); white-space:nowrap; }

/* ============ PROYECTOS ============ */
.filters{
  display:flex; flex-wrap:wrap; gap:9px;
  margin-bottom:26px;
}
.filter{
  font-family:var(--f-disp); font-weight:700; font-size:.98rem;
  letter-spacing:.05em; text-transform:uppercase;
  padding:10px 17px;
  color:rgba(255,255,255,.78);
  background:transparent;
  border:1.5px solid var(--navy-line);
  border-radius:99px;
  cursor:pointer;
  transition:all .16s ease;
}
.filter:hover{ border-color:var(--gold); color:#fff; }
.filter.is-on{ background:var(--gold); border-color:var(--gold); color:var(--navy-900); }

/* Filas de altura fija: así los pies de foto quedan alineados aunque las
   fotos originales tengan proporciones distintas (verticales y horizontales). */
.gal{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  grid-auto-rows:178px;
  grid-auto-flow:dense;   /* rellena los huecos que dejan los tiles 2x2 */
  gap:12px;
}
.gal__item{
  position:relative;
  margin:0;
  border-radius:var(--r-sm);
  overflow:hidden;
  background:var(--navy-800);
}
.gal__item--wide{ grid-column:span 2; grid-row:span 2; }
.gal__item img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.gal__item:hover img{ transform:scale(1.05); }
.gal__item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:34px 14px 13px;
  background:linear-gradient(to top, rgba(15,16,32,.94), rgba(15,16,32,.65) 55%, transparent);
  color:#fff;
}
.gal__item figcaption b{
  display:block;
  font-family:var(--f-disp); font-weight:700; font-size:1.05rem;
  letter-spacing:.02em; text-transform:uppercase;
  line-height:1.15;
}
.gal__item figcaption span{
  display:block; margin-top:2px;
  font-size:.79rem; line-height:1.3;
  color:rgba(255,255,255,.74);
}
.gal__item[hidden]{ display:none; }
.gal__foot{ margin-top:24px; text-align:center; color:rgba(255,255,255,.6); }

/* ============ NOSOTROS ============ */
.about{ display:grid; gap:38px; }
.about__media{ position:relative; }
.about__media img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:var(--r);
}
.about__badge{
  position:absolute; right:-6px; bottom:-18px;
  background:var(--gold);
  color:var(--navy-900);
  border-radius:var(--r);
  padding:16px 20px;
  box-shadow:var(--shadow-lg);
  text-align:center;
}
.about__badge b{
  display:block;
  font-family:var(--f-disp); font-weight:800; font-size:2.3rem; line-height:.9;
}
.about__badge span{
  display:block; margin-top:4px;
  font-size:.74rem; font-weight:600; line-height:1.2;
  letter-spacing:.06em; text-transform:uppercase;
}
.about__body h2 em{ font-style:normal; color:var(--gold-600); }
.about__body strong{ color:var(--ink); }

.vals{ list-style:none; margin:28px 0; padding:0; display:grid; gap:16px; }
.vals li{ display:flex; gap:13px; align-items:flex-start; }
.vals .ico{
  width:26px; height:26px; padding:5px;
  color:var(--navy);
  background:var(--gold);
  border-radius:50%;
  margin-top:2px;
}
.vals b{
  display:block;
  font-family:var(--f-disp); font-weight:700; font-size:1.15rem;
  letter-spacing:.02em; text-transform:uppercase;
  color:var(--ink);
  line-height:1.2;
}
.vals span{ display:block; font-size:.96rem; }

/* ============ CONTACTO ============ */
.contact{ display:grid; gap:40px; }
.contact__intro h2 em{ font-style:normal; color:var(--gold); display:block; }

.contact__list{ list-style:none; margin:30px 0; padding:0; display:grid; gap:14px; }
.contact__list li{ display:flex; gap:14px; align-items:center; }
.contact__list .ico{
  width:38px; height:38px; padding:9px;
  color:var(--gold);
  background:rgba(231,167,59,.12);
  border:1px solid rgba(231,167,59,.28);
  border-radius:10px;
}
.contact__list span{
  display:block;
  font-size:.75rem; font-weight:600;
  letter-spacing:.11em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.contact__list a{
  font-family:var(--f-disp); font-weight:700; font-size:1.32rem;
  color:#fff; text-decoration:none;
  word-break:break-word;
}
.contact__list a:hover{ color:var(--gold); }

.contact__social{ display:flex; flex-wrap:wrap; gap:10px; }
.contact__social a{
  display:inline-flex; align-items:center; gap:9px;
  padding:10px 15px;
  font-size:.92rem; font-weight:600;
  color:rgba(255,255,255,.85); text-decoration:none;
  border:1px solid var(--navy-line);
  border-radius:99px;
  transition:all .16s ease;
}
.contact__social a:hover{ border-color:var(--gold); color:#fff; }

/* form */
.form{
  background:#fff;
  border-radius:var(--r);
  padding:28px 22px;
  box-shadow:var(--shadow-lg);
}
/* el formulario es una tarjeta blanca dentro de .sec--dark: hay que
   devolverle el color de tinta al h3, si no hereda blanco sobre blanco */
.form h3{ margin-bottom:1em; font-size:1.5rem; color:var(--ink); }
.field{ display:block; margin-bottom:16px; }
.field > span{
  display:block; margin-bottom:6px;
  font-size:.78rem; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink);
}
.field > span i{ color:#c8442f; font-style:normal; }
.field input, .field select, .field textarea{
  width:100%;
  font-family:var(--f-body); font-size:1rem;
  color:var(--ink);
  padding:13px 14px;
  background:var(--soft);
  border:1.5px solid var(--line);
  border-radius:var(--r-sm);
  transition:border-color .15s ease, background .15s ease;
}
.field input::placeholder, .field textarea::placeholder{ color:#a5a7b6; }
.field input:focus, .field select:focus, .field textarea:focus{
  background:#fff;
  border-color:var(--navy);
}
.field textarea{ resize:vertical; min-height:110px; }
.field select{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--body) 50%),linear-gradient(135deg,var(--body) 50%,transparent 50%); background-position:calc(100% - 20px) 22px, calc(100% - 15px) 22px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:42px; }
.field-row{ display:grid; gap:0; }
.form .btn{ margin-top:6px; }
.form__alt{
  margin:14px 0 0;
  font-size:.88rem; text-align:center; color:var(--muted);
}
.form__alt a{ color:var(--navy); font-weight:600; }
.form__err{
  margin:12px 0 0;
  padding:11px 14px;
  background:#fdecea; border-left:3px solid #c8442f; border-radius:0 6px 6px 0;
  font-size:.9rem; color:#8f2c1d;
}
.field--bad input, .field--bad select, .field--bad textarea{ border-color:#c8442f; background:#fdf6f5; }

/* =========================================================
   FOOTER
   ========================================================= */
.foot{ background:var(--navy); color:rgba(255,255,255,.7); padding:44px 0 0; }
.foot__inner{
  display:grid; gap:26px;
  padding-bottom:30px;
  border-bottom:1px solid var(--navy-line);
}
.foot__brand{ display:flex; align-items:center; gap:13px; }
/* el logo es un cuadro azul marino: sobre el pie de página, también marino,
   se pierde — va sobre un recuadro blanco para que resalte */
.foot__brand img{
  width:48px; height:48px; flex:none;
  background:#fff; padding:4px;
  border-radius:10px;
}
.foot__brand b{
  display:block;
  font-family:var(--f-disp); font-weight:800; font-size:1.24rem;
  letter-spacing:.01em; text-transform:uppercase;
  color:#fff;
}
.foot__brand span{ display:block; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); }

.foot__links{ display:flex; flex-wrap:wrap; gap:8px 22px; }
.foot__links a{
  font-family:var(--f-disp); font-weight:600; font-size:1.05rem;
  letter-spacing:.05em; text-transform:uppercase;
  color:rgba(255,255,255,.78); text-decoration:none;
}
.foot__links a:hover{ color:var(--gold); }

.foot__social{ display:flex; gap:10px; }
.foot__social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  color:#fff;
  border:1px solid var(--navy-line);
  border-radius:10px;
  transition:all .16s ease;
}
.foot__social a:hover{ background:var(--gold); border-color:var(--gold); color:var(--navy-900); }

.foot__legal{
  display:flex; flex-wrap:wrap; gap:6px 20px;
  justify-content:space-between;
  padding-block:18px 92px;   /* espacio para la barra flotante en móvil */
  font-size:.84rem;
  color:rgba(255,255,255,.5);
}
.foot__legal p{ margin:0; }

/* =========================================================
   BARRA FLOTANTE (móvil)
   ========================================================= */
.fab{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  display:flex;
  background:var(--navy-900);
  border-top:1px solid var(--navy-line);
  padding-bottom:env(safe-area-inset-bottom);
}
.fab__btn{
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 8px;
  font-family:var(--f-disp); font-weight:700; font-size:1.06rem;
  letter-spacing:.05em; text-transform:uppercase;
  text-decoration:none;
}
.fab__btn--call{ background:var(--gold); color:var(--navy-900); }
.fab__btn--wa{ background:#25d366; color:#04301a; }

/* =========================================================
   BREAKPOINTS
   ========================================================= */
@media (min-width:600px){
  .field-row{ grid-template-columns:1fr 1fr; gap:0 14px; }
  .svc{ grid-template-columns:repeat(2, 1fr); }
  .gal{ grid-template-columns:repeat(3, 1fr); grid-auto-rows:196px; gap:14px; }
  .trust__grid{ grid-template-columns:repeat(4, 1fr); }
  .form{ padding:34px 30px; }
}

@media (min-width:900px){
  :root{ --nav-h:76px; }
  body{ font-size:17px; }

  .nav__toggle{ display:none; }
  .nav__tel{ display:inline-flex; }
  .nav__links{
    position:static;
    flex-direction:row; align-items:center; gap:26px;
    padding:0; margin-right:26px;
    background:none; border:0; box-shadow:none;
    opacity:1; visibility:visible; pointer-events:auto; transform:none;
  }
  .nav__links a{
    font-size:1.06rem;
    padding:6px 0;
    border-bottom:0;
    white-space:nowrap;
    position:relative;
  }
  .nav__links a:not(.nav__cta)::after{
    content:""; position:absolute; left:0; right:0; bottom:0;
    height:2px; background:var(--gold);
    transform:scaleX(0); transform-origin:left;
    transition:transform .2s ease;
  }
  .nav__links a:not(.nav__cta):hover::after{ transform:scaleX(1); }
  .nav__cta{ margin-top:0; padding:11px 20px !important; font-size:1rem; }

  .brand img{ width:46px; height:46px; }
  .brand__txt b{ font-size:1.3rem; }

  .hero{ padding:120px 0 84px; min-height:min(90svh, 820px); }
  .hero__cta .btn{ flex:0 0 auto; min-width:0; }

  .sec{ padding:104px 0; }
  .sec__head{ margin-bottom:56px; }

  .svc{ grid-template-columns:repeat(3, 1fr); gap:20px; }
  .svc__card{ padding:32px 28px 30px; }

  /* la 7ma tarjeta ocupa la fila completa con la foto al lado, en vez de
     quedar huérfana al final de una fila de tres */
  .svc__card--photo{
    grid-column:1 / -1;
    display:flex; align-items:center; gap:36px;
  }
  .svc__card--photo .svc__body{ flex:1 1 auto; }
  .svc__card--photo p{ max-width:62ch; }
  .svc__card--photo img{
    flex:0 0 340px;
    width:340px; height:200px;
    margin-top:0;
  }

  .gal{ grid-template-columns:repeat(4, 1fr); grid-auto-rows:224px; gap:16px; }

  .about{ grid-template-columns:0.85fr 1fr; gap:64px; align-items:center; }
  .about__media img{ aspect-ratio:3/4; }
  .about__badge{ right:-24px; bottom:-24px; padding:20px 26px; }

  .contact{ grid-template-columns:1fr 1fr; gap:64px; align-items:start; }

  .foot{ padding-top:60px; }
  .foot__inner{
    grid-template-columns:auto 1fr auto;
    align-items:center; gap:40px;
  }
  .foot__links{ justify-content:center; }
  .foot__legal{ padding-block:20px 26px; }

  .fab{ display:none; }
}

@media (min-width:1100px){
  .hero h1{ font-size:4.6rem; }
  .hero__lead{ font-size:1.16rem; }
}

/* ============ reveal on scroll ============ */
@media (prefers-reduced-motion:no-preference){
  html.js .reveal{ opacity:0; transform:translateY(18px); }
  html.js .reveal.is-in{
    opacity:1; transform:none;
    transition:opacity .55s ease, transform .55s cubic-bezier(.22,.7,.3,1);
  }
}

@media print{
  .nav, .fab, .filters{ display:none; }
  .hero{ min-height:auto; }
}
