/* =========================================================
   DKM MOTORS - MAIN STYLES
   ========================================================= */

/* =========================
   01. VARIABLES
   ========================= */

:root{
  --black:#050608;
  --black-2:#090b10;
  --dark:#0d111a;
  --dark-2:#121722;
  --graphite:#1a202c;
  --red:#e30613;
  --red-dark:#a9050d;
  --white:#ffffff;
  --silver:#d9dde5;
  --muted:#9aa3b2;
  --muted-2:#687284;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);
  --max:1180px;
}


/* =========================
   02. RESET / BASE
   ========================= */

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  margin:0;
  font-family:"Manrope",system-ui,sans-serif;
  background:var(--black);
  color:var(--white);
  line-height:1.55;
  overflow-x:hidden;
}

body::selection{
  background:var(--red);
  color:#fff;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  max-width:100%;
}

.container{
  width:min(var(--max), calc(100% - 44px));
  margin-inline:auto;
}

h2{
  margin:0;
  font-family:"Oswald",sans-serif;
  font-size:clamp(38px,5vw,68px);
  line-height:1;
  letter-spacing:-.035em;
  text-transform:uppercase;
}

.intro p,
.section-heading p,
.process-top p,
.feature-content p,
.private-request p{
  color:#b9c0cc;
  font-size:17px;
}


/* =========================
   03. UTILITIES
   ========================= */

.section-dark{
  background:
    radial-gradient(circle at 80% 10%, rgba(227,6,19,.08), transparent 28%),
    linear-gradient(180deg, #050608 0%, #0b0f18 100%);
}

.eyebrow,
.section-kicker{
  margin:0 0 18px;
  color:var(--red);
  font-size:12px;
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:14px;
}

.eyebrow::before,
.section-kicker::before{
  content:"";
  width:42px;
  height:1px;
  background:var(--red);
}

.section-heading{
  max-width:820px;
  margin-bottom:54px;
}

.section-heading h2{
  max-width:760px;
}

.section-heading p{
  max-width:660px;
  margin-top:20px;
}


/* =========================
   04. BUTTONS
   ========================= */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 24px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:.2s ease;
  border:0;
  cursor:pointer;
}

.btn-primary{
  background:var(--red);
  color:#fff;
  box-shadow:0 18px 42px rgba(227,6,19,.24);
}

.btn-primary:hover{
  background:var(--red-dark);
  transform:translateY(-2px);
}

.btn-secondary{
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  background:transparent;
}

.btn-secondary:hover{
  border-color:#fff;
  background:rgba(255,255,255,.08);
  transform:translateY(-2px);
}

.btn.full{
  width:100%;
}


/* =========================
   05. HEADER
   ========================= */

.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  background:
    linear-gradient(180deg, rgba(5,6,8,.96) 0%, rgba(5,6,8,.88) 100%);
  backdrop-filter:blur(22px);
  border-bottom:1px solid rgba(255,255,255,.07);
}

.site-header.scrolled{
  background:rgba(5,6,8,.98);
  box-shadow:0 18px 50px rgba(0,0,0,.32);
}

.site-header::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.18),
    rgba(227,6,19,.42),
    rgba(255,255,255,.16),
    transparent
  );
  opacity:.8;
}

.site-header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.08) 22%,
    rgba(227,6,19,.24) 50%,
    rgba(255,255,255,.08) 78%,
    transparent 100%
  );
  pointer-events:none;
}

.main-nav{
  position:relative;
  height:76px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:42px;
}

.brand{
  width:132px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:hidden;
}

.brand img{
  width:132px;
  height:58px;
  object-fit:cover;
  object-position:center;
  mix-blend-mode:screen;
  transform:scale(1.15);
  clip-path:inset(12% 9% 12% 9%);
  opacity:.96;
  filter:contrast(1.05) brightness(1.08);
}

.menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:38px;
}

.menu a{
  position:relative;
  color:rgba(255,255,255,.62);
  font-size:11px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:.22s ease;
}

.menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-15px;
  height:1px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:center;
  transition:.22s ease;
}

.menu a:hover{
  color:#fff;
}

.menu a:hover::after{
  transform:scaleX(1);
}

.nav-action{
  display:flex;
  justify-content:flex-end;
}

.nav-action a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 24px;
  border:1px solid rgba(255,255,255,.20);
  color:#fff;
  background:rgba(255,255,255,.025);
  font-size:11px;
  font-weight:900;
  letter-spacing:.17em;
  text-transform:uppercase;
  overflow:hidden;
  transition:.22s ease;
}

.nav-action a::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.14), transparent);
  transform:translateX(-120%);
  transition:.45s ease;
}

.nav-action a:hover{
  border-color:rgba(227,6,19,.7);
  background:rgba(227,6,19,.12);
  box-shadow:0 0 32px rgba(227,6,19,.16);
}

.nav-action a:hover::before{
  transform:translateX(120%);
}

.mobile-toggle{
  display:none;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.025);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}

.mobile-toggle span{
  width:18px;
  height:2px;
  background:#fff;
}


/* =========================
   06. HERO
   ========================= */

.hero{
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#050608;
}

.hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
}

.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.9) contrast(1.08) brightness(.62);
}

.hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 72% 45%, rgba(227,6,19,.18), transparent 28%),
    linear-gradient(90deg, rgba(5,6,8,.95) 0%, rgba(5,6,8,.74) 38%, rgba(5,6,8,.24) 66%, rgba(5,6,8,.76) 100%),
    linear-gradient(180deg, rgba(5,6,8,.58) 0%, rgba(5,6,8,.16) 38%, rgba(5,6,8,1) 100%);
}

.hero-content{
  position:relative;
  z-index:2;
  padding-top:110px;
}

.hero-copy{
  max-width:760px;
}

.hero h1{
  margin:0;
  font-family:"Oswald",sans-serif;
  font-size:clamp(58px,8vw,116px);
  line-height:.92;
  letter-spacing:-.045em;
  text-transform:uppercase;
}

.hero h1 span{
  display:block;
  color:rgba(255,255,255,.78);
}

.hero-text{
  max-width:610px;
  margin:30px 0 0;
  color:#d4d8df;
  font-size:18px;
}

.hero-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:36px;
}

.brand-strip{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  margin-top:46px;
  color:rgba(255,255,255,.48);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.scroll-hint{
  position:absolute;
  left:50%;
  bottom:34px;
  transform:translateX(-50%);
  z-index:2;
  color:rgba(255,255,255,.48);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:12px;
}

.scroll-hint span{
  width:38px;
  height:1px;
  background:rgba(255,255,255,.36);
}


/* =========================
   07. INTRO
   ========================= */

.intro{
  position:relative;
  overflow:hidden;
  padding:120px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 82% 24%, rgba(227,6,19,.12), transparent 30%),
    linear-gradient(180deg, #050608 0%, #0b0f18 100%);
}

.intro::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size:86px 86px;
  mask-image:linear-gradient(to bottom, transparent 0%, black 25%, black 75%, transparent 100%);
  pointer-events:none;
}

.intro::after{
  content:"PREMIUM";
  position:absolute;
  right:-40px;
  bottom:-58px;
  font-family:"Oswald",sans-serif;
  font-size:190px;
  line-height:1;
  letter-spacing:-.06em;
  color:rgba(255,255,255,.025);
  pointer-events:none;
}

.intro-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:86px;
  align-items:center;
}

.intro-copy h2{
  max-width:720px;
}

.intro-copy h2 span{
  display:block;
  color:rgba(255,255,255,.68);
}

.intro-lead{
  max-width:560px;
  margin:28px 0 0;
  color:#b9c0cc;
  font-size:18px;
}

.intro-panel{
  position:relative;
  padding:36px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 28px 90px rgba(0,0,0,.28);
}

.intro-panel::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:3px;
  height:100%;
  background:linear-gradient(to bottom, var(--red), transparent);
}

.intro-panel > p{
  margin:0;
  color:#c4cad4;
  font-size:17px;
}

.intro-points{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:34px;
}

.intro-points article{
  padding-top:18px;
  border-top:2px solid var(--red);
}

.intro-points span{
  display:block;
  margin-bottom:12px;
  color:rgba(255,255,255,.38);
  font-family:"Oswald",sans-serif;
  font-size:28px;
  line-height:1;
}

.intro-points strong{
  display:block;
  margin-bottom:8px;
  color:#fff;
  font-family:"Oswald",sans-serif;
  font-size:24px;
  line-height:1;
  text-transform:uppercase;
}

.intro-points p{
  margin:0;
  color:#9fa8b7;
  font-size:13px;
}


/* =========================
   08. SERVICES
   ========================= */

.visual-services{
  padding:110px 0;
}

.service-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:22px;
}

.service-card{
  position:relative;
  min-height:360px;
  overflow:hidden;
  background:#0b0f18;
  border:1px solid var(--line);
}

.service-card.large{
  grid-row:span 2;
  min-height:742px;
}

.service-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.54) saturate(.85);
  transition:.4s ease;
}

.service-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.82));
}

.service-card:hover img{
  transform:scale(1.04);
  filter:brightness(.68) saturate(1);
}

.service-card div{
  position:absolute;
  left:32px;
  right:32px;
  bottom:30px;
  z-index:2;
}

.service-card span{
  display:block;
  color:var(--red);
  font-size:13px;
  font-weight:900;
  letter-spacing:.18em;
  margin-bottom:12px;
}

.service-card h3{
  margin:0 0 10px;
  font-family:"Oswald",sans-serif;
  font-size:34px;
  line-height:1;
  text-transform:uppercase;
}

.service-card p{
  max-width:420px;
  margin:0;
  color:#c5cad4;
}


/* =========================
   09. PROCESS
   ========================= */

.process{
  position:relative;
  overflow:hidden;
  padding:120px 0;
  background:
    radial-gradient(circle at 82% 10%, rgba(227,6,19,.12), transparent 28%),
    linear-gradient(180deg, #050608 0%, #0b0f18 100%);
}

.process::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:86px 86px;
  mask-image:linear-gradient(to bottom, transparent 0%, black 20%, black 78%, transparent 100%);
  pointer-events:none;
}

.process::after{
  content:"DE → ES";
  position:absolute;
  right:-36px;
  top:88px;
  font-family:"Oswald",sans-serif;
  font-size:170px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.06em;
  color:rgba(255,255,255,.025);
  pointer-events:none;
}

.process .container{
  position:relative;
  z-index:2;
}

.process-top{
  display:grid;
  grid-template-columns:1fr .78fr;
  gap:90px;
  align-items:end;
  margin-bottom:70px;
}

.process-top h2{
  max-width:700px;
}

.process-top p{
  max-width:520px;
  margin:0;
  color:#b9c0cc;
  font-size:17px;
}

.process-road{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.process-road::before{
  content:"";
  position:absolute;
  left:9%;
  right:9%;
  top:43px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(227,6,19,.75), rgba(255,255,255,.18), transparent);
  z-index:0;
}

.process-road article{
  position:relative;
  z-index:1;
  min-height:320px;
  padding:32px;
  background:
    radial-gradient(circle at 100% 0%, rgba(227,6,19,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 26px 70px rgba(0,0,0,.24);
  transition:.25s ease;
  overflow:hidden;
}

.process-road article::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.06), transparent 38%);
  opacity:.35;
  pointer-events:none;
}

.process-road article::after{
  content:"";
  position:absolute;
  right:-52px;
  bottom:-52px;
  width:130px;
  height:130px;
  border:1px solid rgba(227,6,19,.18);
  transform:rotate(45deg);
}

.process-road article:hover{
  transform:translateY(-6px);
  border-color:rgba(227,6,19,.36);
  background:
    radial-gradient(circle at 100% 0%, rgba(227,6,19,.18), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.03));
}

.process-number{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  position:relative;
  z-index:3;
  margin-bottom:44px;
  background:#050608;
  border:1px solid rgba(227,6,19,.75);
  color:#fff;
  font-family:"Oswald",sans-serif;
  font-size:22px;
  line-height:1;
  box-shadow:
    0 0 0 8px rgba(227,6,19,.06),
    0 16px 40px rgba(0,0,0,.35);
}

.process-line{
  position:absolute;
  left:32px;
  top:86px;
  width:1px;
  height:44px;
  background:linear-gradient(to bottom, var(--red), transparent);
}

.process-content{
  position:relative;
  z-index:2;
}

.process-content span{
  display:block;
  margin-bottom:14px;
  color:var(--red);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.process-content h3{
  margin:0 0 16px;
  font-family:"Oswald",sans-serif;
  font-size:34px;
  line-height:1;
  text-transform:uppercase;
}

.process-content p{
  margin:0;
  color:#aeb6c4;
  font-size:15px;
}


/* =========================
   10. FEATURE / VALOR REAL
   ========================= */

.feature{
  padding:110px 0;
}

.feature-grid{
  display:grid;
  grid-template-columns:1.05fr .85fr;
  align-items:start;
  gap:140px;
}

.feature-image{
  min-height:790px;
  position:relative;
  overflow:visible;
  border:0;
  margin-left:-180px;
  margin-right:0;
  isolation:isolate;
  width:calc(100% + 220px);
}

.feature-image::before{
  content:"";
  position:absolute;
  inset:-80px;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 42% 48%,
      rgba(227,6,19,.13) 0%,
      rgba(227,6,19,.065) 24%,
      rgba(5,6,8,.24) 54%,
      rgba(5,6,8,.72) 100%
    );
  filter:blur(32px);
}

.feature-image img{
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  min-height:680px;
  object-fit:cover;
  object-position:left center;
  transform:none;
  filter:brightness(.74) contrast(1.08) saturate(.9);
}

.feature-content{
  position:relative;
  z-index:5;
  width:120%;
  max-width:none;
}

.feature-content h2{
  max-width:940px;
}

.feature-content p{
  max-width:760px;
}

.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:42px 0;
}

.stats div{
  border-top:2px solid var(--red);
  padding-top:16px;
}

.stats strong{
  display:block;
  font-family:"Oswald",sans-serif;
  font-size:42px;
  line-height:1;
}

.stats span{
  display:block;
  margin-top:6px;
  color:#9fa8b7;
  font-size:13px;
}

.text-link{
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  border-bottom:1px solid var(--red);
  padding-bottom:8px;
}


/* =========================
   11. TRUST
   ========================= */

.trust{
  position:relative;
  overflow:hidden;
  padding:120px 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(227,6,19,.12), transparent 28%),
    linear-gradient(180deg, #050608 0%, #0b0f18 100%);
}

.trust-bg{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:.18;
  pointer-events:none;
}

.trust-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:grayscale(1) contrast(1.15) brightness(.55);
}

.trust::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg, #050608 0%, rgba(5,6,8,.88) 36%, rgba(5,6,8,.78) 100%),
    linear-gradient(180deg, #050608 0%, rgba(5,6,8,.25) 42%, #050608 100%);
  pointer-events:none;
}

.trust .container{
  position:relative;
  z-index:2;
}

.trust-heading{
  max-width:820px;
  margin-bottom:56px;
}

.trust-heading p:not(.section-kicker){
  max-width:620px;
  margin-top:20px;
  color:#aeb6c4;
}

.trust-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.trust-grid article{
  position:relative;
  min-height:300px;
  padding:34px 30px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 24px 70px rgba(0,0,0,.24);
  transition:.25s ease;
}

.trust-grid article::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:3px;
  height:0;
  background:var(--red);
  transition:.25s ease;
}

.trust-grid article::after{
  content:"";
  position:absolute;
  right:-40px;
  bottom:-48px;
  width:120px;
  height:120px;
  border:1px solid rgba(227,6,19,.18);
  transform:rotate(45deg);
}

.trust-grid article:hover{
  transform:translateY(-6px);
  border-color:rgba(227,6,19,.35);
  background:
    radial-gradient(circle at 100% 0%, rgba(227,6,19,.12), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
}

.trust-grid article:hover::before{
  height:100%;
}

.trust-grid article span{
  display:block;
  margin-bottom:54px;
  color:rgba(255,255,255,.22);
  font-family:"Oswald",sans-serif;
  font-size:58px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.04em;
}

.trust-grid h3{
  margin:0 0 14px;
  font-family:"Oswald",sans-serif;
  font-size:30px;
  line-height:1.05;
  text-transform:uppercase;
}

.trust-grid p{
  margin:0;
  color:#aeb6c4;
  font-size:15px;
}


/* =========================
   12. FORM
   ========================= */

.private-request{
  padding:110px 0;
  border-top:1px solid var(--line);
}

.request-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:72px;
  align-items:start;
}

.request-list{
  list-style:none;
  margin:34px 0 0;
  padding:0;
  display:grid;
  gap:14px;
  color:#c2c8d2;
}

.request-list li{
  display:flex;
  gap:12px;
}

.request-list li::before{
  content:"";
  width:8px;
  height:8px;
  margin-top:9px;
  background:var(--red);
  flex:0 0 auto;
}

.request-form{
  padding:38px;
  background:rgba(255,255,255,.045);
  border:1px solid var(--line);
  backdrop-filter:blur(18px);
  display:grid;
  gap:16px;
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

label{
  display:block;
  color:#aeb6c4;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:8px;
}

input,
select,
textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(3,4,7,.76);
  color:#fff;
  padding:15px 16px;
  font:inherit;
  outline:none;
}

textarea{
  min-height:130px;
  resize:vertical;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--red);
}

.form-note{
  margin:0;
  color:#7f8898;
  font-size:13px;
}


/* =========================
   13. FAQ
   ========================= */

.faq-preview{
  padding:90px 0 110px;
}

.faq-grid{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:70px;
}

.faq-list{
  display:grid;
  gap:12px;
}

details{
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  padding:22px 24px;
}

summary{
  cursor:pointer;
  font-weight:800;
  font-size:18px;
}

details p{
  color:#aeb6c4;
  margin:16px 0 0;
}


/* =========================
   14. FOOTER
   ========================= */

.footer{
  background:#050608;
  border-top:1px solid var(--line);
  padding:70px 0 28px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.3fr .8fr .9fr;
  gap:70px;
}

.footer img{
  width:150px;
  height:72px;
  object-fit:cover;
  mix-blend-mode:screen;
  clip-path:inset(10% 8% 10% 8%);
  transform:scale(1.08);
}

.footer p{
  max-width:360px;
  color:#9fa8b7;
}

.footer h3{
  margin:0 0 16px;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.footer a{
  display:block;
  color:#9fa8b7;
  margin:9px 0;
  font-size:14px;
}

.footer a:hover{
  color:#fff;
}

.footer-bottom{
  margin-top:58px;
  padding-top:24px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#747d8d;
  font-size:13px;
}

.footer-bottom span:last-child{
  display:flex;
  gap:20px;
}


/* =========================
   15. FLOATING SOCIAL BUTTONS
   ========================= */

.floating-socials{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:120;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.floating-btn{
  position:relative;
  width:50px;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  background:#ffffff;
  box-shadow:
    0 18px 45px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.9);
  overflow:visible;
  transition:.22s ease;
}

.floating-btn::before{
  content:"";
  width:23px;
  height:23px;
  display:block;
  background:currentColor;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
}

.floating-btn:hover{
  transform:translateY(-4px) scale(1.04);
  box-shadow:
    0 22px 55px rgba(0,0,0,.42),
    0 0 28px rgba(255,255,255,.18);
}

.floating-btn span{
  position:absolute;
  right:70px;
  top:50%;
  transform:translateY(-50%) translateX(8px);
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  background:rgba(5,6,8,.94);
  border:1px solid rgba(255,255,255,.12);
  padding:8px 12px;
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:.22s ease;
}

.floating-btn:hover span{
  opacity:1;
  transform:translateY(-50%) translateX(0);
}

.floating-btn.whatsapp{
  color:#25d366;
}

.floating-btn.whatsapp:hover{
  border-color:#25d366;
  box-shadow:
    0 22px 55px rgba(0,0,0,.42),
    0 0 34px rgba(37,211,102,.28);
}

.floating-btn.whatsapp::before{
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.01 3.2C9.03 3.2 3.36 8.86 3.36 15.84c0 2.23.59 4.4 1.7 6.31L3.2 28.8l6.81-1.79a12.6 12.6 0 0 0 6 1.53h.01c6.97 0 12.64-5.67 12.64-12.65S22.99 3.2 16.01 3.2Zm0 23.2h-.01a10.49 10.49 0 0 1-5.35-1.47l-.38-.23-4.04 1.06 1.08-3.94-.25-.4a10.43 10.43 0 0 1-1.6-5.58c0-5.82 4.74-10.55 10.56-10.55 2.82 0 5.47 1.1 7.46 3.1a10.48 10.48 0 0 1 3.09 7.46c0 5.82-4.74 10.55-10.56 10.55Zm5.79-7.9c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1.01 1.24-.19.21-.37.24-.69.08-.32-.16-1.34-.49-2.55-1.57-.94-.84-1.58-1.88-1.77-2.2-.19-.32-.02-.49.14-.65.14-.14.32-.37.48-.56.16-.19.21-.32.32-.53.11-.21.05-.4-.03-.56-.08-.16-.71-1.72-.98-2.36-.26-.62-.52-.54-.71-.55h-.61c-.21 0-.56.08-.85.4-.29.32-1.11 1.09-1.11 2.65s1.14 3.07 1.3 3.28c.16.21 2.24 3.42 5.43 4.79.76.33 1.35.52 1.81.67.76.24 1.45.21 2 .13.61-.09 1.88-.77 2.15-1.51.27-.74.27-1.38.19-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.01 3.2C9.03 3.2 3.36 8.86 3.36 15.84c0 2.23.59 4.4 1.7 6.31L3.2 28.8l6.81-1.79a12.6 12.6 0 0 0 6 1.53h.01c6.97 0 12.64-5.67 12.64-12.65S22.99 3.2 16.01 3.2Zm0 23.2h-.01a10.49 10.49 0 0 1-5.35-1.47l-.38-.23-4.04 1.06 1.08-3.94-.25-.4a10.43 10.43 0 0 1-1.6-5.58c0-5.82 4.74-10.55 10.56-10.55 2.82 0 5.47 1.1 7.46 3.1a10.48 10.48 0 0 1 3.09 7.46c0 5.82-4.74 10.55-10.56 10.55Zm5.79-7.9c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.71.16-.21.32-.82 1.03-1.01 1.24-.19.21-.37.24-.69.08-.32-.16-1.34-.49-2.55-1.57-.94-.84-1.58-1.88-1.77-2.2-.19-.32-.02-.49.14-.65.14-.14.32-.37.48-.56.16-.19.21-.32.32-.53.11-.21.05-.4-.03-.56-.08-.16-.71-1.72-.98-2.36-.26-.62-.52-.54-.71-.55h-.61c-.21 0-.56.08-.85.4-.29.32-1.11 1.09-1.11 2.65s1.14 3.07 1.3 3.28c.16.21 2.24 3.42 5.43 4.79.76.33 1.35.52 1.81.67.76.24 1.45.21 2 .13.61-.09 1.88-.77 2.15-1.51.27-.74.27-1.38.19-1.51-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E");
}

.floating-btn.instagram{
  color:#fff;
  background:
    radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 62%, #285aeb 90%);
}

.floating-btn.instagram::before{
  width:24px;
  height:24px;
  background:#fff;
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.2 3.6h11.6a6.6 6.6 0 0 1 6.6 6.6v11.6a6.6 6.6 0 0 1-6.6 6.6H10.2a6.6 6.6 0 0 1-6.6-6.6V10.2a6.6 6.6 0 0 1 6.6-6.6Zm0 2.6a4 4 0 0 0-4 4v11.6a4 4 0 0 0 4 4h11.6a4 4 0 0 0 4-4V10.2a4 4 0 0 0-4-4H10.2ZM16 10.1a5.9 5.9 0 1 1 0 11.8 5.9 5.9 0 0 1 0-11.8Zm0 2.6a3.3 3.3 0 1 0 0 6.6 3.3 3.3 0 0 0 0-6.6Zm6.2-3.7a1.35 1.35 0 1 1 0 2.7 1.35 1.35 0 0 1 0-2.7Z'/%3E%3C/svg%3E");
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.2 3.6h11.6a6.6 6.6 0 0 1 6.6 6.6v11.6a6.6 6.6 0 0 1-6.6 6.6H10.2a6.6 6.6 0 0 1-6.6-6.6V10.2a6.6 6.6 0 0 1 6.6-6.6Zm0 2.6a4 4 0 0 0-4 4v11.6a4 4 0 0 0 4 4h11.6a4 4 0 0 0 4-4V10.2a4 4 0 0 0-4-4H10.2ZM16 10.1a5.9 5.9 0 1 1 0 11.8 5.9 5.9 0 0 1 0-11.8Zm0 2.6a3.3 3.3 0 1 0 0 6.6 3.3 3.3 0 0 0 0-6.6Zm6.2-3.7a1.35 1.35 0 1 1 0 2.7 1.35 1.35 0 0 1 0-2.7Z'/%3E%3C/svg%3E");
}

.floating-btn.instagram:hover{
  border-color:rgba(255,255,255,.55);
  box-shadow:
    0 22px 55px rgba(0,0,0,.42),
    0 0 34px rgba(214,36,159,.32);
}


/* =========================
   16. FORM MODAL
   ========================= */

.form-modal{
  position:fixed;
  inset:0;
  z-index:300;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
}

.form-modal.is-open{
  display:flex;
}

.form-modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(10px);
}

.form-modal__box{
  position:relative;
  z-index:2;
  width:min(620px, 100%);
  padding:46px;
  background:
    radial-gradient(circle at 100% 0%, rgba(227,6,19,.16), transparent 36%),
    linear-gradient(180deg, rgba(18,22,31,.98), rgba(6,8,12,.98));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 40px 120px rgba(0,0,0,.55);
  animation:modalIn .35s cubic-bezier(.16,1,.3,1);
}

.form-modal__box h2{
  margin:0 0 18px;
  font-size:clamp(38px,5vw,62px);
}

.form-modal__box p:not(.section-kicker){
  color:#b9c0cc;
  font-size:17px;
  margin:0 0 28px;
}

.form-modal__close{
  position:absolute;
  top:14px;
  right:16px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.form-modal__close:hover{
  border-color:var(--red);
  color:var(--red);
}

@keyframes modalIn{
  from{
    opacity:0;
    transform:translateY(24px) scale(.96);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}


/* =========================
   17. SCROLL REVEAL ANIMATIONS
   ========================= */

.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:
    opacity .8s ease,
    transform .8s cubic-bezier(.22,.8,.22,1);
  will-change:opacity, transform;
}

.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.reveal-left{
  opacity:0;
  transform:translateX(-46px);
  transition:
    opacity .9s ease,
    transform .9s cubic-bezier(.22,.8,.22,1);
  will-change:opacity, transform;
}

.reveal-left.is-visible{
  opacity:1;
  transform:translateX(0);
}

.reveal-right{
  opacity:0;
  transform:translateX(46px);
  transition:
    opacity .9s ease,
    transform .9s cubic-bezier(.22,.8,.22,1);
  will-change:opacity, transform;
}

.reveal-right.is-visible{
  opacity:1;
  transform:translateX(0);
}

.reveal-scale{
  opacity:0;
  transform:scale(.96);
  transition:
    opacity .9s ease,
    transform .9s cubic-bezier(.22,.8,.22,1);
  will-change:opacity, transform;
}

.reveal-scale.is-visible{
  opacity:1;
  transform:scale(1);
}

.reveal-delay-1{
  transition-delay:.08s;
}

.reveal-delay-2{
  transition-delay:.16s;
}

.reveal-delay-3{
  transition-delay:.24s;
}

.reveal-delay-4{
  transition-delay:.32s;
}

@media (prefers-reduced-motion: reduce){
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale{
    opacity:1;
    transform:none;
    transition:none;
  }
}


/* =========================
   18. RESPONSIVE - TABLET
   ========================= */

@media (max-width:1050px){

  .main-nav{
    height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

  .menu,
  .nav-action{
    display:none;
  }

  .mobile-toggle{
    display:flex;
    margin-left:auto;
  }

  .main-nav.open{
    height:auto;
    padding:22px 0;
    align-items:flex-start;
    flex-direction:column;
    background:rgba(5,6,8,.98);
  }

  .main-nav.open .menu,
  .main-nav.open .nav-action{
    display:flex;
  }

  .main-nav.open .menu{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
    width:100%;
    padding-top:12px;
  }

  .main-nav.open .menu a{
    font-size:12px;
    padding:8px 0;
  }

  .main-nav.open .nav-action{
    width:100%;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,.08);
  }

  .main-nav.open .nav-action a{
    width:100%;
    min-height:46px;
  }

  .intro-grid,
  .process-top,
  .feature-grid,
  .request-grid,
  .faq-grid{
    grid-template-columns:1fr;
  }

  .hero-copy{
    max-width:720px;
  }

  .intro-grid{
    gap:42px;
  }

  .intro-points{
    grid-template-columns:repeat(3,1fr);
  }

  .service-grid{
    grid-template-columns:1fr;
  }

  .service-card.large{
    min-height:460px;
  }

  .process-top{
    gap:28px;
    margin-bottom:44px;
  }

  .process-road{
    grid-template-columns:repeat(2,1fr);
  }

  .process-road::before{
    display:none;
  }

  .process::after{
    font-size:120px;
    right:-22px;
    top:80px;
  }

  .feature-grid{
    gap:40px;
  }

  .feature-image{
    margin-left:0;
    margin-right:0;
    margin-top:0;
    width:100%;
    min-height:520px;
    overflow:hidden;
  }

  .feature-image img{
    min-height:520px;
    object-position:center;
  }

  .feature-content{
    width:100%;
    max-width:none;
  }

  .feature-content h2{
    max-width:760px;
  }

  .feature-content p{
    max-width:720px;
  }

  .stats{
    grid-template-columns:repeat(3,1fr);
  }

  .trust-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .trust-heading{
    margin-bottom:42px;
  }

  .form-row{
    grid-template-columns:1fr 1fr;
  }

  .footer-grid{
    grid-template-columns:1.2fr 1fr 1fr;
    gap:40px;
  }
}


/* =========================
   19. RESPONSIVE - MOBILE
   ========================= */

@media (max-width:720px){

  .container{
    width:min(100% - 28px, var(--max));
  }

  .site-header{
    position:fixed;
    background:rgba(5,6,8,.96);
  }

  .main-nav{
    height:72px;
  }

  .brand{
    width:116px;
    height:54px;
  }

  .brand img{
    width:116px;
    height:54px;
  }

  .mobile-toggle{
    width:40px;
    height:40px;
  }

  .hero{
    min-height:720px;
  }

  .hero-content{
    padding-top:120px;
    padding-bottom:80px;
  }

  .hero h1{
    font-size:clamp(46px, 13vw, 58px);
  }

  .hero-text{
    font-size:16px;
    max-width:100%;
  }

  .hero-buttons{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-buttons .btn{
    width:100%;
  }

  .brand-strip{
    gap:14px;
    font-size:11px;
  }

  .scroll-hint{
    display:none;
  }

  .intro,
  .visual-services,
  .process,
  .feature,
  .trust,
  .private-request,
  .faq-preview{
    padding:76px 0;
  }

  h2{
    font-size:44px;
  }

  .section-kicker,
  .eyebrow{
    font-size:11px;
    letter-spacing:.18em;
  }

  .intro-panel{
    padding:26px;
  }

  .intro-points{
    grid-template-columns:1fr;
  }

  .service-card,
  .service-card.large{
    min-height:420px;
  }

  .service-card div{
    left:24px;
    right:24px;
    bottom:24px;
  }

  .service-card h3{
    font-size:30px;
  }

  .process::after{
    display:none;
  }

  .process-top{
    grid-template-columns:1fr;
    gap:24px;
    margin-bottom:38px;
  }

  .process-road{
    grid-template-columns:1fr;
  }

  .process-road article{
    min-height:auto;
    padding:28px 24px;
  }

  .process-number{
    width:48px;
    height:48px;
    font-size:20px;
    margin-bottom:38px;
  }

  .process-line{
    left:24px;
    top:78px;
    height:38px;
  }

  .process-content h3{
    font-size:30px;
  }

  .feature-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .feature-image{
    min-height:420px;
    margin-left:0;
    margin-right:0;
    margin-top:0;
    width:100%;
    overflow:hidden;
  }

  .feature-image::before{
    inset:-45px;
    filter:blur(24px);
  }

  .feature-image img{
    min-height:420px;
    object-fit:cover;
    object-position:center;
    transform:none;
  }

  .feature-content{
    width:100%;
  }

  .feature-content h2{
    max-width:100%;
  }

  .feature-content p{
    max-width:100%;
  }

  .stats{
    grid-template-columns:1fr;
    gap:18px;
  }

  .stats strong{
    font-size:36px;
  }

  .stats div{
    padding-top:14px;
  }

  .trust-grid{
    grid-template-columns:1fr;
  }

  .trust-grid article{
    min-height:auto;
    padding:28px 24px;
  }

  .trust-grid article span{
    margin-bottom:32px;
    font-size:48px;
  }

  .trust-grid h3{
    font-size:28px;
  }

  .request-grid{
    grid-template-columns:1fr;
    gap:34px;
  }

  .form-row{
    grid-template-columns:1fr;
  }

  .request-form{
    padding:24px;
  }

  .faq-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .footer-grid{
    grid-template-columns:1fr;
    gap:32px;
  }

  .footer-bottom{
    flex-direction:column;
  }

  .footer-bottom span:last-child{
    flex-wrap:wrap;
  }

  .form-modal__box{
    padding:34px 24px;
  }

  .floating-socials{
    right:16px;
    bottom:16px;
  }

  .floating-btn{
    width:46px;
    height:46px;
  }

  .floating-btn::before{
    width:21px;
    height:21px;
  }

  .floating-btn.instagram::before{
    width:22px;
    height:22px;
  }

  .floating-btn span{
    display:none;
  }
}


/* =========================
   20. RESPONSIVE - SMALL MOBILE
   ========================= */

@media (max-width:430px){

  .hero h1{
    font-size:48px;
  }

  h2{
    font-size:38px;
  }

  .btn{
    width:100%;
    padding:0 18px;
  }

  .brand-strip{
    flex-direction:column;
    gap:8px;
  }

  .section-kicker,
  .eyebrow{
    gap:10px;
  }

  .section-kicker::before,
  .eyebrow::before{
    width:28px;
  }

  .service-card,
  .service-card.large{
    min-height:360px;
  }

  .feature-image,
  .feature-image img{
    min-height:360px;
  }

  .request-list li{
    font-size:15px;
  }

  input,
  select,
  textarea{
    padding:13px 14px;
  }

  .footer-bottom span:last-child{
    gap:12px;
  }
}