@media (max-width:820px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px}
  .wrap{width:auto;margin-left:max(16px,env(safe-area-inset-left,0px));margin-right:max(16px,env(safe-area-inset-right,0px))}
  .hero-grid>*,.section-head>*,.about-card>*,.contact-grid>*,.footer-grid>*{min-width:0}
  header .nav{position:relative;height:auto;min-height:72px;padding:10px 0;gap:8px}
  header .brand-lockup{gap:10px;flex:0 1 auto}
  header .brand-lockup .logo{min-height:44px;align-items:center}
  header .brand-lockup .logo img{width:112px;height:auto;max-width:none}
  header .header-tagline{font-size:12px;line-height:1.4;white-space:normal;max-width:150px}
  header .phone{display:none}
  header .burger{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;font-size:28px;line-height:1;touch-action:manipulation}
  header .menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);max-height:70vh;max-height:min(70svh,360px);overflow-y:auto;overscroll-behavior:contain;padding:8px;gap:0;border-radius:16px}
  header .menu.open{display:flex}
  header .menu a{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 12px;font-size:16px;line-height:1.4;border-radius:10px;touch-action:manipulation}
  header .menu a:active{background:var(--brand-soft)}
  .policy-page header .nav{flex-wrap:wrap;column-gap:12px;row-gap:8px}
  .policy-page .policy-back{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;padding:0 4px}
  .section{padding:48px 0}
  .hero{padding:24px 0 20px}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:24px;min-height:0;padding:0}
  .hero h1{font-size:clamp(34px,9vw,48px);line-height:1.08;max-width:100%;margin:16px 0 18px;overflow-wrap:break-word}
  .title{font-size:clamp(26px,7.2vw,36px);line-height:1.15;overflow-wrap:break-word}
  .lead,.contact-card .lead{font-size:16px;line-height:1.65}
  .eyebrow{max-width:100%;font-size:11px;line-height:1.5;letter-spacing:.08em}
  .hero-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:24px}
  .hero-actions .btn{width:100%;min-height:52px;padding:12px 16px}
  .hero-list{grid-template-columns:minmax(0,1fr);gap:10px;margin-top:20px}
  .hero-item{padding:14px 16px;border-radius:16px}
  .hero-photo{min-height:0;aspect-ratio:4/3;border-radius:22px}
  .section-head{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:24px}
  .services-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .service{padding:20px;border-radius:20px}
  .service h3{font-size:21px;line-height:1.2;overflow-wrap:break-word}
  .about-card{grid-template-columns:minmax(0,1fr);gap:24px;padding:20px;border-radius:22px}
  .about-photo{min-height:0;aspect-ratio:4/3;border-radius:18px}
  .bullet{grid-template-columns:28px minmax(0,1fr);gap:10px}
  .bullet strong{line-height:1.4}
  .contact{padding-top:48px}
  .contact-grid{grid-template-columns:minmax(0,1fr);gap:20px}
  .contact-card{padding:22px;border-radius:22px}
  .contact-list{gap:12px;margin-top:20px}
  .contact-card .contact-item a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere;touch-action:manipulation}
  .contact-card .contact-item strong{overflow-wrap:break-word}
  .form{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);padding:20px;gap:14px;border-radius:22px}
  .form .full{grid-column:1/-1}
  .form label{font-size:12px;line-height:1.5;letter-spacing:.05em}
  .form input,.form select,.form textarea{max-width:100%;min-width:0;font-size:16px}
  .form input,.form select{height:56px;min-height:56px}
  .form textarea{height:80px;min-height:80px}
  .form .btn{width:100%;min-height:52px;padding:12px 16px;font-size:16px;touch-action:manipulation}
  .consent-note{font-size:12px;line-height:1.7;overflow-wrap:break-word}
  footer{margin-top:28px;padding:28px 0 20px}
  .footer-grid{grid-template-columns:minmax(0,1fr);gap:24px;padding-bottom:24px;text-align:center}
  .footer-logo{min-height:72px;padding:8px 0}
  .footer-logo img{width:190px;max-width:70%}
  .footer-grid h4{margin-bottom:8px}
  .footer-grid a{display:flex;align-items:center;justify-content:center;min-height:44px;margin:0;padding:8px 0;overflow-wrap:anywhere;touch-action:manipulation}
  .legal{padding-top:20px;line-height:1.7;overflow-wrap:break-word}
  .legal p{display:block}
  .legal .policy-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:6px 0 0;max-width:100%;touch-action:manipulation}
  .cookie-banner-inner{width:auto;margin-left:max(16px,env(safe-area-inset-left,0px));margin-right:max(16px,env(safe-area-inset-right,0px));gap:12px;padding-top:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .cookie-banner p{min-width:0;font-size:13px;line-height:1.5;overflow-wrap:break-word}
  .cookie-accept{min-height:44px;touch-action:manipulation}
}
@media (max-width:480px){
  .cookie-banner-inner{flex-direction:column;align-items:stretch}
  .cookie-accept{width:100%}
}
@media (min-width:481px) and (max-width:820px){
  .cookie-banner-inner{flex-direction:row;align-items:center;gap:16px}
  .cookie-accept{width:auto;min-width:104px;padding:0 18px}
}
@media (max-width:359px){
  header .brand-lockup{gap:8px}
  header .brand-lockup .logo img{width:92px}
  header .header-tagline{font-size:11.5px;max-width:132px}
  .contact-card,.form{padding:18px}
  .about-card{padding:18px}
}
@media (max-height:500px) and (max-width:980px){
  .cookie-banner{max-height:80vh;max-height:80svh}
  .cookie-banner-inner{padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
}
