/* Contact — Fitelo rebrand. Tokens and chrome come from tokens.css and style.css. */

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

body:has(.contact){
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16.5px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
body:has(.contact) button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
body:has(.contact) img{max-width:100%;height:auto;display:block}
body:has(.contact) a{text-decoration:none}
body:has(.contact) :is(h1,h2,h3){
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.035em;
  line-height:1.08;
  text-wrap:auto;
  color:var(--ink);
  margin:0;
}
body:has(.contact) :is(h1,h2) em{font-style:italic;font-weight:500;color:var(--maroon2)}
body:has(.contact) ul{padding:0;list-style:none}
body:has(.contact) :focus-visible{outline:2px solid var(--orange);outline-offset:3px}

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

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:52px;
  height:52px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  font-size:15.5px;
  font-weight:600;
  letter-spacing:-.01em;
  text-decoration:none;
  white-space:nowrap;
  transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);
}
.btn svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.7;cursor:progress;transform:none}
.b-orange{background:var(--orange);color:#fff;box-shadow:0 10px 26px -8px rgba(255,71,57,.6)}
.b-orange:hover{background:var(--orangeD);color:#fff}
.b-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(34,9,15,.16)}
.b-line:hover{box-shadow:inset 0 0 0 1.5px rgba(34,9,15,.4);background:transparent}
.b-wa{background:#fff;color:var(--waD);box-shadow:inset 0 0 0 1.5px rgba(37,211,102,.5),0 10px 26px -14px rgba(11,127,62,.45)}
.b-wa:hover{background:#f2fcf6;color:var(--waD)}
.b-wa svg,.btn svg.wa{width:20px;height:20px;fill:var(--wa);stroke:none}

body:has(.contact) .nav-cta,
body:has(.contact) .nav.lite .nav-cta{
  background:var(--orange);
  color:#fff;
  box-shadow:0 8px 22px -8px rgba(255,71,57,.6);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
body:has(.contact) .nav-cta:hover,
body:has(.contact) .nav.lite .nav-cta:hover{background:var(--orangeD);color:#fff}
body:has(.contact) .nav-cta svg.i,
body:has(.contact) .nav-menu svg.i,
body:has(.contact) .mnav-x svg.i,
body:has(.contact) .mnav-links svg.i,
body:has(.contact) .mnav-call svg.i{
  width:18px;height:18px;flex:none;display:block;
  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
body:has(.contact) .ft{margin-top:0;font-size:16px}
body:has(.contact) .modal{display:none!important}

.cue-lab{
  display:inline-flex;
  align-items:center;
  height:32px;
  padding:0 14px;
  margin:0 0 16px;
  border-radius:999px;
  font-family:var(--sans);
  font-size:13px;
  font-weight:500;
  letter-spacing:.005em;
  color:var(--orangeD);
  border:1.2px solid rgba(255,71,57,.4);
  width:max-content;
  max-width:100%;
  background:transparent;
}

.ct-ic{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--ivory2);
  color:var(--maroon);
  flex:none;
}
.ct-ic svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ct-ic--wa{background:rgba(37,211,102,.12);color:var(--waD)}
.ct-ic--wa svg{fill:var(--wa);stroke:none}

.contact{padding-bottom:0}

/* —— Hero —— */
.ct-hero{
  position:relative;
  padding:calc(118px + env(safe-area-inset-top,0px)) 0 clamp(28px,4vw,48px);
  overflow:hidden;
}
.ct-hero .wrap{position:relative;z-index:1}
.ct-hero__ov{
  position:absolute;
  right:-6%;
  top:12%;
  width:min(460px,48vw);
  pointer-events:none;
  opacity:.5;
  rotate:160deg;
}
.ct-hero__ov svg{display:block;width:100%;height:auto;overflow:visible}
.ct-hero__ov ellipse{fill:none;stroke:rgba(79,7,22,.16);stroke-width:1;vector-effect:non-scaling-stroke}
.ct-hero h1{
  font-size:clamp(40px,5.6vw,68px);
  color:var(--maroon);
  letter-spacing:-.04em;
}
.ct-lede{
  margin-top:18px;
  max-width:46ch;
  color:var(--ink2);
  font-size:clamp(16.5px,1.25vw,19px);
  line-height:1.55;
  text-wrap:pretty;
}
.ct-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.ct-facts{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:32px;
}
.ct-facts li{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:min(100%,180px);
  padding:14px 16px;
  border-radius:var(--r-sm);
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px var(--line);
}
.ct-facts b{
  font-family:var(--serif);
  font-weight:500;
  font-size:22px;
  letter-spacing:-.03em;
  color:var(--maroon);
  line-height:1.15;
}
.ct-facts span{font-size:13.5px;color:var(--ink2);line-height:1.35}

/* —— Shared heads —— */
.ct-paths,.ct-offices{padding:clamp(28px,4vw,56px) 0}
.ct-shead{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:16px 48px;
  margin-bottom:clamp(22px,3vw,36px);
}
.ct-shead h2{
  font-size:clamp(30px,3.6vw,48px);
  color:var(--maroon);
}
.ct-shead p{
  justify-self:end;
  max-width:38ch;
  color:var(--ink2);
  font-size:clamp(16px,1.15vw,18px);
  line-height:1.5;
}

.ct-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.ct-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  min-height:100%;
  padding:22px 22px 24px;
  border-radius:var(--r-md);
  background:var(--white);
  box-shadow:inset 0 0 0 1px var(--line),var(--shadow);
}
.ct-card h3{font-size:26px;color:var(--maroon)}
.ct-card p{color:var(--ink2);font-size:15.5px;line-height:1.5}
.ct-card__acts{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:auto;
  padding-top:6px;
}

/* —— Form —— */
.ct-write{
  padding:clamp(8px,2vw,20px) 0 clamp(36px,5vw,64px);
  scroll-margin-top:104px;
}
.ct-write__grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  gap:16px;
  align-items:stretch;
}
.ct-form,
.ct-aside{
  border-radius:var(--r-lg);
  background:var(--white);
  box-shadow:inset 0 0 0 1px var(--line),var(--shadowL);
}
.ct-form{padding:clamp(24px,3vw,40px)}
.ct-form h2{
  font-size:clamp(32px,3.4vw,44px);
  color:var(--maroon);
}
.ct-form__lede{
  margin:12px 0 22px;
  max-width:42ch;
  color:var(--ink2);
  font-size:16.5px;
}
.ct-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.ct-field label{
  font-size:14.5px;
  font-weight:600;
  color:var(--ink);
}
.ct-field input,
.ct-field textarea{
  width:100%;
  border:1.5px solid var(--line);
  border-radius:16px;
  background:var(--ivory);
  color:var(--ink);
  font:inherit;
  font-size:16px;
  line-height:1.45;
  transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease);
}
.ct-field input{
  height:56px;
  padding:0 16px;
}
.ct-field textarea{
  min-height:148px;
  padding:14px 16px;
  resize:vertical;
}
.ct-field input:focus,
.ct-field textarea:focus{
  outline:none;
  border-color:var(--orange);
  background:#fff;
  box-shadow:0 0 0 4px rgba(255,71,57,.12);
}
.ct-field input[aria-invalid="true"],
.ct-field textarea[aria-invalid="true"]{
  border-color:#9B2335;
  background:#fff;
}
.ct-error{
  font-size:13.5px;
  line-height:1.4;
  color:#9B2335;
}
.ct-form__foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 16px;
  margin-top:6px;
}
.ct-status{
  min-height:1.4em;
  font-size:14.5px;
  font-weight:600;
  color:var(--pos);
}
.ct-status.is-error{color:#9B2335}
.ct-note{
  margin-top:14px;
  font-size:13.5px;
  color:var(--ink3);
}

.ct-aside{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(22px,3vw,32px);
  background:
    radial-gradient(80% 50% at 100% 0%,rgba(255,71,57,.12),transparent 60%),
    var(--maroon);
  color:var(--ivory);
  box-shadow:var(--shadowL);
}
.ct-aside__kicker{
  font-family:var(--serif);
  font-size:clamp(28px,3vw,36px);
  font-weight:500;
  letter-spacing:-.03em;
  color:#fff;
  margin-bottom:18px;
}
.ct-lines{display:flex;flex-direction:column;gap:10px}
.ct-lines a{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:72px;
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
  color:#fff;
  transition:background .25s var(--ease);
}
.ct-lines a:hover{background:rgba(255,255,255,.14)}
.ct-lines b{
  display:block;
  font-size:16px;
  font-weight:650;
  letter-spacing:-.01em;
}
.ct-lines span span{
  display:block;
  margin-top:2px;
  font-size:14px;
  color:rgba(250,248,238,.72);
}
.ct-aside .ct-ic{background:rgba(255,255,255,.12);color:#fff}

/* —— Offices —— */
.ct-offices{scroll-margin-top:104px;padding-bottom:clamp(56px,7vw,96px)}
.ct-offices__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.ct-office{
  display:grid;
  grid-template-columns:minmax(140px,38%) minmax(0,1fr);
  min-height:100%;
  border-radius:var(--r-md);
  background:var(--white);
  overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line),var(--shadow);
}
.ct-map{min-height:180px;background:#5C1322}
.ct-map svg{display:block;width:100%;height:100%;min-height:180px}
.ct-map--b rect:first-child{fill:#4A0716}
.ct-office__body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:22px 22px 24px;
}
.ct-office__name{
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--orangeD);
}
.ct-office h3{font-size:28px;color:var(--maroon)}
.ct-office address{
  font-style:normal;
  color:var(--ink2);
  font-size:15px;
  line-height:1.5;
}
.ct-dir{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:44px;
  margin-top:auto;
  padding-top:8px;
  font-size:15px;
  font-weight:600;
  color:var(--maroon);
}
.ct-dir svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .25s var(--ease);
}
.ct-dir:hover svg{transform:translateX(3px)}

html.ct-lock{overflow:hidden}
.ct-thanks{
  position:fixed;
  inset:0;
  z-index:400;
  display:grid;
  place-items:center;
  padding:24px;
}
.ct-thanks[hidden]{display:none}
.ct-thanks__back{
  position:absolute;
  inset:0;
  border:0;
  padding:0;
  margin:0;
  background:rgba(34,9,15,.55);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer;
}
.ct-thanks__card{
  position:relative;
  z-index:1;
  width:min(440px,100%);
  padding:36px 28px 28px;
  border-radius:var(--r-lg);
  background:
    radial-gradient(80% 50% at 100% 0%,rgba(255,71,57,.12),transparent 60%),
    var(--ivory);
  box-shadow:var(--shadowL);
}
.ct-thanks__card h2{
  font-size:clamp(30px,4vw,40px);
  color:var(--maroon);
}
.ct-thanks__card > p:not(.cue-lab){
  margin-top:12px;
  color:var(--ink2);
  font-size:16.5px;
  line-height:1.5;
}
.ct-thanks__card .btn{margin-top:22px}
.ct-thanks__x{
  position:absolute;
  top:14px;
  right:14px;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:rgba(79,7,22,.06);
  color:var(--maroon);
  display:grid;
  place-items:center;
}
.ct-thanks__x svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ct-thanks__x:hover{background:rgba(79,7,22,.12)}

@media(max-width:980px){
  .ct-grid,.ct-write__grid,.ct-offices__grid{grid-template-columns:1fr}
  .ct-shead{grid-template-columns:1fr;gap:10px}
  .ct-shead p{justify-self:start}
  .ct-office{grid-template-columns:1fr}
  .ct-map,.ct-map svg{min-height:140px;max-height:160px}
}
@media(max-width:680px){
  .ct-hero{padding-top:calc(96px + env(safe-area-inset-top,0px))}
  .ct-hero h1{font-size:clamp(36px,10vw,48px)}
  .ct-cta .btn,.ct-card__acts .btn,.ct-form__foot .btn{width:100%}
  .ct-facts li{flex:1 1 calc(50% - 10px)}
  .ct-form__foot{align-items:stretch}
  body:has(.contact) .ft .ft-hero h3{color:var(--ivory)}
  body:has(.contact) .ft-col h4 button{
    appearance:none;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    color:var(--ivory);
  }
  body:has(.contact) .ft-col ul{padding:0 0 18px}
}
@media(max-width:680px){
  .ct-thanks{padding:16px;align-items:end}
  .ct-thanks__card{border-radius:28px 28px 0 0;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
  .ct-thanks__card .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .btn,.ct-field input,.ct-field textarea,.ct-lines a,.ct-dir svg{transition:none}
  .btn:active{transform:none}
}
