/*
 * Responsive composition refinements.
 * The tablet range gets its own reading layout rather than a compressed desktop.
 * Existing colors, typefaces, artwork and interactive contracts are unchanged.
 */
@media screen {
  :is(.sv-hero-copy,.sv-split-content,.sv-section-intro,.sv-contact-copy,
      .sv-contact-office,.sv-contact-purposes,.sv-footer-identity,
      .sv-footer-contact,.sv-guide-section-intro,.sv-guide-panel){min-width:0}
  :is(.sv-rich-text,.sv-planner-intro,.sv-study-detail-intro){text-wrap:pretty}
  :is(.sv-actions,.sv-form-actions,.sv-contact-purpose-content) .wp-block-button{max-width:100%}
  :is(.sv-actions,.sv-form-actions) :is(.wp-block-button__link,.sv-button){max-width:100%;white-space:normal;text-align:left}
  :is(.sv-actions,.sv-form-actions) :is(.wp-block-button__link,.sv-button)::after{flex:none}
  .sv-contact-purpose-content>.sv-button{margin-top:22px}
  .sv-office-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px}
  .sv-office-actions>.sv-tool-button{max-width:100%;min-height:46px;text-align:left;line-height:1.5}
  .sv-office-actions>.sv-tools-message{flex-basis:100%;padding:0;border:0;background:none;margin:0;font-size:15px;line-height:1.65}
  .sv-address-fallback{display:block;flex-basis:100%;width:100%;min-width:0;min-height:118px;padding:13px 15px;border:1px solid var(--sv-border-strong);border-radius:4px;background:var(--sv-surface-raised);color:var(--sv-text);font:400 16px/1.6 var(--sv-sans);resize:vertical}
  .sv-contact-purpose-content>.sv-purpose-call{color:var(--sv-action-text);display:flex;width:fit-content;max-width:100%;justify-content:space-between;gap:18px;margin-top:24px;text-align:left;white-space:normal}
  .sv-contact-purpose-content>.sv-contact-availability{font-size:15px;line-height:1.7;color:var(--sv-text-muted);margin-top:16px;max-width:52ch}
  .sv-contact-office .sv-contact-email{display:inline-block;max-width:100%;overflow-wrap:anywhere}

  /* Repeated section introductions keep a comfortable reading measure. */
  .sv-steps .sv-section-intro>.sv-rich-text,
  .sv-principles .sv-section-intro>.sv-rich-text,
  .sv-faqs .sv-section-intro>.sv-rich-text{max-width:52ch}
  .sv-page-index{column-gap:clamp(18px,2.6vw,36px);row-gap:4px}
  .sv-page-index a{line-height:1.45}
}

@media screen and (min-width:701px) and (max-width:900px) {
  .sv-hero-grid,.sv-hero-interior .sv-hero-grid{grid-template-columns:minmax(0,1fr);min-height:0;gap:0}
  .sv-hero-copy{padding:52px 0 44px;max-width:650px}
  .sv-hero-title{font-size:clamp(64px,8.8vw,76px);max-width:14ch}
  .sv-hero-copy>.sv-rich-text{max-width:53ch;font-size:18px}
  .sv-hero .sv-actions{margin-top:28px!important}
  .sv-hero-visual{height:390px;margin-inline:calc(-1*var(--sv-gutter))!important}
  .sv-hero-image img{object-position:50% 43%}
  .sv-hero-interior .sv-hero-copy{padding:48px 0 36px}
  .sv-hero-interior .sv-hero-title{font-size:60px;max-width:17ch}
  .sv-hero-interior .sv-hero-visual{height:340px;margin:0 0 34px!important}
  .sv-hero-interior .sv-hero-grid:not(:has(.sv-hero-visual)) .sv-hero-copy{display:block;max-width:690px;padding:48px 0}
  .sv-hero-interior .sv-hero-grid:not(:has(.sv-hero-visual)) .sv-rich-text{margin-top:26px;max-width:58ch}
  .sv-page-about .sv-hero-copy{padding-block:60px!important}
  .sv-page-about .sv-hero .sv-hero-title{font-size:64px;max-width:16ch}
  .sv-page-contact .sv-hero .sv-hero-copy{padding-block:48px!important}

  .sv-split-grid,.sv-steps-grid,.sv-principles-grid,.sv-faq-grid,.sv-contact-grid,.sv-inquiry-grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .sv-split-content{order:0!important}
  .sv-split-content .sv-heading{max-width:21ch}
  .sv-split-content>.sv-rich-text{max-width:64ch}
  .sv-split-media,.sv-split-right .sv-split-media{order:1!important;aspect-ratio:1.8;max-height:420px;width:100%}
  .sv-split-grid:not(:has(.sv-split-media)) .sv-split-content,
  .sv-page-home .sv-split-grid:not(:has(.sv-split-media)) .sv-split-content{display:block;padding-bottom:58px}
  .sv-split-grid:not(:has(.sv-split-media)) .sv-rich-text{margin-top:24px;max-width:64ch}
  .sv-page-home .sv-split-grid:not(:has(.sv-split-media)) .sv-heading{max-width:21ch}
  .sv-page-home .sv-split-grid:not(:has(.sv-split-media)) .sv-rich-text{font-size:19px}
  .sv-page-home .sv-split-grid:not(:has(.sv-split-media)) .sv-eyebrow{max-width:none}
  .sv-page-home .sv-split-grid:not(:has(.sv-split-media)) .sv-actions{margin-top:26px!important}
  .sv-steps .sv-section-intro{margin-bottom:0!important;max-width:650px}
  .sv-detail-image{display:none}
  .sv-principles .sv-section-intro,.sv-faqs .sv-section-intro{max-width:650px}
  .sv-page-home .sv-principles .sv-items{grid-template-columns:1fr}
  .sv-page-home .sv-principle{display:grid;grid-template-columns:40px minmax(0,1fr);gap:0 22px;padding:26px 0}
  .sv-page-home .sv-principle::before{position:static;grid-column:1;grid-row:1/3;margin:4px 0 0}
  .sv-page-home .sv-principle .sv-rich-text{grid-column:2;max-width:64ch}
  .sv-contact-band .sv-heading{max-width:20ch}
  .sv-contact-band .sv-rich-text{max-width:57ch}
  .sv-contact-band .sv-contact-grid{gap:28px}
  .sv-page-index>span{flex-basis:100%;margin:0}
}

/* Contact details become a compact office spread before the purpose routes. */
@media screen and (min-width:601px) and (max-width:1100px) {
  .sv-concierge{grid-template-columns:minmax(0,1fr);gap:42px}
  .sv-contact-office{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:36px;align-items:start;padding:32px}
  .sv-contact-office>.sv-eyebrow{grid-column:1;grid-row:1;margin-bottom:18px!important}
  .sv-contact-office>h2{grid-column:1;grid-row:2;max-width:13ch;font-size:39px;margin-bottom:20px}
  .sv-contact-office>.sv-contact-intro{grid-column:1;grid-row:3;max-width:35ch;margin-bottom:20px}
  .sv-concierge .sv-contact-office>.sv-contact-phone{grid-column:1;grid-row:4;font-size:clamp(25px,3vw,30px);margin:0}
  .sv-contact-office>.sv-contact-location{grid-column:2;grid-row:1/5;border-top:0;border-left:1px solid var(--sv-border);padding-left:30px;margin-top:0;align-self:stretch}
  .sv-contact-office .sv-contact-location address{margin:0;font-size:20px;line-height:1.65}
  .sv-contact-office .sv-contact-location .sv-text-link{margin-top:22px}
  .sv-contact-office>.sv-contact-note{grid-column:1/-1;grid-row:5;border-top:1px solid var(--sv-border);padding-top:22px;margin-top:26px;max-width:80ch}
  .sv-contact-office .sv-office-actions>.sv-tool-button{width:100%;justify-content:space-between}
  .sv-contact-purposes>h2{margin-bottom:28px}
  .sv-contact-purpose-content>p{max-width:67ch}
}

/* Useful controls get a complete line when three columns become too narrow. */
@media screen and (min-width:601px) and (max-width:900px) {
  .sv-saved-view-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
  .sv-saved-view-fields>.sv-tool-button{grid-column:1/-1;justify-self:start;min-width:128px}
}
@media screen and (min-width:751px) and (max-width:1000px) {
  .sv-compare-builder{grid-template-columns:minmax(0,1fr);gap:19px;padding:26px}
  .sv-compare-builder>.sv-button{justify-self:start;min-width:210px}
  .sv-question-groups{grid-template-columns:minmax(0,1fr);gap:27px}
}
@media screen and (min-width:801px) and (max-width:1000px) {
  .sv-guide-section{grid-template-columns:minmax(0,1fr);gap:30px;padding-block:52px}
  .sv-guide-section-intro h2{max-width:23ch}
  .sv-guide-section-intro p:not(.sv-eyebrow){max-width:63ch}
  .sv-finder-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* A two-column footer works between phone and full desktop widths. */
@media screen and (min-width:541px) and (max-width:1100px) {
  .sv-footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 50px}
  .sv-footer-identity{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:28px;border-bottom:1px solid var(--sv-on-brand-border);padding-bottom:32px}
  .sv-footer-identity>.sv-footer-tagline{font-size:34px;margin:0!important;max-width:12ch}
  .sv-footer-title{margin-bottom:18px!important}
  .sv-footer-nav{gap:8px}
  .sv-footer-bottom{margin-top:36px!important}
}

@media screen and (max-width:600px) {
  .sv-contact-office{padding:26px}
  .sv-contact-office address{font-size:20px;line-height:1.65}
  .sv-contact-purpose{padding-block:24px}
  .sv-contact-purpose summary{font-size:19px;line-height:1.5;padding-right:30px}
  .sv-inquiry-unavailable{padding:25px}
  .sv-guide-hero{gap:28px}
  .sv-guide-index{padding:22px 25px}
  .sv-guide-index a{min-height:58px;padding-block:14px}
  .sv-planner-nav{column-gap:22px}
  .sv-form :is(input,select,textarea){min-width:0;max-width:100%}
}
@media screen and (max-width:370px) {
  .sv-contact-office{padding:22px}
  .sv-contact-office .sv-contact-phone{font-size:25px}
  .sv-contact-office h2{font-size:35px}
  .sv-guide-index{padding-inline:20px}
  .sv-planner-nav a{font-size:14px}
  .sv-form-actions>.sv-button{width:100%;justify-content:space-between}
}
