:root{
  --bg:#f6f8fb;
  --panel:#ffffff;
  --panel2:#f1f5f9;
  --text:#0b1220;
  --muted:#4b5563;
  --line:rgba(10,20,40,.10);
  --brand:#c7d008;
  --brand2:#0ea5a8;
  --accent:#fbbf24;
  --radius:18px;
  --shadow:0 16px 40px rgba(2,6,23,.12);
  /* Slightly wider site width (reduced side margins) */
  --max:1280px;
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:var(--font);background:radial-gradient(1000px 600px at 20% 0%, rgba(0,179,179,.14), transparent 55%),radial-gradient(900px 600px at 80% 0%, rgba(255,90,122,.10), transparent 55%), var(--bg); color:var(--text);}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.zoomable{cursor:zoom-in}
.zoomable:hover{transform:translateY(-1px);transition:.15s ease;box-shadow:0 10px 24px rgba(2,6,23,.18)}
.container{max-width:var(--max);margin:0 auto;padding:0 14px}
.navbar{position:sticky;top:0;z-index:50;background:#ffffff;border-bottom:1px solid var(--line)}

.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 var(--line);background:var(--panel2);color:var(--text);font-weight:650;font-size:14px;cursor:pointer}
.btn:hover{transform:translateY(-1px);transition:.15s ease;box-shadow:0 10px 24px rgba(2,6,23,.18)}
.btn.primary{background:linear-gradient(90deg,var(--brand),var(--brand2));border-color:rgba(14,165,168,.35);color:#06121a}
.btn.secondary{background:linear-gradient(90deg,var(--brand2),#ffb703);border-color:rgba(255,90,122,.35);color:#14050a}
.btn.ghost{background:transparent}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px}
.hero{padding:58px 0 28px}

/* --- PayPal-style intro (Home) --- */
.hero-stage-section{padding:10px 0 0}
.scroll-stage{height:200vh;width:100%}
.scroll-sticky{position:sticky;top:var(--nav-offset,88px);height:calc(100vh - var(--nav-offset,88px));display:flex;align-items:center;justify-content:center}
.hero-media-frame{width:100%;max-width:980px;height:62vh;margin:0 auto;border-radius:28px;overflow:hidden;border:1px solid rgba(10,20,40,.10);box-shadow:0 18px 45px rgba(2,6,23,.16);background:#fff;transform:translateZ(0);will-change:width,height,border-radius,opacity,transform}
.hero-media-frame img{width:100%;height:100%;object-fit:cover;display:block}

.intro-copy-section{padding:24px 0 0;margin-top:-22vh}
.intro-copy{padding:22px 0;max-width:860px;margin:0 auto;text-align:center}
.intro-copy h1{font-size:54px;line-height:1.03;letter-spacing:-.02em;margin:12px 0 10px}
.intro-copy .lead{font-size:18px;color:var(--muted);max-width:62ch;margin:0 auto}
.intro-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;justify-content:center}

@media (max-width: 920px){
  .intro-copy h1{font-size:40px}
  .intro-copy-section{margin-top:-16vh}
  .scroll-sticky{top:var(--nav-offset,74px);height:calc(100vh - var(--nav-offset,74px))}
  .hero-media-frame{max-width:100%;height:58vh}
}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:stretch}
.hero-card{border:1px solid var(--line);background:linear-gradient(180deg, var(--panel), var(--panel2));border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.hero-media{position:relative;min-height:360px;background:rgba(255,255,255,.03)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.hero-copy{padding:26px}
h1{font-size:44px;line-height:1.05;margin:0 0 12px}
.lead{color:var(--muted);font-size:17px;line-height:1.6;margin:0 0 18px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:18px}
.card h3{margin:0 0 8px;font-size:16px}
.card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.section{padding:34px 0}
.section h2{font-size:26px;margin:0 0 14px}
.section p{color:var(--muted);line-height:1.7;margin:0 0 14px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.kpi{display:flex;gap:12px;flex-wrap:wrap}
.kpi .pill{background:rgba(255,255,255,.03)}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.g-main{grid-column:span 8}
.g-side{grid-column:span 4;display:grid;grid-template-rows:1fr 1fr;gap:14px}
.g-img{border-radius:22px;overflow:hidden;border:1px solid var(--line);background:var(--panel);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.g-img img{width:100%;height:100%;object-fit:cover}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tile{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:rgba(255,255,255,.03)}
/* Gallery tiles: remove the empty caption gap + ensure images sit flush */
.tile img{width:100%;height:220px;object-fit:cover;object-position:center 18%;border-radius:18px;display:block}
.tile .cap{display:none}
.form{display:grid;gap:10px}
.field{display:grid;gap:6px}
label{font-size:13px;color:var(--muted)}
input,textarea,select{width:100%;padding:12px 12px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--text);outline:none}
textarea{min-height:110px;resize:vertical}
.small{font-size:12px;color:var(--muted)}
.footer{padding:30px 0;border-top:1px solid var(--line);margin-top:36px}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}
.footer a{color:var(--muted)}
.footer a:hover{color:var(--text)}
.mobile-toggle{display:none}
.badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:rgba(0,179,179,.12);border:1px solid rgba(0,179,179,.25);color:var(--text);font-size:12px}
.note{padding:14px;border-radius:16px;border:1px dashed rgba(255,255,255,.18);color:var(--muted);background:rgba(255,255,255,.02)}
hr.sep{border:0;border-top:1px solid var(--line);margin:18px 0}
@media (max-width: 920px){
  .brand img{height:58px}
  h1{font-size:36px}
  .hero-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .g-main,.g-side{grid-column:auto}
  .g-side{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .tiles{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .nav-links{display:none}
  .mobile-toggle{display:inline-flex}
  .nav-inner{gap:10px}
}
@media (max-width: 560px){
  .brand img{height:52px}
  .tiles{grid-template-columns:1fr}
  .g-side{grid-template-columns:1fr}
  .brand{min-width:auto}
}
.btn.primary:hover{filter:brightness(1.02)}


/* NiceSmile button color override */
button, .btn, .button {background:#D0D56C !important; border-color:#D0D56C !important;}
button:hover, .btn:hover, .button:hover {filter: brightness(0.9);}


}


/* Content365 hero image should be the logo (filled nicely) */
.page-content365 .hero-card.hero-media { background: #ffffff !important; }
.page-content365 .hero-card.hero-media .hero-bg { object-fit: contain !important; padding: 18px !important; background:#ffffff !important; }



/* Content365 hero image should fully fill the square */
.hero-media .hero-bg{width:100%;height:100%;object-fit:cover;display:block;}


/* Content365 cream background to match logo */
.content-365,
.content-365 .image-wrapper,
.content-365 .image-placeholder,
.content-365 img {
  background-color: #F5F1EA !important;
}


/* v9: Content365 cream background + remove white padding */
.page-content365 .hero-card.hero-media{background:#F5F1EA !important;}
.page-content365 .hero-card.hero-media .hero-bg{background:#F5F1EA !important; padding:0 !important; object-fit:cover !important;}
.page-content365 .hero-card.hero-media .hero-content{background:#F5F1EA !important;}


/* Families hero placeholder (until gallery images are added) */
.hero-media-placeholder{width:100%;height:100%;min-height:360px;border-radius:var(--radius);background:linear-gradient(135deg,#F5F1EA,rgba(245,241,234,.65));border:1px solid rgba(0,0,0,.06);}

/* Nav polish */
.navbar{background:#fff !important}
.nav-links a{
  text-decoration:none;
  padding:10px 12px;
  border-radius:999px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid transparent;
}
.nav-links a:hover{
  background:rgba(0,0,0,.04);
  border-color:rgba(0,0,0,.08);
}
.nav-links a[aria-current="page"]{
  background:rgba(0,0,0,.06);
  border-color:rgba(0,0,0,.12);
  font-weight:600;
}
@media (max-width: 768px){
  .nav-links{gap:10px}
  .nav-links a{padding:9px 10px}
}


/* Header nav buttons styled like Gallery */
.site-header nav a {
  padding: 10px 18px;
  border-radius: 30px;
  background: #D0D56C;
  color: #1a1a1a !important;
  font-weight: 600;
  margin-right: 10px;
  text-decoration: none !important;
  transition: all 0.25s ease;
}

.site-header nav a:hover {
  filter: brightness(0.9);
}

.site-header nav a.current-menu-item,
.site-header nav a.active {
  background: #D0D56C;
}

/* Uniform gallery grid (prevents mixed big/small tiles) */
.uniform-grid{
  display:grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: 14px !important;
}
.uniform-grid a{
  display:block;
}
.uniform-grid img{
  width:100% !important;
  height: 220px !important;
  object-fit: cover !important;
  border-radius: 14px;
  display:block;
}


/* Bigger logo now that tagline removed */
.navbar .brand img{
  max-height: 92px;
}
@media (max-width:768px){
  .navbar .brand img{ max-height: 72px; }
}


/* Gallery: keep tiles uniform (match original style) */
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
}
.gallery-grid a{ display:block; }
.gallery-grid img{
  width:100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: 50% 20%; /* keeps faces higher in frame */
  border-radius: 18px;
  display:block;
}
@media (max-width: 768px){
  .gallery-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }
}



/* Schools page – align CTA buttons neatly */
.cta-group{
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

/* Align Explore card buttons (Schools page) */
.grid-3 .card{
  display:flex;
  flex-direction:column;
}
.grid-3 .card .card-cta{
  margin-top:auto;
  padding-top:12px;
}

/* Content365 grid - uniform tiles, face-safe crop */
#content365-grid, .content365-grid, .gallery-grid.content365-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
}
#content365-grid a, .content365-grid a{
  display:block;
}
#content365-grid img, .content365-grid img, .gallery-grid img{
  width:100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: 50% 20%;
  border-radius: 18px;
  display:block;
}

/* What we do – align CTA buttons (robust) */
.what-we-do .cards,
.what-we-do .card-grid{
  display:grid; /* keep existing grid if used */
}
.what-we-do .card,
.what-we-do .service-card,
.what-we-do .feature-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.what-we-do .card .btn,
.what-we-do .service-card .btn,
.what-we-do .feature-card .btn{
  margin-top:auto;
}
.what-we-do .card .btn + .btn,
.what-we-do .service-card .btn + .btn,
.what-we-do .feature-card .btn + .btn{
  margin-top:10px;
}

/* What we do – force CTA to bottom (fix alignment) */
.what-we-do .card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.what-we-do .card > div{
  margin-top:auto !important;
}


/* --- Hamburger menu layout (site-wide) --- */
.navbar .container{position:relative} /* anchor dropdown */
.nav-inner{display:grid !important;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:14px 0;justify-content:stretch}
.nav-links{display:none !important} /* moved into dropdown menu */
.brand{justify-self:center;min-width:auto}
.nav-cta{justify-self:end}

.hamburger{
  width:40px;
  height:40px;
  border:0;
  background:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  position:relative;
  padding:0;
}
.hamburger:hover{transform:translateY(-1px);transition:.15s ease}

/* Animated hamburger lines */
.hamburger span{
  position:absolute;
  left:9px;
  right:9px;
  height:2px;
  background:#6f6f6f;
  border-radius:2px;
  transition:transform .28s ease, top .28s ease, opacity .18s ease;
}
.hamburger span:nth-child(1){top:12px}
.hamburger span:nth-child(2){top:19px}
.hamburger span:nth-child(3){top:26px}

.hamburger.open span:nth-child(1){top:19px;transform:rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){top:19px;transform:rotate(-45deg)}

/* Slide-in drawer menu */
.menu-overlay{
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.45);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  z-index:9998;
}
.menu-overlay.open{
  opacity:1;
  pointer-events:auto;
}

#mobileMenu{
  position:fixed;
  top:0;
  left:0;
  height:100vh;
  width:min(360px, 86vw);
  background:#fff;
  border-right:1px solid var(--line);
  box-shadow:0 26px 90px rgba(2,6,23,.22);
  transform:translateX(-110%);
  transition:transform .28s ease;
  z-index:9999;
  padding:16px;
  display:block;
}
#mobileMenu.open{transform:translateX(0)}

#mobileMenu a{
  display:block;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(10,20,40,.10);
  margin-bottom:10px;
  color:var(--text) !important;
  text-decoration:none;
}
#mobileMenu a:hover{background:rgba(2,6,23,.04) !important}

body.menu-open{overflow:hidden}

@media (max-width: 920px){
  .brand img{height:58px}
}
@media (max-width: 560px){
  .brand img{height:52px}
  .nav-cta .btn.ghost{display:none}
}


/* Content365: add breathing room before 'How it’s scoped' */
.scoped-section{
  margin-top: 24px;
}



/* Virtual Stage video embed */
.video-embed{
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 22px 60px rgba(2,6,23,.16);
  background: #000;
}
.video-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.vs-logo{
  max-width: 260px;
  width: 100%;
  height: auto;
  display:block;
  margin-top: 18px;
  opacity: .95;
}
@media (max-width: 860px){
  .vs-logo{max-width: 220px;}
}

/* YouTube lazy embed */
.video-embed.js-yt{
  background: #000;
  cursor: pointer;
}
.video-embed.js-yt::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: var(--yt-thumb);
  background-size: cover;
  background-position: center;
  filter: none;
  opacity: .95;
}
.video-embed.js-yt .yt-play{
  position:absolute;
  inset:0;
  background: transparent;
  border:0;
  cursor:pointer;
}
.video-embed.js-yt .yt-play-icon{
  position:absolute;
  left:50%;
  top:50%;
  width:78px;
  height:54px;
  transform:translate(-50%,-50%);
  border-radius:14px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}
.video-embed.js-yt .yt-play-icon::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-40%,-50%);
  width:0;height:0;
  border-left:18px solid rgba(255,255,255,.95);
  border-top:12px solid transparent;
  border-bottom:12px solid transparent;
}
.video-embed.js-yt:hover .yt-play-icon{
  background: rgba(255,255,255,.24);
}


/* Team grid */
.team-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 22px;
  margin-top: 22px;
}
.team-card{
  background:#fff;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,.35);
  box-shadow: 0 16px 40px rgba(15,23,42,.12);
  overflow:hidden;
  transition: transform .15s ease, box-shadow .15s ease;
}
.team-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 20px 48px rgba(15,23,42,.18);
}
.team-card img{
  width:100%;
  height: 250px;
  object-fit: cover;
  display:block;
  background:#f1f5f9;
}
.team-card .team-meta{
  padding: 14px 14px 16px;
}
.team-card .team-meta h3{
  margin: 0;
  font-size: 16px;
}
.team-card .team-meta p{
  margin: 6px 0 0;
  color: rgba(15,23,42,.65);
  font-size: 13px;
}
@media (min-width: 1100px){
  .team-grid{ grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .team-card img{ height: 220px; }
}


/* Team page - match legacy card style */
.team-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 26px;
  margin-top: 22px;
}
.team-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
  border-radius: 4px;
  overflow:hidden;
}
.team-card__img{
  width:100%;
  height: 260px;
  object-fit: cover;
  display:block;
  background:#f2f4f7;
}
.team-card__body{
  padding: 14px 14px 16px;
  min-height: 72px;
}
.team-card__name{
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.3em;
}
.team-card__role{
  font-size: 13px;
  color: rgba(0,0,0,.6);
  margin:0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}


/* Section images (Schools page) */
.section-lead{max-width:72ch;color:var(--muted);margin:10px 0 0 0;font-size:1.02rem;line-height:1.6}
.section-media{margin:24px 0 0 0}
.section-media img{width:100%;height:auto;display:block;border-radius:16px;box-shadow:0 10px 30px rgba(2,6,23,.10)}

/* Virtual Stage page tweaks */
.vs-logo-center{display:flex;justify-content:center;}
.vs-btns{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}


/* ===============================
   Gallery Upgrade – NiceSmile
   =============================== */

/* Consistent 4:3 ratio cards */
.gallery-card,
.thumb,
.grid-item {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 18px;
}

/* Remove image gap + crop cleanly */
.gallery-card img,
.thumb img,
.grid-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

/* Subtle premium hover */
.gallery-card:hover img,
.thumb:hover img,
.grid-item:hover img {
    transform: scale(1.05);
}


/* Order photos page */
.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.portal-card{border:1px solid var(--line);background:var(--panel);border-radius:24px;padding:24px;box-shadow:var(--shadow);height:100%}
.portal-card h3{font-size:24px;margin:0 0 8px}
.portal-card p{color:var(--muted);margin:0 0 14px;line-height:1.7}
.portal-icon{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(208,213,108,.25);font-size:24px;margin-bottom:14px}
.portal-list{margin:0 0 18px;padding-left:18px;color:var(--muted);line-height:1.8}
.portal-note{margin-top:18px}
.video-embed,.order-visual{border:1px solid var(--line);background:var(--panel);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.order-visual{min-height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg, rgba(208,213,108,.18), rgba(255,255,255,.9))}
.order-visual-inner{padding:28px;width:100%}
.order-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.order-step{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}
.order-step:first-of-type{border-top:0}
.order-step-num{flex:0 0 34px;width:34px;height:34px;border-radius:999px;background:#D0D56C;display:flex;align-items:center;justify-content:center;font-weight:700}
@media (max-width: 920px){
  .portal-grid{grid-template-columns:1fr}
}
