/* =====================================================
   FrameLabs Foundry — styles.css (CLEAN)
   ===================================================== */

/* ---------- Tokens & global knobs ---------- */
:root{
  /* colors */
  --bg:#031024; --panel:#110E0F; --text:#CACACA; --muted:#B3B3B3; --ink:#0B0B0B;
  --accent-main:#27AAE1; --accent-sec:#5ACAEB; --focus:#5ACAEB;

  /* radii, shadows */
  --radius:20px; --shadow:0 8px 30px rgba(0,0,0,.35);

  /* layout width */
  --page-max:1280px; --page-pad:88%;

  /* spacing (edit these to control site spacing) */
  --space-section:32px;     /* vertical section padding */
  --space-block:16px;       /* default gaps */
  --space-tight:10px;       /* tighter gaps */

  /* components */
  --tcard-h:160px;          /* testimonial card height */
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; line-height:1.6; color:var(--text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji";
  background:
    radial-gradient(1200px 800px at 80% -10%, rgba(39,170,225,.10), transparent 60%),
    radial-gradient(800px 600px at -10% 110%, rgba(90,202,235,.10), transparent 60%),
    var(--bg);
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.ink{color:var(--ink)}

.container{width:min(var(--page-max),var(--page-pad));margin-inline:auto}
.section{padding-block:var(--space-section)}
h1{font-size:clamp(2rem,3vw+1rem,3.2rem);line-height:1.1;margin:4px 0 var(--space-tight)}
h2{font-size:clamp(1.4rem,.8vw+1.2rem,2rem);margin:0 0 var(--space-tight)}
.sub{color:var(--muted);margin:0 0 var(--space-block)}

/* ---------- Navbar ---------- */
.navbar{
  position:sticky;top:0;z-index:40;
  background:rgba(17,14,15,.6);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(202,202,202,.08);
}
.navbar .container{width:min(var(--page-max),var(--page-pad))}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{width:160px;height:48px}
.nav-links{display:flex;gap:18px;align-items:center}
.nav-links a{opacity:.9;padding:10px 12px;border-radius:12px}
.nav-links a:hover{background:rgba(202,202,202,.06);opacity:1}
.burger{display:none;background:none;border:0;color:var(--text);font-size:24px}
@media (max-width:860px){
  .burger{display:block}
  .nav-links{display:none}
  .nav-links.open{
    display:flex;flex-direction:column;gap:6px;
    position:absolute;inset:60px 0 auto 0;padding:12px;
    background:rgba(17,14,15,.96);border-bottom:1px solid rgba(202,202,202,.10);
  }
}

/* ---------- Buttons ---------- */
.btn{
  padding:12px 16px;border-radius:14px;
  border:1px solid rgba(202,202,202,.12);
  background:linear-gradient(180deg,rgba(202,202,202,.06),rgba(202,202,202,.02));
  color:var(--text);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.btn:hover{border-color:rgba(202,202,202,.3);transform:translateY(-1px);box-shadow:0 6px 20px rgba(39,170,225,.18)}
.btn.primary{border:0;background:linear-gradient(135deg,var(--accent-main),var(--accent-sec));color:#061219;font-weight:800}
.cta{background:linear-gradient(135deg,var(--accent-main),var(--accent-sec));padding:10px 14px;border-radius:14px;color:#061219;font-weight:700;box-shadow:var(--shadow)}

/* ---------- Generic card shell ---------- */
.card{
  background:linear-gradient(180deg,rgba(202,202,202,.04),rgba(202,202,202,.02));
  border:1px solid rgba(202,202,202,.08);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)
}

/* ---------- Hero (centered) ---------- */
.hero-centered{padding-top:40px;padding-bottom:28px}
.hero-centered .hero-grid{display:grid;grid-template-columns:1fr;gap:var(--space-block);max-width:var(--page-max);margin-inline:auto;text-align:center}
.kicker{color:var(--accent-sec);text-transform:uppercase;letter-spacing:.18em;font-size:.85rem}
.lede{color:var(--muted);font-size:clamp(1rem,.5vw+.9rem,1.15rem)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}

/* Hero video (cover + crop black bars) */
.hero-media{display:grid;place-items:center}
.media-frame{
  width:min(820px,100%);border-radius:12px;padding:8px;
  background:linear-gradient(180deg,rgba(202,202,202,.04),rgba(202,202,202,.02));
  border:1px solid rgba(202,202,202,.10);
  box-shadow:0 10px 28px rgba(0,0,0,.35),inset 0 0 0 1px rgba(202,202,202,.06);
}
.hero-yt.cover{position:relative;overflow:hidden;aspect-ratio:16/9;border-radius:12px}
.hero-yt.cover iframe{
  position:absolute;top:50%;left:50%;
  width:calc(100% * var(--zoom,1.28));
  height:calc(100% * var(--zoom,1.28));
  transform:translate(-50%,-50%);
  border:0;display:block;border-radius:12px;
}
.hero-yt-overlay{position:absolute;inset:0;z-index:2}

/* Stats (hero) */
.hero-centered .stats-wrap{width:min(var(--page-max),var(--page-pad));margin-inline:auto;padding-top:var(--space-tight)}
.hero-centered .stats{
  display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:var(--space-block);justify-items:center;align-items:start;text-align:center
}
.stat{display:flex;flex-direction:column;gap:4px;align-items:center}
.stat .n{
  font-size:1.6rem;font-weight:800;
  background:linear-gradient(135deg,var(--accent-main),var(--accent-sec));
  -webkit-background-clip:text;background-clip:text;color:transparent
}
.stat .l{color:var(--muted);font-size:.95rem}

/* ---------- Grids ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-block)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-block)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-block)}
@media (max-width:980px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}}
@media (max-width:560px){.grid-3,.grid-4{grid-template-columns:1fr}}

/* ---------- Portfolio + Lightbox ---------- */
.work-card{overflow:hidden;position:relative}
.work-thumb{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;border:1px solid rgba(202,202,202,.08);box-shadow:var(--shadow)}
.work-thumb-img{width:100%;height:100%;object-fit:cover;display:block}
.work-meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.badge{font-size:.8rem;padding:6px 10px;border-radius:999px;border:1px solid rgba(202,202,202,.16)}

.modal{position:fixed;inset:0;display:none;place-items:center;background:rgba(0,0,0,.65);z-index:9999}
.modal.open{display:grid}
.modal-backdrop{position:absolute;inset:0}
.modal-dialog{position:relative;width:min(960px,92%);background:#0F0D0E;border:1px solid rgba(202,202,202,.12);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.modal-close{
  position:absolute;top:8px;right:8px;width:36px;height:36px;border-radius:999px;
  border:1px solid rgba(202,202,202,.16);
  background:linear-gradient(180deg,rgba(202,202,202,.06),rgba(202,202,202,.02));color:var(--text)
}
.modal-body{aspect-ratio:16/9;width:100%;background:#000}
.modal-body iframe{width:100%;height:100%;border:0;display:block}

/* ---------- Testimonials (minimal: avatar + name) ---------- */
#testimonials h2,#testimonials .sub{text-align:center}
#testimonials .sub{max-width:70ch;margin:6px auto var(--space-block)}
.carousel{position:relative;margin-top:12px}
.car-viewport{overflow:hidden;width:100%}
.car-track{display:flex;gap:var(--space-block);list-style:none;margin:0;padding:0;will-change:transform;transition:transform .35s ease}
.car-slide{flex:0 0 auto} /* no width:100% — JS sets width */
.tcard{
  height:var(--tcard-h);background:transparent;border:0;box-shadow:none;padding:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-tight);text-align:center
}
.tcard .avatar{
  width:56px;height:56px;border-radius:999px;overflow:hidden;border:1px solid rgba(202,202,202,.18);
  box-shadow:0 6px 18px rgba(0,0,0,.25);background:#0F0D0E
}
.tcard .avatar img{width:100%;height:100%;object-fit:cover;display:block}
.tcard .name{font-weight:700;letter-spacing:.2px;color:var(--text)}
.car-btn{
  position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:999px;
  border:1px solid rgba(202,202,202,.14);background:rgba(17,14,15,.55);color:var(--text)
}
.car-btn:hover{border-color:rgba(202,202,202,.28)}
.car-btn.prev{left:-2px}.car-btn.next{right:-2px}
.car-dots{display:flex;gap:8px;justify-content:center;margin-top:10px}
.car-dots button{width:8px;height:8px;border-radius:999px;border:0;background:rgba(202,202,202,.26)}
.car-dots button[aria-current="true"]{background:var(--accent-main)}

/* ---------- Process (How We Work) ---------- */
#process h2,#process .sub{text-align:center}
#process .sub{max-width:70ch;margin:6px auto 18px;line-height:1.6;padding-bottom:12px}
.process-grid{text-align:center;align-items:stretch}
.step{display:flex;flex-direction:column;gap:0;position:relative}
.step-badge{
  --size:44px;width:var(--size);height:var(--size);margin:0 auto 6px;border-radius:999px;display:grid;place-items:center;
  font-weight:800;color:#061219;background:linear-gradient(135deg,var(--accent-main),var(--accent-sec));box-shadow:0 8px 24px rgba(0,0,0,.35)
}
.step-list{
  list-style:none;padding:0;margin:6px 0 0;display:grid;gap:6px;color:var(--muted);font-size:.95rem;
  max-width:42ch;margin-inline:auto;text-align:left
}
.step-list li::before{content:"✓";margin-right:8px;color:var(--accent-main)}

/* ---------- Pricing ---------- */
#pricing h2,#pricing .sub{text-align:center}
#pricing .sub{max-width:70ch;margin:6px auto 18px;line-height:1.6;padding-bottom:12px}
.pricing-grid{align-items:stretch}

.pricing-card{
  --gap-tight:6px;--gap-block:12px;
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--gap-tight)
}
.pricing-card h3{font-size:1.5rem;margin:0 0 2px;text-transform:capitalize}
.pricing-card .lead{color:var(--muted);margin:0 0 var(--gap-tight);line-height:1.4;text-transform:capitalize}
.pricing-card .price{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;margin:var(--gap-tight) 0 var(--gap-block)}
.pricing-card .price strong{font-size:2rem;font-weight:800;line-height:1}

.price-list{
  list-style:none;padding:0;margin:var(--gap-tight) 0 var(--gap-block);
  display:grid;gap:6px;color:var(--muted);max-width:42ch;margin-inline:auto;text-align:left
}
.price-list li{position:relative;padding-left:20px;text-transform:capitalize}
.price-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent-main)}
.price-list li.not-included::before{content:"✗";color:#E45454}

/* Plan shell */
#pricing .pricing-card.plan{
  position:relative;
  background:linear-gradient(180deg,rgba(202,202,202,.03),rgba(202,202,202,.015));
  border:1px solid rgba(202,202,202,.12);border-radius:var(--radius);
  padding:20px 22px 22px;             /* compact shell */
  padding-top:38px;                   /* shared headroom for badge */
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease
}
#pricing .pricing-card.plan:hover,
#pricing .pricing-card.plan:focus-within{transform:translateY(-3px);border-color:rgba(202,202,202,.18);box-shadow:0 12px 34px rgba(0,0,0,.45)}
#pricing .pricing-card.plan.featured{
  background:linear-gradient(180deg,rgba(39,170,225,.10),rgba(90,202,235,.06));
  border-color:rgba(90,202,235,.28);
  box-shadow:0 14px 40px rgba(39,170,225,.18),0 8px 30px rgba(0,0,0,.35)
}

/* Single real badge (attached to top border) */
#pricing .pricing-card .plan-badge{
  position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  margin:0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#061219;
  background:linear-gradient(135deg,var(--accent-main),var(--accent-sec));
  padding:4px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 24px rgba(0,0,0,.35)
}
/* ensure no pseudo-badge */
#pricing .pricing-card.plan.featured h3::before{content:none!important;display:none!important}

/* Pro & Custom micro-compact stack above price */
#pricing .pricing-grid .pricing-card:nth-child(3) h3,
#pricing .pricing-grid .pricing-card:nth-child(4) h3{margin-bottom:-3px}
#pricing .pricing-grid .pricing-card:nth-child(3) .lead,
#pricing .pricing-grid .pricing-card:nth-child(4) .lead{margin:0 0 4px;min-height:0;line-height:1.25}
/* tiny nudge so all four prices align perfectly */
#pricing .pricing-grid .pricing-card:nth-child(3) .price,
#pricing .pricing-grid .pricing-card:nth-child(4) .price{margin-top:-20px!important}

/* Keep CTAs pinned to bottom */
#pricing .pricing-card .btn{margin-top:auto}

/* ---------- About ---------- */
#about h2,#about .sub{text-align:center}
#about .sub{max-width:70ch;margin:6px auto 18px;line-height:1.6}
.about-panel{
  position:relative;border-radius:var(--radius);padding:28px;
  background:linear-gradient(180deg,rgba(202,202,202,.03),rgba(202,202,202,.015));
  border:1px solid rgba(202,202,202,.12);box-shadow:var(--shadow)
}
.about-panel::after{content:"";position:absolute;inset:0;border-radius:var(--radius);pointer-events:none;box-shadow:inset 0 0 0 1px rgba(202,202,202,.06)}
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center;margin-top:18px}
.about-copy>*+*{margin-top:10px}
#about .about-copy h3{text-align:center;margin:4px 0 8px}
.about-media{border-radius:16px;overflow:hidden;border:1px solid rgba(202,202,202,.10);background:#0F0D0E;box-shadow:0 10px 28px rgba(0,0,0,.35)}
.about-media img{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:4/3}
.about-copy .checklist{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px;color:var(--muted)}
.about-copy .checklist li::before{content:"✓";margin-right:8px;color:var(--accent-main)}
@media (max-width:980px){.about-grid{grid-template-columns:1fr}.about-media{order:-1}}

/* ---------- Contact ---------- */
#contact h2,#contact .sub{text-align:center}
#contact .sub{max-width:70ch;margin:6px auto 18px;line-height:1.6}
.contact-card{display:flex;flex-direction:column;gap:12px}
.contact-card h3{text-align:center;margin:4px 0 4px}
.form{display:grid;gap:12px}
.input,textarea{
  width:100%;padding:12px 14px;border-radius:12px;background:#0F0D0E;color:var(--text);
  border:1px solid rgba(202,202,202,.12)
}
textarea{min-height:140px;resize:vertical}
.input:focus,textarea:focus{outline:2px solid var(--focus);border-color:transparent}
.social-row{display:flex;gap:12px;justify-content:center;align-items:center;margin:6px 0 10px}
.icon-btn{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}
.icon-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.45)}
.icon-btn.fb{background:#1877F2}.icon-btn.li{background:#0A66C2}.icon-btn.gm{background:#EA4335}
.contact-plain{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px;color:var(--text)}
.icon-inline{width:18px;height:18px;color:var(--accent-main);flex:0 0 18px}
.map-wrap{margin-top:10px;border-radius:16px;overflow:hidden;border:1px solid rgba(202,202,202,.10)}
.map-wrap iframe{width:100%;aspect-ratio:16/9;height:auto;display:block}
#contactStatus{color:var(--muted)}

/* ---------- Footer ---------- */
.site-footer{
  margin-top:var(--space-section);background:rgba(17,14,15,.60);
  border-top:1px solid rgba(202,202,202,.10);backdrop-filter:blur(8px);
  color:var(--text);padding:28px 0 34px
}
.site-footer .container{width:min(var(--page-max),var(--page-pad))}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:20px;align-items:start}
.f-logo img{width:160px;height:auto;display:block;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25));margin-bottom:8px}
.socials{display:flex;gap:10px;margin-top:6px}
.socials .s{
  width:36px;height:36px;border-radius:999px;display:grid;place-items:center;color:#fff;background:#2b2f34;
  border:1px solid rgba(202,202,202,.14);transition:transform .15s ease,border-color .15s ease,opacity .15s ease
}
.socials .s:hover{transform:translateY(-2px);border-color:rgba(202,202,202,.30)}
.socials .fb{background:#1877F2}.socials .li{background:#0A66C2}
.f-col h4{margin:0 0 8px;font-weight:700;letter-spacing:.2px;color:var(--text)}
.f-links{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.f-links a{color:var(--muted)} .f-links a:hover{color:var(--text)}
.f-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:12px;border-top:1px solid rgba(202,202,202,.08)}
.f-bottom small{color:var(--muted)}
.f-bottom .legal{display:flex;gap:8px;align-items:center}
.f-bottom .legal a{color:var(--muted)} .f-bottom .legal a:hover{color:var(--text)}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}.f-bottom{flex-direction:column;align-items:flex-start;gap:6px}}

/* --- Force Portfolio heading + sub to center --- */
#portfolio .container > h2 {
  text-align: center;
}

#portfolio .container > .sub,
#portfolio .container > p.sub {
  text-align: center;
  max-width: 70ch;
  margin: 6px auto 18px; /* centers the line by auto side-margins */
  line-height: 1.6;
}
/* Vertical layout for YouTube Shorts */
.modal-dialog.is-short{
  width: min(420px, 92%);          /* slimmer dialog for portrait */
}
.modal-body.is-short{
  aspect-ratio: 9 / 16;            /* portrait video box */
}
/* Vertical layout for YouTube Shorts */
.modal-dialog.is-short{
  width: min(420px, 92%);
}

/* Make sure the video area always has a height, even on older Safari */
.modal-body{
  aspect-ratio: 16 / 9;
  min-height: 300px;          /* fallback so it never collapses */
}
.modal-body.is-short{
  aspect-ratio: 9 / 16;
  min-height: 420px;          /* portrait fallback */
}

/* Ensure the iframe fills the box */
.modal-body iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* =====================================================
   End of File
   ===================================================== */