/* Cross-device layout refinements for the public site and owner dashboard. */
*,*::before,*::after{box-sizing:border-box}
body{min-width:320px;overflow-x:clip}
img,svg,video,canvas{max-width:100%;height:auto}
main,header,footer,section,article,form,nav,div{min-width:0}
section[id]{scroll-margin-top:22px}
.hero h1,.section-heading h2,.academy-copy h2,.about-copy h2,.location-inner h2,.contact-heading h2{overflow-wrap:break-word}
.button,.nav-cta,.small-button{min-height:44px}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea,.admin-form input,.admin-form textarea,.login-card input{min-height:44px}
.enquiry-form textarea,.admin-form textarea{min-height:96px}

@media(max-width:1024px){
  :root{--wrap:1000px}
  .main-nav{gap:23px}
  .hero{gap:38px}
  .hero-side-label{right:-19px}
  .academy-section,.about-section,.contact-section{gap:60px}
  .location-inner{gap:36px}
}

@media(max-width:760px){
  .section-wrap,.site-header{width:calc(100% - 40px)}
  .hero{gap:24px}
  .hero-side-label{display:none}
  .intro-grid{grid-template-columns:minmax(0,.8fr) minmax(0,2fr) auto;gap:20px}
  .academy-section,.about-section,.contact-section{gap:42px}
  .location-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;gap:24px}
  .footer-main{gap:24px}
}

@media(max-width:620px){
  .section-wrap,.site-header{width:calc(100% - 36px)}
  .hero{width:calc(100% - 36px)}
  .hero-art{width:calc(100% - 10px);height:clamp(275px,84vw,370px);margin:0 8px 0 2px}
  .hero-stamp{left:-9px;bottom:22px;width:78px;height:78px}
  .hero-index{right:-8px;bottom:-14px;padding:11px 14px}
  .intro-grid{grid-template-columns:minmax(0,1fr) auto;gap:14px}
  .intro-grid .eyebrow{grid-column:1/-1}
  .portfolio-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .portfolio-card{min-width:0}
  .location-inner{grid-template-columns:minmax(0,1fr) auto;gap:20px}
  .location-detail{grid-column:1/-1;grid-row:2}
  .location-inner>.round-link{grid-column:2;grid-row:1}
  .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer-bottom{align-items:center}
  .footer-bottom span:last-of-type{display:none}
}

@media(max-width:480px){
  body{font-size:13px}
  .announcement{padding-inline:14px;font-size:7px;letter-spacing:.1em;gap:8px}
  .announcement a{white-space:nowrap}
  .site-header{height:68px}
  .brand{gap:8px}
  .brand-mark{width:36px;height:36px;font-size:19px}
  .brand-name{font-size:11px;letter-spacing:.13em}
  .brand-name small{font-size:7px;letter-spacing:.19em}
  .menu-toggle{width:44px;height:44px;padding:0}
  .main-nav{top:98px;gap:4px;padding:12px 18px 18px}
  .main-nav>a{min-height:44px;display:flex;align-items:center}
  .main-nav .nav-cta{justify-content:center}
  .hero{padding-top:35px;padding-bottom:47px}
  .hero h1{font-size:clamp(35px,10vw,43px)}
  .hero-intro{font-size:12px;line-height:1.8;margin-block:19px 23px}
  .hero-actions{align-items:flex-start;gap:17px}
  .hero-actions .button{width:100%}
  .hero-actions .text-link{margin-left:2px}
  .hero-note{margin-top:30px;font-size:7px}
  .intro-band{padding:39px 0}
  .intro-text{font-size:18px}
  .services-section,.academy-section,.about-section,.contact-section{padding-block:66px}
  .section-heading h2,.academy-copy h2,.about-copy h2,.contact-heading h2{font-size:clamp(33px,9vw,39px)}
  .section-heading{margin-bottom:27px}
  .heading-aside{font-size:11px}
  .service-grid{gap:8px}
  .service-card{min-height:205px;padding:14px 12px}
  .service-card h3{font-size:16px;line-height:1.25}
  .service-card p{font-size:10px;line-height:1.6}
  .service-card .eyebrow{font-size:7px;letter-spacing:.15em;margin-bottom:8px}
  .service-icon{font-size:21px}
  .service-foot{font-size:7px;letter-spacing:.1em;gap:10px}
  .service-foot .text-link{font-size:10px}
  .portfolio-section{padding:65px 0}
  .portfolio-card{min-height:205px}
  .portfolio-card:nth-child(2){min-height:185px}
  .portfolio-card:nth-child(3){min-height:205px}
  .portfolio-label{font-size:8px;letter-spacing:.12em}
  .portfolio-label b{font-size:16px}
  .portfolio-bottom{font-size:7px;letter-spacing:.1em;align-items:center}
  .portfolio-bottom .button{font-size:9px}
  .academy-visual{padding:14px 20px}
  .academy-card{min-height:315px;padding:23px}
  .academy-number{font-size:84px}
  .academy-quote{font-size:20px}
  .academy-caption{right:7px;font-size:7px}
  .quote-section{padding:50px 0}
  .quote-inner blockquote{font-size:clamp(27px,8vw,35px)}
  .about-image{height:310px;padding:15px}
  .about-copy .body-copy{font-size:11px}
  .location-band{padding:43px 0}
  .location-inner h2{font-size:clamp(29px,8vw,34px)}
  .location-detail p{font-size:10px}
  .contact-details{margin-top:32px;gap:14px}
  .enquiry-form{padding:21px 16px}
  .form-title p{font-size:18px}
  .form-note{font-size:8px}
  .footer-main{gap:17px;padding-block:29px}
  .footer-brand .brand-name{font-size:10px}
  .footer-main>p{font-size:14px}
  .footer-links{font-size:9px}
  .footer-bottom{font-size:7px;letter-spacing:.1em}
  .admin-header{padding-inline:16px}
  .admin-shell{width:calc(100% - 24px);margin:27px auto 45px}
  .login-card{padding:28px 20px}
  .dashboard-heading h1{font-size:42px}
  .admin-tabs button{min-height:46px;font-size:10px;padding-inline:9px}
  .admin-pane{padding:21px 15px}
  .pane-heading h2{font-size:28px}
  .compact-form{padding:18px 14px}
  .admin-row{padding:14px}
  .enquiry-info{gap:7px 13px}
}

@media(max-width:390px){
  .announcement>span{display:none}
  .announcement{justify-content:flex-end}
  .section-wrap,.site-header{width:calc(100% - 28px)}
  .hero{width:calc(100% - 28px)}
  .hero-art{height:clamp(255px,78vw,305px)}
  .hero h1{font-size:35px}
  .hero-actions .text-link{font-size:10px}
  .service-card{min-height:198px;padding:12px 10px}
  .service-card p{font-size:9px}
  .portfolio-card{min-height:177px}
  .portfolio-card:nth-child(2){min-height:162px}
  .portfolio-card:nth-child(3){min-height:180px}
  .portfolio-label b{font-size:14px}
  .form-row{grid-template-columns:minmax(0,1fr);gap:0}
  .portfolio-bottom .button{padding-inline:9px;gap:4px}
  .footer-bottom{font-size:6px}
}

@media(max-width:340px){
  .service-grid{grid-template-columns:minmax(0,1fr)}
  .service-card{min-height:175px;padding:15px}
  .portfolio-grid{grid-template-columns:minmax(0,1fr)}
  .portfolio-card,.portfolio-card:nth-child(2),.portfolio-card:nth-child(3){grid-column:auto;margin:0;min-height:205px}
  .form-title p{font-size:16px}
  .footer-main{grid-template-columns:minmax(0,1fr)}
}

@media(max-height:520px) and (orientation:landscape){
  .hero{min-height:0;padding-top:28px;padding-bottom:35px;grid-template-columns:1fr .8fr}
  .hero-art{height:270px}
  .hero-note{margin-top:22px}
  .main-nav{max-height:calc(100vh - 110px);overflow:auto}
}
