/* Short desktop windows need a composition based on available height as well as width. */
@media(min-width:1100px) and (max-height:950px){
 .service-section,#research,#software,#outreach{padding:88px 0 64px;scroll-margin-top:0}
 .service-container{width:min(1240px,calc(100% - 96px))}
 .service-heading{margin-bottom:24px;padding-top:0!important}
 .service-eyebrow{font-size:11px;line-height:16px;margin-bottom:14px}
 .service-heading h2{font-size:clamp(38px,3.55vw,54px);line-height:1.07;max-width:880px}
 .service-section[data-state=after] .service-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);column-gap:48px;row-gap:20px;align-items:start}
 .service-section[data-state=after] .service-heading{grid-column:1;grid-row:1;margin:0}
 .service-section[data-state=after] .service-comparison{display:contents!important}
 .service-section[data-state=after] .service-copy{grid-column:1;grid-row:2;padding:0;align-self:start}
 .service-section[data-state=after] :is(.research-visual-slot,.software-visual-slot,.service-comparison>.service-placeholder){grid-column:2;grid-row:1 / span 2;align-self:start}
 .service-section[data-state=after] :is(.research-visual-slot,.software-visual-slot){display:block}
 .service-section[data-state=after] :is(.research-visual-slot,.software-visual-slot)>.service-placeholder{display:none}
 .service-section[data-state=after] .comparison-panel[hidden]{display:none}
 .comparison-toggle{width:260px;margin-bottom:22px;padding:4px}
 .comparison-toggle button{font-size:14px;line-height:20px;padding:10px 13px;min-height:40px}
 .comparison-toggle .toggle-selector{top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/2)}
 .comparison-prose{font-size:18px;line-height:1.55;max-width:none}
 .comparison-prose p+p{margin-top:16px}
 .comparison-outcome{font-size:16px;line-height:1.5;margin-top:18px;padding-top:15px;max-width:none}
 .comparison-outcome:before{top:23px}
 .service-section[data-state=before] .service-comparison,#research[data-state=before] .service-comparison,#software[data-state=before] .service-comparison{min-height:0}
 .service-section[data-state=before] .comparison-panels{padding:27px 0 32px;margin-top:0}
 .service-section[data-state=before] .comparison-prose{gap:48px}
 .service-section[data-state=before] .comparison-prose p:first-child{font-size:clamp(26px,2.3vw,33px);line-height:1.3;max-width:none}
 .service-section[data-state=before] .comparison-prose p+p{font-size:18px;line-height:1.6;padding-left:32px}
 #outreach .outreach-access{font-size:44px}
 #outreach .service-title-row{gap:18px}
 /* Keep the availability popup inside the viewport instead of opening above the section. */
 .waitlist-panel{bottom:auto;top:calc(100% + 12px);transform-origin:92% 0;clip-path:inset(0 0 60% 75% round 20px)}
 #outreach .outreach-preview{min-height:440px;height:min(550px,calc(100svh - 120px))}
 .rm-header{height:88px;padding:24px 25px 0}
 .rm-title,.research-motion[data-stage="5"] .rm-title,.research-motion[data-confirmed="true"] .rm-title{font-size:30px;line-height:1.1}
 .rm-scene{height:406px}
 .rm-footer{height:46px;min-height:46px;padding:5px 18px}
 .sm-header{height:80px;padding:22px 24px 0}
 .sm-title{font-size:30px;line-height:1.1}
 .sm-scene{height:450px}
 .sm-footer{height:46px;padding:5px 18px}
 .sm-morning{padding-top:0}.sm-morning-note{margin-top:25px!important}
 .sm-evidence-heading{margin-bottom:12px}
 .sm-source-stage{height:225px}
 .sm-sources{margin-top:8px;min-height:42px}
 .sm-source-total{margin-top:8px;padding:8px 10px}
 .sm-intro{padding-top:23px}
 .sm-overlap{padding-top:22px}
 .sm-fit{padding-top:8px}
 .sm-delivery{padding-bottom:10px}
 .mason-flower-ending{padding:24px}
 .mason-flower-panel{height:calc(100svh - 112px);max-height:760px;min-height:360px;aspect-ratio:auto;border-radius:42px}
 .mason-flower-panel h2{font-size:clamp(40px,5.8svh,64px)}
}
@media(min-width:1100px) and (max-height:720px){
 .service-heading h2{font-size:40px}
 .service-section[data-state=after] .service-container{column-gap:36px;row-gap:16px}
 .comparison-prose{font-size:17px;line-height:1.5}
 .comparison-prose p+p{margin-top:13px}
 .comparison-toggle{margin-bottom:18px}
 .comparison-outcome{font-size:15px;line-height:1.45;margin-top:14px;padding-top:12px}
 .comparison-outcome:before{top:20px}
 .rm-header{height:76px;padding-top:19px}
 .rm-title,.research-motion[data-stage="5"] .rm-title,.research-motion[data-confirmed="true"] .rm-title{font-size:28px}
 .sm-header{height:70px;padding-top:18px}.sm-title{font-size:28px}
 .sm-scene{height:418px}
 .sm-evidence-heading{margin-bottom:8px;padding-bottom:8px}
 .sm-evidence-col h4{height:46px;font-size:24px}
 .sm-source-stage{height:208px}
 .sm-document{padding-top:12px}
 .sm-file{margin-bottom:10px}
 .sm-document dl{margin-top:12px;gap:7px 5px}
 .sm-excerpt{margin-top:15px!important}
 .sm-sources{min-height:34px;margin-top:6px}
 .sm-source-total{margin-top:6px;padding:6px 10px}
 .sm-source-total>strong{font-size:24px}
 .sm-overlap{padding-top:12px}
 .sm-fit-step{padding-top:6px}
 .sm-fit-receipt{margin-top:18px}
 .sm-morning-note{margin-top:20px!important}
}
/* Tablet / narrow laptop: retain readable copy instead of squeezing two columns. */
@media(min-width:761px) and (max-width:1099px){
 .service-section,#research,#software,#outreach{padding:88px 0 64px;scroll-margin-top:0}
 .service-heading{margin-bottom:28px;padding-top:0!important}
 .service-heading h2{font-size:46px}
 .service-comparison,#research .service-comparison,#software .service-comparison{grid-template-columns:1fr;gap:30px}
 .comparison-prose,.comparison-outcome{max-width:none;font-size:18px}
 .research-visual-slot,.software-visual-slot,.service-comparison>.service-placeholder{width:min(620px,100%);justify-self:center}
 .service-section[data-state=before] .service-comparison,#research[data-state=before] .service-comparison,#software[data-state=before] .service-comparison{min-height:0}
 .service-section[data-state=before] .comparison-prose{gap:30px}
 .service-section[data-state=before] .comparison-prose p:first-child{font-size:28px}
 .service-section[data-state=before] .comparison-prose p+p{font-size:18px;padding-left:25px}
 .waitlist-panel{bottom:auto;top:calc(100% + 12px);transform-origin:92% 0;clip-path:inset(0 0 60% 75% round 20px)}
 .rm-header{height:88px;padding:22px 25px 0}.rm-title,.research-motion[data-stage="5"] .rm-title,.research-motion[data-confirmed="true"] .rm-title{font-size:30px}.rm-footer{height:46px;min-height:46px;padding:5px 18px}
 .sm-header{height:80px;padding:22px 24px 0}.sm-title{font-size:30px}.sm-scene{height:450px}.sm-footer{height:46px;padding:5px 18px}
}
