:root{
    --ink:#0D1F2A;
    --ink-soft:#33475A;
    --teal:#146B63;
    --teal-deep:#0D4C46;
    --canvas:#C9BC9E;
    --paper:#F3EFE4;
    --paper-2:#EAE4D3;
    --brick:#8A3226;
    --line:rgba(13,31,42,0.14);
    --white:#FCFBF7;
    --radius:2px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Space Grotesk', sans-serif;
    font-weight:700;
    letter-spacing:-0.01em;
    color:var(--ink);
  }
  .mono{font-family:'IBM Plex Mono', monospace;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  /* ---------- eyebrow / tag chip ---------- */
  .tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:11.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    padding:6px 12px 6px 10px;
    border:1px solid currentColor;
    border-radius:20px;
  }
  .tag::before{
    content:"";
    width:6px; height:6px;
    background:currentColor;
    border-radius:50%;
    display:inline-block;
  }

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:rgba(243,239,228,0.96);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:flex-start;
    gap:20px;
    padding:10px 32px;
  }
  .brandmark{
    display:block;
    flex:0 0 auto;
    overflow:visible;
  }
  .brandmark .logo{
    display:block;
    height:110px;
    width:auto;
    max-width:none;
    object-fit:contain;
  }
  .brandmark .swatch{
    width:30px; height:30px;
    background:var(--ink);
    display:flex; align-items:center; justify-content:center;
    color:var(--paper);
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; font-weight:600;
    border-radius:3px;
  }
  nav.links{
    display:flex; gap:22px; font-size:14px; font-weight:500;
    flex:1 1 auto;
    justify-content:center;
    flex-wrap:wrap;
  }
  nav.links a{position:relative; padding-bottom:3px; color:var(--ink-soft);}
  nav.links a:hover{color:var(--ink);}
  .menu-cta{display:none;}
  .nav-toggle{
    position:absolute;
    width:1px; height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
  }
  .hamburger{
    display:none;
    width:44px; height:44px;
    margin-left:auto;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    cursor:pointer;
    border:1px solid var(--line);
    background:var(--white);
    border-radius:2px;
  }
  .hamburger span{
    display:block;
    width:20px; height:2px;
    background:var(--ink);
    transition:transform .2s ease, opacity .2s ease;
  }
  .nav-cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.05em;
    padding:9px 16px;
    background:var(--ink);
    color:var(--paper);
    border-radius:2px;
    white-space:nowrap;
    flex:0 0 auto;
    margin-left:auto;
  }
  .nav-cta:hover{background:var(--teal-deep);}
  @media (max-width:1100px){
    .nav{padding:8px 24px;}
    .brandmark .logo{height:88px;}
    .nav-cta{display:none;}
    .hamburger{display:flex;}
    .nav-toggle:checked ~ .hamburger span:nth-child(1){transform:translateY(8px) rotate(45deg);}
    .nav-toggle:checked ~ .hamburger span:nth-child(2){opacity:0;}
    .nav-toggle:checked ~ .hamburger span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
    nav.links{
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
      gap:0;
      position:absolute;
      top:100%;
      left:0; right:0;
      background:var(--paper);
      border-bottom:1px solid var(--line);
      padding:12px 24px 28px;
      max-height:0;
      overflow:hidden;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:max-height .25s ease, opacity .2s ease, visibility .2s ease;
    }
    .nav-toggle:checked ~ nav.links{
      max-height:560px;
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }
    nav.links a{
      display:block;
      padding:14px 4px;
      border-bottom:1px solid var(--line);
      font-size:16px;
    }
    nav.links a.active::after{display:none;}
    nav.links a.menu-cta{
      display:inline-flex;
      margin-top:18px;
      width:fit-content;
      background:var(--ink);
      color:var(--paper);
      padding:12px 16px;
      border-bottom:none;
      font-family:'IBM Plex Mono', monospace;
      font-size:12.5px;
      letter-spacing:0.05em;
    }
    body:has(.nav-toggle:checked){overflow:hidden;}
  }
  @media (max-width:640px){
    .nav{padding:8px 20px;}
    .brandmark .logo{height:80px;}
    nav.links{padding-left:20px; padding-right:20px;}
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    background:var(--ink);
    color:var(--paper);
    overflow:hidden;
    padding:96px 0 0;
  }
  .hero.has-photo{
    background:var(--ink) url("images/Untitlwed.png") center 22% / cover no-repeat;
  }
  .hero.has-photo::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(105deg, rgba(13,31,42,0.92) 0%, rgba(13,31,42,0.72) 48%, rgba(13,31,42,0.38) 100%);
    z-index:1;
    pointer-events:none;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 90px),
      repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 90px);
    pointer-events:none;
    z-index:1;
  }
  .hero-inner{position:relative; z-index:2;}
  .hero .tag{color:var(--canvas); border-color:rgba(201,188,158,0.5); margin-bottom:28px;}
  .hero h1{
    font-size:clamp(40px, 6.6vw, 84px);
    line-height:0.98;
    max-width:900px;
    color:var(--white);
  }
  .hero h1 em{
    font-style:normal;
    color:var(--canvas);
  }
  .hero-sub{
    max-width:520px;
    margin-top:26px;
    font-size:17px;
    color:rgba(252,251,247,0.72);
  }
  .hero-actions{
    display:flex; gap:14px; margin-top:38px; flex-wrap:wrap;
  }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 24px;
    font-size:14px; font-weight:600;
    border-radius:2px;
    font-family:'IBM Plex Sans', sans-serif;
  }
  .btn-primary{background:var(--teal); color:var(--white);}
  .btn-primary:hover{background:#0f5a53;}
  .btn-ghost{border:1px solid rgba(252,251,247,0.35); color:var(--paper);}
  .btn-ghost:hover{border-color:rgba(252,251,247,0.8);}

  /* swing tag strip */
  .tagstrip{
    position:relative; z-index:2;
    margin-top:72px;
    border-top:1px solid rgba(252,251,247,0.14);
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }
  .tagstrip .cell{
    padding:22px 32px;
    border-right:1px solid rgba(252,251,247,0.14);
  }
  .tagstrip .cell:last-child{border-right:none;}
  .tagstrip .cell .k{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--canvas); opacity:0.85;
  }
  .tagstrip .cell .v{
    margin-top:6px; font-size:15px; font-weight:500; color:var(--white);
  }
  @media (max-width:700px){
    .tagstrip{grid-template-columns:1fr; }
    .tagstrip .cell{border-right:none; border-bottom:1px solid rgba(252,251,247,0.14);}
  }

  /* ---------- section basics ---------- */
  section{padding:104px 0;}
  @media (max-width:700px){ section{padding:68px 0;} }
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
    margin-bottom:52px;
    border-bottom:1px solid var(--line);
    padding-bottom:28px;
  }
  .section-head h2{font-size:clamp(28px,3.6vw,42px); max-width:640px;}
  .section-head .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px; color:var(--ink-soft); white-space:nowrap;
  }
  .lede{color:var(--ink-soft); font-size:16px; max-width:640px; margin-top:14px;}

  /* ---------- about ---------- */
  .about-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;
  }
  @media (max-width:900px){ .about-grid{grid-template-columns:1fr; gap:32px;} }
  .about-copy p{font-size:18px; color:var(--ink-soft); max-width:520px;}
  .approach-card{
    background:var(--white); border:1px solid var(--line);
    padding:28px; margin-top:32px; border-radius:2px;
    border-left:3px solid var(--teal);
  }
  .approach-card .k{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--teal);}
  .approach-card h3{margin-top:10px; font-size:20px;}
  .approach-card p{margin-top:8px; font-size:15px; color:var(--ink-soft);}

  .pillars{display:flex; flex-direction:column; gap:0;}
  .pillar{
    padding:22px 0; border-top:1px solid var(--line);
  }
  .pillar:last-child{border-bottom:1px solid var(--line);}
  .pillar .row{display:flex; gap:16px; align-items:baseline;}
  .pillar .idx{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--teal);}
  .pillar h4{font-size:17px;}
  .pillar p{font-size:14.5px; color:var(--ink-soft); margin-top:6px; margin-left:30px;}
  .home-pillars{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0 32px;
    margin-top:48px;
  }
  @media (max-width:820px){ .home-pillars{grid-template-columns:1fr;} }
  .more-link{margin-top:28px; display:inline-flex;}
  .inline-link{color:var(--teal); font-weight:600;}

  /* ---------- product categories : swatch cards ---------- */
  .swatch-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  }
  @media (max-width:900px){ .swatch-grid{grid-template-columns:1fr;} }
  .swatch-card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:2px;
    overflow:hidden;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .swatch-card:hover{transform:translateY(-4px); box-shadow:0 18px 34px -20px rgba(13,31,42,0.35);}
  .swatch-top{
    height:180px;
    position:relative;
    display:flex; align-items:flex-end;
    padding:16px;
    overflow:hidden;
  }
  .swatch-top img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
  }
  .swatch-top::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(13,31,42,0.5), transparent 55%);
    pointer-events:none;
    z-index:1;
  }
  .swatch-top.knit{background:
      repeating-linear-gradient(45deg, #0D4C46 0 3px, #146B63 3px 6px);}
  .swatch-top.knit img{object-position:center 40%;}
  .swatch-top.woven{background:
      repeating-linear-gradient(0deg, #33475A 0 5px, #0D1F2A 5px 10px),
      repeating-linear-gradient(90deg, rgba(252,251,247,0.06) 0 5px, transparent 5px 10px);}
  .swatch-top.woven img{object-position:center 18%;}
  .swatch-top.sweater{background:
      repeating-linear-gradient(135deg, #8A3226 0 4px, #6f2419 4px 8px);}
  .swatch-top.sweater img{object-position:70% 50%;}
  .swatch-code{
    position:relative; z-index:2;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; color:rgba(252,251,247,0.85);
    background:rgba(13,31,42,0.45);
    padding:4px 8px; border-radius:2px;
  }
  .swatch-body{padding:22px;}
  .swatch-body .tag{font-size:10.5px; color:var(--teal); border-color:var(--teal); margin-bottom:12px;}
  .swatch-body h3{font-size:20px;}
  .swatch-body p{font-size:14.5px; color:var(--ink-soft); margin-top:8px;}
  .swatch-note{
    margin-top:28px; font-size:13.5px; color:var(--ink-soft); font-style:italic;
  }

  /* ---------- process : stitched tracker ---------- */
  .tracker{position:relative; padding-left:0;}
  .tracker-line{
    position:absolute; top:20px; left:0; right:0; height:1px;
    background-image:linear-gradient(90deg, var(--ink-soft) 0 10px, transparent 10px 20px);
    background-size:20px 1px;
    display:none;
  }
  .track-grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:28px 24px;
  }
  @media (max-width:820px){ .track-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .track-grid{grid-template-columns:1fr;} }
  .step{
    background:var(--white); border:1px solid var(--line); border-radius:2px;
    padding:24px; position:relative;
  }
  .step .stepnum{
    width:34px; height:34px; border-radius:50%;
    background:var(--ink); color:var(--paper);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; font-weight:500;
    margin-bottom:16px;
  }
  .step:nth-child(6) .stepnum, .step:nth-child(6){border-left:3px solid var(--teal);}
  .step h4{font-size:16.5px;}
  .step p{font-size:14px; color:var(--ink-soft); margin-top:8px;}
  .track-note{margin-top:36px; font-size:15px; color:var(--ink-soft); max-width:680px;}

  /* ---------- responsible sourcing ---------- */
  .responsible{
    background:var(--ink);
    color:var(--paper);
    border-radius:4px;
    padding:56px;
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:48px; align-items:center;
  }
  @media (max-width:900px){ .responsible{grid-template-columns:1fr; padding:32px;} }
  .responsible .tag{color:var(--canvas); border-color:rgba(201,188,158,0.5);}
  .responsible h2{color:var(--white); font-size:clamp(26px,3vw,36px); margin-top:16px;}
  .responsible p.big{color:rgba(252,251,247,0.72); margin-top:16px; font-size:16px;}
  .responsible .list{margin-top:8px;}
  .rline{
    display:flex; gap:14px; padding:16px 0; border-top:1px solid rgba(252,251,247,0.14);
  }
  .rline:last-child{padding-bottom:0;}
  .rline .dot{width:8px; height:8px; border-radius:50%; background:var(--teal); margin-top:7px; flex-shrink:0;}
  .rline h4{color:var(--white); font-size:15.5px;}
  .rline p{color:rgba(252,251,247,0.65); font-size:14px; margin-top:4px;}
  .mannequin{
    justify-self:center;
  }

  /* ---------- compliance ---------- */
  .compliance-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:24px;
  }
  @media (max-width:820px){ .compliance-grid{grid-template-columns:1fr;} }
  .comp-card{
    padding:28px; border-radius:2px; border:1px solid var(--line);
  }
  .comp-card.a{background:var(--paper-2);}
  .comp-card.b{background:var(--white);}
  .comp-card .tag{font-size:10.5px; margin-bottom:14px;}
  .comp-card.a .tag{color:var(--brick); border-color:var(--brick);}
  .comp-card.b .tag{color:var(--teal); border-color:var(--teal);}
  .comp-card h3{font-size:19px;}
  .comp-card p{font-size:14.5px; color:var(--ink-soft); margin-top:10px;}
  .flow{
    margin-top:40px; padding:24px 0 0;
    display:flex; flex-wrap:wrap; align-items:center; gap:10px;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
  }
  .flow span.node{
    background:var(--ink); color:var(--paper); padding:8px 14px; border-radius:20px;
  }
  .flow span.arrow{color:var(--ink-soft);}
  .flow-label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--teal); margin-bottom:14px; display:block;
    flex-basis:100%;
  }

  /* ---------- team ---------- */
  .team-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:22px;
  }
  .team-grid.partners{margin-bottom:22px;}
  @media (max-width:560px){ .team-grid{grid-template-columns:1fr;} }
  .badge{
    background:#ECF2F2;
    border:none;
    border-radius:10px;
    padding:26px 28px;
    display:flex;
    gap:16px;
    align-items:center;
  }
  .badge .initials{
    width:48px; height:48px; border-radius:50%;
    background:#112B3C; color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:14px;
    flex-shrink:0; border:none;
  }
  .badge h4{font-size:17px; color:#112B3C; font-weight:700;}
  .badge p{font-size:14px; color:#7A8B8B; margin-top:4px; font-family:'IBM Plex Sans', sans-serif; letter-spacing:0;}
  .badge.focus{
    background:#EFE6D6;
    box-shadow:inset 0 0 0 1px rgba(54,124,123,0.22);
  }
  .badge.focus .initials{
    background:#367C7B;
    color:#fff;
    width:56px; height:56px;
    font-size:16px;
  }
  .badge.focus h4{font-size:18px;}
  .badge.focus p{color:#367C7B; font-weight:600;}

  /* ---------- CTA / footer ---------- */
  .cta{
    background:var(--teal-deep);
    color:var(--white);
    border-radius:4px;
    padding:64px 56px;
    display:grid; grid-template-columns:1.2fr 1fr; gap:48px;
  }
  @media (max-width:820px){ .cta{grid-template-columns:1fr; padding:40px 28px;} }
  .cta h2{color:var(--white); font-size:clamp(28px,3.4vw,40px);}
  .cta p{color:rgba(252,251,247,0.75); margin-top:16px; font-size:16px; max-width:460px;}
  .cta-details .row{
    display:flex; justify-content:space-between; gap:16px;
    padding:16px 0; border-top:1px solid rgba(252,251,247,0.16);
    font-size:14.5px;
  }
  .cta-details .row:last-child{padding-bottom:0;}
  .cta-details .k{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--canvas);}
  .cta-details .v{text-align:right; color:rgba(252,251,247,0.9);}
  .cta .btn-primary{margin-top:28px; background:var(--canvas); color:var(--ink);}
  .cta .btn-primary:hover{background:#dcd1b3;}

  footer{
    padding:36px 0;
    border-top:1px solid var(--line);
    display:flex; justify-content:space-between; align-items:center;
    font-size:13px; color:var(--ink-soft); flex-wrap:wrap; gap:12px;
  }
  footer .mono{letter-spacing:0.03em;}

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

/* ---------- interior page header ---------- */
.pagehead{
  background:var(--ink);
  color:var(--paper);
  padding:64px 0 48px;
  position:relative;
  overflow:hidden;
}
.pagehead.has-photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(13,31,42,0.9) 0%, rgba(13,31,42,0.68) 55%, rgba(13,31,42,0.42) 100%);
  z-index:1;
  pointer-events:none;
}
.pagehead.photo-rack{
  background:var(--ink) url("images/Untiqwtled.png") center 45% / cover no-repeat;
}
.pagehead.photo-shop{
  background:var(--ink) url("images/Untitlwed.png") center 20% / cover no-repeat;
}
.pagehead::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 90px),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 90px);
  pointer-events:none;
  z-index:1;
}
.pagehead .inner{position:relative; z-index:2;}
.crumb{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px; letter-spacing:0.08em;
  color:rgba(252,251,247,0.55);
  margin-bottom:18px;
}
.crumb a{color:rgba(252,251,247,0.75);}
.crumb a:hover{color:var(--canvas);}
.pagehead h1{
  color:var(--white);
  font-size:clamp(32px,5vw,54px);
  max-width:780px;
}
.pagehead p{
  color:rgba(252,251,247,0.68);
  max-width:560px;
  margin-top:16px;
  font-size:16px;
}

/* ---------- active nav state ---------- */
nav.links a.active{color:var(--ink); font-weight:600;}
nav.links a.active::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-4px; height:2px;
  background:var(--teal);
}

/* ---------- cross-link cards (bottom of interior pages) ---------- */
.crosslinks{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  margin-top:0;
}
@media (max-width:820px){ .crosslinks{grid-template-columns:1fr;} }
.crosslink{
  border:1px solid var(--line); border-radius:2px; padding:22px;
  background:var(--white);
  transition:transform .2s ease, box-shadow .2s ease;
}
.crosslink:hover{transform:translateY(-3px); box-shadow:0 14px 28px -20px rgba(13,31,42,0.35);}
.crosslink .k{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--teal); letter-spacing:0.1em; text-transform:uppercase;}
.crosslink h4{margin-top:8px; font-size:16.5px;}
.crosslink p{margin-top:6px; font-size:13.5px; color:var(--ink-soft);}
.crosslink .go{margin-top:12px; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink);}

/* ---------- photos / media blocks ---------- */
.photo-frame{
  overflow:hidden;
  border-radius:2px;
  border:1px solid var(--line);
  background:var(--paper-2);
}
.photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.about-visual{
  min-height:340px;
  height:100%;
}
.about-visual img{min-height:340px; object-position:center 40%;}
.photo-band{
  margin-top:48px;
  display:grid;
  grid-template-columns:1.4fr 0.8fr;
  gap:20px;
}
@media (max-width:820px){ .photo-band{grid-template-columns:1fr;} }
.photo-band .photo-frame{min-height:280px;}
.photo-band .photo-frame.tall{min-height:280px;}
.photo-band img{min-height:280px;}

.dev-card{
  background:#EFF3F3;
  border:1px solid var(--line);
  border-radius:4px;
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  height:100%;
}
.dev-card img{
  width:100%;
  max-width:220px;
  height:auto;
}
.mannequin img{
  width:100%;
  max-width:240px;
  height:auto;
}

/* ---------- shared page utilities ---------- */
.section-paper{background:var(--paper-2);}
.section-follow{padding-top:0;}
.explore-head{
  border-bottom:none;
  margin-bottom:24px;
}
.explore-head h2{font-size:22px;}
.hero-cta-tag{
  color:var(--canvas);
  border-color:rgba(201,188,158,0.5);
}
.cta.single{grid-template-columns:1fr;}
.contact-cards{margin-top:24px;}
.contact-cards a{color:var(--teal); font-weight:600;}
.contact-cards a:hover{color:var(--teal-deep);}
.contact-layout{display:grid; gap:28px;}
.contact-form-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:4px;
  padding:36px 32px;
}
.contact-form-card h2{font-size:clamp(26px,3vw,34px); margin-top:14px;}
.contact-form-card > p{color:var(--ink-soft); margin-top:10px; max-width:560px;}
.contact-form{margin-top:28px; display:grid; gap:16px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:640px){
  .contact-form-card{padding:24px 20px;}
  .form-row{grid-template-columns:1fr;}
}
.contact-form label{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--teal);
}
.contact-form input,
.contact-form textarea{
  display:block;
  width:100%;
  margin-top:8px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:2px;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:15px;
}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:2px solid var(--teal);
  outline-offset:1px;
}
.contact-form textarea{resize:vertical; min-height:140px;}
.contact-form .btn{width:fit-content; border:none; cursor:pointer;}
.form-alert{
  margin-top:20px;
  padding:14px 16px;
  border-radius:2px;
  font-size:14.5px;
}
.form-alert.success{background:#e4efe8; color:#0D4C46;}
.form-alert.error{background:#f6e6e3; color:#8A3226;}
.cta-details a{color:inherit;}
.cta-details a:hover{color:var(--canvas);}
.footer-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  flex-wrap:wrap;
  gap:12px;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.footer-brand .logo{
  height:52px;
  width:auto;
  border-radius:2px;
}

/* ---------- process intro visual ---------- */
.process-intro{
  display:grid;
  grid-template-columns:0.7fr 1.3fr;
  gap:32px;
  align-items:center;
  margin-bottom:48px;
}
.process-intro h2{font-size:clamp(26px,3vw,36px); margin-top:14px;}
.process-intro .tag{margin-bottom:4px;}
@media (max-width:820px){ .process-intro{grid-template-columns:1fr;} }

/* ---------- quality visual strip ---------- */
.quality-visual{
  margin-top:40px;
  min-height:260px;
}
.quality-visual img{min-height:260px; object-position:center 35%;}
