/* =========================================================
   QTRTAJ Professional Responsive Layer
   Desktop / Laptop / Tablet / Mobile
   ========================================================= */

html{
  -webkit-text-size-adjust:100%;
}

body{
  overflow-x:hidden;
}

img,
svg{
  max-width:100%;
  height:auto;
}

/* ---------- General fluid sizing ---------- */

.site-header__inner,
.page-shell,
.site-footer__inner{
  width:min(1180px,calc(100% - 40px));
}

.page-shell{
  padding-top:clamp(22px,3vw,40px);
  padding-bottom:clamp(36px,5vw,60px);
}

.panel__body,
.panel__header{
  padding-inline:clamp(16px,2vw,24px);
}

.form-control{
  min-width:0;
}

.btn{
  min-height:46px;
}

/* ---------- Large desktop ---------- */

@media (min-width:1200px){

  .site-header__inner{
    min-height:78px;
  }

  .page-shell{
    width:min(1180px,calc(100% - 56px));
  }

  .home-hero{
    padding:42px 40px;
  }

  .circle-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .circle-card{
    min-height:210px;
  }

  .entry-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
  }

  .booking-layout{
    grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);
    gap:24px;
  }

  .booking-summary{
    grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);
  }
}

/* ---------- Normal desktop / laptop ---------- */

@media (min-width:821px) and (max-width:1199px){

  .circle-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .booking-layout{
    grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
  }
}

/* ---------- Tablet ---------- */

@media (min-width:641px) and (max-width:820px){

  .site-header__inner,
  .page-shell,
  .site-footer__inner{
    width:calc(100% - 32px);
  }

  .circle-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .entry-grid,
  .booking-layout,
  .booking-summary{
    grid-template-columns:1fr;
  }

  .booking-action-panel{
    position:static;
  }

  .circle-hero{
    grid-template-columns:1fr;
  }

  .circle-hero__schedule{
    width:100%;
    min-width:0;
  }
}

/* ---------- Mobile ---------- */

@media (max-width:640px){

  :root{
    --radius-lg:16px;
    --radius-md:13px;
  }

  body{
    background:
      linear-gradient(180deg,#f8f6f1 0,#f5f2eb 100%);
  }

  .site-header{
    position:sticky;
    top:0;
  }

  .site-header__inner{
    width:calc(100% - 20px);
    min-height:64px;
    gap:10px;
  }

  .brand{
    gap:9px;
  }

  .brand__mark{
    width:42px;
    height:42px;
    flex-basis:42px;
    border-radius:12px;
    font-size:.9rem;
  }

  .brand__text strong{
    font-size:.94rem;
  }

  .brand__text small{
    font-size:.66rem;
  }

  .site-header__actions .btn{
    min-height:38px;
    padding:7px 10px;
    font-size:.76rem;
  }

  .page-shell{
    width:calc(100% - 20px);
    padding-top:18px;
    padding-bottom:34px;
  }

  .page-heading{
    display:block;
    margin-bottom:16px;
  }

  .page-heading__title{
    font-size:1.35rem;
  }

  .page-heading__subtitle{
    font-size:.84rem;
  }

  .home-hero{
    margin-bottom:20px;
    padding:23px 18px;
    border-radius:17px;
  }

  .home-hero__title{
    font-size:1.55rem;
  }

  .home-hero__text{
    font-size:.84rem;
  }

  .home-hero::after{
    left:-18px;
    font-size:4.7rem;
  }

  .home-section-head{
    display:block;
  }

  .circle-grid,
  .entry-grid,
  .booking-layout,
  .booking-summary,
  .form-grid{
    grid-template-columns:1fr;
  }

  .circle-card{
    min-height:auto;
    padding:18px;
  }

  .circle-card__action{
    padding-top:16px;
  }

  .circle-hero{
    grid-template-columns:1fr;
    gap:14px;
    padding:19px 16px;
  }

  .circle-hero__title{
    font-size:1.35rem;
  }

  .circle-hero__schedule{
    width:100%;
    min-width:0;
  }

  .entry-card__head{
    min-height:auto;
  }

  .panel{
    border-radius:16px;
  }

  .panel__header{
    padding:16px 15px 12px;
  }

  .panel__body{
    padding:15px;
  }

  .booking-action-panel{
    position:static;
  }

  .booking-step{
    align-items:flex-start;
  }

  .session-choice-card{
    padding:14px 13px;
  }

  .session-choice-card__top{
    align-items:flex-start;
  }

  .session-choice-card__time{
    font-size:.84rem;
  }

  .summary-card{
    padding:15px 16px;
  }

  .current-booking{
    padding:21px 18px;
  }

  .current-booking__time{
    font-size:1.35rem;
  }

  /* Prevent iOS zoom when focusing fields */
  input,
  select,
  textarea,
  .form-control{
    font-size:16px !important;
  }

  .form-control{
    min-height:50px;
    padding:11px 12px;
  }

  .btn{
    min-height:50px;
    padding:11px 15px;
    border-radius:11px;
  }

  .btn--block{
    width:100%;
  }

  .site-footer__inner{
    width:calc(100% - 20px);
    padding-bottom:
      max(24px,env(safe-area-inset-bottom));
  }
}

/* ---------- Small phones ---------- */

@media (max-width:420px){

  .brand__text small{
    display:none;
  }

  .home-hero__title{
    font-size:1.4rem;
  }

  .circle-card__title{
    font-size:1.03rem;
  }

  .session-choice-card__top{
    display:block;
  }

  .session-badge{
    margin-top:5px;
  }
}

/* ---------- Touch devices ---------- */

@media (hover:none) and (pointer:coarse){

  .btn,
  .choice-card,
  .session-choice-card{
    -webkit-tap-highlight-color:transparent;
  }

  .btn{
    min-height:48px;
  }

  input[type="radio"],
  input[type="checkbox"]{
    width:20px;
    height:20px;
  }
}

/* ---------- Safe areas for modern phones ---------- */

@supports (padding:max(0px)){

  .site-header__inner{
    padding-left:max(0px,env(safe-area-inset-left));
    padding-right:max(0px,env(safe-area-inset-right));
  }
}
