/* ===============================
   Kutateli — Styles
   =============================== */

/* ---------- Theme tokens ---------- */
:root{
  --bg: #071818;
  --panel: #0c2222;
  --ink: #e7fbf7;
  --muted: #a8c7c2;
  --brand: #1bb3a9;       /* teal */
  --brand-2: #5dd5c8;     /* lighter teal */
  --accent: #f3fcfa;
  --radius: 14px;
  --shadow-sm: 0 6px 20px rgba(0,0,0,.20);
  --shadow-md: 0 10px 30px rgba(0,0,0,.35);
  --drawer-w: min(88vw, 320px);
}

/* ---------- Base ---------- */
*{ box-sizing:border-box }
html,body{ height:100% }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans";
  color: var(--ink);
  background:
    radial-gradient(1000px 600px at 85% -20%, rgba(27,179,169,.18), transparent 60%),
    radial-gradient(800px 500px at -10% 70%, rgba(93,213,200,.12), transparent 60%),
    var(--bg);
  line-height:1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block }
a{ color: var(--brand-2); text-decoration:none }
a:hover{ text-decoration: underline }
h1,h2,h3{ line-height:1.2; margin:0 0 .5rem }
h1{ font-size: clamp(2rem, 2vw + 1.6rem, 3rem) }
h2{ font-size: clamp(1.6rem, 1vw + 1.2rem, 2.2rem) }
h3{ font-size: clamp(1.15rem, .5vw + 1rem, 1.35rem) }
p{ margin:.4rem 0 1rem }
hr{ border:0; border-top:1px solid rgba(255,255,255,.12); margin:1rem 0 }
.container{ width:min(1150px, 92%); margin:auto }
.muted{ color: var(--muted) }
.tiny{ font-size:.9rem }
.tight{ margin-top:0; margin-bottom:.25rem }
.hidden{ display:none }

/* ---------- Skip link ---------- */
.skip-link{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  position:static; width:auto; height:auto; padding:.5rem 1rem; background:#fff; color:#000;
}

/* ---------- Header & desktop nav ---------- */
.site-header{
  position: sticky; top:0; z-index:3000;
  backdrop-filter: saturate(1.2) blur(8px);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  background: rgba(7,24,24,.6);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0;
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none }
.brand-mark{
  display:grid; place-items:center; width:36px; height:36px; border-radius:8px;
  background: radial-gradient(60% 60% at 30% 20%, rgba(93,213,200,.6), rgba(27,179,169,.2));
  border:1px solid rgba(27,179,169,.5); font-weight:800; color:#073131;
}
.brand-text{ font-weight:700; letter-spacing:.2px }
.brand-sub{ color:var(--muted); margin-left:6px; font-size:.9rem }

.site-nav{ display:flex; align-items:center; gap:22px }
.site-nav ul{ display:flex; list-style:none; padding:0; margin:0; gap:16px }
.site-nav a{ text-decoration:none; color:var(--accent); opacity:.9 }
.site-nav a.active{ color:#fff; font-weight:600; opacity:1 }
.site-nav .cta{
  margin-left:8px; padding:.55rem .9rem; border-radius:999px; border:1px solid rgba(27,179,169,.45);
  background: rgba(27,179,169,.1); text-decoration:none;
}
.nav-toggle{ display:none; background:none; border:1px solid rgba(255,255,255,.3); color:#fff; border-radius:999px; padding:.45rem .75rem }

/* ---------- Buttons ---------- */
.btn{
  display:inline-block; padding:.8rem 1.1rem; border-radius:10px;
  border:1px solid rgba(27,179,169,.45);
  background: rgba(27,179,169,.12);
  color:#d8f4ef; font-weight:700; text-align:center;
  transition: background .15s ease, transform .05s ease;
}
.btn:hover{ background: rgba(27,179,169,.22); text-decoration:none }
.btn:active{ transform: translateY(1px) }
.btn:focus-visible{ outline:2px solid rgba(27,179,169,.65); outline-offset:2px }
.btn.ghost{ background: transparent; color: var(--accent) }
.btn[disabled], .btn[aria-busy="true"]{ opacity:.6; cursor:not-allowed }
.arrow{ display:inline-block; margin-top:.4rem }
.arrow::after{ content:" →"; }

/* ---------- Hero ---------- */
.hero{ padding: clamp(36px, 5vw, 70px) 0; }
.hero-inner{ display:grid; gap:28px; grid-template-columns: 1.1fr .9fr; align-items:center }
.hero-text p{ color: var(--muted) }
.hero-actions{ display:flex; gap:12px; margin:14px 0 8px }

.trust-badges{ display:flex; gap:10px; padding:0; margin:14px 0 0; list-style:none; flex-wrap:wrap }
.trust-badges li{
  font-size:.92rem; padding:6px 10px; border-radius:999px; border:1px solid rgba(27,179,169,.35);
  background: rgba(27,179,169,.12); color:#d8f4ef; font-weight:600;
}
.hero-card{
  height: 300px; border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  background:
    radial-gradient(80% 100% at 80% 0%, rgba(93,213,200,.25), transparent 60%),
    linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.10);
}

/* ---------- Sections & cards ---------- */
.section{ padding: clamp(36px, 5vw, 70px) 0 }
.section.alt{ background: linear-gradient(180deg, rgba(255,255,255,.03), transparent) }
.section-head{ margin-bottom:18px }

.grid-2{ display:grid; gap:22px; grid-template-columns: repeat(2, 1fr) }
.grid-3{ display:grid; gap:22px; grid-template-columns: repeat(3, 1fr) }

.card{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  padding: 18px;
  box-shadow: var(--shadow-sm);
}
.card.soft{ background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); }
.service h3{ margin-bottom:.2rem }

/* ---------- Page hero (Team/Contact) ---------- */
.page-hero{
  padding: 42px 0 22px;
  background:
    radial-gradient(600px 260px at 90% 0%, rgba(27,179,169,.18), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.03), transparent 70%);
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* ---------- Team ---------- */
.profile-card{ transition: transform .2s, box-shadow .2s }
.profile-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md) }
.headshot{
  width:80px; height:80px; border-radius:50%; margin-bottom:10px; display:grid; place-items:center;
  background: radial-gradient(60% 60% at 30% 20%, rgba(93,213,200,.6), rgba(27,179,169,.2));
  border:1px solid rgba(27,179,169,.5); font-weight:800; color:#073131;
}
.role{ color: var(--muted); font-weight:600; display:block; margin-top:-4px }
.meta{ list-style:none; padding:0; margin:.6rem 0 0 }
.meta li{ margin:.2rem 0 }

/* ---------- CTA band ---------- */
.cta-band{
  padding:28px 0; border-top:1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, rgba(27,179,169,.12), rgba(27,179,169,.08));
}
.cta-band-inner{ display:flex; align-items:center; gap:16px; justify-content:space-between }

/* ---------- Forms ---------- */
.form .field{ margin-bottom:14px }
.form label{ display:block; font-weight:600; margin-bottom:6px }
.form input, .form select, .form textarea{
  width:100%; padding:.7rem .8rem; border-radius:10px; border:1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.04); color:var(--accent)
}
.form input:focus, .form select:focus, .form textarea:focus{
  outline: 2px solid rgba(27,179,169,.6);
  border-color: rgba(27,179,169,.6);
}
.field.inline .checkbox{ display:flex; align-items:flex-start; gap:10px }
.field.inline input[type="checkbox"]{ margin-top:.3rem }
.error{ display:block; min-height:1.1em; color:#ffb3b3; font-size:.9rem }
.success{ margin-top:10px; padding:.6rem .8rem; border-radius:10px; background:rgba(27,179,169,.14); border:1px solid rgba(27,179,169,.4) }
.form-error{ margin-top:10px; padding:.6rem .8rem; border-radius:10px; background:rgba(210,45,64,.18); border:1px solid rgba(210,45,64,.45); color:#ffd9d9; }

.hp-wrapper{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.hp-wrapper label, .hp-wrapper input{ position:absolute; left:-9999px; }

/* Native dark UI for controls + select arrow + checkbox accent */
:root{ color-scheme: dark; }
.form select, .form input, .form textarea { color-scheme: dark; }
.form select option, .form select optgroup { background-color:#0c2222; color:#e7fbf7; }
.form input[type="checkbox"]{ accent-color: var(--brand); width:18px; height:18px; }
.form .select{ position:relative }
.form select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235dd5c8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat; background-position:right .8rem center; padding-right:2.2rem;
}

/* ---------- Footer ---------- */
.site-footer{ border-top:1px solid rgba(255,255,255,.08); padding:24px 0; background: rgba(0,0,0,.15) }
.footer-inner{ display:flex; align-items:center; gap:16px; justify-content:space-between; flex-wrap:wrap }
.footer-brand{ display:flex; align-items:center; gap:10px }
.site-footer nav{ display:flex; gap:16px }

/* ---------- Pills / Ghost ---------- */
.pill{
  font-size:.92rem; padding:6px 10px; border-radius:999px; border:1px solid rgba(27,179,169,.35);
  background: rgba(27,179,169,.12); color:#d8f4ef; font-weight:600;
}
.ghost{ color: var(--brand-2); text-decoration: underline }

/* ---------- Responsive layout ---------- */
@media (max-width: 880px){
  .hero-inner{ grid-template-columns: 1fr }
  .grid-3{ grid-template-columns: 1fr 1fr }
  .cta-band-inner{ flex-direction:column; align-items:flex-start }
}
@media (max-width: 640px){
  .grid-2, .grid-3{ grid-template-columns: 1fr }
  .site-nav ul a{ padding:.45rem .2rem }
  .trust-badges li, .pill{ padding:8px 12px }
  .hero-actions .btn{ width:100% }
}

/* =========================================
   Mobile Header + Drawer (LEFT sidebar)
   ========================================= */
@media (max-width:640px){
  /* header layout: menu left, brand to the right */
  .header-inner{ display:flex; align-items:center; justify-content:flex-start; gap:12px; }
  .nav-toggle{ display:inline-block; order:0; min-height:44px; touch-action:manipulation; }
  .brand{ order:1; flex:1 1 auto; }
}

/* Stacking order */
.nav-backdrop{ z-index:2900; }
@media (max-width:640px){ .site-nav{ z-index:3100; } }

/* Backdrop */
.nav-backdrop{
  position:fixed; inset:0;
  background: rgba(0,0,0,.45);
  opacity:0; pointer-events:none;
  transition:opacity .2s ease;
}
.nav-backdrop.open{ opacity:1; pointer-events:auto; }

/* Drawer */
@media (max-width:640px){
  .site-nav{
    position:fixed; top:0; left:0; height:100vh; width:var(--drawer-w);
    padding: clamp(12px, 2.5vw, 16px);
    padding-top: calc(56px + max(env(safe-area-inset-top, 0px), 8px));
    display:flex !important; flex-direction:column; gap:12px;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
    border-right:1px solid rgba(255,255,255,.14);

    /* brighter interior */
    background:
      linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.08)),
      radial-gradient(720px 460px at 100% 0%, rgba(93,213,200,.32), rgba(27,179,169,.22) 42%, transparent 68%),
      #143636;
    color:#fff;

    transform:translateX(-100%);
    transition:transform .25s ease;
    pointer-events:none; /* closed: don't intercept taps */
  }
  .site-nav.drawer-open{ transform:translateX(0); pointer-events:auto; }

  /* Nav links */
  .site-nav ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:10px;
  }
  .site-nav ul a{
    display:block; min-height:44px;
    padding:16px 14px; border-radius:12px; font-size:1.12rem;
    color:#fff; text-decoration:none !important; touch-action:manipulation;
    border:1px solid rgba(255,255,255,.28);
    background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.10));
    box-shadow: 0 8px 22px rgba(0,0,0,.28);
  }
  .site-nav ul a.active{ border-color: rgba(27,179,169,.6) }
  .site-nav ul a:focus-visible{ outline:2px solid rgba(27,179,169,.75); outline-offset:2px }
  .site-nav ul a:active{ transform: translateY(1px) }

  /* CTA */
  .site-nav .cta{
    display:block; width:100%; text-align:center; min-height:48px;
    padding:1.05rem 1rem; border-radius:12px; font-weight:800;
    border:1px solid rgba(27,179,169,.85);
    background: linear-gradient(180deg, rgba(93,213,200,.40), rgba(27,179,169,.30));
    color:#062323 !important; box-shadow: 0 12px 28px rgba(0,0,0,.32);
    margin-top:6px;
  }
}

/* Desktop keeps inline nav */
@media (min-width:641px){
  .site-nav{
    position:static !important; height:auto !important; width:auto !important;
    transform:none !important; background:transparent !important; padding:0 !important;
    display:flex !important; pointer-events:auto !important; z-index:auto !important;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .site-nav, .nav-backdrop{ transition:none !important; }
}
