/*
Theme Name: DRNTS Media
Author: DRNTS
Template: drnts-base
Version: 1.0.0
*/

/* ---------------------------------------------
   TOKENS
---------------------------------------------- */
:root{
  --bg0: #07090d;
  --bg1: #0a0f18;
  --bg2: #0e1624;

  --card: rgba(255,255,255,.06);
  --card2: rgba(255,255,255,.08);
  --stroke: rgba(255,255,255,.10);
  --stroke2: rgba(255,255,255,.14);

  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.68);
  --faint: rgba(255,255,255,.48);

  --accent: #b9c7ff;
  --accent2: #79ffe1;
  --pink: #ff4fd8;
  --warn: #ffcc66;

  --shadow: 0 20px 60px rgba(0,0,0,.45);
  --shadow2: 0 10px 30px rgba(0,0,0,.35);

  --r-lg: 22px;
  --r-md: 16px;
  --r-sm: 12px;

  --max: 1180px;
  --pad: 22px;

  --blur: 18px;
  --ease: cubic-bezier(.2,.8,.2,1);

  --h1: clamp(34px, 4.2vw, 64px);
  --h2: clamp(22px, 2.4vw, 34px);

  /* iOS viewport fix (set by JS) */
  --vh: 1vh;
}

/* ---------------------------------------------
   BASE
---------------------------------------------- */
*{ box-sizing:border-box; }

html{
  background: var(--bg0);
}

html, body{
  overflow-x: hidden; /* iOS horizontal bounce prevention */
}

body{
  margin:0;
  min-height: calc(var(--vh) * 100); /* iOS-safe full height */
  color:var(--text);
  background: transparent;
  position: relative;
  isolation: isolate;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  letter-spacing: -0.01em;
}

/* Fixed, seamless background layer (iOS-safe) */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background:
    radial-gradient(900px 600px at 18% 8%, rgba(185,199,255,.16), transparent 55%),
    radial-gradient(700px 500px at 82% 18%, rgba(121,255,225,.11), transparent 55%),
    radial-gradient(900px 700px at 70% 80%, rgba(255,79,216,.08), transparent 58%),
    linear-gradient(180deg, var(--bg0), var(--bg1) 45%, var(--bg0));
  background-repeat: no-repeat;

  transform: translate3d(0,0,0);
  -webkit-transform: translate3d(0,0,0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  will-change: transform;
}

/* keep all site content above background */
body > *:not(header.nav){
  position: relative;
  z-index: 1;
}
/* Make sure no wrapper blocks sticky */
body, .site, #page, #content, main{
  overflow: visible !important;
  transform: none !important;
}
body.nav-open:not(.nav-open){ position: static; }

img{ max-width:100%; height:auto; display:block; }

a{
  color: inherit;
  text-decoration: none;
}
a:hover{ opacity:.92; }

/* Editorial/content links only */
.content a{
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: rgba(185,199,255,.35);
  text-underline-offset: 3px;
}

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad);
}

.hr{
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.10), transparent);
  opacity: .7;
}

/* ---------------------------------------------
   NAV
---------------------------------------------- */
.nav{
  position: sticky;
  top: env(safe-area-inset-top);       /* iOS safe-area */
  z-index: 50;
  background: rgba(7,9,13,.38);
  backdrop-filter: blur(var(--blur));
  -webkit-backdrop-filter: blur(var(--blur));
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding-top: env(safe-area-inset-top); /* iOS notch spacing */
}

.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
}

/* Brand: icon-only pill + text to the right */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width: 220px;
}

.brand-pill{
  width:40px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.brand-pill img{
  width:25px;
  height:25px;
  display:block;
  opacity:.9;
  filter: drop-shadow(0 0 4px rgba(185,199,255,.20));
}

.brand-title{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}

.brand-title strong{
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.brand-sub{
  display:block;
  margin-top: 2px;
  font-size:12px;
  color:var(--muted);
}

.brand:hover .brand-pill{
  border-color: rgba(185,199,255,.22);
  background: linear-gradient(180deg, rgba(185,199,255,.12), rgba(255,255,255,.02));
}

.nav-links{
  display:flex;
  align-items:center;
  gap:14px;
}

.nav-links a{
  font-size:13px;
  color:var(--muted);
  padding:10px 10px;
  border-radius:12px;
  border:1px solid transparent;
}

.nav-links a:hover{
  color:var(--text);
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}

.nav-cta{
  display:flex;
  align-items:center;
  gap:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:11px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--text);
  font-size:13px;
  font-weight:600;
  letter-spacing:-0.01em;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
  transition: transform .18s var(--ease), background .18s var(--ease), border-color .18s var(--ease);
}

.btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.18);
}

.btn.primary{
  background: linear-gradient(135deg, rgba(185,199,255,.25), rgba(121,255,225,.14));
  border-color: rgba(185,199,255,.26);
}

.btn.ghost{
  background: transparent;
  border-color: rgba(255,255,255,.10);
  color: var(--muted);
}

/* Burger */
.nav-toggle{
  display:none;
  width:44px;   /* iOS tap size */
  height:44px;  /* iOS tap size */
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--text);
  -webkit-tap-highlight-color: transparent;
}

/* Mobile panel (SINGLE source of truth — no duplicates) */
.nav-panel{
  /* desktop hidden via media query below */
  display:none;
  margin: 0;
  padding: 0 0 16px;

  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-8px);

  transition:
    max-height .28s var(--ease),
    opacity .18s var(--ease),
    transform .18s var(--ease);
}

.nav-panel[data-open="true"]{
  max-height: 70vh;
  opacity: 1;
  transform: translateY(0);
}

.nav-panel a{
  display:block;
  padding:12px 12px;
  margin:6px 0;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: var(--muted);
  -webkit-tap-highlight-color: transparent;
}

/* When menu is open, lock page scroll (iOS fix) */
body.nav-open{
  position: fixed;
  width: 100%;
  overflow: hidden;
}

/* ---------------------------------------------
   HERO
---------------------------------------------- */
.hero{ padding: 54px 0 26px; }

.hero-grid{
  display:grid;
  grid-template-columns: 1.35fr .65fr;
  gap:18px;
  align-items:stretch;
}

.hero-main{
  position:relative;
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(900px 600px at 20% 10%, rgba(185,199,255,.20), transparent 60%),
    radial-gradient(700px 520px at 80% 28%, rgba(121,255,225,.14), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow: var(--shadow);
  overflow:hidden;
  padding: 34px 30px;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--muted);
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: var(--muted);
  font-size:12px;
}

.h1{
  margin: 16px 0 10px;
  font-size: var(--h1);
  line-height:1.02;
  letter-spacing:-0.04em;
}

.sub{
  margin: 0 0 18px;
  font-size: 16px;
  line-height:1.55;
  color: var(--muted);
  max-width: 62ch;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top: 18px;
}

.hero-meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top: 18px;
}

.stat{
  padding: 12px 14px;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  min-width: 160px;
}
.stat strong{ display:block; font-size:13px; }
.stat span{ display:block; margin-top:4px; font-size:12px; color: var(--muted); }

/* Side card */
.hero-side{
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow2);
  overflow:hidden;
  padding: 18px;
}
.hero-side h3{
  margin: 6px 0 8px;
  font-size: 14px;
  letter-spacing:.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.hero-side p{
  margin:0 0 10px;
  color: var(--muted);
  font-size: 13px;
  line-height:1.6;
}
.side-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top: 12px;
}
.side-item{
  padding: 12px 12px;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.side-item strong{ display:block; font-size:13px; }
.side-item span{ display:block; margin-top:4px; font-size:12px; color: var(--muted); }

/* ---------------------------------------------
   SECTIONS + CARDS
---------------------------------------------- */
.section{
  padding: 26px 0;
  background: transparent;
}

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom: 14px;
}
.section-head h2{
  margin:0;
  font-size: var(--h2);
  letter-spacing:-0.03em;
}
.section-head p{
  margin:0;
  color: var(--muted);
  max-width: 58ch;
  font-size: 13.5px;
  line-height:1.5;
}

.grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}

.card{
  grid-column: span 4;
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  overflow:hidden;
  box-shadow: var(--shadow2);
  padding: 16px;
  transition: transform .18s var(--ease), border-color .18s var(--ease), background .18s var(--ease);
}
.card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.055);
}
.card .tag{
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: var(--muted);
  font-size:12px;
}
.card h3{
  margin: 10px 0 8px;
  font-size: 16px;
  letter-spacing:-0.02em;
}
.card p{
  margin:0;
  color: var(--muted);
  font-size: 13.5px;
  line-height:1.55;
}
.card .foot{
  margin-top: 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color: var(--faint);
  font-size: 12px;
}

.card.wide{ grid-column: span 7; }
.card.tall{ grid-column: span 5; }

/* Content typography */
.content{
  color: var(--muted);
  font-size: 15.5px;
  line-height: 1.75;
}
.content h2, .content h3{
  color: var(--text);
  margin: 18px 0 10px;
  letter-spacing: -0.02em;
}
.content p{ margin: 0 0 14px; }
.content blockquote{
  margin: 16px 0;
  padding: 14px 16px;
  border-left: 2px solid rgba(185,199,255,.35);
  background: rgba(255,255,255,.04);
  border-radius: 14px;
}

/* ---------------------------------------------
   FOOTER
---------------------------------------------- */
.footer{
  margin-top: 30px;
  border-top: 1px solid rgba(255,255,255,.06);
  background: rgba(7,9,13,.38);
  backdrop-filter: blur(var(--blur));
  -webkit-backdrop-filter: blur(var(--blur));
}
.footer-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding: 16px 0;
}
.footer small{ color: var(--muted); }

.social{
  display:flex;
  gap:10px;
}
.icon{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--text);
}
.icon:hover{
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
}

/* ---------------------------------------------
   FORMS
---------------------------------------------- */
.form{ margin-top: 12px; }

.form-row{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin: 12px 0;
}

.form-row label{
  font-size: 12px;
  color: var(--muted);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.form input, .form textarea{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: var(--text);
  outline: none;
}

.form input:focus, .form textarea:focus{
  border-color: rgba(185,199,255,.30);
  background: rgba(255,255,255,.055);
}

/* ---------------------------------------------
   LAB CARDS (stories/work/kits)
---------------------------------------------- */
.lab-card{
  background: linear-gradient(180deg, #0f1012, #0b0c0e);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.06);
  transition: transform .25s ease, border-color .25s ease;
}
.lab-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,0.12);
}

.lab-card-media{
  height: 64px;
  background-size: cover;
  background-position: center;
  position: relative;
  filter: grayscale(100%) contrast(0.9) brightness(0.55);
}
.lab-card-media::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.55), rgba(0,0,0,0.85));
}
.lab-card-media::before{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:1px;
  background: rgba(255,255,255,0.12);
}

.lab-card-body{ padding: 16px 18px 18px; }

.lab-card-title{
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.2px;
  margin: 0 0 6px;
  color: #f5f5f5;
}

.lab-card-meta{
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.lab-card-meta::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  margin-right:6px;
  background: rgba(255,255,255,.35);
}

/* Featured block */
.lab-featured{ margin: 26px 0 26px; }

.lab-featured-card{
  display:block;
  text-decoration:none;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
}

.lab-featured-media{
  height: 180px;
  background-size: cover;
  background-position: center;
  filter: grayscale(100%) contrast(0.95) brightness(0.55);
  position: relative;
}
.lab-featured-media::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.35), rgba(0,0,0,0.88));
}

.lab-featured-body{ padding: 18px 20px 20px; }

.lab-featured-title{
  margin: 6px 0 0;
  color: #f5f5f5;
  font-size: 20px;
  font-weight: 550;
  letter-spacing: 0.2px;
}

.lab-featured-excerpt{
  margin: 10px 0 0;
  color: rgba(255,255,255,0.68);
  font-size: 14px;
  line-height: 1.5;
  max-width: 720px;
}

.lab-post img{
  margin-top: 6px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.35);
}

.lab-link{
  color:#f5f5f5;
  text-decoration:none;
  font-size:14px;
  letter-spacing:.3px;
  padding-bottom:2px;
  border-bottom:1px solid rgba(255,255,255,.25);
}
.lab-link:hover{
  border-color:rgba(255,255,255,.55);
}

/* ---------------------------------------------
   WIDTH FIXES (Stories / Work / Kits / 404)
---------------------------------------------- */
.archive-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

.page-template-page-stories main.lab-archive,
.page-template-page-kits main.lab-archive,
.page-template-page-work main.lab-archive,
.error404 main.lab-archive{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* ---------------------------------------------
   RESPONSIVE
---------------------------------------------- */
@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr; }
  .card, .card.wide, .card.tall{ grid-column: span 12; }
}

@media (max-width: 860px){
  .nav-links{ display:none; }
  .nav-toggle{ display:inline-flex; align-items:center; justify-content:center; }

  /* show panel container on mobile (still collapsed unless open) */
  .nav-panel{ display:block; }

  .lab-card-media{ height: 48px; }
  .lab-featured-media{ height: 140px; }
  .lab-featured-title{ font-size: 18px; }
}
/* Mobile: hide CTA buttons, keep only burger */
@media (max-width: 860px){
  .nav-cta .btn{
    display: none !important;
  }
  .nav-cta .nav-toggle{
    display: inline-flex !important;
  }
}
/* Hide mobile panel completely on desktop to avoid tab-focus issues */
@media (min-width: 861px){
  .nav-panel{ display:none !important; }
}
/* === FORCE STICKY NAV (final override) === */
header.nav{
  position: -webkit-sticky !important;
  position: sticky !important;

  top: 0 !important; /* fallback */
  top: env(safe-area-inset-top) !important;

  z-index: 999 !important;
}

/* If you added any "body > * { position: relative; }" earlier, neutralize it */
body > header.nav{
  position: -webkit-sticky !important;
  position: sticky !important;
}
/* =========================================================
   DRNTS MEDIA — KIT (FINAL ALIGNMENT SYSTEM)
   ========================================================= */

/* ---------- Single column container ---------- */

.page-media-kit .mk-wrap{
  width: min(1000px, calc(100% - 40px));
  margin-inline: auto;
}

/* ---------- Section rhythm ---------- */

.page-media-kit .mk-hero,
.page-media-kit .mk-section,
.page-media-kit .mk-wp-content{
  margin-block: 64px;
}

/* ---------- Text alignment ---------- */

.page-media-kit .mk-hero,
.page-media-kit .mk-components,
.page-media-kit .mk-meta{
  text-align: left;
}

/* ---------- Figures (NO FLEX, NO GRID) ---------- */

.page-media-kit .mk-figure{
  margin: 0;
}

/* ---------- Images (one rule only) ---------- */

.page-media-kit img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 20px 50px rgba(0,0,0,.18);
}

/* ---------- Size hierarchy ---------- */

.page-media-kit .mk-figure--primary img{
  max-width: 1050px;
}

.page-media-kit .mk-figure--socks img{
  max-width: 1050px;
}
.page-media-kit .mk-figure--socks img{
  opacity: .96;
}