/* AUSTIN MONTESSORI SCHOOL — shared styles */

/* Self-hosted fonts (no Google round-trip) */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/inter-600.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/cormorant-400.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/cormorant-500.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/cormorant-400-italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('/fonts/cormorant-500-italic.woff2') format('woff2')}

/* Metric-matched fallbacks: stand-ins sized to occupy the exact same space,
   so nothing reflows when the real font swaps in (no layout shift). */
@font-face{font-family:'Inter Fallback';src:local('Arial');size-adjust:107.12%;ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%}
@font-face{font-family:'Cormorant Fallback';src:local('Georgia');size-adjust:88.38%;ascent-override:104.55%;descent-override:32.47%;line-gap-override:0.00%}

*{margin:0;padding:0;box-sizing:border-box}
html,body{font-family:'Inter','Inter Fallback',system-ui,-apple-system,sans-serif;color:#1A1A1A;background:#FFFFFF;font-weight:400;-webkit-font-smoothing:antialiased;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

:root{
  --teal:#1B4A52;
  --teal-dark:#143840;
  --green:#5DAE54;
  --section-alt:#F5F8F5;
  --warm-alt:#FAF8F2;
  --text:#1A1A1A;
  --muted:#6E6E6E;
  --hairline:rgba(27,74,82,0.1);
  --serif:'Cormorant Garamond','Cormorant Fallback',Georgia,serif;
}

/* NAV — stripped: logo left, About · Book a tour · Sign in right */
.nav-wrap{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);border-bottom:0.5px solid var(--hairline)}
.nav{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 32px;gap:24px}
.brand-logo{height:52px;width:auto;display:block;flex-shrink:0}
.nav-right{display:flex;align-items:center;gap:28px}
.nav-link{font-size:13px;color:var(--teal);font-weight:500;transition:color 0.2s}
.nav-link:hover{color:var(--green)}
.nav-link.active{border-bottom:1.5px solid var(--green);padding-bottom:2px}
.utility-link{font-size:12px;color:var(--muted);font-weight:400}
.utility-link:hover{color:var(--teal)}
.tour-btn{background:var(--teal);color:#fff;padding:10px 18px;font-size:12px;font-weight:500;border-radius:2px;transition:background 0.2s}
.tour-btn:hover{background:var(--teal-dark)}

/* About dropdown */
.nav-dropdown{position:relative;display:inline-block}
.nav-dropdown>.nav-link{padding:14px 0;display:inline-block}
.nav-dropdown>.utility-link{padding:14px 0;display:inline-block}
.nav-dropdown::after{content:'';position:absolute;top:100%;left:-12px;right:-12px;height:14px}
.nav-dropdown-menu{position:absolute;top:calc(100% + 12px);right:0;background:#fff;border:0.5px solid var(--hairline);border-radius:3px;padding:8px 0;min-width:240px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity 0.18s ease,transform 0.18s ease,visibility 0.18s;box-shadow:0 12px 28px rgba(27,74,82,0.07);z-index:60}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dropdown-menu a{display:block;padding:11px 20px;font-size:13px;color:var(--teal);font-weight:500;white-space:nowrap;transition:background 0.15s,color 0.15s}
.nav-dropdown-menu a:hover{background:var(--warm-alt);color:var(--green)}

/* ---------- Mobile nav: hamburger + slide-in drawer ---------- */
.nav-hamburger{display:none;background:none;border:none;padding:6px;color:var(--teal);cursor:pointer;line-height:0;border-radius:3px;transition:background 0.15s}
.nav-hamburger:hover{background:var(--warm-alt)}
.mobile-drawer{position:fixed;inset:0;z-index:100;background:rgba(27,74,82,0.35);display:flex;justify-content:flex-end;animation:drawerFade 0.2s ease}
.mobile-drawer[hidden]{display:none}
.mobile-drawer-panel{width:min(340px,86vw);height:100vh;background:#fff;box-shadow:-8px 0 32px rgba(0,0,0,0.14);display:flex;flex-direction:column;padding:20px 24px 32px;overflow-y:auto;animation:drawerSlide 0.25s cubic-bezier(.2,.7,.3,1)}
.mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.mobile-drawer-logo{height:44px;width:auto;display:block}
.mobile-drawer-close{background:none;border:none;font-size:34px;color:var(--teal);cursor:pointer;padding:0 8px;line-height:1;font-weight:300}
.mobile-drawer-close:hover{color:var(--green)}
.mobile-nav{display:flex;flex-direction:column;gap:2px}
.mobile-nav a{display:block;padding:13px 12px;font-size:16px;color:var(--teal);font-weight:500;border-radius:3px;transition:background 0.15s,color 0.15s;text-decoration:none}
.mobile-nav a:hover{background:var(--warm-alt);color:var(--green)}
.mobile-nav-cta{background:var(--teal) !important;color:#fff !important;text-align:center;padding:14px 12px !important;margin-bottom:14px;font-weight:500;border-radius:2px;letter-spacing:0.01em}
.mobile-nav-cta:hover{background:var(--teal-dark) !important;color:#fff !important}
.mobile-nav-section{font-size:11px;letter-spacing:0.22em;color:var(--green);text-transform:uppercase;font-weight:600;margin:18px 12px 6px}
.mobile-nav-utility{font-size:14px !important;color:var(--muted) !important;font-weight:400 !important}
.mobile-nav-utility:hover{color:var(--teal) !important}
.mobile-nav-divider{height:1px;background:var(--hairline);margin:16px 12px}
@keyframes drawerFade{from{opacity:0}to{opacity:1}}
@keyframes drawerSlide{from{transform:translateX(100%)}to{transform:translateX(0)}}

/* Show hamburger, hide desktop nav at ≤768px */
@media (max-width:768px){
  .nav-right-desktop{display:none}
  .nav-hamburger{display:inline-flex;align-items:center}
}

/* Safety belt for tablet-portrait desktops that still show the About dropdown
   — flip anchor from right-edge to left-edge and cap width so it never clips. */
@media (max-width:900px) and (min-width:769px){
  .nav-dropdown-menu{right:auto;left:0;max-width:calc(100vw - 40px)}
}


/* TYPE */
.eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:24px}
.serif-h1{font-family:var(--serif);font-size:clamp(40px,5.2vw,66px);line-height:1.02;font-weight:400;letter-spacing:-0.022em}
.serif-h2{font-family:var(--serif);font-size:clamp(34px,4vw,50px);line-height:1.04;font-weight:400;letter-spacing:-0.018em}
.serif-h3{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);line-height:1.2;font-weight:400;letter-spacing:-0.01em}
em{font-style:italic}

/* HERO variants */
.hero{position:relative;width:100%;overflow:hidden;background:#0F1A1D}
.hero.tall{height:90vh;min-height:580px;max-height:820px}
.hero.med{height:56vh;min-height:420px;max-height:600px}
.hero img.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,177.78vh);height:max(100%,56.25vw);border:0;pointer-events:none;z-index:2}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,26,29,0.25) 0%,rgba(15,26,29,0.05) 35%,rgba(15,26,29,0.7) 100%);pointer-events:none;z-index:3}
.hero-content{position:absolute;left:0;right:0;bottom:0;padding:0 56px 64px;color:#fff;max-width:1320px;margin:0 auto;z-index:4}
.hero-eyebrow{font-size:11px;letter-spacing:0.26em;text-transform:uppercase;color:rgba(255,255,255,0.92);margin-bottom:18px;font-weight:500}
.hero-title{font-family:var(--serif);font-size:clamp(40px,5.2vw,66px);line-height:1.02;font-weight:400;letter-spacing:-0.022em;max-width:820px;margin-bottom:24px}
.hero-cta{display:inline-block;font-size:12px;color:#fff;border-bottom:2px solid var(--green);padding-bottom:5px;font-weight:500;letter-spacing:0.04em}
.hero-cta:hover{color:var(--green)}
.hero-subhead{font-size:16px;line-height:1.65;color:rgba(255,255,255,0.92);max-width:540px;margin-bottom:24px}

/* GENERIC SECTIONS */
.section{padding:120px 56px;background:#fff}
.section.alt{background:var(--section-alt)}
.section.warm{background:var(--warm-alt)}
.section-inner{max-width:1320px;margin:0 auto}
.section-eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:22px}

/* MISSION */
.mission{padding:160px 56px;text-align:center;background:#fff}
.mission-eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:32px}
.mission-text{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.4;color:var(--teal);font-weight:400;max-width:780px;margin:0 auto;letter-spacing:-0.015em}
/* Mission read-more — quiet snapshot that expands the full mission */
.mission-more{display:block}
.mission-more-inner{min-height:0}
.mission-more-text{font-family:var(--serif);font-size:clamp(17px,1.5vw,21px);line-height:1.65;color:var(--teal);font-weight:400;max-width:680px;margin:28px auto 0;opacity:0.82}
.mission-toggle{display:none;width:100%;max-width:780px;margin:0 auto;text-align:right;background:none;border:0;cursor:pointer;font-size:11px;letter-spacing:0.02em;font-weight:400;color:#b0b0b0;padding:4px 0;transition:color 0.2s ease}
.mission-toggle:hover{color:#888}
/* Once JS is active: collapse the extra text and reveal the small toggle */
.mission.js-collapsible .mission-toggle{display:block;margin-top:10px}
.mission.js-collapsible .mission-more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows 0.45s ease,opacity 0.35s ease}
.mission.js-collapsible .mission-more-inner{overflow:hidden}
.mission.js-collapsible.is-expanded .mission-more{grid-template-rows:1fr;opacity:1}

/* PILLARS — portal tiles with bite-sized snapshot */
.pillars{padding:48px 32px 132px;background:#fff}
.pillars-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.pillar-link{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform 0.3s ease}
.pillar-link:hover{transform:translateY(-3px)}
.pillar-snapshot{font-family:var(--serif);font-style:italic;font-size:clamp(26px,2.3vw,36px);line-height:1.12;color:var(--teal);margin-bottom:20px;letter-spacing:-0.018em;font-weight:500;min-height:2.4em}
.pillar-photo{position:relative;aspect-ratio:3/4;background:#E8E5DE;border-radius:3px;overflow:hidden;margin-bottom:18px}
.pillar-photo img{width:100%;height:100%;object-fit:cover;transition:transform 0.7s ease}
.pillar-link:hover .pillar-photo img{transform:scale(1.04)}
.pillar-link h3{font-family:var(--serif);font-size:19px;line-height:1.25;color:var(--teal);font-weight:500;margin-bottom:10px;letter-spacing:-0.005em}
.pillar-link p{font-size:13.5px;line-height:1.65;color:var(--muted);margin-bottom:14px}
.pillar-enter{font-size:11px;color:var(--teal);border-bottom:1.5px solid var(--green);display:inline-block;padding-bottom:3px;font-weight:500;width:fit-content;letter-spacing:0.02em}
.pillar-link:hover .pillar-enter{color:var(--green)}

/* Legacy .pillar wrapper kept for non-home pages */
.pillar{display:flex;flex-direction:column}
.pillar h3{font-family:var(--serif);font-size:22px;line-height:1.2;color:var(--teal);font-weight:400;margin-bottom:12px;letter-spacing:-0.008em}
.pillar p{font-size:14px;line-height:1.65;color:var(--muted);margin-bottom:16px}
.pillar a.learn{font-size:11px;color:var(--teal);border-bottom:1.5px solid var(--green);display:inline-block;padding-bottom:3px;font-weight:500;width:fit-content;letter-spacing:0.02em}

/* LIVING MONTESSORI — quote as featured cover + shelf grid (magazine treatment) */
.lm-section{padding:140px 56px;background:#fff;text-align:center}
.lm-section-eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:48px}

.lm-magazine{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;gap:28px;align-items:stretch;text-align:left}

.lm-featured{position:relative;background:#F2EFE6;border:0.5px solid rgba(27,74,82,0.12);border-radius:4px;padding:42px 36px;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:4/5;min-height:420px}
.lm-featured-tag{font-size:10px;letter-spacing:0.26em;color:var(--green);text-transform:uppercase;font-weight:500}
.lm-quotes{position:relative;flex:1;display:flex;align-items:center;padding:24px 0}
.lm-slide{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);opacity:0;transition:opacity 0.9s ease;pointer-events:none}
.lm-slide.active{opacity:1;pointer-events:auto}
.lm-slide-quote{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.4vw,30px);line-height:1.5;color:var(--teal);font-weight:400;margin-bottom:16px;letter-spacing:-0.005em}
.lm-slide-by{font-size:11px;letter-spacing:0.18em;color:var(--muted);text-transform:uppercase}
.lm-featured-foot{font-size:11px;letter-spacing:0.14em;color:var(--muted);text-transform:uppercase}

.lm-shelf{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:stretch}
.lm-cover{aspect-ratio:3/4;border-radius:3px;padding:14px 12px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;transition:transform 0.4s ease;font-family:var(--serif)}
.lm-cover:hover{transform:translateY(-4px)}
.lm-cover .top{font-size:12px;line-height:1.1;font-weight:500;letter-spacing:0}
.lm-cover .bottom{font-size:10px;line-height:1.15;letter-spacing:0.02em}
.lm-cover-img{padding:0;overflow:hidden;background:#F4EFE4}
.lm-cover-img img{width:100%;height:100%;object-fit:cover;display:block}
.lm-cover-title-fallback{padding:22px 18px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.2;color:#2C2A26;width:100%;height:100%;box-sizing:border-box}
.lm-cover.lm-cover-fallback{background:#F4EFE4}

.lm-cta{display:inline-block;margin-top:44px;font-size:12px;color:var(--teal);border-bottom:2px solid var(--green);padding-bottom:4px;font-weight:500;letter-spacing:0.02em}

@media (max-width:880px){
  .lm-magazine{grid-template-columns:1fr;max-width:500px}
  .lm-featured{aspect-ratio:auto;min-height:auto}
  /* Mobile: let the rotating quote sit in normal flow so long quotes don't overlap the header + byline */
  .lm-quotes{display:block;padding:16px 0}
  .lm-slide{position:relative;top:auto;left:auto;right:auto;transform:none;display:none}
  .lm-slide.active{display:block}
  .lm-slide-quote{font-size:20px;margin-bottom:14px}
}
@media (max-width:480px){
  .lm-shelf{grid-template-columns:1fr 1fr}
}

/* VISIT / CALENDAR */
.visit{padding:140px 56px;background:var(--section-alt)}
.visit-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:center}
.visit-eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:22px}
.visit-title{font-family:var(--serif);font-size:50px;color:var(--teal);line-height:1.04;font-weight:400;margin-bottom:24px;letter-spacing:-0.02em}
.visit-copy{font-size:15.5px;line-height:1.75;color:#2A2A2A;margin-bottom:32px;max-width:420px}
.campus-list{font-size:13px;color:var(--muted);line-height:2.2}
.campus-list .campus-name{color:var(--teal);font-weight:500;text-decoration:none;border-bottom:1px solid transparent;transition:border-color 0.2s ease}
.campus-list .campus-name:hover{border-bottom-color:var(--green)}
.campus-list .campus-ages{color:var(--muted);font-size:0.86em}

.calendar-card{background:#fff;padding:32px;border:0.5px solid var(--hairline);border-radius:4px}
.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.calendar-month{font-size:18px;color:var(--teal);font-weight:500;font-family:var(--serif)}
.calendar-nav{display:flex;gap:14px;font-size:14px;color:var(--muted);cursor:pointer}
.calendar-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding-bottom:18px;border-bottom:0.5px solid var(--hairline)}
.filter-chip{font-size:10px;letter-spacing:0.04em;color:var(--teal);border:0.5px solid var(--teal);padding:5px 11px;border-radius:14px;cursor:pointer;transition:all 0.2s;background:transparent;font-family:inherit}
.filter-chip.active{background:var(--teal);color:#fff}
.calendar-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:10px;color:#9C9C9C;letter-spacing:0.1em;margin-bottom:8px;text-align:center;font-weight:500;text-transform:uppercase}
.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:13px;text-align:center;color:#1A1A1A}
.calendar-days div{padding:9px 0;border-radius:2px}
.calendar-days .empty{color:#CCC}
.calendar-days .available{color:var(--teal);border-bottom:2px solid var(--green);font-weight:500;cursor:pointer}
.calendar-days .available:hover{background:rgba(93,174,84,0.08)}
.calendar-days .selected{background:var(--teal);color:#fff;font-weight:500}
.tour-detail{margin-top:24px;padding-top:20px;border-top:0.5px solid var(--hairline)}
.tour-detail .when{font-size:11px;color:var(--green);letter-spacing:0.16em;text-transform:uppercase;margin-bottom:8px;font-weight:500}
.tour-detail .what{font-family:var(--serif);font-size:15px;color:var(--teal);font-weight:500;margin-bottom:18px}
.confirm-btn{background:var(--teal);color:#fff;text-align:center;padding:12px;font-size:12px;font-weight:500;border-radius:3px;border:none;width:100%;cursor:pointer;letter-spacing:0.04em;font-family:inherit}
.confirm-btn:hover{background:var(--teal-dark)}
.visit-more-info{margin-top:14px;text-align:center;font-size:12px;line-height:1.5;color:var(--muted)}
.visit-more-info a{color:var(--teal);border-bottom:1px solid var(--green);padding-bottom:1px}
.visit-more-info a:hover{color:var(--green)}
.handoff-title{font-family:var(--serif);font-size:20px;color:var(--teal);line-height:1.3;margin-bottom:8px}
.handoff-body{font-size:14px;line-height:1.65;color:#2A2A2A;margin-bottom:18px}
.handoff-returning{text-align:center;margin-top:14px;font-size:13px;color:var(--muted)}
.handoff-returning a{color:var(--teal);border-bottom:1px solid var(--green)}
/* Tour calendar: greyed past days */
.calendar-days .past{color:#CCC}
/* Visit heading as a link to /admissions */
.visit-head-link{display:block;text-decoration:none;color:inherit}
.visit-head-link:hover .visit-title{color:var(--green)}
/* Inline inquiry form on the home page (mirrors the admissions form) */
.visit-inquiry{grid-column:1 / -1;max-width:880px;margin:0 auto;width:100%;max-height:0;overflow:hidden;transition:max-height 600ms cubic-bezier(0.22,1,0.36,1)}
.visit-inquiry.open{max-height:80vh;overflow-y:auto}
.visit-inquiry-head{font-family:var(--serif);font-size:24px;color:var(--teal);text-align:center;padding-top:48px}
.visit-inquiry-sub{font-size:14.5px;line-height:1.7;color:#2A2A2A;text-align:center;max-width:520px;margin:8px auto 0}
.visit-inquiry .et-widget{margin-top:24px}
.form-note{font-size:13px;line-height:1.6;color:var(--muted);background:var(--warm-alt);border-radius:4px;padding:12px 16px;margin-top:24px;text-align:left}
.form-note a{color:var(--teal);border-bottom:1px solid var(--green);white-space:nowrap}
.form-close{display:block;margin:20px auto 8px;background:none;border:0;cursor:pointer;font-family:inherit;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);transition:color 200ms ease}
.form-close:hover{color:var(--teal)}

/* LIVING MONTESSORI block (home preview) */
.living{padding:140px 56px;background:#fff;text-align:center}
.living-eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:32px}
.living-quote{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);line-height:1.55;color:var(--teal);font-weight:400;max-width:740px;margin:0 auto 24px;letter-spacing:-0.005em;font-style:italic}
.living-by{font-size:12px;letter-spacing:0.06em;color:var(--muted);margin-bottom:28px}
.living-link{display:inline-block;font-size:12px;color:var(--teal);border-bottom:2px solid var(--green);padding-bottom:4px;font-weight:500;letter-spacing:0.02em}

/* FOOTER */
.footer{background:var(--teal);color:#D9E5DC;padding:72px 32px 32px}
.footer-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:48px;font-size:13px}
.footer-brand{line-height:1.9}
.footer-brand .footer-name{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.footer-brand img{height:38px;width:auto;background:#fff;padding:6px 8px;border-radius:3px}
.footer-brand .brand-name{color:#fff;font-size:13px;font-weight:500}
.footer-brand-info{opacity:0.78;font-size:13px}
.footer-col h4{font-size:11px;letter-spacing:0.22em;color:var(--green);margin-bottom:10px;text-transform:uppercase;font-weight:500}
.footer-col a{display:block;opacity:0.85;line-height:2;font-size:13px;transition:opacity 0.2s}
.footer-col a:hover{opacity:1}
.footer-bottom{max-width:1320px;margin:48px auto 0;padding-top:22px;border-top:0.5px solid rgba(255,255,255,0.14);font-size:11px;opacity:0.55;display:flex;justify-content:space-between;letter-spacing:0.04em}
.footer-legal{max-width:1320px;margin:24px auto 0;padding-top:22px;border-top:0.5px solid rgba(255,255,255,0.10);font-size:10.5px;opacity:0.48;line-height:1.7;letter-spacing:0.02em}
.footer-legal p{margin-bottom:10px}
.footer-legal-links{margin-top:6px}
.footer-legal-links a{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:0.5px}
.footer-legal-links a:hover{opacity:1}
.footer-legal-links span{margin:0 8px;opacity:0.55}
.footer-accreditation{max-width:1320px;margin:22px auto 0;display:flex;gap:42px;align-items:center;justify-content:center;opacity:0.82;flex-wrap:wrap}
.footer-accreditation a{display:flex;align-items:center;transition:opacity 0.2s}
.footer-accreditation a:hover{opacity:1}
.footer-accreditation img{width:auto;max-width:140px}
.footer-accreditation img[alt="AMI USA"]{height:36px}
.footer-accreditation img[alt="AMI"]{height:46px}
.footer-accreditation img[alt="TAAPS"]{height:30px}

/* PAGE-SPECIFIC */

/* About: welcome with portrait */
.welcome-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:center}
.welcome-portrait{aspect-ratio:3/4;background:linear-gradient(150deg,#B5BAB4 0%,#6B736E 100%);border-radius:3px;overflow:hidden}
.welcome-portrait img{width:100%;height:100%;object-fit:cover}
.welcome-text h2{font-family:var(--serif);font-size:clamp(34px,3.6vw,46px);line-height:1.06;font-weight:400;color:var(--teal);margin-bottom:24px;letter-spacing:-0.018em}
.welcome-text p{font-size:15.5px;line-height:1.8;color:#2A2A2A;margin-bottom:16px}
.signature{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--teal);margin-top:24px}
.signature-name{font-size:11px;letter-spacing:0.2em;color:var(--muted);text-transform:uppercase;margin-top:4px;font-style:normal;font-family:inherit}

/* Faculty tabbed box */
.faculty-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:32px;border-bottom:0.5px solid var(--hairline);padding-bottom:0}
.faculty-tab{font-size:13px;color:var(--muted);padding:10px 18px;border:none;background:transparent;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;font-weight:500;transition:color 0.2s}
.faculty-tab:hover{color:var(--teal)}
.faculty-tab.active{color:var(--teal);border-bottom-color:var(--green)}
.faculty-sub-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px}
.faculty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px}
.faculty-card{max-width:300px}
.faculty-card{text-align:left}
.faculty-photo{aspect-ratio:3/4;border-radius:3px;background:#E8E5DE;overflow:hidden;margin-bottom:14px}
.faculty-photo img{width:100%;height:100%;object-fit:cover}
.faculty-name{font-family:var(--serif);font-size:17px;color:var(--teal);font-weight:500;margin-bottom:4px;letter-spacing:-0.005em}
.faculty-role{font-size:11px;color:var(--muted);letter-spacing:0.04em;line-height:1.5}
.faculty-cred{font-size:10px;color:var(--green);letter-spacing:0.1em;text-transform:uppercase;margin-top:4px;font-weight:500}
.faculty-since{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10.5px;color:#085041;background:#E1F5EE;border-radius:999px;padding:2px 8px;letter-spacing:0.01em}
.faculty-since svg{flex:none}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* Programs: anchored sections */
.program-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1320px;margin:0 auto;padding:90px 0}
.program-section.reverse .program-text{order:2}
.program-section.reverse .program-photo{order:1}
.program-photo{aspect-ratio:4/5;background:#E8E5DE;border-radius:3px;overflow:hidden}
.program-photo img{width:100%;height:100%;object-fit:cover}
.campus-map{display:flex;align-items:center;justify-content:center}
.campus-map img{width:auto;max-width:100%;max-height:720px;height:auto;object-fit:contain}
.campus-rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 0 16px;margin:36px 0 64px;scrollbar-width:thin;scrollbar-color:var(--hairline) transparent}
.campus-rail::-webkit-scrollbar{height:7px}
.campus-rail::-webkit-scrollbar-track{background:transparent}
.campus-rail::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:4px}
.campus-rail .rail-item{flex:0 0 auto;height:340px;border-radius:3px;overflow:hidden;scroll-snap-align:start}
.campus-rail .rail-item img{width:auto;height:100%;object-fit:contain;display:block;border-radius:3px}
@media (max-width:768px){
  .campus-map img{max-height:560px}
  .campus-rail .rail-item{height:240px}
}
.program-eyebrow{font-size:11px;letter-spacing:0.28em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:18px}
.program-text h2{font-family:var(--serif);font-size:clamp(34px,3.6vw,48px);line-height:1.04;font-weight:400;color:var(--teal);margin-bottom:18px;letter-spacing:-0.02em}
.program-text h2 em{font-style:italic}
.program-text .age{font-family:var(--serif);font-style:italic;font-weight:600;font-size:22px;color:var(--teal);letter-spacing:0;text-transform:none;margin-top:-6px;margin-bottom:22px}
.program-text p{font-size:15.5px;line-height:1.75;color:#2A2A2A;margin-bottom:14px}
.program-day{margin-top:24px;padding-top:24px;border-top:0.5px solid var(--hairline)}
.program-day h4{font-size:11px;letter-spacing:0.22em;color:var(--green);text-transform:uppercase;margin-bottom:14px;font-weight:500}
.program-day ul{list-style:none;padding:0}
.program-day li{font-size:14px;color:#2A2A2A;line-height:1.85;padding-left:18px;position:relative}
.program-day li:before{content:'·';position:absolute;left:0;color:var(--green);font-weight:700}

/* Visit page: process steps */
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1320px;margin:0 auto}
.step{padding:32px 28px;background:#fff;border:0.5px solid var(--hairline);border-radius:4px}
.step-num{font-family:var(--serif);font-size:48px;font-weight:400;color:var(--green);line-height:1;margin-bottom:14px;font-style:italic}
.step h3{font-family:var(--serif);font-size:22px;color:var(--teal);font-weight:500;margin-bottom:10px;letter-spacing:-0.005em}
.step p{font-size:13.5px;line-height:1.65;color:var(--muted)}

/* Tuition */
.tuition-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px;padding:18px 0;border-bottom:0.5px solid var(--hairline);font-size:14px;align-items:center}
.tuition-row.header{font-size:11px;letter-spacing:0.16em;color:var(--green);text-transform:uppercase;font-weight:500;border-bottom:0.5px solid var(--teal);padding-bottom:14px}
.tuition-row .name{font-family:var(--serif);color:var(--teal);font-size:17px;font-weight:500}
.tuition-row .age{font-size:12px;color:var(--muted);letter-spacing:0.04em}
.tuition-row .fee{color:#1A1A1A;font-variant-numeric:tabular-nums}

/* FAQ */
.faq{max-width:820px;margin:0 auto}
.faq-item{padding:24px 0;border-bottom:0.5px solid var(--hairline)}
.faq-item h3{font-family:var(--serif);font-size:21px;color:var(--teal);font-weight:500;margin-bottom:12px;letter-spacing:-0.005em}
.faq-item p{font-size:14.5px;line-height:1.75;color:#2A2A2A}

/* Inquire form */
.inquire-form{max-width:680px;margin:0 auto;display:grid;gap:16px}
.inquire-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.inquire-form label{display:block;font-size:11px;letter-spacing:0.16em;color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-weight:500}
.inquire-form input,.inquire-form select,.inquire-form textarea{width:100%;padding:12px 14px;border:0.5px solid var(--hairline);border-radius:3px;font-size:16px;font-family:inherit;color:var(--teal);background:#fff}
.inquire-form textarea{min-height:120px;resize:vertical}
.inquire-form input:focus,.inquire-form select:focus,.inquire-form textarea:focus{outline:none;border-color:var(--green)}
.inquire-form button{margin-top:8px;background:var(--teal);color:#fff;padding:14px;font-size:12px;font-weight:500;border-radius:3px;border:none;cursor:pointer;letter-spacing:0.04em;font-family:inherit}

/* Living Montessori page */
.lm-tabs{display:flex;gap:0;border-bottom:0.5px solid var(--hairline);margin-bottom:48px;max-width:1320px;margin-left:auto;margin-right:auto}
.lm-tab{font-family:var(--serif);font-size:22px;color:var(--muted);padding:14px 28px 14px 0;margin-right:32px;border:none;background:transparent;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:400;letter-spacing:-0.005em}
.lm-tab.active{color:var(--teal);border-bottom-color:var(--green)}
.lm-tab em{font-style:italic}
.lm-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.lm-card{background:#fff;border:0.5px solid var(--hairline);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.lm-card-photo{aspect-ratio:5/3;background:#E8E5DE}
.lm-card-photo img{width:100%;height:100%;object-fit:cover}
.lm-card-body{padding:22px}
.lm-card-meta{font-size:9px;letter-spacing:0.24em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:10px}
.lm-card h3{font-family:var(--serif);font-size:20px;color:var(--teal);font-weight:500;line-height:1.25;margin-bottom:10px;letter-spacing:-0.005em}
.lm-card p{font-size:13px;line-height:1.65;color:var(--muted);margin-bottom:14px}
.lm-card .byline{font-size:11px;color:var(--muted);letter-spacing:0.04em}
.subscribe-row{max-width:1320px;margin:48px auto 0;background:var(--teal);color:#fff;padding:36px 40px;border-radius:4px;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.subscribe-row h3{font-family:var(--serif);font-size:24px;font-weight:400;margin-bottom:8px}
.subscribe-row p{font-size:13px;opacity:0.85;line-height:1.65}
.subscribe-row .form{display:flex;gap:8px}
.subscribe-row input{flex:1;background:rgba(255,255,255,0.95);color:var(--teal);border:none;padding:12px 14px;font-size:13px;border-radius:3px;font-family:inherit}
.subscribe-row button{background:var(--green);color:#fff;border:none;padding:12px 18px;font-size:11px;font-weight:500;letter-spacing:0.16em;border-radius:3px;cursor:pointer;font-family:inherit}

/* Reflections grid (longer-form essay layout) */
.reflections-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.refl-card{background:#fff;border:0.5px solid var(--hairline);border-radius:4px;overflow:hidden;display:grid;grid-template-columns:140px 1fr}
.refl-photo{background:linear-gradient(150deg,#9CA59E 0%,#6B736E 100%)}
.refl-photo img{width:100%;height:100%;object-fit:cover;display:block}
.refl-body{padding:22px 24px 22px 0}
.refl-meta{font-size:9px;letter-spacing:0.24em;color:var(--green);text-transform:uppercase;font-weight:500;margin-bottom:10px}
.refl-body h3{font-family:var(--serif);font-size:21px;color:var(--teal);font-weight:500;line-height:1.25;margin-bottom:10px;letter-spacing:-0.005em}
.refl-body p{font-size:13.5px;line-height:1.7;color:var(--muted);margin-bottom:12px}
.refl-byline{font-size:11px;color:var(--muted);letter-spacing:0.04em}

/* Support AMS */
.give-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.give-card{padding:36px 32px;background:#fff;border:0.5px solid var(--hairline);border-radius:4px}
.give-card h3{font-family:var(--serif);font-size:26px;color:var(--teal);font-weight:400;margin-bottom:14px;letter-spacing:-0.01em}
.give-card .lead{font-size:14.5px;line-height:1.7;color:#2A2A2A;margin-bottom:20px}
.give-card .give-cta{font-size:11px;color:var(--teal);border-bottom:1.5px solid var(--green);display:inline-block;padding-bottom:3px;font-weight:500;letter-spacing:0.02em}

/* Page header / hero (simpler than home) */
.page-head{padding:120px 56px 80px;background:#fff;border-bottom:0.5px solid var(--hairline)}
.page-head .inner{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}
.page-head h1{font-family:var(--serif);font-size:clamp(46px,5.6vw,72px);line-height:0.98;font-weight:400;color:var(--teal);letter-spacing:-0.022em}
.page-head h1 em{font-style:italic}
.page-head .lead{font-size:16px;line-height:1.75;color:#2A2A2A}

/* RESPONSIVE */
@media (max-width:1024px){
  .pillars-grid{grid-template-columns:repeat(2,1fr)}
  .visit-grid{grid-template-columns:1fr;gap:40px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px}
  .welcome-grid{grid-template-columns:1fr;gap:40px}
  .program-section{grid-template-columns:1fr;gap:32px;padding:60px 0}
  .program-section.reverse .program-text,.program-section.reverse .program-photo{order:initial}
  .process-steps{grid-template-columns:repeat(2,1fr)}
  .page-head .inner{grid-template-columns:1fr;gap:24px}
  .lm-grid{grid-template-columns:1fr 1fr}
  .reflections-grid{grid-template-columns:1fr}
  .subscribe-row{grid-template-columns:1fr}
  .give-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nav{padding:14px 20px}
  .hero-content{padding:0 24px 36px}
  .mission,.living,.visit,.pillars,.section{padding-left:24px;padding-right:24px}
  .mission,.living,.visit,.section{padding-top:80px;padding-bottom:80px}
  .pillars{padding:0 24px 60px}
  .pillars-grid{grid-template-columns:1fr 1fr;gap:14px}
  .footer-grid{grid-template-columns:1fr}
  .page-head{padding:80px 24px 56px}
  .tuition-row{grid-template-columns:1fr;gap:4px}
  .inquire-form .row{grid-template-columns:1fr}
  .lm-grid{grid-template-columns:1fr}
  .lm-tab{font-size:18px;padding:12px 0;margin-right:20px}
  /* Mobile legibility — lift small body + meta text for comfortable phone reading (same design, no layout change) */
  .pillar-link p,.pillar p,.step p,.refl-body p{font-size:15px}
  .lm-card p{font-size:14.5px}
  .faq-item p,.give-card .lead{font-size:15.5px}
  .lm-card-meta,.refl-meta{font-size:11px}
  .inquire-form label{font-size:12px}
}

/* PHOTO LIBRARY */
.photo-lib{background:var(--warm-alt);padding:60px 32px;border-top:0.5px solid var(--hairline)}
.photo-lib-head{max-width:1320px;margin:0 auto 26px}
.photo-lib h2{font-family:var(--serif);font-size:22px;color:var(--teal);font-weight:500;margin-bottom:8px}
.photo-lib p{font-size:13px;color:var(--muted);max-width:600px}
.photo-lib-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.photo-lib-grid figure{position:relative;background:#fff;border:0.5px solid var(--hairline);border-radius:3px;overflow:hidden}
.photo-lib-grid img{width:100%;aspect-ratio:1;object-fit:cover}
.photo-lib-grid figcaption{font-size:9px;letter-spacing:0;color:var(--muted);padding:6px 6px;text-align:center;background:#fff;border-top:0.5px solid var(--hairline);font-family:'SF Mono',Menlo,monospace;word-break:break-all;line-height:1.3}
@media (max-width:1024px){.photo-lib-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.photo-lib-grid{grid-template-columns:repeat(2,1fr)}}

/* Mobile: collapse inline two-column "split" sections (heading|body, and the history timeline) to one column so text isn't cramped on phones */
@media (max-width:768px){
  [style*="grid-template-columns:1fr 1.4fr"],
  [style*="grid-template-columns:1.05fr 0.95fr"],
  [style*="grid-template-columns:92px 1fr"]{grid-template-columns:1fr !important;gap:28px !important}
}
