/* ============================================================
   Playground School Portraits — shared styles
   Rebuilt from Wix for static hosting (Netlify-ready)
   ============================================================ */

:root{
  --cream:      #F6F2EB;   /* page background */
  --cream-2:    #FBF9F4;   /* nav / lighter surfaces */
  --band:       #E6DBCE;   /* taupe band: marquee + contact */
  --ink:        #1C1A17;   /* near-black display + body */
  --ink-soft:   #4C463D;   /* muted body copy */
  --olive:      #5F6B3C;   /* logo green */
  --accent:     #8A7A55;   /* buttons / warm taupe-brown */
  --accent-dk:  #6F6142;
  --line:       #D8CFC2;   /* hairline dividers */

  --display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --body: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --wrap: 1160px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 28px; }

h1,h2,h3{ font-family:var(--display); font-weight:700; line-height:1.05; margin:0; }
p{ margin:0 0 1.1em; }

.eyebrow{
  font-family:var(--body);
  font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--accent-dk); font-weight:600; margin:0 0 1rem;
}

/* ---- Buttons ---- */
.btn{
  display:inline-block; font-family:var(--body); font-weight:600;
  font-size:.86rem; letter-spacing:.06em;
  padding:.85em 2.1em; border-radius:999px; text-decoration:none;
  transition:transform .15s ease, background .2s ease, color .2s ease;
  cursor:pointer;
}
.btn--solid{ background:var(--accent); color:#fff; border:1.5px solid var(--accent); }
.btn--solid:hover{ background:var(--accent-dk); border-color:var(--accent-dk); transform:translateY(-1px); }
.btn--ghost{ background:transparent; color:var(--accent-dk); border:1.5px solid var(--accent); }
.btn--ghost:hover{ background:var(--accent); color:#fff; transform:translateY(-1px); }
.btn--light{ background:rgba(255,255,255,.9); color:var(--ink); border:1.5px solid transparent; }
.btn--light:hover{ background:#fff; transform:translateY(-1px); }

/* ============================================================
   Header / Nav
   ============================================================ */
.site-header{
  background:var(--cream-2);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
}
.nav{
  display:flex; align-items:center; gap:24px;
  padding:14px 28px; max-width:1320px; margin:0 auto;
}
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brand img{ width:62px; height:62px; }
.brand span{ display:none; }
.nav-links{
  list-style:none; display:flex; gap:6px; margin:0 0 0 auto; padding:0;
  flex-wrap:wrap; justify-content:flex-end;
}
.nav-links a{
  text-decoration:none; color:var(--ink);
  font-size:.9rem; font-weight:500; letter-spacing:.01em;
  padding:.6em 1.15em; border-radius:999px; white-space:nowrap;
  transition:background .18s ease, color .18s ease;
}
.nav-links a:hover{ background:#efe9df; }
.nav-links a[aria-current="page"]{ background:var(--ink); color:var(--cream); }

/* mobile nav toggle */
.nav-toggle{ display:none; margin-left:auto; background:none; border:0; cursor:pointer; padding:8px; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:.2s; }

/* ============================================================
   Hero
   ============================================================ */
.hero{ position:relative; min-height:82vh; display:flex; align-items:flex-end;
  background:#cfd0c4; overflow:hidden; }
.hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(20,22,16,.45) 0%, rgba(20,22,16,.12) 45%, rgba(20,22,16,0) 70%); }
.hero-inner{ position:relative; z-index:2; padding:0 0 8vh; }
.hero h1{
  color:#fff; font-size:clamp(3rem, 8.5vw, 7rem); line-height:.92;
  text-shadow:0 2px 30px rgba(0,0,0,.28); max-width:11ch;
}
.hero p{ color:#fff; max-width:40ch; margin-top:1.2rem; font-size:1.02rem;
  text-shadow:0 1px 12px rgba(0,0,0,.35); }
.hero .btn{ margin-top:1.6rem; }

/* ============================================================
   Generic section
   ============================================================ */
.section{ padding:clamp(64px, 9vw, 118px) 0; }
.section--band{ background:var(--band); }
.section--cream2{ background:var(--cream-2); }
.section-head{ max-width:20ch; margin-bottom:3rem; }
.section-head h2{ font-size:clamp(2.1rem, 5vw, 3.7rem); }

/* ---- Feature list (Zero admin / WWC / Profit share) ---- */
.future{ display:grid; grid-template-columns:1fr 1.4fr; gap:56px; align-items:start; }
.future h2{ font-size:clamp(2.2rem,5vw,3.9rem); }
.feature-list{ display:flex; flex-direction:column; }
.feature{ display:grid; grid-template-columns:38px 1fr; gap:22px;
  padding:26px 0; border-top:1px solid var(--line); align-items:baseline; }
.feature:last-child{ border-bottom:1px solid var(--line); }
.feature .num{ font-family:var(--display); font-size:1rem; color:var(--accent-dk); padding-top:4px; }
.feature h3{ font-size:1.5rem; margin-bottom:.15em; }
.feature p{ color:var(--ink-soft); font-size:.96rem; margin:0; }
.feature .fine{ font-size:.82rem; color:var(--accent-dk); font-style:italic; }
.future .btn{ margin-top:8px; }

/* ---- Split (Our Portrait Story) ---- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; }
.split__media{ min-height:440px; }
.split__media img{ width:100%; height:100%; object-fit:cover; }
.split__body{ display:flex; flex-direction:column; justify-content:center;
  padding:clamp(40px,6vw,88px); background:#EBE7DE; }
.split__body h2{ font-size:clamp(2.2rem,4.5vw,3.6rem); margin-bottom:.6rem; }
.split__body p{ color:var(--ink-soft); max-width:36ch; }
.split--reverse .split__media{ order:2; }

/* ============================================================
   Journal
   ============================================================ */
.page-intro{ padding:clamp(70px,9vw,120px) 0 24px; text-align:center; }
.page-intro h1{ font-size:clamp(2.6rem,6vw,4.6rem); }
.page-intro p{ color:var(--ink-soft); max-width:56ch; margin:1.2rem auto 0; }

.entry{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px);
  align-items:center; padding:clamp(40px,6vw,70px) 0; border-bottom:1px solid var(--line); }
.entry:nth-child(even) .entry__media{ order:2; }
.entry__media img{ width:100%; border-radius:3px; box-shadow:0 18px 44px rgba(40,34,24,.14); }
.entry__body h2{ font-size:clamp(1.7rem,3.4vw,2.5rem); margin-bottom:.7rem; }
.entry__body p{ color:var(--ink-soft); font-size:1rem; }
.entry__body p:last-child{ margin-bottom:0; }
.entry--wide{ grid-template-columns:1fr; max-width:760px; margin:0 auto; text-align:center; }

/* ============================================================
   Contact block
   ============================================================ */
.capture{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.capture h2{ font-size:clamp(2.2rem,5vw,3.6rem); margin-bottom:1.4rem; }
.capture .lead{ color:var(--ink-soft); max-width:44ch; }
.contact-detail{ margin-top:1.9rem; }
.contact-detail .label{ font-family:var(--display); font-size:.95rem; letter-spacing:.08em;
  text-transform:uppercase; margin:0 0 .1em; }
.contact-detail .value{ margin:0 0 1.1rem; font-size:1.05rem; }
.contact-detail a{ color:var(--accent-dk); text-decoration:none; }
.contact-detail a:hover{ text-decoration:underline; }
.capture__aside{ background:#EBE7DE; border-radius:4px; min-height:320px;
  display:flex; align-items:center; justify-content:center; padding:40px; }
.capture__aside img{ border-radius:3px; box-shadow:0 14px 36px rgba(40,34,24,.15); }

/* ============================================================
   Marquee band
   ============================================================ */
.marquee{ background:var(--band); overflow:hidden; padding:34px 0; border-top:1px solid #d9cebf; }
.marquee__track{ display:flex; gap:.6em; white-space:nowrap; width:max-content;
  animation:scroll 32s linear infinite; }
.marquee__track span{ font-family:var(--display); font-weight:700;
  font-size:clamp(2.4rem,6vw,4.4rem); color:#fff; letter-spacing:.02em; }
.marquee__track .dot{ color:var(--accent); }
@keyframes scroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--cream-2); padding:56px 0 40px; }
.footer-grid{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; }
.footer-grid .brand img{ width:96px; height:96px; }
.footer-mail{ text-align:center; }
.footer-mail a{ color:var(--ink); text-decoration:none; font-size:1rem; }
.footer-mail a:hover{ text-decoration:underline; }
.socials{ display:flex; gap:14px; justify-content:flex-end; }
.socials a{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  color:#fff; transition:transform .15s ease, opacity .2s ease; }
.socials a:hover{ transform:translateY(-2px); }
.s-fb{ background:#1877F2; } .s-ig{ background:#E1306C; }
.s-li{ background:#0A66C2; } .s-gr{ background:var(--accent); }
.socials svg{ width:18px; height:18px; fill:#fff; }
.copyright{ text-align:right; color:var(--ink-soft); font-size:.82rem; margin-top:34px; }

/* small helper note style for pages needing Sabrina's copy */
.editor-note{ max-width:var(--wrap); margin:0 auto; padding:16px 28px;
  font-size:.8rem; color:#9a8f7d; font-style:italic; text-align:center; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px){
  .nav-toggle{ display:block; }
  .nav-links{
    display:none; width:100%; flex-direction:column; align-items:stretch;
    margin:12px 0 0; gap:2px;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:.8em 1em; }
  .nav{ flex-wrap:wrap; }
  .future{ grid-template-columns:1fr; gap:32px; }
  .split{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
  .split__media{ min-height:300px; }
  .entry{ grid-template-columns:1fr; gap:24px; }
  .entry:nth-child(even) .entry__media{ order:0; }
  .capture{ grid-template-columns:1fr; gap:34px; }
  .capture__aside{ min-height:220px; }
  .footer-grid{ grid-template-columns:1fr; text-align:center; gap:24px; }
  .footer-grid .brand{ justify-content:center; }
  .socials{ justify-content:center; }
  .copyright{ text-align:center; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; scroll-behavior:auto !important; transition:none !important; }
}

:focus-visible{ outline:3px solid var(--olive); outline-offset:2px; border-radius:2px; }

/* ============================================================
   Contact form (Netlify Forms)
   ============================================================ */
.form-card{ background:var(--cream-2); border:1px solid var(--line);
  border-radius:6px; padding:clamp(26px,4vw,42px); }
.form-title{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:1.4rem; }
.contact-form .field{ margin-bottom:1.1rem; }
.contact-form .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label{ display:block; font-size:.82rem; font-weight:600;
  letter-spacing:.02em; margin-bottom:.4em; color:var(--ink); }
.contact-form .opt{ font-weight:400; color:#9a8f7d; }
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%; font-family:var(--body); font-size:.98rem; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:.72em .85em; transition:border-color .15s ease, box-shadow .15s ease;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(138,122,85,.18);
}
.contact-form textarea{ resize:vertical; min-height:120px; }
.contact-form .btn{ margin-top:.4rem; border:0; cursor:pointer; }
.contact-form .form-note{ font-size:.8rem; color:var(--ink-soft); margin:.9rem 0 0; }
.hp{ position:absolute; left:-9999px; }
@media (max-width:560px){ .contact-form .field-row{ grid-template-columns:1fr; } }
