/* WordPress and WPForms integration. No admin or SEO settings are changed. */
.meri-menu{list-style:none;margin:0;padding:0;display:flex;gap:24px}.meri-menu li{margin:0;padding:0}.home-header nav .sub-menu{position:absolute;background:#fff;padding:15px;list-style:none;display:none}.home-header nav li:hover>.sub-menu,.home-header nav li:focus-within>.sub-menu{display:block}.footer-top nav .meri-menu{display:grid;grid-template-columns:1fr 1fr;gap:16px 25px}.offline-menu .meri-menu{display:grid;gap:20px}.offline-menu{border:0;background:#fff;border-radius:20px;margin:auto;padding:32px;width:min(460px,calc(100% - 32px));max-height:85vh;overflow:auto;color:var(--purple)}.offline-menu h2{font:400 30px/1.3 Georgia,serif;margin-bottom:24px}.offline-menu .button{width:100%;margin-top:24px}.offline-menu::backdrop{background:#24103966;backdrop-filter:blur(4px)}
body.admin-bar .header{top:32px}.meri-content ul,.meri-content ol{padding-left:24px;margin-block:20px}.meri-content li{margin-block:8px}.meri-content a{color:var(--purple);text-decoration:underline}.meri-content h2{margin-top:30px}.meri-content .entry-content{overflow-wrap:anywhere}.meri-content .entry-content:after{content:'';display:table;clear:both}.meri-content figure{max-width:100%}.meri-content img{height:auto}.meri-content .alignleft{float:left;margin:0 20px 20px 0}.meri-content .alignright{float:right;margin:0 0 20px 20px}.meri-post{margin-block:36px}.meri-content table{width:100%;border-collapse:collapse}.meri-content th,.meri-content td{padding:10px;border:1px solid var(--border)}
summary.faq-question{list-style:none;display:flex;justify-content:space-between;gap:20px;cursor:pointer}summary.faq-question::-webkit-details-marker{display:none}summary.faq-question:after{content:'+';font-size:23px}details[open]>summary.faq-question:after{content:'−'}
#main .application-layout{gap:50px}.meri-wpform{min-width:0;background:#fff;border:1px solid var(--border);border-radius:20px;padding:30px}.meri-wpform div.wpforms-container-full{margin:0}.meri-wpform .wpforms-field-container{display:grid;gap:22px}.meri-wpform .wpforms-field{padding:0!important}.meri-wpform .wpforms-field-label{font-size:16px!important;color:var(--purple)!important;margin-bottom:10px!important;line-height:1.6!important}.meri-wpform .wpforms-field-sublabel,.meri-wpform .wpforms-field-description{font-size:14px!important;color:var(--body)!important}.meri-wpform input:not(.choices__input):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),.meri-wpform textarea,.meri-wpform select{font:400 16px/1.6 Arial,Helvetica,sans-serif!important;border:1px solid #dcd1e7!important;border-radius:8px!important;background:#fff!important;color:var(--text)!important;max-width:100%!important;width:100%!important;padding:12px 14px!important;min-height:50px!important;box-shadow:none!important}.meri-wpform select[multiple]{min-height:190px!important}.meri-wpform .wpforms-field-row{max-width:100%!important}.meri-wpform textarea{height:auto;min-height:130px}.meri-wpform input[type=checkbox],.meri-wpform input[type=radio]{appearance:auto;accent-color:var(--purple)}.meri-wpform .wpforms-submit{background:var(--orange)!important;color:var(--purple)!important;border:0!important;border-radius:10px!important;font-size:16px!important;padding:16px 24px!important;width:100%!important;min-height:56px!important;height:auto!important}.meri-wpform .wpforms-submit:disabled{opacity:.65}.meri-wpform .choices__inner{background:#fff!important;border:1px solid #dcd1e7!important;border-radius:8px!important;min-height:52px!important}.meri-wpform .choices__list--multiple .choices__item{background:var(--purple)!important;color:#fff!important}.meri-wpform .choices__list--dropdown{background:#fff!important;z-index:30!important}.meri-wpform .wpforms-error{color:#a31b30!important;font-size:14px!important}.meri-wpform .wpforms-confirmation-container-full{padding:24px!important;border:1px solid var(--border)!important;background:var(--lilac)!important;color:var(--purple)!important}.meri-wpform .application-privacy-link{margin-top:24px;margin-bottom:0}.meri-form-selection-note{font-size:14px;color:var(--body);margin-bottom:20px}
@media(max-width:782px){body.admin-bar .header{top:46px}}@media(max-width:600px){body.admin-bar .header{top:0}.meri-wpform{padding:24px 18px}.meri-wpform .wpforms-field-row{display:flex;flex-direction:column;gap:16px}.meri-wpform .wpforms-field-row-block{width:100%!important;margin-left:0!important}#main .application-layout{gap:28px}.meri-content .alignleft,.meri-content .alignright{float:none;margin:20px 0}}

/* Keep media inside its grid track, including WordPress responsive images. */
#main .approach-grid > * { min-width: 0; }
#main .family-photo {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  height: clamp(460px, 42vw, 660px);
  aspect-ratio: auto;
  overflow: hidden;
  border-radius: 24px;
  isolation: isolate;
}
#main .family-photo > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
#main .family-photo figcaption { max-width: calc(100% - 50px); }
@media (min-width: 901px) {
  #main .approach-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
}
@media (max-width: 900px) {
  #main .approach-grid { grid-template-columns: minmax(0, 1fr); }
  #main .family-photo { height: 440px; }
}
@media (max-width: 600px) {
  #main .family-photo { height: 350px; border-radius: 18px; }
  #main .family-photo figcaption { max-width: calc(100% - 30px); }
}

/* Quiet interaction feedback: no translated text, cards or arrows. */
.button, .button:hover, #main .service-card, #main .service-card:hover,
#main .photo-direction, #main .photo-direction:hover,
.text-arrow svg, .text-arrow:hover svg, .service-link svg, .service-link:hover svg {
  transform: none;
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .button { transition: background-color 180ms ease, box-shadow 180ms ease; }
  #main .service-card, #main .photo-direction { transition: box-shadow 200ms ease, border-color 200ms ease; }
  @media (hover: hover) and (pointer: fine) {
    #main .service-card:hover, #main .photo-direction:hover { box-shadow: 0 8px 24px #3e009409; }
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, #main .service-card, #main .photo-direction, .text-arrow svg, .service-link svg { transition: none; }
}
@media print {
  #main .family-photo { break-inside: avoid; }
}
@media (max-width: 600px) {
  #main .school-symbol > span { min-width: 0; overflow-wrap: anywhere; }
  #main .school-symbol > span br { display: initial; }
  #main .school-symbol > svg { flex-shrink: 0; }
}

/* Mobile layout: keep contact details on separate rows, without shrinking the address. */
@media (max-width: 900px) {
  #main .address-inner {
    display: grid;
    grid-template-columns: 45px minmax(0, 1fr);
    align-items: start;
    gap: 16px 18px;
  }
  #main .address-icon { width: 45px; height: 45px; }
  #main .address-inner > div:nth-child(2) { min-width: 0; width: 100%; }
  #main .address-inner > .text-arrow {
    grid-column: 2;
    justify-self: start;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    overflow-wrap: anywhere;
    white-space: normal;
  }
  #main .address-inner > .text-arrow svg { flex-shrink: 0; }
  #main .address-inner h3 { line-height: 1.5; }
  #main .address-inner p { line-height: 1.65; }
}
@media (max-width: 600px) {
  #main .hero-copy { min-width: 0; padding-block: 26px 30px; }
  #main .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(34px, 9vw, 44px);
    line-height: 1.12;
    letter-spacing: -.035em;
    margin-block: 18px;
    text-wrap: balance;
  }
  #main .hero-copy p.lead { font-size: 16px !important; line-height: 1.65; margin-block: 0 22px; }
  #main .hero-copy .eyebrow { font-size: 10px; letter-spacing: 1px; line-height: 1.5; }
  #main .section h2, #main .approach-copy h2, #main .school-copy h2, #main .faq-grid h2,
  #main .contact-copy h2 {
    font-size: clamp(28px, 8vw, 34px);
    line-height: 1.18;
    letter-spacing: -.025em;
    text-wrap: balance;
    overflow-wrap: break-word;
  }
  #main .section-heading { margin-bottom: 26px; }
  #main .section-heading > p { margin-top: 16px; font-size: 15px; line-height: 1.65; }
  #main .section { padding-block: 40px; }
  #main .school-section { padding: 26px 22px; }
  #main .school-copy p, #main .section-intro { font-size: 16px; line-height: 1.65; }
  #main .address-inner { padding-block: 26px; gap: 14px; }
  #main .address-inner > .text-arrow { grid-column: 1 / -1; font-size: 15px; }
  #main .address-inner .eyebrow { line-height: 1.5; }
  #main .address-inner h3 { font-size: 17px; margin-top: 8px; }
  #main .address-inner p { font-size: 14px; margin-top: 8px; }
}

/* WordPress wraps menu links in a list: use a single grid, not two nested grids. */
.home-footer .footer-top > nav { display: block; min-width: 0; width: 100%; align-self: center; }
.home-footer .footer-top nav .meri-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 20px;
  width: 100%;
}
.home-footer .meri-menu > li { min-width: 0; }
.home-footer .meri-menu a { display: block; padding-block: 8px; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .home-footer .footer-top { gap: 24px; }
  .home-footer .footer-top > nav { align-self: stretch; }
  .home-footer .footer-top nav .meri-menu { gap: 4px 16px; }
  .home-footer .meri-menu a { min-height: 44px; padding-block: 10px; font-size: 14px; }
  .home-footer .footer-contact { gap: 8px; }
  .home-footer .footer-contact a { max-width: 100%; overflow-wrap: anywhere; line-height: 1.5; padding-block: 6px; }
  .home-footer .footer-bottom { align-items: flex-start; gap: 16px; padding-block: 20px; }
  .home-footer .footer-legal { min-width: 0; max-width: 100%; gap: 12px; }
  .home-footer .footer-legal a { overflow-wrap: anywhere; line-height: 1.6; }
}

#services, #approach { position: relative; }
.meri-legacy-anchor { position: absolute; inset: 0 auto auto 0; width: 0; height: 0; pointer-events: none; }
#main, #main [id] { scroll-margin-top: var(--meri-anchor-offset, 110px); }
html.meri-menu-open { overflow: hidden; }
#meri-mobile-menu .meri-menu { gap: 4px; }
#meri-mobile-menu nav a { display: block; padding: 12px 14px; border-radius: 10px; min-height: 44px; line-height: 1.5; }
#meri-mobile-menu nav a:hover, #meri-mobile-menu nav a:focus-visible { background: var(--lilac); }
#meri-mobile-menu nav a:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
  #meri-mobile-menu::backdrop { animation: meri-backdrop-in 180ms ease-out; }
  #meri-mobile-menu nav a { transition: background-color 180ms ease; }
  @keyframes meri-backdrop-in { from { background-color: #24103944; } to { background-color: #24103966; } }
}
/* Anchor spacing is handled once, by the target's dynamic scroll margin. */
html { scroll-padding-top: 0; }

/* Reserve the scrollbar space so opening the dialog does not shift the page. */
html { scrollbar-gutter: stable; }

/* Native details owns visibility; the old plugin's generic FAQ selector cannot match. */
#main details.faq-item[open] > .meri-faq-answer { display: block; height: auto; visibility: visible; }
#main details.faq-item:not([open]) > .meri-faq-answer { display: none; }

/* Tighter spacing while keeping readable section boundaries. */
#main .section { padding-block: clamp(44px, 4vw, 64px); }
#main .faq-section { padding-block: 52px; }
#main .faq-list { gap: 0; }
#main .faq-question { padding-block: 15px !important; font-size: 17px !important; }
#main .meri-faq-answer {
  max-width: 66ch;
  font-size: 17px !important;
  line-height: 1.65 !important;
  padding-bottom: 16px !important;
}
#main .school-section { padding: 40px 44px; gap: clamp(32px, 4vw, 64px); }
#main .process-note { margin-top: 26px; padding-top: 18px; }
#main .contact-section { gap: clamp(32px, 4vw, 64px); align-items: start; }
#main .contact-copy > .section-intro { margin-top: 18px; }
#main .contact-phone { margin-top: 22px; }
#main .contact-links { margin-top: 16px; }
#main .request-card { padding: 28px; }
#main .application-invite > p { margin-block: 12px 18px; line-height: 1.65; }
#main .application-invite ul { margin-block: 18px; gap: 12px; }
#main .application-invite > .form-note { margin-bottom: 0; }
@media (max-width: 600px) {
  #main .section, #main .faq-section { padding-block: 34px; }
  #main .school-section { padding: 24px 22px; gap: 20px; }
  #main .contact-section { gap: 24px; }
  #main .request-card { padding: 24px 20px; }
  #main .meri-faq-answer { font-size: 16px !important; line-height: 1.65 !important; }
  #main .faq-question { padding-block: 14px !important; font-size: 16px !important; }
}
@media (prefers-reduced-motion: no-preference) {
  #main .meri-reveal-pending { opacity: 0; transform: translateY(8px); }
}
@media print {
  #main .meri-reveal-pending { opacity: 1 !important; transform: none !important; }
}

/* Keep intrinsic form controls inside their grid track, including Safari. */
#main .application-layout > * { min-width: 0; }
.meri-wpform .wpforms-field-container { grid-template-columns: minmax(0, 1fr); }
.meri-wpform .wpforms-field,
.meri-wpform .wpforms-field-row,
.meri-wpform .wpforms-field-row-block,
.meri-wpform .choices,
.meri-wpform .choices__inner { min-width: 0 !important; max-width: 100% !important; }
.meri-wpform .wpforms-field-row,
.meri-wpform .choices { width: 100% !important; }
.meri-wpform input, .meri-wpform textarea, .meri-wpform select,
.meri-wpform .choices, .meri-wpform .choices__inner { box-sizing: border-box !important; }
.meri-wpform .choices__list--multiple .choices__item { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.meri-wpform input.choices__input {
  width: 100% !important; min-width: 0 !important; max-width: 100% !important;
  min-height: 28px !important; height: auto !important; padding: 4px !important;
  margin: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: transparent !important;
}
.meri-wpform .choices__list--dropdown { box-sizing: border-box; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .meri-wpform .choices.wpforms-field-row { display: block; }
}
