:root{
  --bg:#FBF3E7;
  --bg-alt:#F3E7D5;
  --surface:#FFFBF3;
  --surface-2:#FDEDDD;
  --ink:#3A3129;
  --ink-soft:#6B5D4F;
  --pri:#F4A261;
  --pri-d:#E17F3E;
  --sec:#8ECAE6;
  --sec-d:#6FB3D2;
  --acc:#95D5B2;
  --acc-d:#74C69D;
  --cta:#E85D3F;
  --cta-d:#C94A2E;
  --gold:#F2C14E;

  --r-sm:14px; --r-md:24px; --r-lg:36px; --r-xl:48px; --r-pill:999px;

  --sp-xs:8px; --sp-sm:16px; --sp-md:24px; --sp-lg:40px; --sp-xl:64px; --sp-2xl:96px; --sp-3xl:140px;

  --sh-out-sm: 4px 4px 10px rgba(196,140,88,.18), -4px -4px 10px rgba(255,255,255,.7);
  --sh-out: 10px 10px 24px rgba(196,140,88,.22), -10px -10px 24px rgba(255,255,255,.75);
  --sh-out-lg: 16px 16px 40px rgba(196,140,88,.25), -14px -14px 32px rgba(255,255,255,.8);
  --sh-in: inset 5px 5px 10px rgba(196,140,88,.22), inset -5px -5px 10px rgba(255,255,255,.65);
  --sh-in-sm: inset 3px 3px 7px rgba(196,140,88,.2), inset -3px -3px 7px rgba(255,255,255,.6);

  --tr: all .3s cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:'Plus Jakarta Sans',sans-serif; background:var(--bg); color:var(--ink);
  line-height:1.6; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.container{max-width:1280px; margin:0 auto; padding:0 24px;}

.pace{
  & .pace-progress{ background:var(--cta); height:3px; box-shadow:0 0 10px var(--cta); }
  & .pace-progress-inner{ box-shadow:none; }
  & .pace-activity{ display:none; }
}


.hdr{
  position:fixed; top:0; left:0; right:0; height:76px; z-index:1000;
  background:var(--surface); display:flex; align-items:center;
  box-shadow:0 2px 14px rgba(58,49,41,.08);
  transition: box-shadow .3s ease;
  &.scrolled{ box-shadow:0 6px 24px rgba(58,49,41,.16); }
  & .hdr-inner{
    max-width:1280px; margin:0 auto; padding:0 24px; width:100%;
    display:flex; align-items:center; justify-content:space-between;
  }
  & .hdr-logo{
    display:flex; align-items:center; gap:10px; font-weight:800; font-size:1.15rem; color:var(--ink);
    & img{ width:42px; height:42px; }
  }
  & .hdr-nav{
    display:flex; align-items:center; gap:8px;
    & a{
      padding:10px 18px; border-radius:var(--r-pill); font-weight:600; font-size:.95rem;
      color:var(--ink-soft); transition:var(--tr);
      &:hover{ background:var(--surface-2); color:var(--ink); box-shadow:var(--sh-out-sm); }
      &.active{ color:var(--ink); background:var(--surface-2); box-shadow:var(--sh-in-sm); }
    }
    & .hdr-cta{
      background:var(--cta); color:#fff; box-shadow:var(--sh-out-sm), 0 0 18px rgba(232,93,63,.35);
      &:hover{ background:var(--cta-d); box-shadow:var(--sh-out), 0 0 24px rgba(232,93,63,.5); transform:translateY(-1px); }
      &.active{ background:var(--cta-d); color:#fff; box-shadow:var(--sh-in-sm); }
    }
  }
  & .hdr-burger{
    display:none; width:44px; height:44px; border-radius:var(--r-md); border:none;
    background:var(--surface-2); box-shadow:var(--sh-out-sm); cursor:pointer;
    flex-direction:column; align-items:center; justify-content:center; gap:5px;
    & span{ width:20px; height:2px; background:var(--ink); border-radius:2px; transition:var(--tr); }
    &.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    &.open span:nth-child(2){ opacity:0; }
    &.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  }
}


.mob-overlay{
  position:fixed; inset:0; background:rgba(58,49,41,.45); backdrop-filter:blur(2px);
  z-index:1001; opacity:0; visibility:hidden; transition:opacity .35s ease;
  &.open{ opacity:1; visibility:visible; }
}
.mob-menu{
  position:fixed; top:0; left:0; bottom:0; width:80%; max-width:340px; z-index:1002;
  background:var(--surface); box-shadow:14px 0 40px rgba(58,49,41,.25);
  transform:translateX(-100%); transition:transform .4s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column; padding:110px 28px 40px; gap:6px;
  &.open{ transform:translateX(0); }
  & a{
    padding:16px 18px; border-radius:var(--r-md); font-weight:700; font-size:1.05rem;
    color:var(--ink); background:var(--surface-2); box-shadow:var(--sh-out-sm);
    opacity:0; transform:translateX(-16px); transition:opacity .35s ease, transform .35s ease, background .3s;
    &:hover{ background:var(--pri); color:#fff; }
  }
  &.open a{ opacity:1; transform:translateX(0); }
  &.open a:nth-child(1){ transition-delay:.08s; }
  &.open a:nth-child(2){ transition-delay:.14s; }
  &.open a:nth-child(3){ transition-delay:.2s; }
  &.open a:nth-child(4){ transition-delay:.26s; }
  &.open a:nth-child(5){ transition-delay:.32s; }
}


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 32px; border-radius:var(--r-pill); font-weight:700; font-size:1rem;
  border:none; cursor:pointer; transition:var(--tr); min-height:44px;
}
.btn-pri{
  background:linear-gradient(145deg,var(--pri),var(--pri-d)); color:#fff;
  box-shadow:var(--sh-out), 0 0 22px rgba(244,162,97,.35);
  &:hover{ transform:translateY(-2px); box-shadow:var(--sh-out-lg), 0 0 30px rgba(244,162,97,.5); }
}
.btn-ghost{
  background:var(--surface-2); color:var(--ink); box-shadow:var(--sh-out-sm);
  &:hover{ box-shadow:var(--sh-in-sm); }
}
.btn-cta{
  background:#fff; color:var(--cta-d); box-shadow:var(--sh-out-lg);
  &:hover{ transform:translateY(-2px); box-shadow:0 20px 44px rgba(0,0,0,.2); }
}


.hero{
  padding:150px 24px 100px; text-align:center; position:relative; overflow:hidden;
  & .hero-blob{ position:absolute; border-radius:50%; filter:blur(50px); opacity:.55; z-index:0; }
  & .hero-blob-a{ width:340px; height:340px; background:var(--pri); top:-80px; left:-100px; }
  & .hero-blob-b{ width:280px; height:280px; background:var(--acc); bottom:-60px; right:-80px; }
  & .hero-inner{ position:relative; z-index:1; max-width:820px; margin:0 auto; }
  & .hero-tag{
    display:inline-block; padding:8px 20px; border-radius:var(--r-pill); background:var(--surface-2);
    box-shadow:var(--sh-in-sm); font-weight:600; font-size:.85rem; color:var(--ink-soft); margin-bottom:24px;
  }
  & h1{
    font-size:clamp(2.4rem,6vw,5rem); line-height:1.06; margin:0 0 22px; font-weight:800; letter-spacing:-.02em;
  }
  & .grad-txt{
    background:linear-gradient(120deg,var(--pri-d),var(--gold) 45%,var(--acc-d));
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  & .hero-p{ font-size:1.15rem; color:var(--ink-soft); max-width:640px; margin:0 auto 36px; }
  & .hero-ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:56px; }
  & .hero-card{
    border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-out-lg); max-width:900px; margin:0 auto;
    & img{ width:100%; height:auto; aspect-ratio:16/8; object-fit:cover; }
  }
}


.fade-blend{
  height:120px; margin-top:-60px; margin-bottom:-60px; position:relative; z-index:2;
  background:linear-gradient(180deg, transparent, var(--bg-alt));
  pointer-events:none;
}
.fade-blend-alt{
  background:linear-gradient(180deg, transparent, var(--bg));
}


.sec{ padding:var(--sp-3xl) 24px; position:relative; }
.sec-alt{ background:var(--bg-alt); }
.sec-eyebrow{
  display:inline-block; font-weight:700; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--pri-d); margin-bottom:14px;
}
.sec-title{
  font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800; margin:0 0 18px; max-width:760px; letter-spacing:-.01em;
}
.sec-sub{ color:var(--ink-soft); font-size:1.05rem; max-width:640px; margin-bottom:48px; }


.crd-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
}
.crd{
  background:var(--surface); border-radius:var(--r-lg); padding:32px; box-shadow:var(--sh-out);
  transition:var(--tr); position:relative;
  &:hover{ transform:translateY(-6px); box-shadow:var(--sh-out-lg); }
  & h3{ font-size:1.2rem; margin:0 0 10px; font-weight:700; }
  & p{ color:var(--ink-soft); font-size:.95rem; margin:0; }
}
.crd-lg{
  grid-column:span 2; grid-row:span 2; padding:0; overflow:hidden; display:flex; flex-direction:column;
  & .crd-img img{ width:100%; height:220px; object-fit:cover; }
  & .crd-txt{ padding:32px; }
}
.crd-tall{ grid-row:span 1; padding:0; overflow:hidden;
  & .crd-img img{ width:100%; height:220px; object-fit:cover; }
  & .crd-txt{ padding:28px; }
}
.crd-ico{
  display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:var(--r-md); background:var(--surface-2); color:var(--pri-d); font-size:1.3rem;
  box-shadow:var(--sh-in-sm); margin-bottom:16px;
}
.crd-ico-b{ background:#E4F2F8; color:var(--sec-d); }
.crd-ico-c{ background:#E7F7EE; color:var(--acc-d); }
.crd-ico-d{ background:#FDECE3; color:var(--cta-d); }
.crd-ico-e{ background:#FFF3D6; color:#C9922B; }


.sys-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.sys-crd{
  background:var(--surface); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-out);
  transition:var(--tr);
  &:hover{ box-shadow:var(--sh-out-lg); transform:translateY(-4px); }
  & img{ width:100%; height:220px; object-fit:cover; }
  & .sys-txt{ padding:32px; }
  & h3{ display:flex; align-items:center; gap:10px; font-size:1.4rem; margin:0 0 12px; }
  & p{ color:var(--ink-soft); margin:0; }
}


.calc-sec{ background:linear-gradient(180deg,var(--bg),var(--surface-2)); }
.calc-card{
  background:var(--surface); border-radius:var(--r-xl); padding:40px; box-shadow:var(--sh-out-lg);
  display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:stretch;
}
.calc-frm{
  display:flex; flex-direction:column; gap:24px; justify-content:center;
  & .frm-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  & label{ display:flex; flex-direction:column; gap:8px; font-weight:600; font-size:.9rem; color:var(--ink-soft); position:relative; }
  & input, & textarea{
    font-family:inherit; padding:14px 16px; border-radius:var(--r-md); border:none;
    background:var(--surface-2); box-shadow:var(--sh-in-sm); font-size:1rem; color:var(--ink);
    transition:var(--tr);
    &:focus{ outline:none; box-shadow:var(--sh-in), 0 0 0 3px rgba(244,162,97,.3); }
  }
  & .frm-unit{ position:absolute; right:16px; top:38px; font-size:.75rem; color:var(--ink-soft); font-weight:700; }
}
.calc-btn{ align-self:flex-start; }
.calc-result{
  background:var(--surface-2); border-radius:var(--r-lg); box-shadow:var(--sh-in);
  display:flex; align-items:center; justify-content:center; padding:28px; text-align:center; min-height:200px;
  & .calc-result-empty{ color:var(--ink-soft); }
  & i{ font-size:2.4rem; color:var(--gold); margin-bottom:14px; display:block; }
  & .calc-out{ text-align:left; width:100%; }
  & .calc-out h4{ margin:0 0 6px; font-size:1.6rem; color:var(--pri-d); }
  & .calc-out p{ margin:4px 0; color:var(--ink-soft); font-size:.92rem; }
}
.calc-disclaimer{ margin-top:24px; font-size:.85rem; color:var(--ink-soft); display:flex; align-items:center; gap:8px; }


.panels-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.panels-img img{ border-radius:var(--r-lg); box-shadow:var(--sh-out-lg); width:100%; height:380px; object-fit:cover; }
.panels-list{ display:flex; flex-direction:column; gap:20px; }
.panels-item{
  background:var(--surface); border-radius:var(--r-md); padding:22px 26px; box-shadow:var(--sh-out-sm);
  & h4{ margin:0 0 6px; font-size:1.05rem; color:var(--pri-d); }
  & p{ margin:0; color:var(--ink-soft); font-size:.92rem; }
}


.cta-ban{
  padding:var(--sp-2xl) 24px; text-align:center;
  background:linear-gradient(135deg,var(--pri) 0%, var(--cta) 55%, var(--cta-d) 100%);
  position:relative; overflow:hidden;
  & .cta-ban-inner{ position:relative; z-index:1; max-width:720px; margin:0 auto; }
  & h2{ color:#fff; font-size:clamp(1.7rem,3.6vw,2.6rem); margin:0 0 16px; font-weight:800; }
  & p{ color:rgba(255,255,255,.9); margin:0 0 32px; font-size:1.05rem; }
}


.profiles-sec .profiles-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:auto; gap:28px; }
.profiles-grid .crd-tall{ grid-column:span 2; }

.workshop-wrap, .avail-wrap, .provmap-wrap, .quote-wrap, .loc-wrap{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
}
.workshop-img img, .avail-img img, .provmap-img img, .quote-img img{
  border-radius:var(--r-lg); box-shadow:var(--sh-out-lg); width:100%; height:340px; object-fit:cover;
}
.workshop-txt p, .avail-txt p, .provmap-txt p, .quote-txt p{ color:var(--ink-soft); margin-bottom:16px; }

.avail-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:24px; }
.avail-grid .crd{ padding:26px; }


.contact-card{
  background:var(--surface); border-radius:var(--r-xl); padding:40px; box-shadow:var(--sh-out-lg);
}
.frm{
  & .frm-row-wide{ display:grid; grid-template-columns:1fr 1fr 1.4fr; gap:20px; }
  & label{ display:flex; flex-direction:column; gap:8px; font-weight:600; font-size:.9rem; color:var(--ink-soft); }
  & input, & textarea{
    font-family:inherit; padding:14px 16px; border-radius:var(--r-md); border:none;
    background:var(--surface-2); box-shadow:var(--sh-in-sm); font-size:1rem; color:var(--ink); resize:none;
    transition:var(--tr);
    &:focus{ outline:none; box-shadow:var(--sh-in), 0 0 0 3px rgba(244,162,97,.3); }
  }
  & .frm-row-bottom{ display:flex; align-items:center; justify-content:space-between; margin-top:24px; gap:20px; flex-wrap:wrap; }
  & .frm-check{
    display:flex; align-items:center; gap:10px; font-weight:500; font-size:.88rem; color:var(--ink-soft);
    & input{ width:20px; height:20px; border-radius:6px; box-shadow:var(--sh-in-sm); accent-color:var(--pri-d); flex-shrink:0; }
    & a{ color:var(--pri-d); font-weight:700; }
  }
}
.loc-txt{
  & h2{ margin-bottom:20px; }
  & p{ margin:6px 0; color:var(--ink-soft); display:flex; align-items:center; gap:10px; }
  & i{ color:var(--pri-d); width:18px; }
}
.loc-note{
  margin-top:24px; background:var(--surface); padding:24px; border-radius:var(--r-md); box-shadow:var(--sh-out-sm);
  & h4{ margin:0 0 10px; display:flex; align-items:center; gap:8px; font-size:1rem; }
  & p{ margin:0; color:var(--ink-soft); font-size:.92rem; display:block; }
}
.loc-img{ margin-top:24px; border-radius:var(--r-lg); box-shadow:var(--sh-out); height:220px; object-fit:cover; width:100%; }
.loc-map iframe{ border-radius:var(--r-lg); box-shadow:var(--sh-out-lg); width:100%; }


.pg-hero{
  padding:150px 24px 60px; text-align:center;
  & h1{ font-size:clamp(2.2rem,5vw,3.6rem); margin:0 0 16px; font-weight:800; }
  & .grad-txt{
    background:linear-gradient(120deg,var(--pri-d),var(--gold) 45%,var(--acc-d));
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  & .pg-hero-p{ color:var(--ink-soft); max-width:640px; margin:0 auto; font-size:1.05rem; }
}


.thanks-sec{ padding:170px 24px 120px; display:flex; justify-content:center; }
.thanks-card{
  background:var(--surface); border-radius:var(--r-xl); padding:56px 44px; box-shadow:var(--sh-out-lg);
  text-align:center; max-width:520px; width:100%;
}
.check-svg{ width:120px; height:120px; margin:0 auto 28px; display:block; }
.check-circle{
  stroke:var(--acc-d); stroke-width:4; stroke-dasharray:280; stroke-dashoffset:280;
  animation:drawCircle 1s ease forwards;
}
.check-mark{
  stroke:var(--cta); stroke-width:6; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:70; stroke-dashoffset:70; animation:drawCheck .5s ease forwards .9s;
}
@keyframes drawCircle{ to{ stroke-dashoffset:0; } }
@keyframes drawCheck{ to{ stroke-dashoffset:0; } }
.thanks-h{
  font-size:1.9rem; margin:0 0 14px; font-weight:800; opacity:0; animation:fadeUp .6s ease forwards 1.4s;
}
.thanks-p{ color:var(--ink-soft); margin:0 0 28px; opacity:0; animation:fadeUp .6s ease forwards 1.6s; }
.thanks-card .btn{ opacity:0; animation:fadeUp .6s ease forwards 1.8s; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }


.faq-sec{ background:var(--surface-2); }
.faq-container{ max-width:880px; }
.faq-item{
  background:var(--surface); border-radius:var(--r-lg); padding:30px 34px; margin-bottom:22px; box-shadow:var(--sh-out-sm);
}
.faq-q{ font-size:1.15rem; margin:0 0 12px; font-weight:700; color:var(--pri-d); }
.faq-a{ margin:0; color:var(--ink-soft); }
.faq-sec-alt .faq-item{ border-left:4px solid var(--sec-d); }
.faq-sec-plain .faq-item{ border-radius:var(--r-md); box-shadow:none; background:transparent; border-bottom:1px solid rgba(58,49,41,.1); padding:24px 4px; }
.faq-sec-plain .faq-q{ color:var(--ink); }


.cookie-backdrop{
  position:fixed; inset:0; background:rgba(58,49,41,.55); backdrop-filter:blur(3px);
  z-index:2000; display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; visibility:hidden; transition:opacity .35s ease;
  &.show{ opacity:1; visibility:visible; }
}
.cookie-modal{
  background:var(--surface); border-radius:var(--r-xl); padding:36px; max-width:520px; width:100%;
  box-shadow:var(--sh-out-lg); transform:scale(.94); transition:transform .35s ease;
  max-height:88vh; overflow-y:auto;
  .cookie-backdrop.show &{ transform:scale(1); }
  & h2{ margin:0 0 12px; font-size:1.4rem; font-weight:800; display:flex; align-items:center; gap:10px; }
  & h2 i{ color:var(--gold); }
  & > p{ color:var(--ink-soft); margin:0 0 24px; font-size:.92rem; }
}
.cookie-cats{ display:flex; flex-direction:column; gap:14px; margin-bottom:28px; }
.cookie-cat{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:var(--surface-2); border-radius:var(--r-md); padding:16px 20px; box-shadow:var(--sh-in-sm);
  & div h4{ margin:0 0 4px; font-size:.95rem; }
  & div p{ margin:0; font-size:.8rem; color:var(--ink-soft); }
}
.cookie-toggle{
  position:relative; width:48px; height:28px; flex-shrink:0;
  & input{ opacity:0; width:0; height:0; }
  & .track{
    position:absolute; inset:0; background:#D8C7B0; border-radius:var(--r-pill); transition:var(--tr); cursor:pointer;
    box-shadow:var(--sh-in-sm);
  }
  & .track::before{
    content:''; position:absolute; width:20px; height:20px; left:4px; top:4px; background:#fff; border-radius:50%;
    transition:var(--tr); box-shadow:0 2px 4px rgba(0,0,0,.2);
  }
  & input:checked + .track{ background:var(--acc-d); }
  & input:checked + .track::before{ transform:translateX(20px); }
  & input:disabled + .track{ background:var(--pri-d); opacity:.7; cursor:not-allowed; }
}
.cookie-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.cookie-actions .btn{ flex:1; padding:14px 20px; font-size:.92rem; }


.ftr{
  background:var(--ink); color:#F3E7D5; padding:var(--sp-2xl) 24px var(--sp-lg);
  & .ftr-inner{ max-width:1100px; margin:0 auto; text-align:center; display:flex; flex-direction:column; align-items:center; gap:28px; }
  & .ftr-logo{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:1.2rem; color:#fff;
    & img{ width:38px; height:38px; filter:brightness(0) invert(1); }
  }
  & .ftr-links{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center;
    & a{ padding:8px 16px; border-radius:var(--r-pill); font-size:.9rem; color:#E8DCC8; transition:var(--tr);
      &:hover{ background:rgba(255,255,255,.08); color:#fff; }
    }
  }
  & .ftr-contact{ display:flex; gap:24px; flex-wrap:wrap; justify-content:center; font-size:.88rem; color:#CBBBA0;
    & p{ margin:0; display:flex; align-items:center; gap:8px; }
    & i{ color:var(--gold); }
  }
  & .ftr-bottom{
    border-top:1px solid rgba(255,255,255,.12); padding-top:24px; width:100%; display:flex; flex-direction:column; gap:12px; align-items:center;
    & p{ margin:0; font-size:.82rem; color:#B5A588; }
    & .ftr-legal{ display:flex; gap:16px; }
    & .ftr-legal a{ font-size:.82rem; color:#CBBBA0; transition:var(--tr); &:hover{ color:#fff; } }
  }
}


.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }


@media (max-width:1024px){
  .crd-grid{ grid-template-columns:repeat(2,1fr); }
  .crd-lg{ grid-column:span 2; }
  .profiles-sec .profiles-grid{ grid-template-columns:repeat(2,1fr); }
  .profiles-grid .crd-tall{ grid-column:span 2; }
  .avail-grid{ grid-template-columns:repeat(2,1fr); }
  .calc-card{ grid-template-columns:1fr; }
  .panels-wrap, .sys-grid, .workshop-wrap, .avail-wrap, .provmap-wrap, .quote-wrap, .loc-wrap{ grid-template-columns:1fr; }
}
@media (max-width:768px){
  .hdr-nav{ display:none; }
  .hdr-burger{ display:flex; }
  .hero{ padding:120px 20px 70px; }
  .sec{ padding:var(--sp-2xl) 20px; }
  .crd-grid{ grid-template-columns:1fr; }
  .crd-lg{ grid-column:span 1; }
  .profiles-sec .profiles-grid{ grid-template-columns:1fr; }
  .profiles-grid .crd-tall{ grid-column:span 1; }
  .avail-grid{ grid-template-columns:1fr; }
  .frm-row-wide{ grid-template-columns:1fr !important; }
  .calc-frm .frm-row{ grid-template-columns:1fr; }
  .frm-row-bottom{ flex-direction:column; align-items:stretch !important; }
  .cookie-actions{ flex-direction:column; }
  .contact-card, .calc-card{ padding:28px 22px; }
  .ftr-contact{ flex-direction:column; gap:10px; }
}
@media (max-width:420px){
  .hero h1{ font-size:2.1rem; }
  .thanks-card{ padding:40px 24px; }
}