/* =========================================================
   COUHR — Design tokens
   Palette drawn from the mark: brand teal + deep helix teal,
   warm amber as the single accent, cool paper background.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Work+Sans:wght@400;500;600&display=swap');

:root{
  --teal:        #009ca9;
  --teal-deep:   #0b4a52;
  --teal-black:  #0d1b1c;
  --paper:       #f6f9f9;
  --paper-dim:   #eaf2f2;
  --white:       #ffffff;
  --amber:       #f0a63d;
  --coral:       #ff6f59;
  --line:        #cfe1e1;

  --display: 'Space Grotesk', sans-serif;
  --body: 'Work Sans', sans-serif;

  --max: 1160px;
  --gutter: clamp(24px, 5vw, 64px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--teal-black);
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(11,74,82,0.07) 1.5px, transparent 0) 0 0/22px 22px,
    var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:700;
  line-height:1.1;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
p{margin:0 0 1em;}
.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
}
:focus-visible{
  outline:3px solid var(--amber);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--body);
  font-weight:600;
  font-size:1rem;
  padding:.85em 1.6em;
  border-radius:999px;
  text-decoration:none;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn-primary{background:var(--teal); color:var(--white); box-shadow:0 12px 24px -10px rgba(0,156,169,0.55);}
.btn-primary:hover{background:var(--teal-deep); transform:translateY(-2px); box-shadow:0 16px 28px -10px rgba(11,74,82,0.5);}
.btn-ghost{background:transparent; color:var(--teal-deep); border-color:var(--teal-deep);}
.btn-ghost:hover{background:var(--teal-deep); color:var(--white); transform:translateY(-2px);}
.btn-amber{background:var(--amber); color:var(--teal-black); box-shadow:0 12px 24px -10px rgba(240,166,61,0.55);}
.btn-amber:hover{background:#d98f28; transform:translateY(-2px);}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:transparent;
  border-bottom:1px solid var(--line);
  box-shadow:0 4px 24px -18px rgba(11,74,82,0.6);
}
.site-header::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(246,249,249,0.92);
  backdrop-filter:blur(8px);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{width:40px; height:40px;}
.brand span{font-family:var(--display); font-weight:700; font-size:1.15rem; color:var(--teal-deep);}
.nav-links{display:flex; align-items:center; gap:32px; list-style:none; margin:0; padding:0;}
.nav-links a{
  text-decoration:none; font-weight:500; color:var(--teal-black);
  position:relative; padding:4px 0;
}
.nav-links a.active,
.nav-links a:hover{color:var(--teal);}
.nav-links a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--amber);
}
.nav-cta{display:flex; align-items:center; gap:20px;}
.nav-toggle{
  display:none; background:none; border:none; cursor:pointer; padding:8px;
}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--teal-black); margin:5px 0; transition:.2s;}

@media (max-width:860px){
  .nav-links{
    position:fixed; inset:72px 0 0 0; background:var(--paper);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:16px var(--gutter); transform:translateX(100%);
    transition:transform .25s ease; overflow-y:auto;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links li{width:100%; border-bottom:1px solid var(--line);}
  .nav-links a{display:block; padding:16px 0;}
  .nav-toggle{display:block;}
  .nav-cta .btn-primary{display:none;}
}

/* ---------- helix thread motif ---------- */
.thread{
  position:relative;
}
.thread::before{
  content:'';
  position:absolute;
  left:calc(var(--gutter) + 2px);
  top:0; bottom:0; width:2px;
  background:var(--line);
}
@media (max-width:760px){ .thread::before{display:none;} }

/* ---------- hero ---------- */
.hero{
  padding:96px 0 80px;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(720px 480px at 82% 15%, rgba(0,156,169,0.14), transparent 60%),
    radial-gradient(600px 400px at 8% 90%, rgba(240,166,61,0.10), transparent 60%);
}
.hero .wrap{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:48px;
  align-items:center;
}
.hero-eyebrow{
  color:var(--teal);
  font-weight:600;
  margin-bottom:14px;
}
.hero h1{
  font-size:clamp(2.4rem, 4.6vw, 3.6rem);
  color:var(--teal-deep);
}
.hero p.lead{
  font-size:1.2rem;
  max-width:46ch;
  color:#25403f;
}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:28px;}
.hero-visual{
  position:relative;
  overflow:hidden;
  aspect-ratio: 240 / 460;
}
.hero-visual svg{width:100%; height:auto; display:block;}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;}
  .hero-visual{order:-1; max-width:260px; margin:0 auto 12px;}
}

/* ---------- page header (non-home) ---------- */
.page-header{
  position:relative;
  overflow:hidden;
  padding:76px 0 68px;
  background:
    radial-gradient(640px 420px at 88% 20%, rgba(0,156,169,0.35), transparent 62%),
    linear-gradient(160deg, var(--teal-deep) 0%, #082e34 100%);
  color:var(--white);
}
.page-header .wrap{
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:40px;
  align-items:center;
}
.page-header .kicker{color:var(--amber); font-weight:600; margin-bottom:12px; letter-spacing:.01em;}
.page-header h1{color:var(--white); font-size:clamp(2.1rem, 4vw, 3rem); max-width:18ch;}
.page-header p{max-width:52ch; font-size:1.12rem; color:#cfe6e5;}
.page-header-visual{
  opacity:0.95;
  overflow:hidden;
  width:210px;
  max-width:100%;
  aspect-ratio: 1 / 1;
  margin-left:auto;
}
.page-header-visual svg{width:100%; height:auto; display:block;}
@media (max-width:800px){
  .page-header .wrap{grid-template-columns:1fr;}
  .page-header-visual{display:none;}
}

/* ---------- sections ---------- */
section{padding:72px 0;}
.section-alt{background:var(--white);}
.section-deep{
  position:relative;
  overflow:hidden;
  background:linear-gradient(160deg, var(--teal-deep) 0%, #082e34 100%);
  color:var(--white);
}
.section-deep::before{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(680px 420px at 85% 0%, rgba(0,156,169,0.30), transparent 60%);
  pointer-events:none;
}
.section-deep .wrap{position:relative;}
.section-deep h2, .section-deep h3{color:var(--white);}

.section-head{max-width:60ch; margin-bottom:44px;}
.section-head h2{font-size:clamp(1.8rem, 3vw, 2.4rem); color:var(--teal-deep);}
.section-deep .section-head h2{color:var(--white);}

/* mission statement */
.statement{
  font-family:var(--display);
  font-size:clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight:600;
  line-height:1.4;
  max-width:26ch;
  color:var(--teal-deep);
}
.statement .amber{color:var(--amber);}

.panel{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:20px;
  padding:clamp(32px,5vw,56px);
  box-shadow:0 24px 48px -32px rgba(11,74,82,0.28);
}

/* ---------- announcement bar ---------- */
.announce-bar{
  background:linear-gradient(90deg, var(--teal-deep), var(--teal));
  color:var(--white);
  text-align:center;
  font-weight:600;
  font-size:.92rem;
  padding:11px var(--gutter);
  position:relative;
  z-index:60;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.announce-bar img{
  height:18px; width:18px;
  vertical-align:middle;
  border-radius:50%;
}
.announce-bar a{
  color:var(--white);
  text-decoration:underline;
  text-decoration-thickness:2px;
  font-weight:700;
}

/* ---------- icons ---------- */
.icon{width:24px; height:24px; display:block;}

.mark-icon{
  width:48px; height:48px; border-radius:50%;
  background:var(--paper-dim); border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--teal); position:relative; flex-shrink:0;
}
.mark-icon svg{width:24px; height:24px; stroke:currentColor; fill:none;}
.mark-icon::before{
  content:''; position:absolute; left:50%; top:-38px; width:2px; height:38px;
  background:var(--line); transform:translateX(-50%);
}
.rowblock:first-child .mark-icon::before{display:none;}

/* ---------- highlight marker ---------- */
.mark-highlight{
  background-image:linear-gradient(120deg, rgba(240,166,61,0.45) 0%, rgba(240,166,61,0.45) 100%);
  background-repeat:no-repeat;
  background-size:100% 0.4em;
  background-position:0 88%;
  padding:0 .05em;
}

/* ---------- badge / sticker ---------- */
.badge{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--coral); color:var(--white); font-weight:700; font-size:.78rem;
  padding:7px 16px; border-radius:999px; transform:rotate(-2deg);
  letter-spacing:.03em; text-transform:uppercase;
  box-shadow:0 10px 20px -10px rgba(255,111,89,0.7);
}

/* ---------- hiring card ---------- */
.hiring-card{
  position:relative;
  background:var(--white);
  border:2.5px dashed var(--coral);
  border-radius:24px;
  padding:clamp(28px,5vw,44px);
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:32px;
  align-items:center;
}
.hiring-card .hiring-icon{
  width:76px; height:76px; border-radius:50%;
  background:var(--paper-dim); display:flex; align-items:center; justify-content:center;
  color:var(--coral); flex-shrink:0;
}
.hiring-card .hiring-icon svg{width:38px; height:38px;}
.hiring-card h2{color:var(--teal-deep); font-size:1.5rem; margin:10px 0 8px;}
.hiring-card p{margin:0; max-width:52ch; color:#3a5453;}
.hiring-card .btn{white-space:nowrap;}
@media (max-width:760px){
  .hiring-card{grid-template-columns:1fr; text-align:left;}
  .hiring-card .btn{width:100%; justify-content:center;}
}

/* ---------- wave divider ---------- */
.wave-divider{
  position:absolute; left:0; right:0; bottom:-1px; line-height:0;
}
.wave-divider svg{width:100%; height:auto; display:block;}

/* ---------- tag label (replaces plain "Program 0X" eyebrows) ---------- */
.tag-label{
  display:inline-flex; align-items:center; gap:8px;
  border:1.5px dashed var(--teal);
  border-radius:8px;
  padding:7px 14px;
  font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--teal-deep);
  background:var(--paper-dim);
  margin-bottom:18px;
}
.tag-label svg{width:16px; height:16px; stroke:currentColor; fill:none; flex-shrink:0;}
.tag-label.rot-l{transform:rotate(-1.6deg);}
.tag-label.rot-r{transform:rotate(1.4deg);}

/* ---------- washi-tape accent ---------- */
.taped{position:relative;}
.taped::before{
  content:'';
  position:absolute; top:-13px; left:40px; width:74px; height:26px;
  background:rgba(240,166,61,0.55);
  border:1px solid rgba(240,166,61,0.75);
  transform:rotate(-4deg);
  box-shadow:0 4px 8px rgba(11,74,82,0.12);
}

/* ---------- flagship badge variant ---------- */
.badge-teal{
  background:var(--teal);
  box-shadow:0 10px 20px -10px rgba(0,156,169,0.7);
}

/* ---------- motion ---------- */
@keyframes braid-scroll{
  from { transform: translateY(0); }
  to   { transform: translateY(-50%); }
}
.hero-visual svg, .page-header-visual svg{
  animation: braid-scroll 6s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
}

@keyframes pulse-badge{
  0%, 100% { box-shadow: 0 10px 20px -10px rgba(255,111,89,0.7); }
  50% { box-shadow: 0 10px 26px -6px rgba(255,111,89,0.9); }
}
.badge{ animation: pulse-badge 2.6s ease-in-out infinite; }
.badge-teal{ animation-name: pulse-badge-teal; }
@keyframes pulse-badge-teal{
  0%, 100% { box-shadow: 0 10px 20px -10px rgba(0,156,169,0.7); }
  50% { box-shadow: 0 10px 26px -6px rgba(0,156,169,0.95); }
}

.rowblock{ transition: transform .25s ease; }
.rowblock:hover{ transform: translateX(4px); }
.rowblock:hover .mark-icon{
  color: var(--coral);
  border-color: var(--coral);
  transform: scale(1.08);
}
.mark-icon{ transition: transform .25s ease, color .25s ease, border-color .25s ease; }

.nav-links a{ transition: color .2s ease; }

.panel, .hiring-card, .form-card{ transition: transform .3s ease, box-shadow .3s ease; }
.panel:hover, .form-card:hover{ box-shadow: 0 28px 56px -30px rgba(11,74,82,0.32); }

@media (prefers-reduced-motion: reduce){
  .hero-visual svg, .page-header-visual svg{ animation: none; }
  .badge{ animation: none; }
  .rowblock, .rowblock:hover, .mark-icon{ transition: none; transform: none; }
}

/* ---------- FAQ accordion ---------- */
.faq-item{
  border-bottom: 1px solid var(--line);
  padding: 20px 0;
}
.faq-item summary{
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-weight: 600;
  color: var(--teal-deep);
  font-size: 1.05rem;
}
.faq-item summary::-webkit-details-marker{ display: none; }
.faq-item summary::after{
  content: '+';
  font-size: 1.5rem;
  line-height: 1;
  color: var(--teal);
  transition: transform .25s ease;
  flex-shrink: 0;
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item p{
  margin: 14px 0 0;
  color: #3a5453;
  max-width: 65ch;
}

/* ---------- instagram photo gallery ---------- */
.gallery-wrap{ position:relative; }
.photo-grid{
  display:flex;
  gap:22px;
  margin-top:36px;
  overflow-x:auto;
  padding-bottom:4px;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.photo-grid::-webkit-scrollbar{ display:none; }
.gallery-arrow{
  position:absolute;
  top:calc(50% + 18px);
  transform:translateY(-50%);
  z-index:5;
  width:48px; height:48px;
  border-radius:50%;
  background:var(--white);
  border:1px solid var(--line);
  box-shadow:0 12px 24px -12px rgba(11,74,82,0.35);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  color:var(--teal-deep);
  transition:background-color .2s ease, transform .2s ease, color .2s ease;
}
.gallery-arrow svg{ width:22px; height:22px; }
.gallery-arrow:hover{ background:var(--teal); color:var(--white); transform:translateY(-50%) scale(1.06); }
.gallery-arrow-left{ left:-22px; }
.gallery-arrow-right{ right:-22px; }
@media (max-width:760px){
  .gallery-arrow{ display:none; }
}
.photo-tile{
  position:relative;
  display:block;
  flex:0 0 calc((100% - 2 * 22px) / 3);
  width:calc((100% - 2 * 22px) / 3);
  aspect-ratio:5/4;
  scroll-snap-align:start;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  text-decoration:none;
  box-shadow:0 16px 32px -22px rgba(11,74,82,0.3);
  transition:transform .3s ease, box-shadow .3s ease;
}
@media (max-width:900px){
  .photo-tile{
    flex-basis:calc((100% - 22px) / 2);
    width:calc((100% - 22px) / 2);
  }
}
@media (max-width:560px){
  .photo-tile{
    flex-basis:82%;
    width:82%;
  }
}
.photo-tile:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 40px -20px rgba(11,74,82,0.4);
}
.photo-tile img{
  width:100%; height:100%; object-fit:cover;
  object-position:top center;
  transform:scale(1.14);
  transition:transform .4s ease;
}
.photo-tile:hover img{ transform:scale(1.2); }
.photo-tile.no-link{ cursor:default; }
.photo-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:28px 14px 12px;
  background:linear-gradient(180deg, transparent, rgba(11,27,28,0.85));
  color:var(--white);
  font-weight:600;
  font-size:.92rem;
}
.insta-follow-row{
  display:flex;
  justify-content:center;
  margin-top:32px;
}

/* ---------- PI marquee ---------- */
.pi-marquee-wrap{
  position:relative;
  overflow:hidden;
  margin-top:16px;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.pi-marquee-row{
  display:flex;
  gap:16px;
  width:max-content;
  animation:marquee-left 46s linear infinite;
}
.pi-marquee-row.reverse{
  animation-name:marquee-right;
}
.pi-marquee-wrap:hover .pi-marquee-row{
  animation-play-state:paused;
}
@keyframes marquee-left{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes marquee-right{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
.pi-pill{
  display:inline-flex;
  align-items:center;
  padding:11px 22px;
  border:1.5px solid var(--line);
  border-radius:999px;
  background:var(--white);
  white-space:nowrap;
  font-weight:600;
  color:var(--teal-deep);
  font-size:.95rem;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
.pi-pill:hover{
  background:var(--teal);
  color:var(--white);
  border-color:var(--teal);
}
@media (prefers-reduced-motion: reduce){
  .pi-marquee-row{ animation:none; }
  .pi-marquee-wrap{ overflow-x:auto; }
}

/* two column split */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
}
@media (max-width:800px){ .split{grid-template-columns:1fr;} }

/* value / feature blocks (no identical-card grid; alternating rows) */
.rowblocks{padding-left:calc(var(--gutter) + 32px);}
.rowblock{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:28px;
  padding:32px 0;
  border-top:1px solid var(--line);
}
.rowblock:last-child{border-bottom:1px solid var(--line);}
.rowblock .mark{
  width:14px; height:14px; border-radius:50%; background:var(--amber);
  margin-top:8px; position:relative;
}
.rowblock .mark::before{
  content:''; position:absolute; left:50%; top:-38px; width:2px; height:38px;
  background:var(--line); transform:translateX(-50%);
}
.rowblock:first-child .mark::before{display:none;}
.rowblock h3{font-size:1.3rem; color:var(--teal-deep); margin-bottom:.35em;}
.rowblock p{margin:0; max-width:56ch; color:#3a5453;}

/* numbered steps (real sequence: apply process) */
.steps{
  display:flex; flex-direction:column; gap:0;
}
.step{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:24px;
  padding:28px 0;
  border-top:1px solid rgba(255,255,255,0.25);
}
.step:last-child{border-bottom:1px solid rgba(255,255,255,0.25);}
.step .num{
  font-family:var(--display); font-size:2.2rem; font-weight:700; color:var(--amber);
}
.step h3{color:var(--white); margin-bottom:.3em; font-size:1.2rem;}
.step p{color:#d7e8e8; margin:0; max-width:52ch;}

/* stat row */
.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
@media (max-width:760px){ .stats{grid-template-columns:1fr;} }
.stat .num{
  font-family:var(--display); font-size:clamp(2.4rem,5vw,3.2rem); font-weight:700; color:var(--teal);
}
.stat p{color:#3a5453; max-width:32ch;}

/* quote */
.quote{
  border-left:3px solid var(--amber);
  padding-left:28px;
  font-family:var(--display);
  font-size:1.4rem;
  font-weight:500;
  color:var(--teal-deep);
  max-width:56ch;
}
.quote cite{
  display:block; font-family:var(--body); font-weight:600; font-style:normal;
  font-size:.95rem; color:var(--teal); margin-top:16px;
}

/* team */
.people{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px,1fr));
  gap:36px;
}
.person .avatar{
  width:100%; aspect-ratio:1; border-radius:50%;
  background:var(--paper-dim); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:16px; color:var(--teal); font-family:var(--display); font-weight:700; font-size:1.4rem;
  box-shadow:0 16px 32px -20px rgba(11,74,82,0.35);
}
.person h4{margin-bottom:2px; font-size:1.05rem;}
.person .role{color:var(--teal); font-weight:500; font-size:.92rem; margin-bottom:8px;}
.person .bio{font-size:.92rem; color:#3a5453;}

/* CTA banner */
.cta-banner{
  position:relative;
  overflow:hidden;
  background:var(--teal);
  color:var(--white);
  padding:64px 0;
  text-align:left;
}
.cta-banner::before{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(560px 320px at 90% 30%, rgba(255,255,255,0.16), transparent 65%);
  pointer-events:none;
}
.cta-banner .wrap{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
}
.cta-banner h2{color:var(--white); margin-bottom:0; font-size:clamp(1.6rem,3vw,2.2rem); max-width:22ch;}

/* forms */
.form-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:clamp(24px,4vw,48px);
  box-shadow:0 24px 48px -32px rgba(11,74,82,0.28);
}
.field{margin-bottom:22px;}
.field label{display:block; font-weight:600; margin-bottom:6px; font-size:.95rem;}
.field .hint{font-size:.85rem; color:#5a7473; margin-top:4px;}
.field input,
.field select,
.field textarea{
  width:100%;
  font-family:var(--body);
  font-size:1rem;
  padding:12px 14px;
  border:1.5px solid var(--line);
  border-radius:10px;
  background:var(--paper);
  color:var(--teal-black);
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none; border-color:var(--teal);
}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:600px){ .field-row{grid-template-columns:1fr;} }
fieldset{border:none; padding:0; margin:0 0 22px;}
fieldset legend{font-weight:600; margin-bottom:10px; padding:0; font-size:.95rem;}
.checkbox-group{display:flex; flex-direction:column; gap:10px;}
.checkbox-group label{display:flex; align-items:flex-start; gap:10px; font-weight:400; font-size:.98rem;}
.checkbox-group input{width:auto; margin-top:4px;}

.form-note{
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:12px;
  padding:20px 24px;
  font-size:.95rem;
  color:var(--teal-deep);
  margin-bottom:32px;
}

/* contact layout */
.contact-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:56px;
}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info h3{color:var(--teal-deep); font-size:1.1rem; margin-bottom:.3em;}
.contact-info .item{margin-bottom:28px;}
.contact-info a{color:var(--teal); text-decoration:none; font-weight:600;}
.contact-info a:hover{text-decoration:underline;}
.social-row{display:flex; gap:14px; margin-top:8px;}
.social-row a{
  width:38px; height:38px; border-radius:50%; border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center; text-decoration:none;
  color:var(--teal-deep); font-size:.85rem; font-weight:700;
}
.social-row a:hover{background:var(--teal); color:var(--white); border-color:var(--teal);}

/* footer */
.site-footer{
  background:var(--teal-black);
  color:#c7dcdb;
  padding:56px 0 32px;
}
.site-footer .wrap{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:32px;
}
@media (max-width:760px){ .site-footer .wrap{grid-template-columns:1fr 1fr;} }
.footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.footer-brand img{width:32px; height:32px;}
.footer-brand span{font-family:var(--display); font-weight:700; color:var(--white);}
.site-footer h4{color:var(--white); font-size:.9rem; margin-bottom:14px;}
.site-footer ul{list-style:none; padding:0; margin:0;}
.site-footer li{margin-bottom:10px;}
.site-footer a{text-decoration:none; color:#c7dcdb; font-size:.95rem;}
.site-footer a:hover{color:var(--amber);}
.footer-bottom{
  max-width:var(--max); margin:40px auto 0; padding:24px var(--gutter) 0;
  border-top:1px solid rgba(255,255,255,0.12);
  font-size:.85rem; color:#8fa9a8;
}

/* utility */
.center{text-align:center;}
.mt-0{margin-top:0;}
