/* ==========================================================================
   United Respite Care — landing page
   Brand: #2B274A main · #E5D3AA background · #ECB30F accent (sparing) · #1D92FF hover
   Fonts: Newsreader (display) + Atkinson Hyperlegible (body, high legibility)
   ========================================================================== */

:root{
  --navy:#2B274A;
  --sand:#E5D3AA;
  --gold:#ECB30F;
  --blue:#1D92FF;
  --ink:#211E36;
  --muted:#5b5872;
  --line:#e6ddca;
  --paper:#FCFCFA;
  --radius:16px;
  --radius-lg:28px;
  --shadow:0 20px 50px -30px rgba(43,39,74,.45);
  --wrap:1200px;
  --pad:clamp(20px, 5vw, 80px);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Atkinson Hyperlegible","Segoe UI",system-ui,sans-serif;
  font-size:18px;line-height:1.6;
}
img,svg{display:block;max-width:100%;}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:500;color:var(--navy);margin:0;line-height:1.12;}
h1{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.01em;}
h2{font-size:clamp(1.8rem,3.4vw,2.9rem);}
h3{font-size:clamp(1.2rem,1.8vw,1.55rem);}
p{margin:0;}
a{color:var(--navy);}
a:hover{color:var(--blue);}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px;}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);}
.section{padding-block:clamp(56px,8vw,104px);}
.lead{font-size:clamp(1.05rem,1.5vw,1.35rem);color:#3a3752;}

.skip-link{position:absolute;left:-999px;top:0;z-index:200;
  background:var(--navy);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;font-weight:700;}
.skip-link:focus{left:0;color:#fff;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 28px;border-radius:999px;
  font:inherit;font-weight:700;font-size:1.05rem;text-decoration:none;
  border:2px solid transparent;cursor:pointer;
  transition:background-color .15s,border-color .15s,color .15s;text-align:center;line-height:1.2;}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn:hover{background:var(--blue);border-color:var(--blue);color:#fff;}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--line);}
.header-inner{max-width:1340px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px);
  display:flex;align-items:center;gap:clamp(14px,2vw,28px);padding-block:12px;min-height:84px;flex-wrap:nowrap;}
.brand{display:flex;align-items:center;flex-shrink:0;text-decoration:none;}
.brand img{height:60px;width:auto;}
.main-nav{display:flex;gap:clamp(12px,1.6vw,24px);margin-left:auto;flex-wrap:nowrap;}
.main-nav a{white-space:nowrap;text-decoration:none;color:var(--ink);font-size:.98rem;}
.main-nav a:hover{color:var(--blue);}
.header-cta{display:flex;align-items:center;gap:clamp(12px,1.5vw,18px);flex-shrink:0;}
.header-phone{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-weight:700;font-size:1.05rem;color:var(--navy);text-decoration:none;}
.header-cta .btn{min-height:50px;padding:0 22px;font-size:1rem;white-space:nowrap;}

/* Hero */
.hero{background:var(--sand);}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);
  gap:clamp(32px,4vw,64px);align-items:start;}
.hero-copy{display:flex;flex-direction:column;gap:22px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;}
.hero-photo{width:100%;height:clamp(240px,32vw,380px);object-fit:cover;
  border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 96px;}
.hero-note{color:var(--muted);font-size:1rem;max-width:52ch;}
.hero-sub{color:#3a3752;font-size:1.05rem;max-width:60ch;}
.offer-flag{margin:2px 0;}
.offer-flag span{display:inline-block;background:var(--navy);color:#fff;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;font-size:.9rem;padding:9px 16px;border-radius:999px;
  border:2px solid var(--gold);}
.offer-flag-light span{background:#fff;color:var(--navy);}

/* Trust bar */
.trustbar{background:var(--navy);color:#fff;}
.trustbar .wrap{padding-block:16px;}
.trustbar ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;
  align-items:center;gap:12px clamp(20px,4vw,52px);}
.trustbar li{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1rem;white-space:nowrap;}
.trustbar svg{color:var(--gold);flex-shrink:0;}

/* Lead form */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow);overflow:hidden;position:sticky;top:104px;}
.form-head{background:var(--navy);color:#fff;padding:28px 30px;border-bottom:4px solid var(--gold);}
.form-head-title{display:flex;align-items:center;gap:12px;}
.form-head h2{color:#fff;font-size:1.9rem;}
.form-head p{margin-top:8px;color:#e4e2f0;font-size:1rem;line-height:1.5;}
.form-body{padding:26px 30px 30px;display:flex;flex-direction:column;gap:20px;}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-weight:700;font-size:.95rem;}
.field .req{color:#9a3412;}
.field input,.field select,.field textarea{font:inherit;font-size:1.05rem;padding:12px 14px;
  border:1.5px solid #b5ae9e;border-radius:12px;background:#fff;color:var(--ink);min-height:52px;width:100%;}
.field textarea{min-height:96px;resize:vertical;}
.field input::placeholder,.field textarea::placeholder{color:#6b7873;}
.chip-group{display:flex;flex-direction:column;gap:10px;}
.chip-group>span{font-weight:700;font-size:.95rem;}
.chip-group .hint{font-weight:400;color:var(--muted);}
.chips{display:flex;flex-wrap:wrap;gap:10px;}
.chip{min-height:46px;padding:8px 18px;border-radius:999px;font:inherit;font-size:1rem;
  background:#fff;color:var(--ink);border:1.5px solid #b5ae9e;cursor:pointer;
  transition:background-color .12s,border-color .12s,color .12s;}
.chip:hover{border-color:var(--navy);}
.chip[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy);}
.form-fine{color:var(--muted);font-size:.9rem;text-align:center;line-height:1.5;}
.thanks{padding:44px 30px 48px;display:flex;flex-direction:column;gap:16px;}
/* the hidden attribute must always win over the display rules above */
[hidden]{display:none !important;}
.thanks .check{width:56px;height:56px;border-radius:50%;background:#eee9dc;color:var(--navy);
  display:flex;align-items:center;justify-content:center;}

/* Trust strip */
.trust{border-bottom:1px solid var(--line);}
.trust .wrap{padding-block:clamp(28px,4vw,44px);}
.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 40px;align-items:center;}
.trust-item{display:flex;gap:14px;align-items:center;}
.trust-item svg{flex-shrink:0;color:var(--navy);}
.trust-item .t-title{font-weight:700;font-size:1.05rem;line-height:1.2;}
.trust-item .t-sub{font-size:.95rem;color:var(--muted);line-height:1.35;}
.trust-item img{height:52px;width:auto;flex-shrink:0;}

/* Services */
.services-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;
  flex-wrap:wrap;margin-bottom:clamp(32px,4vw,52px);}
.services-head .lead{max-width:60ch;margin-top:14px;}
.svc-primary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,32px);align-items:stretch;}
.svc-card{--cardpad:clamp(26px,2.6vw,36px);position:relative;overflow:hidden;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--cardpad);display:flex;flex-direction:column;gap:14px;
  box-shadow:0 18px 44px -34px rgba(43,39,74,.4);}
.svc-photo{margin:calc(var(--cardpad) * -1) calc(var(--cardpad) * -1) 4px;
  width:calc(100% + var(--cardpad) * 2);max-width:none;height:190px;object-fit:cover;display:block;}
.svc-card-lead{background:var(--navy);border-color:var(--navy);color:#fff;}
.svc-tag{position:absolute;top:16px;left:16px;z-index:2;
  background:var(--gold);color:var(--navy);font-weight:700;font-size:.78rem;letter-spacing:.05em;
  text-transform:uppercase;padding:6px 14px;border-radius:999px;box-shadow:0 6px 16px -8px rgba(0,0,0,.5);}
.svc-ic{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:#F3EAD5;color:var(--navy);}
.svc-card-lead .svc-ic{background:rgba(255,255,255,.14);color:#fff;}
.svc-card h3{color:var(--navy);font-size:1.5rem;}
.svc-card p{font-size:1.02rem;line-height:1.55;color:#3a3752;flex-grow:1;}
.svc-card.svc-card-lead h3{color:#fff;}
.svc-card.svc-card-lead p{color:#ece9f6;}
.svc-link{font-weight:700;text-decoration:none;color:var(--navy);margin-top:2px;}
.svc-card-lead .svc-link{color:var(--gold);}
.svc-card-lead .svc-link:hover{color:#fff;}
.svc-link:hover{color:var(--blue);}
.svc-also{margin-top:clamp(28px,3.5vw,44px);padding:clamp(22px,2.4vw,30px) clamp(24px,3vw,36px);
  background:#F3EAD5;border-radius:var(--radius-lg);
  display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;}
.svc-also-label{font-weight:700;color:var(--navy);font-size:1.05rem;white-space:nowrap;}
.svc-also-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 12px;}
.svc-also-list li{background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:8px 16px;font-weight:700;font-size:.98rem;color:var(--navy);}

/* Life at home gallery */
.gallery{padding-bottom:clamp(20px,4vw,40px);}
.gallery-grid{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,20px);}
.gallery-grid li{margin:0;}
.gallery-grid img{width:100%;height:clamp(180px,16vw,230px);object-fit:cover;
  border-radius:var(--radius);display:block;}

/* Offer band */
.btn-gold{background:var(--gold);color:var(--navy);border-color:var(--gold);}
.btn-gold:hover{background:var(--blue);border-color:var(--blue);color:#fff;}
/* "You don't have to wait for a crisis" — warm, emotionally resonant band */
.crisis{background:var(--sand);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.crisis-inner{max-width:760px;margin-inline:auto;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:18px;}
.crisis h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:20ch;}
.crisis-lead{color:#3a3752;font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.65;max-width:60ch;}
.crisis-line{color:#3a3752;font-size:clamp(1.05rem,1.5vw,1.2rem);}
.crisis-strong{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.4rem,2.2vw,1.9rem);
  color:var(--navy);line-height:1.25;margin-top:2px;}
.crisis .btn{margin-top:8px;}

/* Differentiator */
.approach{background:var(--navy);color:#fff;}
.approach h2{color:#fff;font-size:clamp(2rem,3.6vw,3.2rem);}
.approach-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,80px);}
.approach-lead{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.35rem,2vw,1.7rem);
  line-height:1.35;color:#f2f0fa;}
.approach p{color:#dcd9ea;}
.more-line{margin-top:8px;padding-top:24px;border-top:1px solid rgba(255,255,255,.25);
  font-family:"Newsreader",Georgia,serif;font-size:clamp(1.7rem,2.6vw,2.4rem);color:var(--gold);line-height:1.15;}
.why-list h3{color:#f2f0fa;font-size:1.15rem;margin-bottom:4px;}
.why-item{padding:22px 0;border-bottom:1px solid rgba(255,255,255,.2);}
.why-item:last-of-type{border-bottom:0;}
.why-item .w-title{font-family:"Newsreader",Georgia,serif;font-size:1.5rem;margin-bottom:6px;}
.why-item .w-desc{color:#dcd9ea;}
.standards{margin-top:8px;padding:26px 28px;border-radius:var(--radius);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);}
.standards .st-title{font-weight:700;font-size:1.05rem;margin-bottom:8px;}
.standards p{color:#dcd9ea;font-size:1rem;}

/* Stories / reviews */
.stories{background:var(--sand);}
.stories>.wrap>h2{margin-bottom:12px;}
.stories-intro{max-width:70ch;color:#3a3752;margin-bottom:clamp(28px,4vw,44px);}
/* Two vertical testimonial videos side by side */
.video-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,36px);
  max-width:760px;margin:clamp(28px,4vw,40px) auto 0;}
.video-item{margin:0;display:flex;flex-direction:column;gap:12px;}
.video-item figcaption{text-align:center;color:#3a3752;font-size:1rem;font-weight:700;}
.video-player{position:relative;width:100%;aspect-ratio:9/16;border-radius:var(--radius-lg);overflow:hidden;
  background:#1f1c36;box-shadow:var(--shadow);}
.video-player video{width:100%;height:100%;object-fit:cover;display:block;background:#1f1c36;}
.video-play-btn{position:absolute;inset:0;width:100%;height:100%;border:0;cursor:pointer;
  background:linear-gradient(rgba(31,28,54,.12),rgba(31,28,54,.42));
  display:flex;align-items:center;justify-content:center;transition:background-color .15s;}
.video-play-btn:hover{background:linear-gradient(rgba(31,28,54,.22),rgba(31,28,54,.52));}
.video-play-btn.is-hidden{display:none;}
.video-play-btn .play{width:76px;height:76px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -10px rgba(0,0,0,.6);
  padding-left:4px;transition:transform .15s;}
.video-play-btn:hover .play{transform:scale(1.06);}

/* CTA under the videos */
.video-cta{text-align:center;margin:clamp(32px,4.5vw,52px) auto clamp(8px,2vw,16px);
  display:flex;flex-direction:column;align-items:center;gap:18px;}
.video-cta h3{font-size:clamp(1.4rem,2.4vw,1.9rem);color:var(--navy);max-width:22ch;}

.reviews-lead{text-align:center;color:#3a3752;font-size:1.05rem;
  margin:clamp(40px,6vw,68px) auto clamp(24px,3vw,32px);max-width:60ch;}
.reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.review{background:#fff;border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:12px;}
.stars{display:flex;gap:3px;}
.review blockquote{margin:0;font-family:"Newsreader",Georgia,serif;font-size:1.2rem;line-height:1.45;flex-grow:1;}
.review figcaption{color:var(--muted);font-size:.95rem;}
.reviews-more{margin-top:24px;font-weight:700;}

/* Founder */
.founder-grid{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);
  gap:clamp(40px,5vw,80px);align-items:center;}
.founder-photo{width:100%;height:clamp(360px,42vw,560px);object-fit:cover;object-position:center 22%;
  border-radius:200px 200px 24px 24px;}
.founder-copy{display:flex;flex-direction:column;gap:20px;}
.founder-quote{font-family:"Newsreader",Georgia,serif;font-style:italic;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.3;color:var(--navy);margin:8px 0 0;}
.founder-sign strong{font-size:1.05rem;}
.founder-sign span{color:var(--muted);}

/* How it works */
.how{position:relative;background-color:var(--paper);
  background-image:url(assets/texture.svg);
  background-size:min(70%,900px) auto;background-position:right bottom;background-repeat:no-repeat;
  padding-top:clamp(96px,11vw,150px);}
/* Sand wave divider flowing down from the reviews section above, connecting the two */
.how::before{content:"";position:absolute;left:0;right:0;top:-1px;height:clamp(70px,8vw,120px);
  background:url(assets/wave-divider.svg) top center/100% 100% no-repeat;}
/* Fade the texture into the paper at the bottom so lines never reach the border */
.how::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;pointer-events:none;
  background:linear-gradient(to bottom, rgba(252,252,250,0) 0%, var(--paper) 92%);}
.how > .wrap{position:relative;z-index:1;}
.steps{list-style:none;margin:clamp(32px,4vw,52px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,40px);}
.step{background:#fff;border:1px solid var(--line);border-radius:18px;border-top:4px solid var(--navy);
  box-shadow:0 14px 36px -30px rgba(43,39,74,.4);
  padding:24px 24px 28px;display:flex;flex-direction:column;gap:10px;}
.step .num{font-family:"Newsreader",Georgia,serif;font-size:2.6rem;line-height:1;color:var(--navy);}
.step .st-name{font-weight:700;font-size:1.15rem;}
.step .st-desc{font-size:1rem;color:var(--muted);}

/* Final CTA + areas */
.close-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:clamp(40px,5vw,72px);align-items:center;}
.close-copy{display:flex;flex-direction:column;gap:18px;}
.close-copy .lead{max-width:60ch;}
.close-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px;}
.areas-card{background:var(--sand);border-radius:var(--radius-lg);padding:clamp(28px,3vw,40px);
  display:flex;flex-direction:column;gap:14px;}
.areas-card h3{color:var(--navy);font-size:1.7rem;}
.areas-card p{color:#3a3752;font-size:1.05rem;}
.areas-contact{margin-top:6px;padding-top:18px;border-top:1px solid #d9c99e;
  font-family:"Inter","Atkinson Hyperlegible",system-ui,sans-serif;font-size:1rem;line-height:1.85;letter-spacing:.01em;}

/* Footer */
.site-footer{background:#211E3D;color:#d2cfe3;}
.footer-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;
  padding-block:clamp(40px,5vw,56px);}
.footer-brand{display:flex;flex-direction:column;gap:8px;max-width:34ch;}
.footer-brand .fb-name{font-family:"Newsreader",Georgia,serif;font-size:1.6rem;color:#fff;}
.footer-brand .fb-sub{font-size:1rem;}
.footer-contact{font-family:"Inter","Atkinson Hyperlegible",system-ui,sans-serif;font-size:1rem;line-height:1.9;letter-spacing:.01em;}
.footer-contact a{color:#fff;}
.footer-nav{display:flex;flex-wrap:wrap;gap:16px 24px;}
.footer-nav a{color:#d2cfe3;text-decoration:none;font-size:.95rem;}
.footer-nav a:hover{color:#fff;text-decoration:underline;}
.footer-legal{padding-block:20px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:.85rem;color:#a9a5c2;}
.footer-legal a{color:#a9a5c2;}
.footer-legal a:hover{color:#fff;}

/* Sticky mobile call bar */
.mobile-callbar{display:none;}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1150px){
  .main-nav{display:none;}
}
@media (max-width:1024px){
  .hero-grid,.approach-grid,.founder-grid,.close-grid{grid-template-columns:1fr;}
  .form-card{position:static;max-width:620px;}
  .founder-grid{gap:40px;}
  .founder-photo{height:clamp(360px,60vw,520px);}
  .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .svc-primary{grid-template-columns:1fr;}
  .reviews{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  body{padding-bottom:88px;}
  .header-inner{min-height:64px;}
  .header-phone{display:none;}
  .brand img{height:56px;}
  .trust-grid{grid-template-columns:1fr;}
  .svc-primary{grid-template-columns:1fr;}
  .trustbar ul{gap:10px 24px;}
  .trustbar li{font-size:.95rem;}
  .svc-also{flex-direction:column;align-items:flex-start;}
  .video-duo{gap:12px;}
  .video-item figcaption{font-size:.9rem;}
  .reviews{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .steps{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .services-head{align-items:flex-start;}
  .footer-top{flex-direction:column;gap:28px;}
  .footer-contact{text-align:left;}
  .mobile-callbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;
    position:fixed;left:0;right:0;bottom:0;z-index:120;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
    background:#fff;border-top:1px solid var(--line);box-shadow:0 -12px 30px -18px rgba(43,39,74,.35);}
  .mobile-callbar .btn{min-height:52px;font-size:1rem;padding:0 14px;}
}
@media (max-width:400px){
  .mobile-callbar .btn{font-size:.92rem;padding:0 8px;}
  .header-cta .btn{padding:0 18px;font-size:.95rem;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;animation:none !important;}
  .reveal{opacity:1 !important;transform:none !important;}
}

/* ===================== SMOOTH LOADING & ANIMATIONS ===================== */
/* Crisper font rendering reduces the "flash" feel as fonts settle */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;}

/* Gentle whole-page fade so content arrives softly rather than snapping in */
@keyframes page-in{from{opacity:0}to{opacity:1}}
body{animation:page-in .5s ease both;}

/* Scroll-reveal: elements start slightly down + transparent, then ease in
   when they enter the viewport (JS adds .is-visible). Hiding is gated behind
   .js so that without JavaScript (or if the observer fails) everything shows. */
.js .reveal{opacity:0;transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;}
.js .reveal.is-visible{opacity:1;transform:none;}

/* Staggering for grids of cards, reviews, gallery, steps, trust items */
.js .reveal-stagger > *{opacity:0;transform:translateY(20px);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1);}
.js .reveal-stagger.is-visible > *{opacity:1;transform:none;}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.00s}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.08s}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.16s}
.reveal-stagger.is-visible > *:nth-child(4){transition-delay:.24s}
.reveal-stagger.is-visible > *:nth-child(5){transition-delay:.32s}
.reveal-stagger.is-visible > *:nth-child(6){transition-delay:.40s}

/* Subtle lift on interactive cards for a bit of life on hover */
.svc-card{transition:transform .25s ease, box-shadow .25s ease;}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 26px 54px -30px rgba(43,39,74,.5);}
.review{transition:transform .25s ease, box-shadow .25s ease;}
.review:hover{transform:translateY(-3px);box-shadow:0 20px 44px -30px rgba(43,39,74,.4);}
.gallery-grid img{transition:transform .35s ease;}
.gallery-grid li{overflow:hidden;border-radius:var(--radius);}
.gallery-grid li:hover img{transform:scale(1.05);}

/* No-JS safety net: if JS is disabled, reveal classes must not hide content */
.no-js .reveal, .no-js .reveal-stagger > *{opacity:1 !important;transform:none !important;}
