/* Typography only: existing text and images are preserved. */
@media(max-width:1079px){
 main p{font-size:clamp(16px,1.8vw,18px);line-height:1.95;letter-spacing:.025em;line-break:strict;word-break:normal;overflow-wrap:break-word;text-align:left}
 main h3,main .catchcopy{font-size:clamp(21px,3vw,26px);line-height:1.65;letter-spacing:.025em;line-break:strict;word-break:normal;text-wrap:balance}
 main .section-title{gap:12px;flex-wrap:wrap;align-items:baseline}
 main .section-title h2{font-size:clamp(40px,7vw,58px);line-height:1.15}
 main .section-title h4{font-size:15px;line-height:1.7}
 main :is(.content__text,.contact__text,.message__box,.value-card__text,.interview-question__answer-text,.recruit-message__text){text-align:left;max-width:40em}
 main :is(.content__text,.contact__text,.message__box,.value-card__text,.interview-question__answer-text,.recruit-message__text) br{display:none}
 main :is(.content__text,.contact__text){gap:18px}
 main :is(.content__text-box,.contact__text-box){gap:22px;min-width:0;width:100%}
 main .content__text p,main .contact__text p{margin:0}
 .home #service .content__text{text-align:left}
 main .value-card__text{font-size:16px;line-height:1.95}
 main .interview-question__answer-text{font-size:16px;line-height:1.95}
 main .interview-question__text{font-size:18px;line-height:1.7}
 main .job-info__content,main .service-card__meta{font-size:16px;line-height:1.95;text-align:left;min-width:0}
 main .company-info :is(th,td){font-size:15px;line-height:1.9;overflow-wrap:anywhere}
 main #access h3{font-size:20px;line-height:1.8;text-wrap:balance}
 main #access p{font-size:15px;line-height:1.9}
 main .privacy-policy-content{font-size:16px;line-height:1.95;text-align:left}
 main .privacy-policy-content :is(li,a){font-size:16px;line-height:1.95;overflow-wrap:anywhere}
 main .contact-form :is(label,input,textarea,select){font-size:16px;line-height:1.7}
 #fv .fv__text p{font-size:clamp(14px,3.7vw,28px);line-height:2;letter-spacing:normal;text-align:start}
 .sp-header-nav__menu{max-height:100dvh;overflow-y:auto;padding:85px 20px 38px}
 .sp-header-nav__menu nav ul{gap:24px}.sp-header-nav__menu a{font-size:17px;line-height:1.7}.sp-header-nav__menu .sh-availability-menu{max-width:240px;text-align:center}
 .footer__nav a{font-size:15px;line-height:1.7}.footer__nav ul{gap:24px}
}
@media(max-width:380px){.header__logo-link{gap:8px}.header__inner{padding-left:12px;padding-right:12px}.logo-text img{width:52vw}.hamburger{width:46px;height:46px}.hamburger span{width:26px}.hamburger_linetop{top:13px}.hamburger_linebottom{bottom:13px}main .section__inner{max-width:88%}}

@media(max-width:1079px){main .interview{width:100%;min-width:0}main .interview__head{max-width:100%;min-width:0}main .interview__heading{max-width:100%;flex-wrap:wrap;justify-content:center}main .interview__label{font-size:clamp(30px,6vw,48px);line-height:1.4}main .interview__questions{min-width:0;grid-template-columns:minmax(0,1fr)}main .interview-question__answer{min-width:0}main .interview-question__title{font-size:17px;line-height:1.8}main .recruit-message__text h4{font-size:18px;line-height:1.95;text-align:left}}

/* Phone layout: keep the site's paper colours and illustrations, separate text from photos. */
@media(max-width:767px){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 main p{font-size:16px;line-height:1.85;letter-spacing:.025em;overflow-wrap:break-word}
 main .section__inner{width:calc(100% - 40px);max-width:560px}
 main .section-title{gap:8px 12px;align-items:baseline;margin-bottom:22px}
 main .section-title h2{font-size:34px;line-height:1.2}
 main .section-title h4{font-size:14px;line-height:1.7;letter-spacing:.02em}
 main h3,main .catchcopy{font-size:22px;line-height:1.6;letter-spacing:.025em;text-wrap:pretty}
 main :is(.content__text,.content__text-box,.contact__text,.contact__text-box,.job-info__content){min-width:0;width:100%}
 main :is(.content__text,.contact__text){gap:16px}
 main :is(.content__text p,.contact__text p){margin:0}
 main :is(.job-info__content,.service-card__meta,.interview-question__answer-text){font-size:16px;line-height:1.85}
 main .job-info__item{gap:12px;padding-top:18px;padding-bottom:18px}
 main .job-info__label{font-size:15px;line-height:1.6;white-space:normal}
 main .interview-question__title{font-size:17px;line-height:1.65}
 main .interview__label{font-size:30px;line-height:1.3}
 main .interview-question__answer{padding:20px}
 main .sh-trial p,main .sh-trial__examples p{font-size:16px;line-height:1.85}
 main .sh-trial .sh-trial-kicker{font-size:14px;line-height:1.7}
 main .sh-trial__conditions dt,main .sh-trial__notes li,main .sh-trial .sh-trial__office{font-size:14px;line-height:1.8}
 main .sh-trial__reassurance span,main .sh-trial__line span{font-size:14px;line-height:1.8}
 main.sh-availability-page .sh-hero-lead,main.sh-availability-page .sh-hero-note,main.sh-availability-page .sh-partner-contact p{font-size:16px!important;line-height:1.85!important}
 main.sh-availability-page .sh-table-note{font-size:14px!important;line-height:1.85!important}
 main.sh-availability-page .sh-sync-controls p{font-size:13px!important}
 main.sh-availability-page .sh-legend{font-size:13px;line-height:1.7}
 main.sh-availability-page .sh-availability-table tbody th{font-size:12px;letter-spacing:0}
 main.sh-availability-page .sh-view-controls button,main.sh-availability-page .sh-day-select select{font-size:14px;min-height:40px}
 #fv{padding:20px 0 48px;margin:0;min-height:0;height:auto;overflow:visible}
 #fv .section__inner{position:relative;display:flex;flex-direction:column;width:calc(100% - 40px);max-width:560px;height:auto;min-height:0;margin:0 auto}
 #fv .fv-copy{order:0;position:static;inset:auto;display:flex;flex-direction:column-reverse;align-items:flex-start;justify-content:flex-start;width:100%;height:auto;gap:4px;margin:0 0 20px;transform:none}
 #fv .fv-copy h2{writing-mode:horizontal-tb;position:static;inset:auto;transform:none;width:auto;height:auto;white-space:normal;font-size:clamp(24px,6.4vw,30px);line-height:1.65;letter-spacing:.035em;text-indent:0;margin:0}
 #fv .fv-copy h2:first-child{margin-left:-.7em}
 #fv .fv__bg{order:1;position:relative;width:100%;height:clamp(220px,67vw,340px);margin:0 0 24px;isolation:isolate}
 #fv .fv__bg picture{display:none}
 #fv .fv__photo{position:absolute;inset:auto;max-width:none;height:auto;object-fit:contain;transform:none}
 #fv .fv__photo.photo_02{width:59%;top:0;right:0;z-index:2}
 #fv .fv__photo.photo_01{width:43%;bottom:4px;left:0;z-index:1}
 #fv .fv__photo.photo_03{width:52%;bottom:0;right:7%;z-index:3}
 #fv .fv__text{order:2;position:static;inset:auto;transform:none;display:grid;grid-template-columns:minmax(0,1fr);width:100%;height:auto;margin:0;gap:16px;justify-content:normal}
 #fv .fv__text p{writing-mode:horizontal-tb;position:static;inset:auto;transform:none;width:100%;max-width:none;height:auto;font-size:16px;line-height:1.9;letter-spacing:.025em;text-align:left;white-space:normal;margin:0;padding:0}
 #fv .fv__text p br{display:none}
 .sh-story__flyer{width:82%}
 .sh-story__viewport{height:calc((100vw - 20px)*.41 + 26px)}
 .sh-story__controls button:not([data-story-index]){min-width:36px;min-height:36px}
 .sh-story__campaign{font-size:24px;line-height:1.5;letter-spacing:.06em}
 #access .section__inner{width:calc(100% - 40px)}
 #access h3{font-size:19px;line-height:1.8;letter-spacing:.01em}
 #access p{font-size:15px;line-height:1.85}
 .footer__nav ul{gap:16px 24px}
 .footer__nav a{font-size:14px;line-height:1.75}
 body .sh-availability-float{padding:10px 13px;min-height:44px;max-width:calc(100vw - 24px);right:12px;bottom:calc(12px + env(safe-area-inset-bottom));border-radius:16px 16px 5px 16px;gap:8px}
 body .sh-availability-float small{display:none}
 body .sh-availability-float strong{font-size:13px;line-height:1.6;letter-spacing:.015em;white-space:nowrap}
 body .sh-availability-float strong br{display:none}
}
@media(max-width:360px){
 main .section__inner,#fv .section__inner{width:calc(100% - 32px)}
 main .section-title h2{font-size:31px}
 #fv .fv-copy h2{font-size:23px}
 main h3,main .catchcopy{font-size:21px}
}
