/* Responsive readability, portrait composition and touch controls. */
@media screen and (max-width:940px) {
  input,select,textarea{font-size:16px;min-height:50px;scroll-margin-block:120px}
  .navigation{max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);overflow-y:auto;overscroll-behavior:contain}
  .navigation a{font-size:16px;min-height:50px;display:flex;align-items:center}
  .menu-toggle{min-width:48px;min-height:48px}
  .booking-tabs button{min-height:52px;font-size:14px}
  .expert-card>img{object-position:50% 8%}
}

@media screen and (max-width:760px) {
  html{scroll-padding-top:90px;scroll-padding-bottom:110px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{font-size:16px}
  .wrap{width:calc(100% - 40px);max-width:calc(100% - 40px - env(safe-area-inset-left) - env(safe-area-inset-right))}
  .header{padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);backdrop-filter:none;background:#fff}
  .header-inner{width:calc(100% - 36px);min-height:72px;gap:16px}
  .header .brand img{width:155px}
  .header .brand>span{font-size:9px;letter-spacing:.04em}
  .header-cta{display:none}
  .menu-toggle{margin-left:auto;width:48px;height:48px;flex-shrink:0}
  .menu-toggle span{width:21px;height:2px}
  .navigation{top:72px;padding:12px max(20px,env(safe-area-inset-left)) 18px}
  .navigation a{font-size:16px;padding:12px 0;border-bottom:1px solid var(--line)}
  .navigation a:last-child{border-bottom:0}
  .hero{padding-top:26px;gap:24px}
  .hero-copy,.hero-visual,.section-heading>*,.booking-copy,.expert-copy,.facts>*{min-width:0}
  .hero-copy>.eyebrow{font-size:11px;letter-spacing:.025em;line-height:1.7;align-items:baseline}
  .hero h1{font-size:clamp(42px,11.8vw,70px);line-height:1.05;letter-spacing:-.045em;margin-top:20px}
  .hero-intro{font-size:17px;line-height:1.6}
  .hero-description{font-size:15px;line-height:1.8;max-width:100%}
  .hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:24px}
  .hero-actions .button{min-height:54px;font-size:15px;justify-content:space-between}
  .hero-actions .text-link{font-size:14px;min-height:48px;justify-content:center}
  .micro-note{font-size:12px;line-height:1.7;margin-top:9px}
  .hero-experts{font-size:12px;line-height:1.7;min-height:44px;margin-top:5px;align-items:center}
  .hero-experts>span{flex-shrink:0}
  .hero-visual{min-height:0;height:clamp(310px,94vw,440px);max-height:none;border-bottom-right-radius:46px}
  .hero-visual figcaption{left:24px;right:24px;bottom:25px}
  .hero-visual figcaption>span:last-child{font-size:13px;line-height:1.7}
  .portrait-label{font-size:11px}
  .hero-corner{width:46px;height:46px;font-size:26px}
  .facts{column-gap:16px;row-gap:21px}
  .facts>p{padding-right:14px}
  .facts strong{font-size:21px;line-height:1.35;overflow-wrap:break-word}
  .facts p>span{font-size:12px;line-height:1.7;margin-top:7px}
  .facts>a{font-size:13px;line-height:1.7}
  .circle-arrow{width:36px;height:36px}
  .section{padding-block:54px}
  .section-top{margin-bottom:26px}
  .eyebrow{font-size:11px;letter-spacing:.09em}
  h2,.about h2,.booking h2{font-size:clamp(32px,9.1vw,44px);line-height:1.14;letter-spacing:-.035em;overflow-wrap:break-word}
  .section-heading>p,.workshop-copy>p,.about-copy>p,.booking-copy>p:not(.eyebrow){font-size:15px;line-height:1.85}
  .section-heading{gap:20px}
  .usecases article{grid-template-columns:32px minmax(0,1fr);column-gap:13px;padding-bottom:25px}
  .usecases article>p:not(.eyebrow),.path-steps p{font-size:15px;line-height:1.8}
  .usecases .eyebrow{font-size:11px;letter-spacing:.06em}
  .usecases h3,.path-steps h3{font-size:24px;line-height:1.2}
  .example{font-size:12px;line-height:1.7}
  .usecase-bottom p{font-size:14px}
  .text-link,.path-steps a{font-size:14px;min-height:48px}
  .workshop-copy h2{font-size:clamp(34px,9.8vw,46px);line-height:1.14}
  .workshop-copy>.workshop-audience,.workshop-time>p{font-size:13px;line-height:1.8}
  .workshop-offer{padding:24px 21px}
  .offer-label{flex-wrap:wrap}
  .offer-label .eyebrow,.pill{font-size:11px}
  .workshop-steps li{gap:12px;padding-block:21px}
  .workshop-steps h3{font-size:21px;line-height:1.3}
  .workshop-steps p{font-size:14px;line-height:1.8}
  .price{flex-wrap:wrap;gap:12px 20px}
  .price>span,.price-note,.offer-note{font-size:12px;line-height:1.75}
  .price>strong{font-size:48px}
  .button,.button-full{min-height:54px;font-size:15px;padding:15px 18px;gap:14px}
  .button>span{flex-shrink:0}
  .about-visual{min-height:0;height:clamp(280px,85vw,390px)}
  .about-visual figcaption{font-size:13px}
  .about-copy>.eyebrow{font-size:11px}
  .about-copy>.lead{font-size:18px;line-height:1.6}
  .brand-principles{gap:14px;font-size:20px}
  .experts{padding-bottom:54px}
  .expert-grid{grid-template-columns:1fr;gap:22px}
  .expert-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:0 19px;padding:22px;align-items:start;background:var(--soft)}
  .expert-card>img{grid-column:1;grid-row:1 / 4;width:112px;height:154px;min-height:0;border-radius:3px;object-fit:cover;object-position:50% 12%}
  .expert-copy{display:contents}
  .expert-copy>.eyebrow{grid-column:2;grid-row:1;font-size:10px;letter-spacing:.03em;line-height:1.6;margin:0}
  .expert-copy h3{grid-column:2;grid-row:2;font-size:28px;line-height:1.12;margin:9px 0;overflow-wrap:normal}
  .expert-copy>.expert-specialty{grid-column:2;grid-row:3;font-size:12px;line-height:1.6;margin:0}
  .expert-copy>p:not(.eyebrow):not(.expert-specialty):not(.expert-experience){grid-column:1 / -1;grid-row:4;font-size:15px;line-height:1.85;margin-top:22px}
  .expert-copy>.expert-experience{grid-column:1 / -1;grid-row:5;font-size:13px;line-height:1.75;margin-top:18px;padding-top:16px}
  .experts-next{gap:20px;padding-top:26px}
  .experts-next h3{font-size:24px;line-height:1.25}
  .experts-next p{font-size:15px;line-height:1.8}
  .experts-next .button{font-size:14px;width:100%;justify-content:space-between}
  .path-steps li{grid-template-columns:35px minmax(0,1fr);gap:0 14px}
  .responsibility{padding:23px 18px;gap:12px}
  .responsibility h3{font-size:20px;line-height:1.4}
  .responsibility p{font-size:14px;line-height:1.8}
  .faq>div>p:not(.eyebrow){font-size:15px}
  .faq-list summary{font-size:15px;line-height:1.65;gap:18px;min-height:60px}
  .faq-list details>p{font-size:15px;line-height:1.85;padding-right:0}
  .booking-grid{gap:28px}
  .booking h2{margin-top:20px}
  .contact-person strong{font-size:18px}
  .contact-person span{font-size:13px}
  .contact-phone{font-size:clamp(25px,7.2vw,31px);min-height:48px;gap:15px}
  .contact-email{font-size:15px;min-height:44px;display:inline-flex;align-items:center;max-width:100%}
  .booking-copy>.contact-address{font-size:13px;line-height:1.8;margin-top:12px}
  .booking-panel{padding:6px 20px 25px}
  .booking-tabs{gap:10px;margin-bottom:23px}
  .booking-tabs button{min-width:0;font-size:14px;line-height:1.5;padding:17px 3px 14px;min-height:54px}
  #panel-calendar>.eyebrow{font-size:11px;letter-spacing:.06em}
  #panel-calendar h3{font-size:29px;line-height:1.2}
  #panel-calendar>p:not(.eyebrow){font-size:15px;line-height:1.85}
  #panel-calendar>.external-note{font-size:12px;line-height:1.8}
  .calendar-alternative{font-size:13px}
  .calendar-alternative>a{min-height:48px;gap:12px;line-height:1.6}
  .booking-panel h3{font-size:25px;line-height:1.25}
  .form-intro{font-size:14px;line-height:1.8}
  label{font-size:14px;line-height:1.6;margin-bottom:7px}
  input,select,textarea{font-size:16px;line-height:1.5;padding:12px;min-height:50px;max-width:100%;border-radius:4px}
  input[type=date]{min-width:0;display:block}
  .form-row{gap:17px;margin-bottom:17px}
  select{margin-bottom:17px}
  .optional{font-size:12px}
  .form-note{font-size:12px;line-height:1.8;margin-block:16px 19px}
  textarea{min-height:130px;max-height:340px}
  #email-preview{font-size:14px;line-height:1.8;padding:14px;max-height:320px;max-height:45dvh;overscroll-behavior:contain}
  .preview-tools{gap:8px 20px;justify-content:space-between}
  .text-button{font-size:14px;min-height:48px;padding:10px 0}
  #request-status{font-size:12px;line-height:1.8}
  .footer{padding-bottom:calc(115px + env(safe-area-inset-bottom))}
  .footer-main>p{font-size:13px;line-height:1.8}
  .footer .brand>span{font-size:10px}
  .back-top{min-height:48px;font-size:14px}
  .footer-bottom{font-size:12px}
  .footer-bottom nav{display:flex;flex-wrap:wrap;gap:5px 22px}
  .footer-bottom nav>a{display:inline-flex;align-items:center;min-height:44px}
  .legal{font-size:13px}
  .legal>summary{min-height:48px;padding-block:14px}
  .legal p{font-size:13px;line-height:1.85}
  .mobile-cta{gap:9px;padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));grid-template-columns:.7fr 1.3fr}
  .mobile-cta>a{min-height:50px;font-size:13px;gap:10px;line-height:1.45;padding:10px 8px}
  body:has(.booking-panel input:focus,.booking-panel select:focus,.booking-panel textarea:focus) .mobile-cta{display:none}
}

@media screen and (max-width:600px) {
  .form-row{grid-template-columns:minmax(0,1fr)}
  .expert-copy h3{font-size:26px}
}

@media screen and (max-width:380px) {
  .wrap{width:calc(100% - 32px);max-width:calc(100% - 32px - env(safe-area-inset-left) - env(safe-area-inset-right))}
  .header-inner{width:calc(100% - 32px)}
  .header .brand img{width:145px}
  .hero h1{font-size:clamp(40px,12.5vw,47px)}
  .hero-copy>.eyebrow{font-size:10px}
  .facts strong{font-size:19px}
  .facts p>span{font-size:11px}
  .facts>a{font-size:12px;gap:8px}
  .circle-arrow{width:30px;height:30px}
  .expert-card{grid-template-columns:96px minmax(0,1fr);gap:0 14px;padding:18px}
  .expert-card>img{width:96px;height:144px}
  .expert-copy h3{font-size:25px}
  .expert-copy>.eyebrow{font-size:9px}
  .expert-copy>.expert-specialty{font-size:11px}
  .booking-panel{padding-inline:17px}
  .booking-tabs button{font-size:13px}
  .mobile-cta>a{font-size:12px;gap:8px}
  .price>strong{font-size:43px}
}

@media screen and (max-width:940px) and (max-height:500px) and (orientation:landscape) {
  .header{position:relative}
  html{scroll-padding-top:20px}
  .mobile-cta{display:none}
  .navigation{max-height:65vh;max-height:65dvh}
}

@media (hover:none) {
  .button:hover{transform:none;box-shadow:none}
}
