/* Phone/tablet refinement. No rule in this file changes the approved desktop layout. */
@media(max-width:900px){
  .menu-toggle{min-width:88px;min-height:44px}
  #main-nav>a:not(.button){min-height:48px;display:flex;align-items:center}
  #main-nav{overscroll-behavior:contain}
  .site-header:has(.menu-toggle[aria-expanded=true]){z-index:70}
  .mobile-bar.keyboard-active{display:none}
  .mobile-bar.menu-active{display:none}
  .studio-shell,.studio-shell *{min-width:0}
  .studio-swatch{min-height:68px}
  .studio-reset{min-height:44px;padding-block:12px}
  .studio-contact{min-height:48px}
}
@media(min-width:621px) and (max-width:760px){
  .contact-layout{grid-template-columns:1fr;gap:32px}
  .contact-info{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}
  .contact-info>.eyebrow,.contact-info>h2,.contact-info>.phone-link,.contact-info>.email-link{grid-column:1}
  .contact-area{grid-column:2;grid-row:1/5;margin:0;padding:0;border:0}
  .contact-steps{display:none}
  .form-grid{grid-template-columns:1fr 1fr}
  .form-grid .full-width{grid-column:1/-1}
}
@media(max-width:620px){
  html{scroll-padding-top:86px}
  body{font-size:16px;line-height:1.6}
  .wrap,.header-inner{width:calc(100% - 36px)}
  .header-inner{min-height:68px}
  .site-header{border-bottom:1px solid #e4e6df}
  #main-nav{top:67px;max-height:calc(100dvh - 67px);padding:10px 22px 22px}
  #main-nav>a:not(.button){padding:13px 0;font-size:17px}
  #main-nav .button{min-height:50px}
  .eyebrow{font-size:10px;line-height:1.6;letter-spacing:.105em;margin-bottom:14px}
  h1,h2,h3{overflow-wrap:break-word}
  .home-hero{text-align:left;padding-top:29px;padding-bottom:25px}
  .home-hero h1{font-size:clamp(42px,11.25vw,58px);letter-spacing:-.048em;line-height:1.05;margin-bottom:18px}
  .home-hero .intro{font-size:16px;line-height:1.5;max-width:380px;margin:0 0 21px}
  .home-hero .intro br{display:block}
  .home-hero .actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%}
  .home-hero .button{padding:13px 10px;gap:8px;min-width:0;font-size:13px;min-height:48px;white-space:normal}
  .hero-note{font-size:11px;line-height:1.55;margin-top:15px;max-width:340px}
  .hero-projects{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .hero-projects>a.hero-primary{height:auto;aspect-ratio:1.08;border-radius:17px}
  .hero-primary img{object-position:50% 52%}
  .hero-primary .image-caption{left:20px;right:20px;bottom:19px}
  .hero-primary .image-caption>span:first-child{max-width:none;font-size:26px;line-height:1.1}
  .hero-primary .image-caption>span:last-child{font-size:10px;line-height:1.3;margin-top:8px;max-width:none;letter-spacing:.09em}
  .hero-primary .image-caption>span:last-child>span{font-size:16px;margin-left:6px}
  .hero-projects>a.hero-secondary{height:112px;display:grid;grid-template-columns:96px minmax(0,1fr);border-radius:16px;background:#eeeee8}
  .hero-secondary img{width:96px;height:112px;object-position:center 51%}
  .hero-projects>a.hero-secondary:after{display:none}
  .hero-secondary .image-caption{position:static;color:var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:16px 19px;gap:0}
  .hero-secondary .image-caption>span:first-child{max-width:none;font-size:23px;line-height:1.1}
  .hero-secondary .image-caption>span:last-child{max-width:none;font-size:9px;line-height:1.3;margin-top:9px;letter-spacing:.085em}
  .hero-secondary .image-caption>span:last-child>span{font-size:16px;margin-left:5px}
  .assurance-strip{display:grid;grid-template-columns:1fr;gap:8px;padding-block:21px;font-size:12px}
  .assurance-strip>span{max-width:none;display:flex;align-items:center;gap:10px;line-height:1.5}
  .assurance-strip b{display:inline;margin:0;font-size:12px;width:16px}
  .section{padding-block:49px}
  .section-bottom{padding-bottom:49px}
  .soft-section{padding-block:49px}
  .section-spacer{height:49px}
  .section-head{margin-bottom:25px}
  .section-head h2,.craft-copy h2,.studio-teaser-copy h2,.faq-section h2,.service-detail h2,.process-intro h2,.about-story h2,.colour-search-heading h2{font-size:clamp(31px,8.7vw,39px);line-height:1.12;letter-spacing:-.036em}
  .section-head>div:last-child{margin-top:17px;max-width:none}
  .section-head>div:last-child p,.craft-copy>p:not(.eyebrow),.studio-teaser-copy p:not(.eyebrow),.service-detail p,.process-intro p,.about-story>div>p{font-size:16px;line-height:1.6}
  .text-link{min-height:42px;display:inline-flex;align-items:center;font-size:14px;line-height:1.5}
  .service-grid{gap:19px}
  .service-card{display:grid;grid-template-columns:112px minmax(0,1fr);column-gap:17px;row-gap:7px;border-bottom:1px solid var(--line);padding-bottom:19px}
  .service-card .card-photo{grid-column:1;grid-row:1/3;height:150px;border-radius:13px}
  .service-card .image-tag{left:7px;top:8px;font-size:8px;padding:5px 7px;letter-spacing:.04em}
  .service-card .card-title{grid-column:2;align-self:end;padding-top:0;gap:5px}
  .service-card .card-title h3{font-size:23px;line-height:1.12}
  .service-card .card-title>span{font-size:22px;flex-shrink:0}
  .service-card>p{grid-column:2;font-size:14px;line-height:1.5;margin:0;align-self:start;max-width:none}
  .full-home-link{margin-top:12px;padding-block:18px;font-size:14px;border-top:0}
  .craft-grid{gap:29px}
  .craft-photo.craft-video{width:min(100%,304px);height:auto;aspect-ratio:9/16;justify-self:center;border-radius:17px}
  .craft-video video{width:100%;height:100%;object-fit:contain}
  .craft-video .photo-credit{font-size:10px;top:14px;left:14px;padding:7px 12px}
  .care-list{margin:23px 0}
  .care-list>div{gap:15px;padding-block:15px}
  .care-list h3{font-size:20px;line-height:1.2}
  .care-list p{font-size:14px;line-height:1.55}
  .project-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}
  .project-tabs button{min-height:46px;padding:9px 10px;font-size:13px;white-space:normal;line-height:1.3}
  .project-pair{gap:12px}
  .project-pair figure{min-width:0}
  .project-pair figure>div{height:auto;aspect-ratio:2/3;border-radius:12px}
  .project-pair figcaption span{font-size:9px;letter-spacing:.035em;line-height:1.5}
  .project-pair figcaption strong{font-size:17px;line-height:1.3}
  .section-link{margin-top:23px}
  .studio-teaser-copy{padding:29px 23px}
  .studio-teaser-copy .eyebrow{font-size:9px}
  .studio-teaser figure{height:245px}
  .studio-teaser figcaption{font-size:9px;line-height:1.5;left:8px;right:8px;border-radius:9px}
  .faq-list summary{font-size:17px;min-height:62px;padding-block:18px}
  .faq-list details>p{font-size:15px;line-height:1.6;padding-right:6px}
  .faq-section>div>p:not(.eyebrow){font-size:15px;line-height:1.6}
  .cta-panel{padding:35px 20px}
  .cta-panel h2{font-size:clamp(35px,10vw,44px);line-height:1.12}
  .cta-panel .eyebrow{font-size:10px}
  .cta-panel>p:not(.eyebrow){font-size:15px;line-height:1.6}
  .cta-panel .actions{gap:10px}
  .cta-panel .button{width:100%;max-width:285px;min-width:0;min-height:49px;font-size:14px}
  .button{max-width:100%;min-height:48px;font-size:14px;line-height:1.35}
  .page-hero{padding-top:31px;padding-bottom:35px}
  .page-hero h1{font-size:clamp(36px,10.2vw,49px);line-height:1.1;letter-spacing:-.045em;margin-bottom:20px}
  .page-hero .intro{font-size:16px;line-height:1.55;max-width:none}
  .service-detail{gap:26px;margin-bottom:49px}
  .detail-image{height:auto;aspect-ratio:1;max-height:420px}
  .check-list{font-size:14px}
  .check-list li{margin-bottom:12px}
  .three-cards{gap:27px}
  .three-cards h3{font-size:25px;line-height:1.2}
  .three-cards p{font-size:15px;line-height:1.6}
  .process-intro{gap:26px}
  .process-intro>div:first-child{height:auto;aspect-ratio:1.1}
  .process-list article{grid-template-columns:25px minmax(0,1fr);gap:9px 15px;padding-block:24px}
  .process-list h2{font-size:27px;line-height:1.15}
  .process-list p{font-size:15px;line-height:1.6}
  .about-photo img{height:auto;aspect-ratio:1;object-position:center 40%}
  .about-story{gap:22px}
  .gallery-toolbar{margin-bottom:23px}
  .filter-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .filter-list button{min-height:45px;font-size:13px;padding:9px 12px}
  .gallery-toolbar>p{font-size:12px;margin-top:13px}
  .gallery-grid{gap:24px 12px}
  .gallery-item>img{height:auto;aspect-ratio:2/3;border-radius:12px}
  .gallery-caption small{font-size:9px;letter-spacing:.065em}
  .gallery-caption strong{font-size:16px;line-height:1.35}
  .video-grid{grid-template-columns:minmax(0,1fr);gap:29px}
  .video-grid figure{width:min(100%,328px);justify-self:center}
  .video-grid video{aspect-ratio:9/16;object-fit:contain;width:100%;border-radius:15px}
  .video-grid figcaption{font-size:15px;line-height:1.4;padding-top:12px}
  .contact-layout{gap:27px}
  .contact-info h2{font-size:33px}
  .phone-link{font-size:32px;min-height:47px;display:flex;align-items:center;margin:13px 0 4px}
  .email-link{font-size:16px;min-height:44px;display:flex;align-items:center;overflow-wrap:anywhere}
  .contact-area{margin-top:20px;padding-top:21px}
  .contact-area p{font-size:14px}
  .quote-form{padding:25px 20px}
  .quote-form h2{font-size:29px;line-height:1.15}
  .quote-form .eyebrow{font-size:9px}
  .form-intro{font-size:15px;line-height:1.5}
  .form-grid{gap:20px}
  .form-grid label{font-size:14px;line-height:1.5}
  .form-grid input,.form-grid select,.form-grid textarea{min-height:51px;font-size:16px;line-height:1.5;padding:12px}
  .form-grid textarea{min-height:150px}
  .form-help{font-size:13px;line-height:1.6}
  .form-actions{gap:10px}
  .form-actions .button{font-size:14px;min-height:51px}
  .quote-form small{font-size:12px;line-height:1.6}
  #form-status{font-size:14px}
  .site-footer{padding-top:35px;padding-bottom:calc(103px + env(safe-area-inset-bottom))}
  .footer-main{gap:26px 18px}
  .footer-main h2{font-size:13px;margin-bottom:10px}
  .footer-main>div>a:not(.brand){font-size:13px;line-height:1.5;min-height:39px;display:flex;align-items:center;margin-bottom:3px}
  .footer-main p.small{font-size:13px;line-height:1.6}
  .mobile-bar{padding:9px 14px calc(9px + env(safe-area-inset-bottom));gap:9px}
  .mobile-bar>a{min-height:45px;font-size:12px;padding:9px 6px}
  dialog{max-height:calc(100dvh - 28px);padding:11px}
  dialog>img{height:auto;max-height:calc(100dvh - 138px);min-height:200px}
  .lightbox-bottom{gap:10px}
  .photo-caption{font-size:15px;line-height:1.4}
  .lightbox-bottom button,.close-dialog{min-width:44px;min-height:44px}
  .colour-search-label{font-size:14px}
  .colour-search-label input{height:54px;font-size:16px;padding:12px 14px}
  .colour-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .colour-filters button{min-height:44px;font-size:12px;padding:8px 10px;line-height:1.3}
  .colour-result-count{font-size:13px;margin:21px 0}
  .colour-pick{font-size:10px;padding:5px 8px}
  .colour-card h3,.colour-library-grid .colour-card h3{font-size:19px;line-height:1.3}
  .colour-code{font-size:11px;line-height:1.5}
  .colour-preview-link{font-size:12px;line-height:1.4;min-height:40px;display:flex;align-items:center;margin-top:1px}
  .colour-scope{font-size:13px;line-height:1.65;margin-top:24px}
  .colour-references{font-size:14px}
  .colour-references summary{min-height:44px;display:flex;align-items:center}
  .colour-references p{font-size:13px}
  .colour-references a{font-size:12px;min-height:39px;display:flex;align-items:center}
  .studio-catalogue-link .text-link{font-size:14px}
  .studio-controls{padding:25px 21px}
  .studio-preview-top{padding:16px 18px}
  .studio-preview-tag{display:none}
  .studio-disclaimer{font-size:12px;line-height:1.6}
  .studio-selected-note{font-size:14px;line-height:1.5}
  .studio-fieldset legend,.studio-angle-field>label{font-size:12px}
  .studio-swatch small{font-size:11px;line-height:1.3}
  .studio-light-options button{min-height:47px;font-size:13px}
  .studio-range-wrap input[type=range]{height:44px}
  .studio-angle-output{font-size:11px}
  .studio-custom{font-size:13px;min-height:48px}
  .studio-custom input[type=color]{width:44px;height:40px}
  .studio-contact{font-size:14px;line-height:1.4}
}
@media(max-width:359px){
  .wrap,.header-inner{width:calc(100% - 30px)}
  .home-hero h1{font-size:40px}
  .home-hero .button{font-size:12px;gap:5px;padding-inline:8px}
  .hero-secondary .image-caption{padding-inline:14px}
  .hero-secondary .image-caption>span:first-child{font-size:21px}
  .service-card{grid-template-columns:98px minmax(0,1fr);column-gap:14px}
  .service-card .card-photo{height:148px}
  .service-card .card-title h3{font-size:21px}
  .service-card>p{font-size:13px}
  .hero-note{font-size:10px}
  .contact-info .email-link{font-size:14px}
  .quote-form{padding-inline:17px}
  .colour-card h3,.colour-library-grid .colour-card h3{font-size:17px}
}

@media(max-width:620px){
  .colour-card h3{overflow-wrap:anywhere}
  .lightbox-bottom>div:last-child{flex-shrink:0}
  .studio-view-caption{max-width:calc(100% - 34px)}
  .studio-view-caption>[data-studio-caption]{min-width:0;overflow-wrap:anywhere}
  .studio-current-dot{flex:0 0 13px}
  .mobile-colour-jump{display:flex;justify-content:center;margin:22px 0 0}
  .mobile-colour-jump .button{min-height:46px;font-size:13px;gap:13px}
  .colour-library-grid .colour-sample,.favourite-colours .colour-sample{height:auto;aspect-ratio:1.07}
}
@media(max-width:900px){body.menu-is-open{overflow:hidden;overscroll-behavior:none}}
@media(max-width:900px){
  .studio-shell .studio-reset{min-height:44px;padding-block:12px}
  .studio-shell .studio-custom input[type=color]{width:44px;height:44px;min-height:44px}
  .studio-shell .studio-range-wrap input[type=range]{height:44px;min-height:44px}
}
