/* Agatiy Groom — unified mobile UX */
@media (max-width:1100px){
  .site-header{
    display:flex;
    grid-template-columns:none;
    align-items:center;
    gap:10px;
    min-height:72px;
    padding:8px 12px;
    background:rgba(255,249,241,.97);
    border-bottom:1px solid rgba(33,21,15,.08);
    box-shadow:0 4px 18px rgba(33,21,15,.035);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }
  .site-header>.logo{
    flex:0 1 168px;
    min-width:0;
    max-width:168px;
    margin-right:auto;
    gap:0;
  }
  .site-header>.logo img{
    display:block;
    width:168px;
    height:auto;
    max-width:100%;
    max-height:56px;
    aspect-ratio:3/1;
    object-fit:contain;
    object-position:left center;
    flex:0 1 168px;
  }
  .site-header>.logo span{display:none}
  .site-header>.logo b{
    font-size:10px;
    letter-spacing:.075em;
    white-space:nowrap;
  }
  .site-header>.logo small{
    margin-top:2px;
    font-size:9px;
    white-space:nowrap;
  }
  .header-actions{
    flex:0 0 auto;
    margin-left:auto;
    gap:7px;
  }
  .header-phone,.header-book{display:none}

  .menu-button{
    position:relative;
    display:block;
    flex:0 0 40px;
    width:40px;
    height:40px;
    margin-left:auto;
    padding:0;
    border:1px solid #e5d8cc;
    border-radius:5px;
    background:#fffdf9;
    box-shadow:0 4px 12px rgba(33,21,15,.055);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .menu-button span{
    position:absolute;
    left:10px;
    width:18px;
    height:1.5px;
    margin:0;
    border-radius:999px;
    background:#5b4539;
    transform-origin:center;
    transition:top .2s ease,transform .2s ease,opacity .15s ease,background .2s ease;
  }
  .menu-button span:nth-child(1){top:12px}
  .menu-button span:nth-child(2){top:19px;background:var(--accent)}
  .menu-button span:nth-child(3){top:26px}
  .menu-button[aria-expanded="true"]{
    border-color:rgba(255,90,31,.34);
    background:#fff5ed;
  }
  .menu-button[aria-expanded="true"] span:nth-child(1){top:19px;transform:rotate(45deg)}
  .menu-button[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.4)}
  .menu-button[aria-expanded="true"] span:nth-child(3){top:19px;transform:rotate(-45deg)}

  .site-header nav{
    position:absolute;
    z-index:80;
    top:calc(100% + 7px);
    left:10px;
    right:10px;
    display:flex;
    flex-direction:column;
    gap:0;
    max-height:calc(100dvh - 82px);
    padding:5px;
    overflow:auto;
    border:1px solid #e6d9ce;
    border-radius:5px;
    background:rgba(255,253,249,.99);
    box-shadow:0 18px 45px rgba(33,21,15,.13);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-7px) scale(.99);
    transform-origin:top;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
    -webkit-overflow-scrolling:touch;
  }
  .site-header nav.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  .site-header nav a{
    display:flex;
    align-items:center;
    min-height:47px;
    padding:0 12px;
    border:0;
    border-bottom:1px solid #f0e6dd;
    border-radius:4px;
    color:#3d2c23;
    font-size:13px;
    font-weight:760;
  }
  .site-header nav a:last-child{border-bottom:0}
  .site-header nav a:hover,
  .site-header nav a:active,
  .site-header nav a[aria-current="page"]{
    background:#fff2e9;
    color:var(--accent);
  }
}

@media (max-width:820px){
  :root{--radius:5px}
  body{font-size:15px}
  .section{padding:56px 16px}
  .eyebrow{
    margin-bottom:10px;
    font-size:10px;
    line-height:1.25;
    letter-spacing:.12em;
  }
  .button{
    min-height:43px;
    padding:0 14px;
    border-radius:5px;
    font-size:12px;
  }
  .button-large{min-height:46px;padding:0 15px}

  /* Hero */
  .hero{
    grid-template-columns:1fr;
    min-height:0;
  }
  .hero-copy{
    padding:38px 16px 28px;
  }
  .hero h1{
    margin-bottom:16px;
    font-size:clamp(43px,12.5vw,58px);
    line-height:.92;
    letter-spacing:-.052em;
  }
  .hero-lead{
    margin-bottom:20px;
    font-size:14px;
    line-height:1.58;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
  .hero-actions .button{width:100%}
  .hero-trust{
    display:flex;
    gap:6px;
    margin-top:18px;
    padding-top:14px;
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:none;
  }
  .hero-trust::-webkit-scrollbar{display:none}
  .hero-trust span{
    flex:0 0 auto;
    padding:7px 9px 7px 24px;
    border:1px solid var(--line);
    border-radius:5px;
    background:var(--paper);
    font-size:10px;
    white-space:nowrap;
  }
  .hero-trust span:before{left:9px}
  .hero-media{min-height:340px}
  .hero-media>img{object-position:center 32%}
  .hero-note{
    top:auto;
    right:10px;
    bottom:10px;
    left:10px;
    max-width:none;
    padding:11px 12px;
    border:1px solid rgba(33,21,15,.08);
    border-radius:5px;
    transform:none;
    box-shadow:0 8px 22px rgba(33,21,15,.09);
  }
  .hero-note b{font-size:14px}
  .hero-note span{margin-top:2px;font-size:10px}

  /* Section headings */
  .split-head{
    grid-template-columns:1fr;
    gap:12px;
    margin-bottom:24px;
  }
  .section-head h2,.faq-head h2{
    font-size:clamp(37px,10.8vw,48px);
    line-height:.94;
  }
  .split-head>p{
    max-width:460px;
    font-size:12px;
    line-height:1.6;
  }

  /* Chooser */
  .need-grid{grid-template-columns:1fr;gap:10px}
  .need-tabs{gap:5px}
  .need-option{
    grid-template-columns:31px minmax(0,1fr) 22px;
    gap:8px;
    min-height:54px;
    padding:8px 10px;
    border-radius:5px;
  }
  .need-option>span{
    width:28px;
    height:28px;
    font-size:9px;
  }
  .need-option b{font-size:16px;line-height:1.08}
  .need-option i{font-size:15px}
  .need-answer{
    min-height:0;
    padding:21px 18px;
    border-radius:5px;
    box-shadow:3px 4px 0 var(--dark);
  }
  .answer-kicker{margin-bottom:8px;font-size:9px}
  .need-answer h3{margin-bottom:8px;font-size:29px;line-height:.98}
  .need-answer>p:not(.answer-kicker){margin-bottom:16px;font-size:12px;line-height:1.55}
  .need-answer .button{align-self:stretch;width:100%}

  /* Master */
  .master-section{grid-template-columns:1fr;min-height:0}
  .master-photo{min-height:360px}
  .master-photo img{object-position:center 30%}
  .master-signature{left:16px;bottom:14px;font-size:38px}
  .master-copy{padding:44px 16px 50px}
  .master-copy h2{
    margin-bottom:15px;
    font-size:clamp(38px,10.5vw,48px);
    line-height:.94;
  }
  .master-lead{margin-bottom:16px;font-size:13px;line-height:1.62}
  .master-facts{gap:0;margin-bottom:17px}
  .master-facts>div{gap:9px;padding:9px 0}
  .master-facts span{width:22px;height:22px;flex-basis:22px;font-size:11px}
  .master-facts p{font-size:12px;line-height:1.4}
  .experience{margin-bottom:16px}
  .experience small{font-size:9px}
  .experience strong{font-size:20px}
  .master-copy .button{align-self:stretch;width:100%}

  /* Homepage services */
  .services-old{padding-top:54px;padding-bottom:54px}
  .services-old-head{
    grid-template-columns:1fr;
    gap:11px;
    margin-bottom:22px;
  }
  .services-old-head h2{
    font-size:clamp(37px,10.5vw,47px);
    line-height:.94;
  }
  .services-old-head>p{font-size:11px;line-height:1.55}
  .service-row-old{
    grid-template-columns:24px 70px minmax(0,1fr);
    grid-template-areas:
      "num thumb name"
      ". thumb action";
    gap:5px 9px;
    min-height:0;
    padding:10px 0;
  }
  .service-row-old .service-number{
    grid-area:num;
    align-self:start;
    padding-top:4px;
    font-size:9px;
  }
  .service-row-old .service-name{
    grid-area:name;
    align-self:end;
  }
  .service-row-old .service-name h3{
    margin-bottom:4px;
    font-size:17px;
    line-height:1.02;
  }
  .service-row-old .service-name p{
    display:-webkit-box;
    max-width:none;
    overflow:hidden;
    font-size:9px;
    line-height:1.35;
    white-space:normal;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }
  .service-thumb-old{
    grid-area:thumb;
    width:70px;
    height:58px;
    align-self:center;
    justify-self:stretch;
  }
  .service-thumb-old img{
    width:70px;
    height:58px;
    border-radius:5px;
  }
  .service-thumb-old .service-thumb-badge{
    right:-4px;
    bottom:-3px;
    width:16px;
    height:16px;
  }
  .service-row-old .service-action{
    grid-area:action;
    justify-self:start;
    min-width:0;
    min-height:27px;
    padding:0 9px;
    border-radius:5px;
    font-size:8px;
  }
  .service-help-old{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
    margin-top:14px;
    padding:13px;
    border-radius:5px;
  }
  .service-help-old b{font-size:11px}
  .service-help-old span{font-size:9px;line-height:1.45}
  .service-help-old .button{width:100%;min-height:37px;border-radius:5px;font-size:9px}

  /* Works */
  .works{
    grid-template-columns:1fr;
    gap:26px;
    padding:56px 16px;
  }
  .works-copy h2{font-size:clamp(38px,10.8vw,49px)}
  .works-copy>p:not(.eyebrow){font-size:12px;line-height:1.6}
  .works-actions{display:grid;gap:8px;margin-top:18px}
  .works-actions .button{width:100%}
  .works-actions .text-link{text-align:center;font-size:11px}
  .works-collage{
    grid-template-columns:1fr 1fr;
    grid-template-rows:220px 145px;
    gap:6px;
    min-height:0;
  }
  .work-card{border-width:3px}
  .work-card-1{grid-column:1/3;grid-row:auto}
  .work-card-2,.work-card-3{grid-row:auto}
  .work-card figcaption{left:6px;bottom:6px;padding:5px 7px;font-size:8px}

  /* Reviews / blog */
  .review-grid{grid-template-columns:1fr;gap:8px}
  .review-card,.review-social-card{
    min-height:0;
    padding:19px;
    border-radius:5px;
  }
  .review-card blockquote{margin:18px 0 22px;font-size:21px}
  .review-author{font-size:11px}
  .review-social-card strong{margin:10px 0 18px;font-size:27px}

  /* Steps */
  .steps{padding:56px 16px}
  .steps-head{margin-bottom:25px}
  .steps-head h2{font-size:clamp(38px,10.8vw,49px)}
  .steps-head>p{font-size:12px}
  .step-grid{grid-template-columns:1fr;gap:6px;margin-bottom:14px}
  .step-grid article{
    min-height:0;
    padding:18px;
    border-radius:5px;
  }
  .step-grid span{margin-bottom:15px;font-size:22px}
  .step-grid h3{margin-bottom:6px;font-size:22px}
  .step-grid p{font-size:11px}
  .steps>.button{width:100%}

  /* Visit / FAQ */
  .visit-card{
    grid-template-columns:1fr;
    gap:16px;
    padding:21px 17px;
    border-radius:5px;
  }
  .visit-card h2{font-size:clamp(36px,10.5vw,47px)}
  .visit-details>div{padding:12px 0}
  .visit-details span{font-size:9px}
  .visit-details strong{font-size:13px;line-height:1.45}
  .visit-details p{font-size:10px;line-height:1.5}
  .faq{grid-template-columns:1fr;gap:20px}
  .faq-head{position:static}
  .questions summary{min-height:58px;font-size:12px;line-height:1.35}
  .questions summary i{
    flex-basis:25px;
    width:25px;
    height:25px;
    border-radius:5px;
  }
  .questions details p{
    margin:-2px 35px 17px 0;
    font-size:11px;
    line-height:1.6;
  }

  /* Final CTA */
  .final{padding-top:14px}
  .final-card{
    grid-template-columns:1fr;
    gap:15px;
    min-height:0;
    padding:22px 17px;
    border-radius:5px;
  }
  .final-brand img{width:156px;height:auto;max-height:52px;object-fit:contain;object-position:left center}
  .final-copy>p{margin-bottom:7px;font-size:10px;line-height:1.5}
  .final-copy h2{font-size:clamp(36px,10.2vw,45px)}
  .final-actions{gap:6px}
  .final-actions .button{width:100%}
  .final-actions small{font-size:9px}

  /* Footer */
  .site-footer{
    grid-template-columns:1fr 1fr;
    gap:24px 16px;
    padding:32px 16px 22px;
  }
  .footer-brand{grid-column:1/-1}
  .footer-brand>p{margin-top:12px;font-size:11px}
  .footer-column{gap:7px;font-size:11px}
  .footer-column>b{font-size:9px}
  .footer-column:last-of-type{grid-column:auto}
  .footer-bottom{
    flex-direction:column;
    gap:7px;
    margin-top:4px;
    padding-top:18px;
    font-size:10px;
  }

  /* Services page: preserve its layout, refine touch targets */
  .sp-directory{top:64px}
  .sp-directory-inner{scroll-padding-inline:8px}
  .sp-directory a{min-height:34px;display:flex;align-items:center}
}

@media (max-width:480px){
  .site-header{padding:7px 10px}
  .site-header>.logo{flex-basis:156px;max-width:156px}
  .site-header>.logo img{width:156px;height:auto;max-height:52px;flex:0 1 156px}
  .site-header>.logo b{font-size:9.5px}
  .site-header>.logo small{font-size:8.5px}
  .menu-button{width:38px;height:38px;flex-basis:38px}
  .menu-button span{left:9px}
  .site-header nav{left:8px;right:8px}

  .section{padding:50px 14px}
  .hero-copy{padding:33px 14px 25px}
  .hero h1{font-size:clamp(41px,12.9vw,53px)}
  .hero-media{min-height:300px}

  .master-photo{min-height:320px}
  .master-copy{padding:40px 14px 45px}

  .service-row-old{
    grid-template-columns:20px 62px minmax(0,1fr);
    gap:5px 8px;
  }
  .service-thumb-old,.service-thumb-old img{width:62px;height:54px}
  .service-row-old .service-name h3{font-size:16px}

  .works{padding:50px 14px}
  .works-collage{grid-template-rows:195px 125px}

  .site-footer{padding-left:14px;padding-right:14px}
}

@media (prefers-reduced-motion:reduce){
  .site-header nav,.menu-button span{transition:none}
}

/* Agatiy Groom — mobile refinement v2 */
@media (max-width:820px){
  /* More breathing room where text currently feels squeezed */
  .hero-copy{padding-top:34px}
  .hero h1{max-width:345px}
  .hero-lead{max-width:350px}
  .split-head>p,
  .master-lead,
  .works-copy>p:not(.eyebrow),
  .footer-brand>p{font-size:12px}

  /* Services: turn tiny rows into comfortable touch cards */
  .service-list-old{
    display:grid;
    gap:7px;
    border-top:0;
  }
  .service-row-old{
    position:relative;
    display:grid;
    grid-template-columns:76px minmax(0,1fr);
    grid-template-areas:
      "thumb name"
      "thumb action";
    gap:6px 11px;
    min-height:92px;
    padding:9px;
    border:1px solid var(--line);
    border-radius:5px;
    background:var(--paper);
  }
  .service-row-old .service-number{
    position:absolute;
    z-index:2;
    left:13px;
    top:13px;
    display:grid;
    place-items:center;
    width:23px;
    height:23px;
    padding:0;
    border-radius:4px;
    background:rgba(255,253,249,.95);
    box-shadow:0 2px 8px rgba(33,21,15,.07);
    color:var(--accent);
    font-size:8px;
    font-weight:900;
  }
  .service-thumb-old{
    grid-area:thumb;
    width:76px;
    height:74px;
    align-self:start;
    justify-self:start;
  }
  .service-thumb-old img{
    width:76px;
    height:74px;
    border-radius:4px;
    object-fit:cover;
  }
  .service-thumb-old .service-thumb-badge{
    right:4px;
    bottom:4px;
    width:18px;
    height:18px;
    border:0;
    background:rgba(255,253,249,.96);
  }
  .service-row-old .service-name{
    grid-area:name;
    align-self:end;
    min-width:0;
    padding-top:2px;
  }
  .service-row-old .service-name h3{
    margin:0 0 5px;
    font-size:18px;
    line-height:1;
  }
  .service-row-old .service-name p{
    display:-webkit-box;
    margin:0;
    overflow:hidden;
    color:#7f7066;
    font-size:10px;
    line-height:1.38;
    white-space:normal;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }
  .service-row-old .service-action{
    grid-area:action;
    justify-self:start;
    align-self:end;
    min-width:118px;
    min-height:34px;
    padding:0 11px;
    border-radius:4px;
    font-size:9px;
  }

  /* Works: less heavy CTA hierarchy on orange */
  .works-actions .button-dark{
    background:#fffdf9;
    color:var(--ink);
    box-shadow:0 6px 16px rgba(33,21,15,.08);
  }
  .works-actions .text-link{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    border:1px solid rgba(255,255,255,.4);
    border-radius:5px;
    color:#fff;
    text-decoration:none;
  }

  /* Process: compact readable rows instead of three heavy cards */
  .steps{
    padding-top:50px;
    padding-bottom:50px;
  }
  .step-grid{
    gap:5px;
  }
  .step-grid article{
    display:grid;
    grid-template-columns:35px minmax(0,1fr);
    grid-template-areas:
      "num title"
      "num text";
    column-gap:11px;
    row-gap:3px;
    min-height:0;
    padding:14px 15px;
  }
  .step-grid span{
    grid-area:num;
    align-self:start;
    margin:0;
    padding-top:1px;
    font-size:20px;
    line-height:1;
  }
  .step-grid h3{
    grid-area:title;
    margin:0;
    font-size:19px;
    line-height:1.05;
  }
  .step-grid p{
    grid-area:text;
    margin:0;
    font-size:10.5px;
    line-height:1.45;
  }
  .step-grid article.step-accent{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
  }

  /* Reviews: avoid oversized quote block */
  .review-card blockquote{
    margin:14px 0 17px;
    font-size:19px;
    line-height:1.22;
  }
  .review-card,.review-social-card{padding:17px}
  .review-social-card strong{font-size:24px}

  /* Visit + FAQ: improve real touch/read sizes */
  .visit-details strong{font-size:13.5px}
  .visit-details p{font-size:10.5px}
  .questions summary{
    min-height:56px;
    font-size:12.5px;
  }
  .questions details p{font-size:11.5px}

  /* Final CTA: one strong action, secondary action visually quiet */
  .final-card{
    padding:20px 16px;
  }
  .final-actions .button-light{
    min-height:45px;
  }
  .final-actions .button-outline-light{
    min-height:38px;
    background:transparent;
  }

  /* Footer text was too tiny in the screenshot */
  .footer-column{
    gap:8px;
    font-size:11.5px;
    line-height:1.45;
  }
  .footer-column>b{font-size:9.5px}
  .footer-bottom{font-size:10.5px}

  /* Services page touch targets */
  .sp-service-card>summary{
    min-height:138px;
  }
  .sp-service-summary h2{font-size:24px}
  .sp-service-summary p{font-size:10px}
  .sp-service-more{
    min-height:32px;
    padding-top:7px;
    font-size:9px;
  }
}

@media (max-width:480px){
  .hero h1{
    max-width:320px;
    font-size:42px;
  }

  .service-row-old{
    grid-template-columns:72px minmax(0,1fr);
    min-height:90px;
    padding:8px;
  }
  .service-thumb-old,
  .service-thumb-old img{
    width:72px;
    height:72px;
  }
  .service-row-old .service-name h3{font-size:17px}
  .service-row-old .service-name p{font-size:9.7px}
  .service-row-old .service-action{
    min-height:33px;
    min-width:112px;
  }

  .steps-head h2{font-size:38px}
  .step-grid article{padding:13px 14px}
  .step-grid h3{font-size:18px}

  .site-footer{
    grid-template-columns:1fr;
    gap:18px;
  }
  .footer-brand,.footer-column:last-of-type{grid-column:auto}
}

/* Agatiy Groom — mobile FAQ layout hardening v3 */
@media (max-width:820px){
  .faq.section{
    display:block!important;
    padding-top:50px;
    padding-bottom:52px;
  }
  .faq-head{
    position:relative!important;
    top:auto!important;
    inset:auto!important;
    display:block!important;
    width:100%;
    min-height:0!important;
    margin:0 0 24px!important;
    padding:0!important;
    transform:none!important;
    clear:both;
  }
  .faq-head .eyebrow{
    margin-bottom:10px;
  }
  .faq-head h2{
    display:block;
    max-width:390px;
    margin:0!important;
    font-size:clamp(36px,10.4vw,46px);
    line-height:.96;
    letter-spacing:-.035em;
  }
  .questions{
    position:relative!important;
    display:block!important;
    width:100%;
    min-width:0;
    margin:0!important;
    padding:0!important;
    clear:both;
    border-top:1px solid var(--line);
    transform:none!important;
  }
  .questions details{
    position:relative!important;
    display:block!important;
    width:100%;
    min-height:0;
    margin:0!important;
    padding:0!important;
    overflow:visible;
    transform:none!important;
  }
  .questions summary{
    position:relative!important;
    display:flex!important;
    width:100%;
    min-height:58px;
    margin:0!important;
    padding:10px 0!important;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    line-height:1.35;
    transform:none!important;
  }
  .questions summary span{
    display:block;
    min-width:0;
    padding-right:4px;
  }
  .questions details p{
    position:static!important;
    display:block;
    width:auto;
    max-width:none;
    margin:-2px 36px 17px 0!important;
    padding:0!important;
    transform:none!important;
  }
  .visit.section{
    padding-bottom:50px;
  }
  .visit + .faq{
    margin-top:0!important;
  }
}

@media (max-width:480px){
  .faq.section{
    padding-top:46px;
    padding-bottom:48px;
  }
  .faq-head{
    margin-bottom:20px!important;
  }
  .faq-head h2{
    max-width:340px;
    font-size:38px;
    line-height:.96;
  }
  .questions summary{
    min-height:56px;
    padding:9px 0!important;
    font-size:12px;
  }
  .questions details p{
    margin-right:34px!important;
    font-size:11px;
    line-height:1.58;
  }
}

/* Agatiy Groom — compact mobile scale v4 */
@media (max-width:820px){
  /* global vertical rhythm */
  .section{
    padding-top:44px;
    padding-bottom:44px;
  }
  .eyebrow{
    margin-bottom:8px;
    font-size:9px;
    line-height:1.2;
    letter-spacing:.13em;
  }
  .button{
    min-height:40px;
    padding-inline:13px;
    font-size:11px;
  }
  .button-large{
    min-height:43px;
    padding-inline:14px;
  }

  /* hero */
  .hero-copy{
    padding:30px 16px 22px;
  }
  .hero h1{
    max-width:330px;
    margin-bottom:13px;
    font-size:clamp(37px,10.8vw,48px);
    line-height:.92;
    letter-spacing:-.045em;
  }
  .hero-lead{
    max-width:340px;
    margin-bottom:16px;
    font-size:12.5px;
    line-height:1.55;
  }
  .hero-actions{gap:6px}
  .hero-trust{
    margin-top:14px;
    padding-top:11px;
  }
  .hero-trust span{
    padding:6px 8px 6px 22px;
    font-size:9px;
  }
  .hero-media{min-height:300px}
  .hero-note{
    padding:10px 11px;
  }
  .hero-note b{font-size:12.5px}
  .hero-note span{font-size:9px}

  /* section titles */
  .section-head h2,
  .faq-head h2{
    font-size:clamp(32px,9vw,40px);
    line-height:.96;
  }
  .split-head{
    gap:9px;
    margin-bottom:20px;
  }
  .split-head>p{
    font-size:11px;
    line-height:1.55;
  }

  /* chooser */
  .need-grid{gap:8px}
  .need-tabs{gap:5px}
  .need-option{
    grid-template-columns:29px minmax(0,1fr) 20px;
    min-height:50px;
    padding:7px 9px;
  }
  .need-option>span{
    width:26px;
    height:26px;
    font-size:8px;
  }
  .need-option b{
    font-size:15px;
    line-height:1.05;
  }
  .need-option i{font-size:14px}
  .need-answer{
    padding:17px 15px;
    box-shadow:3px 4px 0 var(--dark);
  }
  .answer-kicker{
    margin-bottom:6px;
    font-size:8px;
  }
  .need-answer h3{
    margin-bottom:7px;
    font-size:25px;
    line-height:.98;
  }
  .need-answer>p:not(.answer-kicker){
    margin-bottom:13px;
    font-size:11px;
    line-height:1.5;
  }

  /* master */
  .master-photo{min-height:310px}
  .master-signature{
    left:14px;
    bottom:12px;
    font-size:34px;
  }
  .master-copy{
    padding:36px 16px 40px;
  }
  .master-copy h2{
    margin-bottom:12px;
    font-size:clamp(32px,9vw,40px);
    line-height:.95;
  }
  .master-lead{
    margin-bottom:13px;
    font-size:11.5px;
    line-height:1.55;
  }
  .master-facts{margin-bottom:14px}
  .master-facts>div{
    gap:8px;
    padding:8px 0;
  }
  .master-facts span{
    width:20px;
    height:20px;
    flex-basis:20px;
    font-size:10px;
  }
  .master-facts p{
    font-size:11px;
    line-height:1.35;
  }
  .experience{
    margin-bottom:13px;
  }
  .experience small{font-size:8px}
  .experience strong{font-size:18px}

  /* homepage services */
  .services-old{
    padding-top:44px;
    padding-bottom:44px;
  }
  .services-old-head{
    gap:8px;
    margin-bottom:18px;
  }
  .services-old-head h2{
    font-size:clamp(32px,9vw,40px);
    line-height:.95;
  }
  .services-old-head>p{
    font-size:10.5px;
    line-height:1.5;
  }
  .service-list-old{gap:6px}
  .service-row-old{
    grid-template-columns:68px minmax(0,1fr);
    min-height:82px;
    gap:5px 9px;
    padding:8px;
  }
  .service-thumb-old,
  .service-thumb-old img{
    width:68px;
    height:66px;
  }
  .service-row-old .service-number{
    left:11px;
    top:11px;
    width:21px;
    height:21px;
    font-size:7px;
  }
  .service-row-old .service-name h3{
    margin-bottom:4px;
    font-size:15.5px;
  }
  .service-row-old .service-name p{
    font-size:9px;
    line-height:1.34;
  }
  .service-row-old .service-action{
    min-width:103px;
    min-height:30px;
    padding-inline:9px;
    font-size:8px;
  }
  .service-help-old{
    gap:8px;
    margin-top:11px;
    padding:11px;
  }
  .service-help-old b{font-size:10px}
  .service-help-old span{font-size:8.5px}
  .service-help-old .button{min-height:34px;font-size:8.5px}

  /* works */
  .works{
    gap:20px;
    padding:44px 16px;
  }
  .works-copy h2{
    font-size:clamp(32px,9.2vw,41px);
    line-height:.95;
  }
  .works-copy>p:not(.eyebrow){
    font-size:11px;
    line-height:1.55;
  }
  .works-actions{
    gap:6px;
    margin-top:14px;
  }
  .works-actions .text-link{
    min-height:34px;
    font-size:10px;
  }
  .works-collage{
    grid-template-rows:185px 120px;
    gap:5px;
  }

  /* blog */
  .home-blog-head{
    gap:10px;
    margin-bottom:18px;
  }
  .home-blog-head h2{
    font-size:clamp(32px,9vw,40px);
    line-height:.95;
  }
  .home-blog-head>a{
    font-size:10px;
  }
  .blog-card-body{
    padding:16px;
  }
  .blog-card-body h2{
    font-size:21px;
    line-height:1.06;
  }
  .blog-card-body p{
    font-size:11px;
    line-height:1.55;
  }

  /* reviews */
  .review-card,
  .review-social-card{
    padding:15px;
  }
  .review-card blockquote{
    margin:12px 0 14px;
    font-size:17px;
    line-height:1.2;
  }
  .review-author{font-size:10px}
  .review-social-card strong{
    margin:8px 0 14px;
    font-size:21px;
    line-height:1.05;
  }

  /* steps */
  .steps{
    padding:44px 16px;
  }
  .steps-head{
    margin-bottom:20px;
  }
  .steps-head h2{
    font-size:clamp(32px,9vw,40px);
    line-height:.95;
  }
  .steps-head>p{font-size:11px}
  .step-grid{
    gap:5px;
    margin-bottom:11px;
  }
  .step-grid article{
    grid-template-columns:30px minmax(0,1fr);
    column-gap:9px;
    padding:12px 13px;
  }
  .step-grid span{font-size:18px}
  .step-grid h3{
    font-size:16.5px;
    line-height:1.04;
  }
  .step-grid p{
    font-size:9.5px;
    line-height:1.42;
  }

  /* visit */
  .visit-card{
    gap:13px;
    padding:18px 15px;
  }
  .visit-card h2{
    font-size:clamp(31px,8.8vw,39px);
    line-height:.95;
  }
  .visit-details>div{
    padding:10px 0;
  }
  .visit-details span{font-size:8px}
  .visit-details strong{
    font-size:12px;
    line-height:1.4;
  }
  .visit-details p{
    font-size:9.5px;
    line-height:1.45;
  }

  /* FAQ */
  .faq.section{
    padding-top:44px;
    padding-bottom:44px;
  }
  .faq-head{
    margin-bottom:18px!important;
  }
  .faq-head h2{
    max-width:350px;
    font-size:clamp(32px,9vw,40px);
    line-height:.95;
  }
  .questions summary{
    min-height:50px;
    padding:8px 0!important;
    font-size:11px;
  }
  .questions summary i{
    width:23px;
    height:23px;
    flex-basis:23px;
  }
  .questions details p{
    margin-right:31px!important;
    margin-bottom:14px!important;
    font-size:10px;
    line-height:1.5;
  }

  /* final */
  .final{
    padding-top:10px;
  }
  .final-card{
    gap:12px;
    padding:17px 14px;
  }
  .final-brand img{
    width:156px;
    height:auto;
    max-height:52px;
    object-fit:contain;
    object-position:left center;
  }
  .final-copy>p{
    margin-bottom:6px;
    font-size:9px;
    line-height:1.45;
  }
  .final-copy h2{
    font-size:clamp(31px,8.8vw,39px);
    line-height:.95;
  }
  .final-actions .button-light{min-height:40px}
  .final-actions .button-outline-light{min-height:34px}
  .final-actions small{font-size:8px}

  /* footer */
  .site-footer{
    gap:20px 14px;
    padding:28px 16px 20px;
  }
  .footer-brand>p{font-size:10px}
  .footer-column{
    gap:6px;
    font-size:10.5px;
  }
  .footer-column>b{font-size:8.5px}
  .footer-bottom{
    padding-top:15px;
    font-size:9.5px;
  }
}

@media (max-width:480px){
  .section{
    padding-top:40px;
    padding-bottom:40px;
    padding-left:14px;
    padding-right:14px;
  }
  .hero-copy{
    padding:27px 14px 21px;
  }
  .hero h1{
    max-width:300px;
    font-size:36px;
  }
  .hero-media{min-height:275px}
  .master-photo{min-height:290px}
  .master-copy{padding:32px 14px 36px}
  .works{padding:40px 14px}
  .works-collage{grid-template-rows:170px 108px}
  .faq-head h2{font-size:34px}
  .steps-head h2{font-size:34px}
}

/* Agatiy Groom — mobile viewport width fix v5 */
@media (max-width:820px){
  html,
  body{
    width:100%;
    max-width:100%;
    min-width:0;
    margin-left:0;
    margin-right:0;
    overflow-x:hidden!important;
    overflow-x:clip!important;
    overscroll-behavior-x:none;
  }

  body{
    position:relative;
  }

  main,
  .site-header,
  .site-footer{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  main{
    overflow-x:clip;
  }

  .hero,
  .hero-copy,
  .hero-media,
  .need-section,
  .master-section,
  .master-copy,
  .master-photo,
  .services-old,
  .works,
  .home-blog,
  .reviews,
  .steps,
  .visit,
  .faq,
  .final{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  .hero,
  .need-section,
  .master-section,
  .services-old,
  .works,
  .home-blog,
  .reviews,
  .steps,
  .visit,
  .faq,
  .final{
    overflow-x:clip;
  }

  .hero-copy,
  .master-copy{
    overflow-x:clip;
  }

  .need-grid,
  .need-tabs,
  .need-answer,
  .services-old-head,
  .service-list-old,
  .service-row-old,
  .works-copy,
  .works-collage,
  .home-blog-head,
  .blog-grid,
  .review-grid,
  .steps-head,
  .step-grid,
  .visit-card,
  .visit-details,
  .faq-head,
  .questions,
  .final-card,
  .final-copy,
  .final-actions{
    min-width:0;
    max-width:100%;
  }

  .hero img,
  .master-photo img,
  .works img,
  .home-blog img,
  .services-old img{
    max-width:100%;
  }

  /* decorative elements may leave the content box visually,
     but must never enlarge the mobile document width */
  .hero-copy::before,
  .hero-copy::after,
  .need-section::before,
  .need-section::after,
  .master-copy::before,
  .master-copy::after,
  .services-old::before,
  .services-old::after,
  .works::before,
  .works::after,
  .home-blog::before,
  .home-blog::after,
  .reviews::before,
  .reviews::after,
  .steps::before,
  .steps::after,
  .visit::before,
  .visit::after,
  .faq::before,
  .faq::after,
  .final-card::before,
  .final-card::after{
    max-width:calc(100% + 96px);
  }
}

@supports not (overflow:clip){
  @media (max-width:820px){
    main,
    .hero,
    .need-section,
    .master-section,
    .services-old,
    .works,
    .home-blog,
    .reviews,
    .steps,
    .visit,
    .faq,
    .final{
      overflow-x:hidden;
    }
  }
}

/* Agatiy Groom — compact mobile footer v6 */
@media (max-width:820px){
  .site-footer{
    position:relative;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px 16px;
    width:100%;
    max-width:100%;
    margin:0;
    padding:22px 16px 14px;
    overflow:hidden;
    border-top:1px solid rgba(33,21,15,.08);
    background:
      radial-gradient(circle at 100% 0,rgba(255,90,31,.07),transparent 34%),
      linear-gradient(180deg,#fffdf9 0%,#fff8f0 100%);
  }

  .site-footer:before{
    content:"";
    position:absolute;
    left:16px;
    right:16px;
    top:0;
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--accent),rgba(255,90,31,.10) 58%,transparent);
  }

  .footer-brand{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "logo text";
    gap:10px;
    align-items:center;
    padding:0 0 13px;
    border-bottom:1px solid rgba(33,21,15,.08);
  }

  .footer-brand .logo{
    grid-area:logo;
    gap:8px;
    min-width:0;
  }

  .footer-brand .logo img{
    width:150px;
    height:auto;
    max-height:50px;
    aspect-ratio:3/1;
    object-fit:contain;
    object-position:left center;
    flex:0 1 150px;
  }

  .footer-brand .logo b{
    font-size:9px;
    letter-spacing:.08em;
  }

  .footer-brand .logo small{
    margin-top:1px;
    font-size:8px;
  }

  .footer-brand>p{
    grid-area:text;
    max-width:none;
    margin:0;
    color:#7d6e64;
    font-size:9.5px;
    line-height:1.42;
  }

  .footer-column{
    min-width:0;
    gap:5px;
    font-size:10px;
    line-height:1.3;
  }

  .footer-column>b{
    margin:0 0 2px;
    color:var(--accent);
    font-size:8px;
    font-weight:800;
    letter-spacing:.11em;
  }

  .footer-column a,
  .footer-column span{
    display:block;
    min-width:0;
    padding:2px 0;
    overflow-wrap:anywhere;
  }

  .footer-bottom{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px 12px;
    flex-direction:row;
    flex-wrap:wrap;
    margin:1px 0 0;
    padding:11px 0 0;
    border-top:1px solid rgba(33,21,15,.08);
    font-size:8.5px;
    line-height:1.3;
  }

  .footer-bottom a{
    display:inline-flex;
    align-items:center;
    min-height:27px;
    padding:0 8px;
    border:1px solid rgba(33,21,15,.08);
    border-radius:5px;
    background:#f3e9dc;
    color:var(--ink);
    font-size:8.5px;
    font-weight:800;
    white-space:nowrap;
  }
}

@media (max-width:520px){
  .site-footer{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px 18px;
    padding:19px 14px 12px;
  }

  .site-footer:before{
    left:14px;
    right:14px;
  }

  .footer-brand{
    gap:8px;
    padding-bottom:11px;
  }

  .footer-brand>p{
    font-size:9px;
    line-height:1.38;
  }

  .footer-column{
    font-size:9.5px;
  }

  .footer-column:last-of-type{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:auto 1fr 1fr;
    gap:6px 10px;
    align-items:center;
    padding-top:2px;
  }

  .footer-column:last-of-type>b{
    margin:0;
  }

  .footer-column:last-of-type a{
    text-align:center;
  }

  .footer-bottom{
    gap:7px;
    padding-top:10px;
    font-size:8px;
  }

  .footer-bottom a{
    min-height:25px;
    padding-inline:7px;
    font-size:8px;
  }
}
