:root{
  --cream:#F7F4EE;
  --cream-2:#F1ECE2;
  --ink:#2A241C;
  --ink-soft:#5C5548;
  --gold:#D6A23F;
  --gold-deep:#B9822A;
  --line: rgba(42,36,28,0.12);
  --white:#FFFFFF;
  --maxw: 1240px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}
h1,h2,h3,h4{
  font-family:'Archivo', sans-serif;
  font-weight:800;
  line-height:1.05;
  letter-spacing:-0.01em;
}
.eyebrow{
  font-family:'Inter', sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
}
.eyebrow::before{
  content:'';
  width:26px;height:1px;
  background:var(--gold-deep);
  display:inline-block;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--gold);
  color:var(--ink);
  font-family:'Archivo', sans-serif;
  font-weight:700;
  font-size:13px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:16px 26px;
  border:none;
  cursor:pointer;
  transition:background .25s ease, letter-spacing .25s ease;
}
.btn:hover{ background:var(--gold-deep); color:var(--white); letter-spacing:0.09em; }
.btn svg{ transition:transform .25s ease; }
.btn:hover svg{ transform:translateX(4px); }
.btn-outline{
  background:transparent;
  border:1px solid var(--ink);
  color:var(--ink);
}
.btn-outline:hover{ background:var(--ink); color:var(--cream); }

/* ---------- LOGO ---------- */
.logo{ display:flex; align-items:center; gap:12px; }
.logo-mark{ height:54px; width:auto; display:block; }
.footer .logo-mark{ height:64px; }

/* ---------- HERO PHOTO (foto protagonista, quienes somos) ---------- */
.about .wrap.about-centered-wrap{ display:block; max-width:820px; margin:0 auto; }
.hero-photo{ margin:0 auto 56px; }
.hero-photo .imgbox{ overflow:hidden; border-radius:2px; }
.hero-photo .imgbox img{ width:100%; height:auto; display:block; }
.about-centered{ text-align:center; }
.about-centered .eyebrow{ justify-content:center; }
.about-content.about-centered h2{ margin:16px auto 30px; max-width:640px; }
.about-centered .about-copy{ max-width:640px; margin:0 auto; text-align:left; }
.about-centered .about-copy p{ max-width:100%; }
.about-centered .about-links{ display:flex; justify-content:center; }
.about-centered .value-row{ max-width:640px; margin:44px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:40px 56px; text-align:left; justify-content:initial; }
.about-centered .value-row .item{ max-width:100%; }
@media (max-width:560px){
  .about-centered .value-row{ grid-template-columns:1fr; }
}

/* ---------- HEADER ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(247,244,238,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:88px;
}
nav ul{ display:flex; gap:44px; }
nav a{
  font-family:'Archivo', sans-serif;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  position:relative;
  padding-bottom:4px;
}
nav a::after{
  content:'';
  position:absolute; left:0; bottom:0;
  width:0; height:1.5px;
  background:var(--gold);
  transition:width .25s ease;
}
nav a:hover::after, nav a.active::after{ width:100%; }
nav a.active{ color:var(--gold-deep); }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; }

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{
  padding:70px 0 60px;
  border-bottom:1px solid var(--line);
  text-align:center;
}
.page-hero .eyebrow{ justify-content:center; }
.page-hero .crumb{
  font-size:12px; color:var(--ink-soft); margin-top:14px;
}
.page-hero .crumb a{ color:var(--gold-deep); }
.page-hero h1{
  font-size:clamp(34px,4vw,52px);
  text-transform:uppercase;
  margin:16px auto 0;
  max-width:700px;
}
.page-hero p{
  margin:20px auto 0;
  max-width:480px;
  color:var(--ink-soft);
  font-size:15.5px;
  line-height:1.7;
}
.page-hero .icon-list{ justify-content:center; }

/* ---------- HOME HERO ---------- */
.hero{ padding:96px 0 160px; position:relative; }
.hero .wrap{
  display:grid;
  grid-template-columns:0.95fr 1.15fr;
  gap:60px;
  align-items:center;
}
.hero h1{ font-size:clamp(40px, 4.6vw, 60px); text-transform:uppercase; }
.hero h1 .accent{ color:var(--gold); }
.hero .lede{
  margin-top:26px; font-size:16.5px; line-height:1.7;
  color:var(--ink-soft); max-width:400px;
}
.hero .cta-row{ margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; }
.hero-visual{ position:relative; }
.hero-visual .frame{ position:absolute; inset:26px -26px -26px 26px; background:var(--gold); z-index:1; }
.hero-visual .imgbox{ position:relative; z-index:2; overflow:hidden; aspect-ratio:16/11; }
.hero-visual .imgbox img{ width:100%; height:100%; object-fit:cover; }
.hero-index{
  position:absolute; right:-46px; top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; gap:22px;
  font-family:'Archivo', sans-serif; font-size:12px; font-weight:700;
  color:var(--ink-soft); z-index:3;
}
.hero-index span.active{ color:var(--ink); }

/* ---------- SERVICES STRIP ---------- */
.strip{ padding:0 0 120px; }
.strip .grid{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.strip .cell{ padding:44px 34px 0 0; border-right:1px solid var(--line); }
.strip .cell:last-child{ border-right:none; }
.strip .cell svg{ width:34px; height:34px; stroke:var(--ink); margin-bottom:22px; }
.strip .cell h3{ font-size:16px; text-transform:uppercase; letter-spacing:0.03em; margin-bottom:12px; }
.strip .cell p{ font-size:14px; line-height:1.6; color:var(--ink-soft); max-width:230px; }

/* ---------- ABOUT / QUIENES SOMOS ---------- */
.about{ padding:100px 0 130px; }
.about.no-top-pad{ padding-top:20px; }
.about .wrap{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:flex-start; }
.about-visual{ position:sticky; top:120px; }
.about-visual .imgbox{ overflow:hidden; }
.about-visual .imgbox img{ width:100%; height:auto; display:block; object-fit:contain; }
.about h2{ font-size:clamp(28px,3vw,38px); text-transform:uppercase; margin:16px 0 30px; max-width:520px; }
.about-copy p{ font-size:15.5px; line-height:1.85; color:var(--ink-soft); margin-bottom:20px; max-width:560px; }
.about-copy p strong{ color:var(--ink); font-weight:600; }
.about-stats{ display:flex; gap:56px; margin-top:44px; padding-top:34px; border-top:1px solid var(--line); flex-wrap:wrap; }
.about-stats .stat b{ font-family:'Archivo', sans-serif; font-size:32px; font-weight:800; color:var(--gold-deep); display:block; }
.about-stats .stat span{ font-size:12.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.05em; }
.about-links{ margin-top:34px; }
.values-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:30px;
  margin-top:60px; padding-top:50px; border-top:1px solid var(--line);
}
.values-grid .value h4{ font-size:15px; text-transform:uppercase; margin-bottom:10px; }
.values-grid .value p{ font-size:14px; line-height:1.7; color:var(--ink-soft); }
.values-grid .value .n{ font-family:'Archivo', sans-serif; color:var(--gold-deep); font-weight:800; font-size:13px; margin-bottom:14px; display:block; }

/* ---------- SERVICIOS POR ESPACIO ---------- */
.spaces{ padding:20px 0 130px; }
.spaces.no-top-pad{ padding-top:0; }
.spaces-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:50px; gap:30px; flex-wrap:wrap; }
.spaces-head h2{ font-size:clamp(28px,3vw,38px); text-transform:uppercase; margin-top:16px; max-width:480px; }
.spaces-head p{ max-width:340px; color:var(--ink-soft); font-size:14.5px; line-height:1.7; }
.spaces-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:2px; background:var(--line); }
.space-card{ position:relative; aspect-ratio:16/11; overflow:hidden; background:var(--ink); cursor:default; }
.space-card img{ width:100%; height:100%; object-fit:cover; filter:grayscale(35%) brightness(0.72); transition:transform .6s ease, filter .5s ease; }
.space-card:hover img{ transform:scale(1.08); filter:grayscale(0%) brightness(0.5); }
.space-card .num{ position:absolute; top:20px; left:20px; font-family:'Archivo', sans-serif; font-size:11px; font-weight:700; color:rgba(255,255,255,0.65); letter-spacing:0.05em; }
.space-card .label{ position:absolute; bottom:22px; left:20px; right:20px; color:var(--white); font-family:'Archivo', sans-serif; font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:0.02em; }
.space-card .label small{ display:block; font-family:'Inter', sans-serif; font-size:11.5px; font-weight:400; text-transform:none; letter-spacing:0.01em; color:var(--gold); margin-top:6px; opacity:0; transform:translateY(6px); transition:opacity .35s ease, transform .35s ease; }
.space-card:hover .label small{ opacity:1; transform:translateY(0); }

.process{ margin-top:90px; }
.process-head{ margin-bottom:44px; }
.process-head h3{ font-size:22px; text-transform:uppercase; margin-top:14px; }
.process-list{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.process-list .step{ border-top:1px solid var(--line); padding-top:22px; }
.process-list .step .n{ font-family:'Archivo', sans-serif; font-size:13px; font-weight:800; color:var(--gold-deep); }
.process-list .step h4{ font-size:15px; text-transform:uppercase; margin:12px 0 10px; }
.process-list .step p{ font-size:13.5px; line-height:1.65; color:var(--ink-soft); }

/* ---------- PROJECTS ---------- */
.projects{ padding:20px 0 140px; }
.projects.no-top-pad{ padding-top:0; }
.projects-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:40px; flex-wrap:wrap; gap:20px; }
.projects-head h2{ font-size:clamp(26px,2.8vw,34px); text-transform:uppercase; margin-top:14px; }
.filter-row{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:44px; }
.filter-row button{
  font-family:'Archivo', sans-serif; font-size:11.5px; font-weight:700; letter-spacing:0.06em;
  text-transform:uppercase; padding:10px 18px; border:1px solid var(--line); background:transparent;
  cursor:pointer; transition:all .2s ease;
}
.filter-row button.active, .filter-row button:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.carousel-nav{ display:flex; gap:10px; }
.carousel-nav button{ width:40px; height:40px; border:1px solid var(--ink); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s ease, color .2s ease; }
.carousel-nav button:hover{ background:var(--gold); border-color:var(--gold); }
.projects-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.proj-card .imgbox{ aspect-ratio:16/11; overflow:hidden; margin-bottom:16px; }
.proj-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.proj-card:hover img{ transform:scale(1.06); }
.proj-card h4{ font-size:15px; text-transform:uppercase; font-weight:700; letter-spacing:0.02em; }
.proj-card span{ font-size:12.5px; color:var(--gold-deep); font-weight:600; }
.proj-tag{ display:inline-block; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }

/* ---------- CONTACT ---------- */
.contact{ padding:20px 0 140px; }
.contact.no-top-pad{ padding-top:0; }
.contact-panel{ background:var(--ink); color:var(--cream); display:grid; grid-template-columns:1fr 1fr; }
.contact-info{ padding:70px 60px; }
.contact-info .eyebrow{ color:var(--gold); }
.contact-info .eyebrow::before{ background:var(--gold); }
.contact-info h2{ color:var(--cream); font-size:clamp(26px,2.8vw,34px); text-transform:uppercase; margin:16px 0 30px; max-width:420px; }
.contact-item{ display:flex; gap:16px; padding:20px 0; border-top:1px solid rgba(247,244,238,0.14); }
.contact-item:last-of-type{ border-bottom:1px solid rgba(247,244,238,0.14); }
.contact-item svg{ width:20px; height:20px; stroke:var(--gold); flex-shrink:0; margin-top:2px; }
.contact-item .label{ font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:rgba(247,244,238,0.55); margin-bottom:4px; }
.contact-item .value{ font-size:15px; line-height:1.55; }
.contact-social{ display:flex; gap:14px; margin-top:34px; }
.contact-social a{ width:38px; height:38px; border:1px solid rgba(247,244,238,0.3); display:flex; align-items:center; justify-content:center; transition:background .2s ease, border-color .2s ease; }
.contact-social a:hover{ background:var(--gold); border-color:var(--gold); }
.contact-social svg{ width:16px; height:16px; stroke:var(--cream); }
.contact-form{ padding:70px 60px; background:#332C21; }
.contact-form h3{ color:var(--cream); font-size:20px; text-transform:uppercase; margin-bottom:26px; font-weight:700; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ margin-bottom:18px; }
.field label{ display:block; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(247,244,238,0.55); margin-bottom:8px; }
.field input, .field select, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(247,244,238,0.3);
  color:var(--cream); font-family:'Inter', sans-serif; font-size:14.5px; padding:10px 2px; outline:none;
  transition:border-color .2s ease;
}
.field select option{ color:var(--ink); }
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); }
.field textarea{ resize:none; }
.contact-form .btn{ margin-top:10px; width:100%; justify-content:center; }
.map-block{ margin-top:50px; }
.map-block iframe{ width:100%; height:340px; border:none; filter:grayscale(20%); }

/* ---------- CTA BAND ---------- */
.cta-band{ background:var(--gold); padding:70px 0; margin-bottom:0; }
.cta-band .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; }
.cta-band h3{ font-size:clamp(22px,2.6vw,30px); text-transform:uppercase; max-width:480px; }
.cta-band .btn{ background:var(--ink); color:var(--cream); }
.cta-band .btn:hover{ background:#000; }

/* ---------- FOOTER ---------- */
.footer{ background:var(--gold); padding:0; border-top:1px solid rgba(42,36,28,0.25); }
.footer-main{ padding:56px 0; }
.footer-main .wrap{ display:flex; align-items:center; gap:0; }
.footer-col{ padding:0 44px; }
.footer-col:first-child{ padding-left:0; }
.footer-divider{ width:1px; align-self:stretch; background:rgba(42,36,28,0.3); }
.footer-contact-list{ display:flex; flex-direction:column; gap:18px; }
.footer-contact-list .row{ display:flex; align-items:center; gap:14px; font-size:15px; color:var(--ink); white-space:nowrap; }
.footer-contact-list svg{ width:19px; height:19px; stroke:var(--ink); flex-shrink:0; }
.footer-social{ display:flex; gap:14px; margin-left:auto; }
.footer-social a{ width:44px; height:44px; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; transition:background .2s ease, color .2s ease; }
.footer-social a:hover{ background:var(--ink); }
.footer-social a:hover svg{ stroke:var(--gold); }
.footer-social svg{ width:18px; height:18px; stroke:var(--ink); }
.footer-bottom{ border-top:1px solid rgba(42,36,28,0.3); padding:22px 0; }
.footer-bottom .wrap{ display:flex; justify-content:space-between; align-items:center; font-size:13px; color:rgba(42,36,28,0.8); flex-wrap:wrap; gap:12px; }
.footer-links{ display:flex; gap:30px; flex-wrap:wrap; }
.footer-links a:hover{ color:var(--white); }
@media (max-width: 980px){
  .footer-main .wrap{ flex-direction:column; text-align:center; gap:28px; }
  .footer-col{ padding:0; }
  .footer-divider{ width:60%; height:1px; }
  .footer-social{ margin-left:0; justify-content:center; }
  .footer-bottom .wrap{ flex-direction:column; text-align:center; }
}

/* ---------- REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }

/* ---------- IMAGE ENTRANCE (efecto cortina + zoom, "wow" al cargar) ---------- */
.hero-visual .imgbox,
.framed-visual .imgbox,
.about-visual .imgbox,
.hero-photo .imgbox,
.proj-card .imgbox,
.space-card{
  position:relative;
}
.hero-visual .imgbox img,
.framed-visual .imgbox img,
.about-visual .imgbox img,
.hero-photo .imgbox img,
.proj-card .imgbox img,
.space-card img{
  transform:scale(1.18);
  transition:transform 1.3s cubic-bezier(.16,.84,.44,1);
}
.reveal.in .hero-visual .imgbox img,
.hero-visual.reveal.in .imgbox img,
.framed-visual.reveal.in .imgbox img,
.about-visual.reveal.in .imgbox img,
.hero-photo.reveal.in .imgbox img,
.projects-grid.reveal.in .proj-card .imgbox img,
.spaces-grid.reveal.in .space-card img{
  transform:scale(1);
  transition:transform .7s cubic-bezier(.16,.84,.44,1);
}
.hero-visual .imgbox::after,
.framed-visual .imgbox::after,
.about-visual .imgbox::after,
.hero-photo .imgbox::after,
.proj-card .imgbox::after,
.space-card::after{
  content:'';
  position:absolute; inset:0;
  background:var(--gold);
  transform-origin:left;
  transform:scaleX(1);
  transition:transform 1s cubic-bezier(.76,0,.24,1);
  z-index:2;
  pointer-events:none;
}
.hero-visual.reveal.in .imgbox::after,
.framed-visual.reveal.in .imgbox::after,
.about-visual.reveal.in .imgbox::after,
.hero-photo.reveal.in .imgbox::after,
.projects-grid.reveal.in .proj-card .imgbox::after,
.spaces-grid.reveal.in .space-card::after{
  transform:scaleX(0);
}
.space-card .num, .space-card .label{ z-index:3; }

/* Restaurar el zoom al pasar el cursor, conviviendo con la animación de entrada */
.projects-grid.reveal.in .proj-card:hover .imgbox img{ transform:scale(1.06); }
.spaces-grid.reveal.in .space-card:hover img{ transform:scale(1.08); filter:grayscale(0%) brightness(0.5); }
.hero-visual.reveal.in .imgbox:hover img{ transform:scale(1.04); }
.framed-visual.reveal.in .imgbox:hover img{ transform:scale(1.04); }
.about-visual.reveal.in .imgbox:hover img{ transform:scale(1.03); }
.reveal.in{ opacity:1; transform:translateY(0); }

.accent-text{ color:var(--gold-deep); }

/* ---------- SERVICES OVERVIEW (icon list + framed image) ---------- */
.services-overview{ padding:100px 0 130px; border-top:1px solid var(--line); }
.services-overview .wrap{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:70px; align-items:center; }
.services-overview h2{ font-size:clamp(28px,3vw,38px); text-transform:uppercase; margin:16px 0 26px; max-width:440px; }
.icon-list{ display:flex; flex-wrap:wrap; gap:38px 44px; margin-top:38px; list-style:none; }
.icon-list li{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; min-width:84px; }
.icon-list svg{ width:30px; height:30px; stroke:var(--ink); }
.icon-list span{
  font-family:'Archivo', sans-serif; font-size:11.5px; font-weight:700;
  letter-spacing:0.04em; text-transform:uppercase; color:var(--ink); line-height:1.3;
}
.framed-visual{ position:relative; }
.framed-visual .frame{ position:absolute; inset:22px -22px -22px 22px; background:var(--gold); z-index:1; }
.framed-visual .imgbox{ position:relative; z-index:2; overflow:hidden; aspect-ratio:16/11; }
.framed-visual .imgbox img{ width:100%; height:100%; object-fit:cover; }

/* ---------- VALUE ROW (icon values, replaces numbered stats) ---------- */
.value-row{ display:flex; gap:50px; flex-wrap:wrap; margin-top:44px; padding-top:36px; border-top:1px solid var(--line); }
.value-row.large{ gap:64px; }
.value-row .item{ display:flex; flex-direction:column; gap:12px; max-width:190px; }
.value-row .item svg{ width:30px; height:30px; stroke:var(--gold-deep); }
.value-row .item h4{
  font-family:'Archivo', sans-serif; font-size:13.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.02em; color:var(--ink);
}
.value-row .item p{ font-size:13px; line-height:1.6; color:var(--ink-soft); }

/* ---------- CONTACT (light version) ---------- */
.contact-light .wrap{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:flex-start; }
.contact-light .eyebrow{ margin-bottom:0; }
.contact-light .info-list{ margin-top:14px; }
.contact-light .info-item{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.contact-light .info-item .ico{
  width:44px; height:44px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.contact-light .info-item svg{ width:19px; height:19px; stroke:var(--gold-deep); }
.contact-light .info-item .label{ font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-soft); margin-bottom:4px; }
.contact-light .info-item .value{ font-size:15px; line-height:1.55; color:var(--ink); }
.contact-light .map-visual{ position:relative; }
.contact-light .map-visual .frame{ position:absolute; inset:-18px -18px 18px 18px; background:var(--gold); z-index:1; }
.contact-light .map-visual .mapbox{ position:relative; z-index:2; overflow:hidden; aspect-ratio:4/3.6; border:1px solid var(--line); }
.contact-light .map-visual iframe{ width:100%; height:100%; border:none; filter:grayscale(35%) contrast(1.02); }
.contact-form-light{ margin-top:80px; padding-top:60px; border-top:1px solid var(--line); }
.contact-form-light h3{ font-size:20px; text-transform:uppercase; margin-bottom:8px; }
.contact-form-light > .wrap > p{ color:var(--ink-soft); font-size:14.5px; margin-bottom:34px; max-width:460px; }
.contact-form-light .field label{ color:var(--ink-soft); }
.contact-form-light .field input, .contact-form-light .field select, .contact-form-light .field textarea{
  border-bottom:1px solid var(--line); color:var(--ink);
}
.contact-form-light .field input:focus, .contact-form-light .field select:focus, .contact-form-light .field textarea:focus{ border-color:var(--gold-deep); }
.contact-form-light .field select option{ color:var(--ink); }
.contact-form-light form{ max-width:640px; }

@media (max-width:980px){
  .services-overview .wrap{ grid-template-columns:1fr; }
  .contact-light .wrap{ grid-template-columns:1fr; }
  .icon-list{ gap:28px 32px; }
  .value-row{ gap:34px; }
}
@media (max-width: 980px){
  .wrap{ padding:0 24px; }
  nav{ position:fixed; inset:88px 0 0 0; background:var(--cream); padding:40px 24px; display:none; }
  nav.open{ display:block; }
  nav ul{ flex-direction:column; gap:26px; }
  .nav-toggle{ display:block; }
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-index{ display:none; }
  .strip .grid{ grid-template-columns:repeat(2,1fr); }
  .strip .cell{ border-bottom:1px solid var(--line); padding-bottom:34px; margin-bottom:10px;}
  .about .wrap{ grid-template-columns:1fr; }
  .about-visual{ position:static; }
  .values-grid{ grid-template-columns:1fr; gap:36px; }
  .spaces-grid{ grid-template-columns:repeat(2,1fr); }
  .process-list{ grid-template-columns:repeat(2,1fr); }
  .projects-grid{ grid-template-columns:repeat(2,1fr); }
  .contact-panel{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .footer .wrap{ grid-template-columns:1fr; text-align:center; gap:24px; }
  .footer-social{ justify-content:center; }
  .footer-contact{ align-items:center; }
  .footer-bottom .wrap{ flex-direction:column; gap:8px; text-align:center; }
  .cta-band .wrap{ flex-direction:column; text-align:center; }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ transition:none; opacity:1; transform:none; }
}

/* ---------- CURSOR FOLLOWER ---------- */
#cursor-ring{ position:fixed; top:0; left:0; width:34px; height:34px; border:1.5px solid var(--gold-deep); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .3s cubic-bezier(.2,.8,.2,1), height .3s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease, opacity .3s ease; opacity:0; }
#cursor-dot{ position:fixed; top:0; left:0; width:5px; height:5px; background:var(--gold-deep); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); opacity:0; transition:opacity .3s ease; }
body.has-cursor #cursor-ring, body.has-cursor #cursor-dot{ opacity:1; }
#cursor-ring.cursor-hover{ width:56px; height:56px; border-color:var(--gold); background:rgba(214,162,63,0.10); }

/* ---------- HOVER / TOUCH MOTION: icons + titles ---------- */
.icon-list li{ transition:transform .4s cubic-bezier(.2,.8,.2,1); cursor:default; }
.icon-list li:hover, .icon-list li.touch-active{ transform:translateY(-5px); }
.icon-list li svg{ transition:transform .4s cubic-bezier(.2,.8,.2,1), stroke .3s ease; }
.icon-list li:hover svg, .icon-list li.touch-active svg{ transform:scale(1.15) rotate(-4deg); stroke:var(--gold-deep); }
.icon-list li span{ transition:color .3s ease; }
.icon-list li:hover span, .icon-list li.touch-active span{ color:var(--gold-deep); }

.strip .cell{ transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.strip .cell:hover, .strip .cell.touch-active{ transform:translateY(-5px); }
.strip .cell svg{ transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.strip .cell:hover svg, .strip .cell.touch-active svg{ transform:scale(1.12) rotate(3deg); }
.strip .cell h3{ transition:color .3s ease; }
.strip .cell:hover h3, .strip .cell.touch-active h3{ color:var(--gold-deep); }

.value-row .item{ transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.value-row .item:hover, .value-row .item.touch-active{ transform:translateY(-5px); }
.value-row .item svg{ transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.value-row .item:hover svg, .value-row .item.touch-active svg{ transform:scale(1.18) rotate(-3deg); }

.proj-card h4{ transition:color .3s ease, transform .3s ease; display:inline-block; }
.proj-card:hover h4, .proj-card.touch-active h4{ color:var(--gold-deep); transform:translateX(3px); }

.space-card .label{ transition:transform .4s ease; }
.space-card:hover .label, .space-card.touch-active .label{ transform:translateY(-4px); }

nav a{ transition:letter-spacing .3s ease, color .3s ease; }
nav a:hover{ letter-spacing:0.13em; color:var(--gold-deep); }

.footer-social a, .contact-social a{ transition:transform .3s cubic-bezier(.2,.8,.2,1), background .25s ease, border-color .25s ease; }
.footer-social a:hover, .contact-social a:hover{ transform:translateY(-4px) scale(1.06); }

.eyebrow{ transition:letter-spacing .3s ease; }
