:root{--forest:#1D6B42;--forest2:#145534;--paper:#F9F7F1;--paper2:#F1EFE6;--ink:#132A1E;--deep:#0B1A11;--sage:#E2ECE4;--line:rgba(19,42,30,.14);--soft:rgba(19,42,30,.72);--radius:22px;--scale:1;--pad:clamp(1rem,4vw,3.75rem);--ease:cubic-bezier(.2,.72,.22,1)}*{box-sizing:border-box}html{font-size:calc(100% * var(--scale));scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Noto Sans",system-ui,sans-serif;font-size:1.05rem;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(2.55rem,5.2vw,5rem);max-width:18ch}h2{font-size:clamp(2rem,3.7vw,3.4rem);max-width:23ch}h3{font-size:clamp(1.2rem,1.8vw,1.55rem);letter-spacing:-.02em;line-height:1.2}p{margin:0 0 1rem}.wrap{width:min(1320px,calc(100% - var(--pad)*2));margin-inline:auto}.skip{position:fixed;left:-9999px;top:.5rem;background:var(--forest);color:white;padding:.75rem 1rem;z-index:999;border-radius:10px}.skip:focus{left:.5rem}:focus-visible{outline:3px solid #7CC997;outline-offset:3px}.site-header{position:sticky;top:0;z-index:100;background:rgba(249,247,241,.92);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:.25s}.site-header.stuck{border-color:var(--line);box-shadow:0 16px 45px -40px #000}.header-row{min-height:78px;display:flex;align-items:center;gap:1rem}.brand{display:flex;align-items:center;flex:0 0 auto}.brand img{width:150px;height:auto;flex:0 0 auto;opacity:1;visibility:visible}.main-nav{margin-left:auto;display:flex;align-items:center;gap:.08rem}.main-nav a{text-decoration:none;font-size:.9rem;font-weight:600;white-space:nowrap;padding:.58rem .62rem;border-radius:10px;color:rgba(19,42,30,.76)}.main-nav a:hover,.main-nav a[aria-current=page]{background:var(--sage);color:var(--ink)}.tools{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}.text-size{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:white}.text-size button{border:0;background:transparent;height:34px;min-width:34px;cursor:pointer;font-size:.78rem;font-weight:800}.text-size button[aria-pressed=true]{background:var(--ink);color:white}.language{height:38px;max-width:165px;border:1px solid var(--line);border-radius:999px;background:white;padding:0 2rem 0 .8rem;font-size:.87rem;font-weight:650;color:var(--ink)}.burger{display:none;width:42px;height:42px;border:1px solid var(--line);background:white;border-radius:12px;padding:9px;cursor:pointer}.burger span{display:block;height:2px;background:var(--ink);margin:4px 0}.page{display:none;min-height:55vh}.page.active{display:block;animation:pageIn .45s var(--ease) both}@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.hero{position:relative;overflow:hidden;background:var(--deep);color:var(--paper);padding:clamp(4.4rem,8vw,8.5rem) 0}.hero:before{content:"";position:absolute;width:62vw;height:62vw;border-radius:50%;right:-20vw;top:-32vw;background:radial-gradient(circle,rgba(29,107,66,.55),rgba(29,107,66,0) 68%);animation:pulse 9s ease-in-out infinite alternate}@keyframes pulse{to{transform:scale(1.08) translate(-2%,3%)}}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(3rem,6vw,7rem);align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:.76rem;color:var(--forest);margin:0 0 .9rem}.hero .eyebrow{color:#9ED7B1}.hero h1{color:var(--paper)}.hero-lede,.page-lede{font-size:clamp(1.08rem,1.5vw,1.27rem);max-width:62ch;margin-top:1.35rem;color:rgba(19,42,30,.72)}.hero-lede{color:rgba(249,247,241,.80);max-width:53ch}.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid transparent;border-radius:999px;padding:.9rem 1.5rem;font-weight:750;cursor:pointer;transition:transform .2s var(--ease),background .2s,border-color .2s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--forest);color:white}.btn.primary:hover{background:var(--forest2)}.btn.ghost{border-color:var(--line);background:transparent}.btn.light{border-color:rgba(255,255,255,.3);color:white}.trust-row{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.35rem}.trust-row span{font-size:.8rem;font-weight:700;border:1px solid rgba(255,255,255,.17);border-radius:999px;padding:.4rem .65rem;color:rgba(255,255,255,.82);background:rgba(255,255,255,.04)}.hero-art{width:min(100%,390px);justify-self:center;position:relative;animation:float 7s ease-in-out infinite}.hero-art img{position:relative;z-index:2;filter:drop-shadow(0 26px 35px rgba(0,0,0,.15))}.glow{position:absolute;inset:20% 5%;background:radial-gradient(circle,rgba(65,194,112,.20),transparent 70%);filter:blur(24px)}@keyframes float{50%{transform:translateY(-12px) rotate(1deg)}}.disclosure{background:var(--forest);color:white}.disclosure-inner{display:grid;grid-template-columns:28px 1fr;gap:.7rem;align-items:start;padding:1rem 0}.info{width:22px;height:22px;border:1px solid rgba(255,255,255,.6);border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:800;margin-top:.12rem}.disclosure p{margin:0;max-width:110ch;font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.94)}.band{padding:clamp(4.7rem,8vw,8rem) 0}.band.tint{background:var(--paper2)}.section-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:clamp(2rem,5vw,6rem);align-items:end;margin-bottom:clamp(2.2rem,4vw,4rem)}.section-head>p{justify-self:end;max-width:60ch;color:var(--soft);font-size:1.08rem}.audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.audience-card{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding:1.55rem;border-top:2px solid var(--ink);background:rgba(255,255,255,.4);border-radius:0 0 18px 18px;min-width:0}.audience-card>b,.card>span,.service-card>span{width:39px;height:39px;border-radius:50%;background:var(--sage);color:var(--forest);display:grid;place-items:center;font-size:.78rem}.audience-card p{margin:.4rem 0 0;color:var(--soft)}.split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(2.8rem,6vw,7rem);align-items:start}.feature-split{align-items:center}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.4rem);box-shadow:0 25px 70px -55px #000}.panel p{color:var(--soft)}.text-link{display:inline-block;margin-top:.5rem;font-weight:800;color:var(--forest);text-decoration:none}.page-head{padding:clamp(3.8rem,7vw,6.8rem) 0 1.3rem}.page-head h1{font-size:clamp(2.45rem,4.6vw,4.65rem)}.sticky{position:sticky;top:110px}.prose{font-size:1.08rem;color:var(--soft)}.prose p{max-width:67ch}.callout{margin-top:2rem;border-left:4px solid var(--forest);background:var(--sage);padding:1.45rem 1.55rem;border-radius:0 18px 18px 0}.callout p{margin:.55rem 0 0}.three-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.card,.service-card,.quote-card{border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.45rem,2.5vw,2.2rem);background:rgba(255,255,255,.58);box-shadow:0 22px 70px -56px rgba(0,0,0,.7);transition:transform .28s var(--ease),border-color .28s}.card:hover,.service-card:hover,.quote-card:hover{transform:translateY(-5px);border-color:rgba(29,107,66,.32)}.card span{margin-bottom:1.2rem}.card p,.service-card p{color:var(--soft);margin:.55rem 0 0}.language-note{margin-top:1.2rem;border:1px solid var(--line);background:white;border-radius:18px;padding:1.35rem 1.5rem}.language-note p{margin:.45rem 0 0;color:var(--soft)}.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.service-card{min-height:225px}.service-card span{margin-bottom:1.2rem}.scope{margin-top:2rem;border:2px solid var(--ink);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.5rem);display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:2rem}.scope p{color:var(--soft)}.steps{position:relative;max-width:930px;margin:0 auto;padding-left:76px}.steps:before,.steps:after{content:"";position:absolute;left:24px;top:20px;width:2px;border-radius:2px}.steps:before{bottom:20px;background:var(--line)}.steps:after{height:var(--progress,0%);background:var(--forest);transition:height .08s linear}.step{position:relative;padding:0 0 3rem}.step:last-child{padding-bottom:0}.step-num{position:absolute;left:-76px;top:-4px;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:2px solid var(--line);font-weight:800;transition:.3s}.step.on .step-num{background:var(--forest);border-color:var(--forest);color:white}.step p{max-width:67ch;color:var(--soft);margin:.55rem 0 0}.center-action{max-width:930px;margin:3rem auto 0}.faq{max-width:960px}.faq details{border-top:1px solid var(--line)}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;padding:1.45rem 3.4rem 1.45rem 0;position:relative;font-weight:750;font-size:clamp(1.08rem,1.5vw,1.24rem)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:.2rem;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--sage);color:var(--forest);font-size:1.2rem}.faq details[open] summary:after{content:"–"}.answer{padding:0 3.2rem 1.55rem 0;color:var(--soft);max-width:76ch}.notice{background:#FFF5D3;border:1px solid #D8B75C;color:#5E4C1A;padding:1.15rem 1.35rem;border-radius:16px;margin-bottom:2rem}.quote-card{min-height:300px;display:flex;flex-direction:column}.quote-card blockquote{margin:0;font-size:1.22rem;line-height:1.45;font-weight:650}.quote-card cite{margin-top:auto;padding-top:1.5rem;font-style:normal;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--forest);font-weight:800}.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);gap:clamp(2rem,5vw,5rem);align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field.full{grid-column:1/-1}.field label{display:block;font-weight:700;font-size:.94rem;margin-bottom:.4rem}.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);background:white;color:var(--ink);border-radius:12px;min-height:49px;padding:.82rem .9rem}.field textarea{min-height:145px;resize:vertical}.field small{display:none;color:#A22D22;font-size:.8rem;margin-top:.3rem}.field.invalid small{display:block}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#A22D22}.check label{display:flex;gap:.7rem;align-items:flex-start;font-weight:500}.check input{width:20px!important;height:20px!important;min-height:0!important;margin-top:.25rem;flex:0 0 auto;accent-color:var(--forest)}.sent{display:none;border:2px solid var(--forest);background:white;border-radius:18px;padding:1.5rem}.sent.show{display:block}.sent h3{color:var(--forest);margin-bottom:.5rem}.contact-card{position:sticky;top:110px;background:var(--sage);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.2rem)}.prototype{background:#FFF5D3;border-radius:12px;padding:.9rem;font-size:.84rem;line-height:1.5;color:#5E4C1A;margin-bottom:1.4rem}.contact-card dl{margin:0}.contact-card dt{margin-top:1rem;color:var(--forest);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.contact-card dd{margin:.2rem 0 0;font-weight:650;overflow-wrap:anywhere}footer{background:var(--ink);color:rgba(249,247,241,.72);padding:4rem 0 2rem}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem}.footer-logo{width:165px;height:auto;filter:none;margin-bottom:1rem}.footer-grid h4{color:var(--paper);margin:0 0 .8rem}.footer-grid a{display:block;text-decoration:none;margin:.35rem 0}.footer-grid a:hover{color:white;text-decoration:underline}.legal{border-top:1px solid rgba(255,255,255,.14);padding-top:1.3rem;margin-top:2.5rem;font-size:.82rem}.legal p{max-width:105ch;margin:.35rem 0}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in{opacity:1;transform:none}[dir=rtl] .main-nav{margin-left:0;margin-right:auto}[dir=rtl] .callout{border-left:0;border-right:4px solid var(--forest);border-radius:18px 0 0 18px}[dir=rtl] .steps{padding-left:0;padding-right:76px}[dir=rtl] .steps:before,[dir=rtl] .steps:after{left:auto;right:24px}[dir=rtl] .step-num{left:auto;right:-76px}[dir=rtl] .faq summary{padding-right:0;padding-left:3.4rem}[dir=rtl] .faq summary:after{right:auto;left:.2rem}[dir=rtl] .answer{padding-right:0;padding-left:3.2rem}@media(max-width:1180px){.burger{display:block;order:4}.main-nav{position:absolute;left:var(--pad);right:var(--pad);top:70px;margin:0;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:.65rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.1rem;box-shadow:0 24px 60px -38px #000;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s;max-height:70vh;overflow:auto}.main-nav.open{opacity:1;visibility:visible;transform:none}.main-nav a{padding:.85rem .9rem;font-size:.98rem}.tools{margin-left:auto}[dir=rtl] .tools{margin-left:0;margin-right:auto}}@media(max-width:900px){.hero-grid,.section-head,.split,.scope,.contact-grid{grid-template-columns:1fr}.hero-art{order:-1;width:min(55vw,250px);justify-self:start}.section-head>p{justify-self:start}.sticky,.contact-card{position:static}.three-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){body{font-size:1rem}.header-row{min-height:68px}.brand img{width:126px}.text-size{display:none}.language{max-width:135px;width:135px}.main-nav{top:62px;grid-template-columns:1fr}.hero{padding:3.8rem 0 4.4rem}.hero-art{width:165px}.audience-grid,.services-grid,.three-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.steps{padding-left:58px}.steps:before,.steps:after{left:18px}.step-num{left:-58px;width:38px;height:38px;font-size:.84rem}[dir=rtl] .steps{padding-left:0;padding-right:58px}[dir=rtl] .steps:before,[dir=rtl] .steps:after{right:18px}[dir=rtl] .step-num{right:-58px}.faq summary{padding-right:2.8rem}.answer{padding-right:0}[dir=rtl] .faq summary{padding-left:2.8rem}[dir=rtl] .answer{padding-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* ===== Restored original animated ginkgo hero ===== */
.hero-leaf{
  justify-self:center;
  width:min(100%,390px);
  position:relative;
  filter:drop-shadow(0 26px 35px rgba(0,0,0,.15));
}
.hero-leaf::before{
  content:"";
  position:absolute;
  inset:20% 4%;
  z-index:-1;
  background:radial-gradient(circle,rgba(65,194,112,.20),transparent 70%);
  filter:blur(24px);
  pointer-events:none;
}
.hero-leaf svg{
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
}
.leaf-line{
  fill:none;
  stroke:rgba(249,247,241,.55);
  stroke-width:.55;
  stroke-linejoin:round;
  stroke-dasharray:1000;
  /* Static fallback stays fully visible if the page is hidden/re-shown. */
  stroke-dashoffset:0;
}
.leaf-rise{
  transform-box:fill-box;
  transform-origin:50% 100%;
  /* Static fallback stays open so SVG paint state cannot collapse after navigation. */
  transform:scaleY(1);
}
.leaf-sway{
  transform-box:fill-box;
  transform-origin:50% 96%;
}
.vein{
  stroke:rgba(249,247,241,.28);
  stroke-width:.4;
  fill:none;
  stroke-linecap:round;
  stroke-dasharray:100;
  stroke-dashoffset:0;
}
/*
   The drawing animation is opt-in. JS removes this class when Home is hidden
   and re-adds it when Home becomes active, which reliably restarts the SVG
   clip-path animation in Chromium/WebKit instead of leaving the leaf blank.
*/
.hero-leaf.leaf-play .leaf-line{
  stroke-dashoffset:1000;
  animation:alcLeafDraw 2s .25s var(--ease) forwards;
}
.hero-leaf.leaf-play .leaf-rise{
  transform:scaleY(0);
  animation:alcLeafRise 1.5s 1.05s var(--ease) forwards;
}
.hero-leaf.leaf-play .leaf-sway{
  animation:alcLeafSway 11s 2.4s ease-in-out infinite alternate;
}
.hero-leaf.leaf-play .vein{
  stroke-dashoffset:100;
  animation:alcLeafDraw 1.6s 1.5s ease-out forwards;
}
@keyframes alcLeafDraw{to{stroke-dashoffset:0}}
@keyframes alcLeafRise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes alcLeafSway{from{transform:rotate(-1.1deg)}to{transform:rotate(1.4deg)}}

@media(max-width:900px){
  .hero-leaf{order:-1;width:min(55vw,250px);justify-self:start}
}
@media(max-width:640px){
  .hero-leaf{width:165px}
}
@media(prefers-reduced-motion:reduce){
  .leaf-line,.vein{stroke-dashoffset:0!important}
  .leaf-rise{transform:none!important}
  .leaf-sway{transform:none!important}
}

/* Ascending visual text-size controls */
.text-size button:nth-child(1){font-size:.72rem}
.text-size button:nth-child(2){font-size:.92rem}
.text-size button:nth-child(3){font-size:1.12rem}


/* ============================================================
   Editorial photography  -  text and imagery intentionally interwoven
   ============================================================ */
.editorial-grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(380px,.98fr);
  gap:clamp(3rem,7vw,7.5rem);
  align-items:center;
}
.editorial-grid-reverse{grid-template-columns:minmax(380px,.94fr) minmax(0,1.06fr)}
.editorial-copy{min-width:0}
.editorial-lede{font-size:1.08rem;color:rgba(19,42,30,.72);max-width:60ch;margin:1.2rem 0 2rem}
.editorial-visual{position:relative;min-height:610px}
.story-photo{
  margin:0;
  overflow:hidden;
  border-radius:clamp(20px,2.2vw,30px);
  box-shadow:0 28px 74px -48px rgba(8,31,19,.75);
  background:var(--sage);
}
.story-photo img,.provider-photo img,.service-story-photo img,.how-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .9s var(--ease);
}
.story-photo:hover img,.provider-photo:hover img,.service-story-photo:hover img,.how-photo:hover img{transform:scale(1.045)}
.story-photo-main{
  position:absolute;
  inset:0 7% 8% 0;
}
.story-photo-float{
  position:absolute;
  width:42%;
  aspect-ratio:4/5;
  right:0;
  border:7px solid var(--paper);
  z-index:2;
}
.story-photo-float-bottom{bottom:0}
.photo-accent{
  position:absolute;z-index:3;left:-1.1rem;bottom:2rem;
  background:var(--forest);color:white;padding:.72rem 1rem;border-radius:999px;
  font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  box-shadow:0 14px 30px -20px rgba(0,0,0,.6);
}
.audience-list{margin-top:2rem;border-top:1px solid var(--line)}
.audience-line{
  display:grid;grid-template-columns:42px minmax(0,1fr);gap:1rem;
  padding:1.15rem 0;border-bottom:1px solid var(--line);
}
.audience-line b{font-size:.76rem;color:var(--forest);letter-spacing:.08em}
.audience-line h3{font-size:1.08rem;margin-bottom:.2rem}
.audience-line p{font-size:.95rem;line-height:1.55;color:rgba(19,42,30,.69);margin:0}

.provider-editorial-grid{
  display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);
  gap:clamp(2.5rem,6vw,6.5rem);align-items:center;
}
.provider-photo{
  height:clamp(360px,38vw,520px);overflow:hidden;border-radius:30px;
  box-shadow:0 28px 74px -50px rgba(8,31,19,.65);
}
.provider-copy .panel{margin-top:1.7rem}
.provider-copy h2{max-width:16ch}

.about-visual{min-height:620px}
.about-main{inset:0 0 10% 8%}
.about-float{
  left:0;right:auto;bottom:0;width:40%;aspect-ratio:4/5;
  border:7px solid var(--paper);z-index:2;
}
.about-editorial .editorial-copy h2{margin-bottom:1.2rem}
.about-editorial .editorial-copy>.eyebrow{margin-bottom:.45rem}

.service-editorial{overflow:hidden}
.service-story{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);
  gap:clamp(2rem,5vw,5rem);align-items:stretch;margin-bottom:clamp(2.3rem,5vw,5rem);
}
.service-story-flip{grid-template-columns:minmax(380px,1.1fr) minmax(0,.9fr)}
.service-story-copy{display:grid;align-content:center}
.service-card-open{
  border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;
  box-shadow:none;padding:1.55rem 0;min-height:0;
}
.service-card-open:last-child{border-bottom:1px solid var(--line)}
.service-card-open:hover{transform:none;box-shadow:none}
.service-card-open>span{display:block;font-size:.75rem;font-weight:800;letter-spacing:.08em;color:var(--forest);margin-bottom:.55rem}
.service-card-open p{max-width:48ch}
.service-story-photo{
  margin:0;min-height:460px;border-radius:30px;overflow:hidden;background:var(--sage);
  box-shadow:0 28px 74px -50px rgba(8,31,19,.65);
}
.service-story:nth-child(2) .service-story-photo{border-radius:90px 30px 30px 30px}

.how-grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(350px,.95fr);
  gap:clamp(3rem,7vw,7rem);align-items:start;
}
.how-photo-wrap{position:sticky;top:108px}
.how-photo{
  margin:0;height:min(68vh,640px);min-height:480px;border-radius:32px 96px 32px 32px;
  overflow:hidden;background:var(--sage);box-shadow:0 30px 80px -52px rgba(8,31,19,.75);
}
.how-photo-note{
  width:86%;margin:-3.2rem auto 0;position:relative;z-index:2;
  background:var(--paper);border:1px solid var(--line);border-radius:18px;
  padding:1.15rem 1.25rem;box-shadow:0 20px 45px -32px rgba(0,0,0,.5);
}
.how-photo-note span{font-size:.72rem;color:var(--forest);font-weight:800;letter-spacing:.1em}
.how-photo-note p{font-size:.9rem;line-height:1.55;color:rgba(19,42,30,.7);margin:.35rem 0 0}

@media(max-width:980px){
  .editorial-grid,.editorial-grid-reverse,.provider-editorial-grid,.how-grid{grid-template-columns:1fr}
  .editorial-visual,.about-visual{min-height:540px;max-width:680px;width:100%;margin-inline:auto}
  .provider-photo{max-width:680px;width:100%}
  .service-story,.service-story-flip{grid-template-columns:1fr 1fr;gap:1.3rem}
  .service-story-photo{min-height:410px}
  .how-photo-wrap{position:relative;top:auto;max-width:680px;width:100%;margin:0 auto}
  .how-photo{height:540px}
}
@media(max-width:700px){
  .editorial-visual,.about-visual{min-height:460px}
  .story-photo-main{inset:0 4% 9% 0}
  .story-photo-float{width:43%;border-width:5px}
  .about-main{inset:0 0 10% 4%}
  .about-float{width:43%;border-width:5px}
  .photo-accent{left:.5rem;bottom:1rem}
  .service-story,.service-story-flip{grid-template-columns:1fr}
  .service-story-flip .service-story-photo{order:2}
  .service-story-photo{min-height:360px}
  .provider-photo{height:390px}
  .how-photo{height:440px;min-height:0}
}
@media(max-width:480px){
  .editorial-visual,.about-visual{min-height:390px}
  .story-photo-main{inset:0 0 12% 0}
  .story-photo-float{width:42%;right:.25rem}
  .about-main{inset:0 0 12% 0}
  .about-float{left:.25rem}
  .photo-accent{font-size:.68rem}
}
@media(prefers-reduced-motion:reduce){
  .story-photo img,.provider-photo img,.service-story-photo img,.how-photo img{transform:none!important}
}

/* Graceful fallback for prototype photography */
.story-photo,
.provider-photo,
.service-story-photo,
.how-photo{
  position:relative;
}
.story-photo.image-failed::before,
.provider-photo.image-failed::before,
.service-story-photo.image-failed::before,
.how-photo.image-failed::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 30% 25%,rgba(29,107,66,.20),transparent 34%),
    linear-gradient(145deg,var(--sage),var(--paper-2));
}
.story-photo.image-failed::after,
.provider-photo.image-failed::after,
.service-story-photo.image-failed::after,
.how-photo.image-failed::after{
  content:"All Life Care";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:var(--forest);
  font-weight:800;
  letter-spacing:-.03em;
  font-size:clamp(1.2rem,2vw,1.8rem);
  opacity:.72;
}
.image-failed img{opacity:0}

/* Layout safeguards for translated copy and text-size controls */
.editorial-copy,
.provider-copy,
.service-story-copy,
.how-grid > div{min-width:0}
.audience-line h3,
.service-card-open h3,
.page-head h1,
.editorial-copy h2,
.provider-copy h2{overflow-wrap:anywhere}
@media(max-width:1180px){
  .header-row{gap:.7rem}
}
@media(max-width:760px){
  .scope{grid-template-columns:1fr}
  .scope h3{margin-bottom:.35rem}
}

/* ============================================================
   Additional overlap styling  -  restore layered photo aesthetic
   ============================================================ */
.provider-visual{
  position:relative;
  min-height:clamp(420px,42vw,560px);
  max-width:620px;
}
.provider-photo-main,
.provider-photo-float,
.service-story-float,
.how-photo-float{
  margin:0;
  overflow:hidden;
  background:var(--sage);
  box-shadow:0 28px 74px -48px rgba(8,31,19,.7);
}
.provider-photo-main{
  height:100%;
  border-radius:30px;
}
.provider-photo-float{
  position:absolute;
  width:42%;
  aspect-ratio:4/5;
  right:-1rem;
  bottom:-1rem;
  border-radius:24px;
  border:7px solid var(--paper);
  z-index:2;
}
.provider-photo-main img,
.provider-photo-float img,
.service-story-float img,
.how-photo-float img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .9s var(--ease);
}
.provider-visual:hover img,
.service-visual:hover img,
.how-visual:hover img{
  transform:scale(1.045);
}

.service-visual{
  position:relative;
  min-height:460px;
}
.service-story-photo-main{
  min-height:460px;
}
.service-story-float{
  position:absolute;
  width:38%;
  aspect-ratio:4/5;
  border-radius:24px;
  border:7px solid var(--paper);
  z-index:2;
}
.service-story-float-first{
  right:-1rem;
  bottom:-1rem;
}
.service-story-float-second{
  left:-1rem;
  bottom:-1rem;
}
.service-story-flip .service-story-float-second{
  left:auto;
  right:-1rem;
}
.service-story-flip .service-visual{
  min-height:460px;
}
.service-story-flip .service-story-photo{
  border-radius:90px 30px 30px 30px;
}

.how-visual{
  position:relative;
  min-height:640px;
}
.how-photo{
  position:relative;
  z-index:1;
}
.how-photo-float{
  position:absolute;
  width:43%;
  aspect-ratio:4/5;
  right:-.5rem;
  bottom:4.5rem;
  border-radius:24px;
  border:7px solid var(--paper);
  z-index:2;
}
.how-photo-note{
  position:relative;
  z-index:3;
}

@media(max-width:980px){
  .provider-visual{
    min-height:500px;
    margin-inline:auto;
  }
  .service-visual{
    min-height:410px;
  }
  .service-story-photo-main{
    min-height:410px;
  }
  .how-visual{
    min-height:540px;
  }
}
@media(max-width:700px){
  .provider-photo-float,
  .service-story-float,
  .how-photo-float{
    width:42%;
    border-width:5px;
  }
  .provider-photo-float{
    right:.25rem;
    bottom:.25rem;
  }
  .service-story-float-first,
  .service-story-float-second{
    right:.25rem;
    left:auto;
    bottom:.25rem;
  }
  .service-visual{
    min-height:360px;
  }
  .service-story-photo-main{
    min-height:360px;
  }
  .how-visual{
    min-height:440px;
  }
  .how-photo-float{
    right:.25rem;
    bottom:3rem;
  }
}
@media(max-width:480px){
  .provider-visual{
    min-height:390px;
  }
  .provider-photo-float,
  .service-story-float,
  .how-photo-float{
    width:44%;
  }
}
@media(prefers-reduced-motion:reduce){
  .provider-visual:hover img,
  .service-visual:hover img,
  .how-visual:hover img{
    transform:none!important;
  }
}

/* ============================================================
   Korean-led multicultural photography redesign
   ============================================================ */
.photo-shell{
  position:relative;
  margin:0;
  overflow:hidden;
  background:linear-gradient(145deg,var(--sage),var(--paper-2));
  box-shadow:0 28px 70px -48px rgba(8,31,19,.72);
}
.photo-shell .site-photo{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .9s var(--ease),opacity .3s ease;
}
.photo-shell:hover .site-photo{transform:scale(1.045)}
.photo-shell.has-photo-error .site-photo{opacity:0}
.photo-shell.has-photo-error::after{
  content:"All Life Care";
  position:absolute;inset:0;display:grid;place-items:center;
  color:var(--forest);font-weight:850;letter-spacing:-.03em;
  background:
    radial-gradient(circle at 30% 25%,rgba(29,107,66,.20),transparent 34%),
    linear-gradient(145deg,var(--sage),var(--paper-2));
}

/* Home */
.home-focus{overflow:hidden}
.home-focus-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(430px,1.08fr);
  gap:clamp(3rem,7vw,7.5rem);
  align-items:center;
}
.home-focus-copy{min-width:0}
.home-focus .section-head{display:block}
.home-focus .section-head>p{max-width:58ch;margin-top:1rem}
.korea-mosaic{
  min-height:660px;
  position:relative;
}
.korea-mosaic-main{
  position:absolute;
  inset:4% 10% 9% 0;
  border-radius:32px 110px 32px 32px;
}
.korea-mosaic-group{
  position:absolute;
  inline-size:43%;
  block-size:34%;
  inset-inline-end:0;
  inset-block-start:0;
  border-radius:24px;
  border:7px solid var(--paper);
  z-index:3;
}
.korea-mosaic-portrait{
  position:absolute;
  inline-size:38%;
  aspect-ratio:4/5;
  inset-inline-end:1%;
  inset-block-end:0;
  border-radius:999px 999px 30px 30px;
  border:7px solid var(--paper);
  z-index:4;
}
.mosaic-ring{
  position:absolute;
  width:150px;height:150px;border:1px solid rgba(29,107,66,.35);
  border-radius:50%;inset-inline-start:-2rem;inset-block-end:3rem;
  z-index:-1;
}

/* Provider */
.provider-redesign{overflow:hidden}
.provider-stage{
  position:relative;
  min-height:610px;
}
.provider-stage-main{
  position:absolute;inset:0 15% 0 0;
  border-radius:32px 120px 32px 32px;
}
.provider-stage-copy{
  position:absolute;
  inset-inline-start:4%;
  inset-block-end:4%;
  width:min(620px,58%);
  padding:clamp(1.5rem,3vw,2.5rem);
  border-radius:24px;
  background:rgba(249,247,241,.94);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 30px 80px -50px rgba(0,0,0,.5);
  z-index:3;
}
.provider-stage-copy h2{max-width:15ch}
.provider-stage-copy p{max-width:58ch}
.provider-stage-accent{
  position:absolute;
  inline-size:27%;
  aspect-ratio:4/5;
  inset-inline-end:0;
  inset-block-start:8%;
  border-radius:26px;
  border:7px solid var(--paper-2);
  z-index:4;
}

/* About */
.about-weave-grid{
  display:grid;
  grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr) minmax(250px,.72fr);
  gap:clamp(1.6rem,4vw,4.5rem);
  align-items:center;
}
.about-weave-tall{
  height:620px;
  border-radius:110px 28px 28px 28px;
}
.about-weave-copy{min-width:0}
.about-weave-stack{
  display:grid;
  gap:1rem;
  align-self:stretch;
  padding-block:2rem;
}
.about-weave-wide{
  min-height:330px;
  border-radius:28px 80px 28px 28px;
}
.about-weave-small{
  width:76%;
  aspect-ratio:1/1;
  margin-inline-start:auto;
  border-radius:50%;
  border:7px solid var(--paper);
}
.values-photo-rail{
  display:grid;
  grid-template-columns:1.1fr .75fr .95fr;
  gap:1rem;
  align-items:end;
  margin-top:clamp(2rem,5vw,4.5rem);
}
.values-photo{height:290px}
.values-photo-korea{border-radius:28px 90px 28px 28px}
.values-photo-middle{height:230px;border-radius:999px 999px 28px 28px}
.values-photo-europe{height:260px;border-radius:28px}

/* Services */
.services-feature-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  grid-auto-rows:minmax(430px,auto);
  gap:1.15rem;
}
.service-feature{
  position:relative;
  overflow:hidden;
  min-height:430px;
  border-radius:30px;
  background:var(--paper-2);
}
.service-feature-large{grid-row:span 2;min-height:880px}
.service-feature-wide{min-height:470px}
.service-feature-photo{
  position:absolute;
  inset:0;
  border-radius:inherit;
}
.service-feature-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(8,31,19,.66) 100%);
}
.service-feature-copy{
  position:absolute;
  inset-inline:clamp(1rem,2.4vw,2rem);
  inset-block-end:clamp(1rem,2.4vw,2rem);
  padding:1.2rem 1.3rem;
  border-radius:18px;
  background:rgba(249,247,241,.93);
  backdrop-filter:blur(8px);
  z-index:3;
  max-width:520px;
}
.service-feature-copy span{
  display:block;
  color:var(--forest);
  font-size:.74rem;font-weight:800;letter-spacing:.1em;
  margin-bottom:.45rem;
}
.service-feature-copy h3{font-size:1.35rem}
.service-feature-copy p{margin:.45rem 0 0;line-height:1.55}
.services-redesign .scope{margin-top:clamp(2rem,5vw,4rem)}

/* How */
.how-redesign-grid{
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(390px,.97fr);
  gap:clamp(3rem,7vw,7rem);
  align-items:start;
}
.how-arch{
  position:sticky;
  top:110px;
  min-height:650px;
}
.how-arch-main{
  height:620px;
  border-radius:220px 220px 34px 34px;
}
.how-arch-float{
  position:absolute;
  width:38%;
  aspect-ratio:4/5;
  inset-inline-start:-7%;
  inset-block-end:4%;
  border-radius:24px;
  border:7px solid var(--paper);
  z-index:3;
}
.how-arch-note{
  position:absolute;
  width:62%;
  inset-inline-end:-2%;
  inset-block-end:-2%;
  padding:1rem 1.15rem;
  border-radius:18px;
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 20px 45px -32px rgba(0,0,0,.5);
  z-index:4;
}
.how-arch-note span{font-size:.72rem;color:var(--forest);font-weight:800;letter-spacing:.1em}
.how-arch-note p{font-size:.9rem;line-height:1.5;margin:.35rem 0 0}

/* FAQ */
.faq-redesign-grid{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);
  gap:clamp(3rem,7vw,6.5rem);
  align-items:start;
}
.faq-photo-cluster{
  position:sticky;top:110px;min-height:570px;
}
.faq-photo-main{
  position:absolute;inset:0 8% 5% 0;
  border-radius:32px 110px 32px 32px;
}
.faq-photo-float{
  position:absolute;
  width:42%;aspect-ratio:4/5;
  inset-inline-end:0;inset-block-end:0;
  border-radius:999px 999px 24px 24px;
  border:7px solid var(--paper);
  z-index:3;
}

/* Stories */
.story-rows{display:grid;gap:clamp(2rem,5vw,4.5rem);margin-top:2rem}
.story-row{
  display:grid;
  grid-template-columns:minmax(330px,.9fr) minmax(0,1.1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
}
.story-row-reverse .story-row-photo{order:2}
.story-row-reverse .story-row-quote{order:1}
.story-row-photo{
  height:440px;
  border-radius:34px 110px 34px 34px;
}
.story-row-reverse .story-row-photo{border-radius:110px 34px 34px 34px}
.story-row-quote{
  padding:clamp(1.2rem,3vw,2.4rem);
  border-inline-start:2px solid var(--forest);
}
.story-row-quote blockquote{
  margin:0 0 1.2rem;
  font-size:clamp(1.55rem,2.4vw,2.45rem);
  line-height:1.18;
  letter-spacing:-.035em;
  font-weight:750;
}
.story-row-quote cite{font-style:normal;color:rgba(19,42,30,.6);font-size:.86rem}

/* Contact */
.contact-redesign-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:clamp(3rem,7vw,6.5rem);
  align-items:start;
}
.contact-visual-column{display:grid;gap:1.2rem;position:sticky;top:105px}
.contact-photo-stack{position:relative;min-height:470px}
.contact-photo-main{
  position:absolute;inset:0 12% 0 0;
  border-radius:32px 110px 32px 32px;
}
.contact-photo-small{
  position:absolute;
  width:40%;aspect-ratio:4/5;
  inset-inline-end:0;inset-block-end:-2%;
  border-radius:24px;
  border:7px solid var(--paper);
  z-index:3;
}
.contact-visual-column .contact-card{margin:0}

/* RTL fine-tuning */
html[dir="rtl"] .provider-stage-main{inset:0 0 0 15%}
html[dir="rtl"] .faq-photo-main,
html[dir="rtl"] .contact-photo-main{inset:0 0 5% 8%}
html[dir="rtl"] .story-row-quote{border-inline-start:2px solid var(--forest)}

/* Responsive */
@media(max-width:1080px){
  .home-focus-grid,
  .about-weave-grid,
  .how-redesign-grid,
  .faq-redesign-grid,
  .contact-redesign-grid{grid-template-columns:1fr}
  .korea-mosaic{min-height:610px;max-width:760px;width:100%;margin-inline:auto}
  .provider-stage{min-height:650px}
  .about-weave-grid{max-width:820px;margin-inline:auto}
  .about-weave-tall{height:520px}
  .about-weave-stack{grid-template-columns:1fr 1fr;padding-block:0}
  .about-weave-wide{min-height:300px}
  .about-weave-small{width:100%;border-radius:28px;aspect-ratio:auto;min-height:300px}
  .how-arch,.faq-photo-cluster,.contact-visual-column{position:relative;top:auto}
  .how-arch,.faq-photo-cluster{max-width:720px;width:100%;margin-inline:auto}
  .story-row{grid-template-columns:.9fr 1.1fr}
}
@media(max-width:820px){
  .provider-stage{min-height:720px}
  .provider-stage-main{inset:0 7% 18% 0}
  .provider-stage-copy{
    width:82%;
    inset-inline-start:3%;
    inset-block-end:0;
  }
  .provider-stage-accent{width:34%;inset-block-start:4%}
  .services-feature-grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .service-feature,.service-feature-wide,.service-feature-large{min-height:520px;grid-row:auto}
  .values-photo-rail{grid-template-columns:1fr 1fr}
  .values-photo-europe{grid-column:1/-1}
  .story-row,.story-row-reverse{grid-template-columns:1fr}
  .story-row-reverse .story-row-photo,.story-row-reverse .story-row-quote{order:initial}
  .story-row-photo{height:390px}
}
@media(max-width:640px){
  .korea-mosaic{min-height:500px}
  .korea-mosaic-main{inset:0 5% 10% 0}
  .korea-mosaic-group{inline-size:46%;block-size:31%;border-width:5px}
  .korea-mosaic-portrait{inline-size:42%;border-width:5px}
  .provider-stage{min-height:650px}
  .provider-stage-main{inset:0 0 24% 0;border-radius:28px 80px 28px 28px}
  .provider-stage-copy{width:94%;inset-inline-start:3%;padding:1.2rem}
  .provider-stage-accent{width:36%;border-width:5px}
  .about-weave-tall{height:430px}
  .about-weave-stack{grid-template-columns:1fr}
  .values-photo-rail{grid-template-columns:1fr}
  .values-photo,.values-photo-middle,.values-photo-europe{height:300px}
  .service-feature,.service-feature-wide,.service-feature-large{min-height:470px}
  .how-arch{min-height:530px}
  .how-arch-main{height:500px}
  .how-arch-float{width:42%;border-width:5px;inset-inline-start:-2%}
  .how-arch-note{width:72%;inset-inline-end:0}
  .faq-photo-cluster{min-height:480px}
  .faq-photo-float,.contact-photo-small{border-width:5px}
  .contact-photo-stack{min-height:410px}
}
@media(prefers-reduced-motion:reduce){
  .photo-shell:hover .site-photo{transform:none!important}
}

/* ============================================================
   Scroll motion + animated hero noise
   ============================================================ */

/* Thin page-progress line that reacts to scrolling */
.site-progress{
  position:fixed;
  inset:0 0 auto 0;
  height:3px;
  z-index:1200;
  pointer-events:none;
  background:linear-gradient(90deg,#7ED69C,var(--forest));
  transform:scaleX(var(--site-progress,0));
  transform-origin:left center;
  will-change:transform;
}
html[dir="rtl"] .site-progress{transform-origin:right center}

/* Give the landing hero several animated layers without affecting readability */
.hero{
  isolation:isolate;
  --hero-p:0;
}
.hero:before{
  z-index:0;
  transform:
    translate3d(calc(var(--hero-p) * -34px),calc(var(--hero-p) * 44px),0)
    scale(calc(1 + var(--hero-p) * .09));
  will-change:transform;
}
.hero::after{
  content:"";
  position:absolute;
  inset:-55%;
  z-index:1;
  pointer-events:none;
  opacity:.19;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size:180px 180px;
  animation:alcHeroNoise .68s steps(2,end) infinite;
  will-change:transform,background-position;
}
.hero-grid{
  z-index:2;
}
.hero-copy{
  translate:0 calc(var(--hero-p) * -28px);
  transition:translate .08s linear;
  will-change:translate;
}
.hero-leaf{
  translate:0 calc(var(--hero-p) * 46px);
  transition:translate .08s linear;
  will-change:translate;
}
@keyframes alcHeroNoise{
  0%{transform:translate3d(-2%,-3%,0);background-position:0 0}
  20%{transform:translate3d(3%,1%,0);background-position:31px -14px}
  40%{transform:translate3d(-1%,4%,0);background-position:-20px 37px}
  60%{transform:translate3d(4%,-2%,0);background-position:42px 18px}
  80%{transform:translate3d(-4%,2%,0);background-position:-33px -27px}
  100%{transform:translate3d(1%,-4%,0);background-position:18px 44px}
}

/* More cinematic reveal than the original simple fade-up */
.reveal{
  opacity:0;
  transform:translateY(32px) scale(.985);
  filter:blur(5px);
  transition:
    opacity .78s var(--ease),
    transform .9s var(--ease),
    filter .75s ease;
  transition-delay:var(--reveal-delay,0ms);
}
.reveal.in{
  opacity:1;
  transform:none;
  filter:none;
}

/* Natural stagger across repeated items */
.audience-line:nth-child(2),
.service-feature:nth-child(2),
.values-photo:nth-child(2){--reveal-delay:70ms}
.audience-line:nth-child(3),
.service-feature:nth-child(3),
.values-photo:nth-child(3){--reveal-delay:140ms}
.audience-line:nth-child(4),
.service-feature:nth-child(4){--reveal-delay:210ms}

/* The shell moves while the actual image can still keep its hover zoom */
.photo-shell.motion-photo{
  --motion-y:0px;
  --motion-r:0deg;
  translate:0 var(--motion-y);
  rotate:var(--motion-r);
  will-change:translate,rotate;
}

/* Copy blocks counter-move slightly for layered depth */
.motion-copy{
  --copy-y:0px;
  translate:0 var(--copy-y);
  will-change:translate;
}

/* Small visual accents wake up as their section enters the viewport */
.mosaic-ring{
  scale:calc(.82 + var(--section-p,0) * .18);
  rotate:calc(-14deg + var(--section-p,0) * 28deg);
  opacity:calc(.25 + var(--section-p,0) * .55);
  will-change:scale,rotate,opacity;
}
.korea-mosaic-main,
.provider-stage-main,
.how-arch-main{
  clip-path:inset(calc((1 - var(--section-p,1)) * 3.5%) round 32px);
  transition:clip-path .12s linear;
}

/* Story rows get a tiny horizontal drift in opposing directions */
.story-row.motion-section:nth-child(odd){--section-x:-12px}
.story-row.motion-section:nth-child(even){--section-x:12px}
.story-row.motion-section{
  translate:calc(var(--section-x,0px) * (1 - var(--section-p,1))) 0;
  transition:translate .1s linear;
}

/* A soft light sweep across large service images on scroll */
.service-feature::after{
  content:"";
  position:absolute;
  inset:-30% -70%;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.10) 49%,rgba(255,255,255,.22) 50%,rgba(255,255,255,.10) 51%,transparent 58%);
  translate:calc((var(--section-p,0) - .5) * 38%) 0;
  will-change:translate;
}

/* More tactile hover response without becoming distracting */
.service-feature,
.story-row-photo,
.contact-photo-main,
.contact-photo-small{
  transition:box-shadow .45s ease,translate .45s var(--ease);
}
.service-feature:hover{translate:0 -5px;box-shadow:0 32px 80px -54px rgba(8,31,19,.8)}
.story-row-photo:hover,
.contact-photo-main:hover,
.contact-photo-small:hover{box-shadow:0 34px 82px -54px rgba(8,31,19,.82)}

/* Keep motion comfortable on touch/mobile */
@media(max-width:760px){
  .hero-copy,.hero-leaf{translate:none}
  .photo-shell.motion-photo,.motion-copy,.story-row.motion-section{translate:none;rotate:0deg}
  .service-feature::after{display:none}
}

/* Accessibility: disable all non-essential movement when requested */
@media(prefers-reduced-motion:reduce){
  .site-progress{transition:none}
  .hero:before,.hero::after{animation:none!important;transform:none!important}
  .hero-copy,.hero-leaf,
  .photo-shell.motion-photo,.motion-copy,.story-row.motion-section{
    translate:none!important;
    rotate:0deg!important;
  }
  .reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  .service-feature::after{display:none!important}
}

/* ============================================================
   Confirmed contact details + interactive Google Map
   ============================================================ */
.contact-card .contact-intro{
  font-size:clamp(1.2rem,1.8vw,1.5rem);
  font-weight:800;
  letter-spacing:-.025em;
  margin-bottom:1.1rem;
  color:var(--ink);
}
.contact-card dl{margin:0}
.contact-card dt{
  margin-top:1rem;
  color:rgba(19,42,30,.55);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.contact-card dt:first-child{margin-top:0}
.contact-card dd{margin:.22rem 0 0}
.contact-card dd a{
  color:var(--ink);
  text-decoration:none;
  font-weight:720;
  overflow-wrap:anywhere;
  transition:color .25s ease;
}
.contact-card dd a:hover{color:var(--forest)}
.contact-map{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:26px;
  background:var(--paper);
  box-shadow:0 28px 70px -52px rgba(8,31,19,.7);
}
.contact-map-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.2rem;
  padding:1.2rem 1.25rem;
}
.contact-map-head .eyebrow{margin-bottom:.28rem}
.contact-map-head h3{
  margin:0;
  font-size:clamp(1.1rem,1.55vw,1.35rem);
  letter-spacing:-.025em;
}
.map-link{
  flex:none;
  color:var(--forest);
  font-size:.84rem;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
}
.map-link:hover{text-decoration:underline}
.map-frame{
  position:relative;
  width:100%;
  height:390px;
  background:var(--sage);
  overflow:hidden;
  border-top:1px solid var(--line);
}
.map-frame iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}
@media(max-width:640px){
  .contact-map-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .map-link{white-space:normal}
  .map-frame{height:330px}
}

/* ============================================================
   Contact page layout fix  -  full-width map below content
   ============================================================ */
.contact-redesign-grid{
  align-items:start;
}
.contact-visual-column{
  position:relative !important;
  top:auto !important;
  align-self:start;
}
.contact-map-full{
  margin-top:clamp(2.2rem,5vw,4.5rem);
}
.contact-map-full .contact-map{
  width:100%;
  max-width:none;
  overflow:hidden;
}
.contact-map-full .map-frame{
  height:clamp(420px,48vw,620px);
}
.contact-map-full .contact-map-head{
  padding:clamp(1.1rem,2.4vw,1.6rem) clamp(1.15rem,2.8vw,1.8rem);
}
.contact-map-full .contact-map-head h3{
  font-size:clamp(1.2rem,2vw,1.55rem);
}
@media(max-width:900px){
  .contact-redesign-grid{
    grid-template-columns:1fr;
  }
  .contact-visual-column{
    position:relative !important;
    top:auto !important;
  }
  .contact-map-full .map-frame{
    height:430px;
  }
}
@media(max-width:640px){
  .contact-map-full{
    margin-top:1.8rem;
  }
  .contact-map-full .map-frame{
    height:360px;
  }
}

/* ============================================================
   Services page aesthetic redesign
   ============================================================ */

/* Intro */
.services-page-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(4.5rem,8vw,7.8rem) 0 clamp(3.3rem,6vw,5.6rem);
  background:
    radial-gradient(circle at 82% 24%,rgba(29,107,66,.12),transparent 28%),
    linear-gradient(180deg,#fbfaf6 0%,var(--paper) 100%);
  border-bottom:1px solid var(--line);
}
.services-page-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:center;
}
.services-page-copy{min-width:0}
.services-page-copy .eyebrow{margin-bottom:.8rem}
.services-page-copy h1{
  max-width:14ch;
  font-size:clamp(3rem,6vw,5.6rem);
}
.services-page-copy .page-lede{
  max-width:58ch;
  margin-top:1.35rem;
  font-size:clamp(1rem,1.45vw,1.16rem);
  color:rgba(19,42,30,.68);
}
.services-page-art{
  position:relative;
  min-height:290px;
  display:grid;
  place-items:center;
}
.services-orbit{
  position:absolute;
  border:1px solid rgba(29,107,66,.24);
  border-radius:50%;
  transform-origin:center;
}
.services-orbit-a{
  width:250px;
  height:250px;
  animation:servicesOrbit 18s linear infinite;
}
.services-orbit-b{
  width:155px;
  height:155px;
  border-style:dashed;
  animation:servicesOrbitReverse 12s linear infinite;
}
.services-dot{
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--forest);
  box-shadow:0 0 0 8px rgba(29,107,66,.08);
}
.services-dot-a{translate:92px -84px}
.services-dot-b{
  translate:-74px 72px;
  width:9px;
  height:9px;
  opacity:.6;
}
.services-index{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(2,72px);
  gap:.55rem;
  transform:rotate(-4deg);
}
.services-index span{
  display:grid;
  place-items:center;
  aspect-ratio:1;
  border-radius:22px;
  border:1px solid rgba(29,107,66,.20);
  background:rgba(249,247,241,.86);
  backdrop-filter:blur(8px);
  font-size:.82rem;
  font-weight:850;
  letter-spacing:.08em;
  color:var(--forest);
  box-shadow:0 18px 45px -34px rgba(8,31,19,.55);
}
.services-index span:nth-child(2),
.services-index span:nth-child(3){
  border-radius:50%;
  background:var(--forest);
  color:white;
}
@keyframes servicesOrbit{to{transform:rotate(360deg)}}
@keyframes servicesOrbitReverse{to{transform:rotate(-360deg)}}

/* Main service area */
.services-redesign{
  position:relative;
  overflow:hidden;
  padding-top:clamp(3.3rem,6vw,5.8rem);
}
.services-redesign::before{
  content:"";
  position:absolute;
  width:440px;
  height:440px;
  border-radius:50%;
  inset-inline-end:-270px;
  inset-block-start:5%;
  background:radial-gradient(circle,rgba(29,107,66,.075),transparent 68%);
  pointer-events:none;
}
.services-feature-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);
  grid-template-areas:
    "one two"
    "one three"
    "four four";
  grid-template-rows:340px 340px 420px;
  gap:1rem;
}
.service-feature{
  position:relative;
  overflow:hidden;
  min-height:0;
  border-radius:32px;
  background:var(--paper-2);
  border:1px solid rgba(19,42,30,.08);
  isolation:isolate;
  box-shadow:0 24px 70px -55px rgba(8,31,19,.78);
}
.service-feature:nth-child(1){grid-area:one}
.service-feature:nth-child(2){grid-area:two}
.service-feature:nth-child(3){grid-area:three}
.service-feature:nth-child(4){grid-area:four}
.service-feature-large,
.service-feature-wide{
  min-height:0;
  grid-row:auto;
}
.service-feature:nth-child(1){
  border-radius:34px 110px 34px 34px;
}
.service-feature:nth-child(2){
  border-radius:34px 34px 90px 34px;
}
.service-feature:nth-child(3){
  border-radius:90px 34px 34px 34px;
}
.service-feature:nth-child(4){
  border-radius:34px;
}
.service-feature::before{
  content:attr(data-service);
  position:absolute;
  inset-inline-end:clamp(1rem,2vw,1.5rem);
  inset-block-start:clamp(.85rem,2vw,1.25rem);
  z-index:4;
  font-size:clamp(3.7rem,7vw,7rem);
  line-height:.8;
  font-weight:900;
  letter-spacing:-.08em;
  color:rgba(249,247,241,.16);
  pointer-events:none;
}
.service-feature-photo{
  position:absolute;
  inset:0;
  border-radius:inherit;
  overflow:hidden;
}
.service-feature-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(7,25,15,.04) 18%,rgba(7,25,15,.16) 48%,rgba(7,25,15,.82) 100%);
}
.service-feature .site-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  transition:transform 1s var(--ease),filter .6s ease;
}
.service-feature:hover .site-photo{
  transform:scale(1.075);
}
.service-feature-copy{
  position:absolute;
  z-index:5;
  inset-inline:clamp(1rem,2.2vw,1.7rem);
  inset-block-end:clamp(1rem,2.2vw,1.7rem);
  max-width:620px;
  padding:0;
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
  color:white;
}
.service-feature-copy h3{
  max-width:18ch;
  font-size:clamp(1.45rem,2.35vw,2.2rem);
  letter-spacing:-.035em;
  text-shadow:0 2px 22px rgba(0,0,0,.22);
}
.service-feature-copy p{
  max-width:48ch;
  margin:.6rem 0 0;
  line-height:1.58;
  font-size:.95rem;
  color:rgba(255,255,255,.82);
}
.service-meta{
  display:flex;
  align-items:center;
  gap:.7rem;
  margin-bottom:.72rem;
  color:rgba(255,255,255,.92);
}
.service-meta span{
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
}
.service-meta i{
  display:block;
  width:38px;
  height:1px;
  background:rgba(255,255,255,.55);
}
.service-feature:hover 
/* Give the two compact cards tighter copy */
.service-feature:nth-child(2) .service-feature-copy h3,
.service-feature:nth-child(3) .service-feature-copy h3{
  font-size:clamp(1.35rem,1.8vw,1.72rem);
}
.service-feature:nth-child(2) .service-feature-copy p,
.service-feature:nth-child(3) .service-feature-copy p{
  font-size:.89rem;
  max-width:38ch;
}

/* Wide final card reads like a cinematic banner */
.service-feature:nth-child(4) .service-feature-copy{
  width:min(640px,70%);
  padding:1rem 1.05rem;
}
.service-feature:nth-child(4) .service-feature-photo::after{
  background:
    linear-gradient(90deg,rgba(8,31,19,.83) 0%,rgba(8,31,19,.58) 38%,rgba(8,31,19,.10) 78%),
    linear-gradient(180deg,transparent 60%,rgba(8,31,19,.46) 100%);
}
html[dir="rtl"] .service-feature:nth-child(4) .service-feature-photo::after{
  background:
    linear-gradient(270deg,rgba(8,31,19,.83) 0%,rgba(8,31,19,.58) 38%,rgba(8,31,19,.10) 78%),
    linear-gradient(180deg,transparent 60%,rgba(8,31,19,.46) 100%);
}

/* Decorative bridge */
.services-connector{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  width:min(320px,70%);
  margin:clamp(2.6rem,5vw,4.8rem) auto;
}
.services-connector span{
  flex:1;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--line));
}
.services-connector span:last-child{
  background:linear-gradient(90deg,var(--line),transparent);
}
.services-connector i{
  width:10px;
  height:10px;
  border-radius:50%;
  border:2px solid var(--forest);
  box-shadow:0 0 0 6px rgba(29,107,66,.08);
}

/* Premium boundaries panel */
.services-redesign .scope-premium{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
  padding:clamp(2rem,5vw,4.2rem);
  margin-top:0;
  border:0;
  border-radius:34px 110px 34px 34px;
  background:
    radial-gradient(circle at 92% 8%,rgba(126,214,156,.16),transparent 25%),
    var(--deep);
  color:var(--paper);
  box-shadow:0 28px 80px -60px #000;
}
.services-redesign .scope-premium::before,
.services-redesign .scope-premium::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.09);
  border-radius:50%;
  pointer-events:none;
}
.services-redesign .scope-premium::before{
  width:260px;
  height:260px;
  inset-inline-end:-100px;
  inset-block-end:-135px;
}
.services-redesign .scope-premium::after{
  width:160px;
  height:160px;
  inset-inline-end:-54px;
  inset-block-end:-84px;
}
.services-redesign .scope-premium h3{
  position:relative;
  z-index:2;
  max-width:12ch;
  font-size:clamp(1.9rem,3.2vw,3rem);
  color:white;
}
.services-redesign .scope-premium > div{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.services-redesign .scope-premium p{
  margin:0;
  padding:1.15rem 1.2rem;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.055);
  color:rgba(249,247,241,.77);
  line-height:1.65;
  backdrop-filter:blur(6px);
}

/* Scroll-linked movement using the existing motion variables */
.services-page-art{
  translate:0 calc((var(--site-progress,0) - .5) * 10px);
}
.services-redesign .service-feature:nth-child(1){
  translate:0 calc((var(--section-p,1) - .5) * -8px);
}
.services-redesign .service-feature:nth-child(2){
  translate:0 calc((var(--section-p,1) - .5) * 6px);
}
.services-redesign .service-feature:nth-child(3){
  translate:0 calc((var(--section-p,1) - .5) * -5px);
}

/* Responsive */
@media(max-width:980px){
  .services-page-hero-grid{grid-template-columns:1fr}
  .services-page-art{
    min-height:220px;
    width:min(420px,100%);
    justify-self:start;
  }
  .services-feature-grid{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "one one"
      "two three"
      "four four";
    grid-template-rows:520px 360px 400px;
  }
  .service-feature:nth-child(1){border-radius:34px 90px 34px 34px}
  .services-redesign .scope-premium{grid-template-columns:1fr}
  .services-redesign .scope-premium h3{max-width:18ch}
}
@media(max-width:700px){
  .services-page-hero{
    padding-top:3.5rem;
  }
  .services-page-art{
    min-height:180px;
  }
  .services-orbit-a{width:190px;height:190px}
  .services-orbit-b{width:118px;height:118px}
  .services-index{grid-template-columns:repeat(2,58px)}
  .services-feature-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "one"
      "two"
      "three"
      "four";
    grid-template-rows:520px 420px 420px 500px;
  }
  .service-feature,
  .service-feature:nth-child(1),
  .service-feature:nth-child(2),
  .service-feature:nth-child(3),
  .service-feature:nth-child(4){
    border-radius:28px;
  }
  .service-feature-copy h3,
  .service-feature:nth-child(2) .service-feature-copy h3,
  .service-feature:nth-child(3) .service-feature-copy h3{
    font-size:1.55rem;
  }
  .service-feature:nth-child(4) .service-feature-copy{
    width:auto;
  }
  .service-feature:nth-child(4) .service-feature-photo::after{
    background:linear-gradient(180deg,transparent 28%,rgba(8,31,19,.82) 100%);
  }
  .services-redesign .scope-premium{
    padding:1.5rem;
    border-radius:26px;
  }
  .services-redesign .scope-premium > div{
    grid-template-columns:1fr;
  }
}
@media(prefers-reduced-motion:reduce){
  .services-orbit-a,
  .services-orbit-b{
    animation:none!important;
  }
  .services-page-art,
  .services-redesign .service-feature{
    translate:none!important;
  }
}

/* ============================================================
   How It Works timeline layering fix
   Keep the animated progress line behind the numbered circles
   ============================================================ */
.steps{
  isolation:isolate;
}
.steps::before,
.steps::after{
  z-index:0;
  pointer-events:none;
}
.step{
  z-index:1;
}
.step-num{
  z-index:3;
  position:absolute;
  isolation:isolate;
  box-shadow:0 0 0 7px var(--paper);
}
.step.on .step-num{
  box-shadow:0 0 0 7px var(--paper);
}

/* ============================================================
   About Us bottom image triptych cleanup
   ============================================================ */
#page-about .values-photo-rail{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.85rem,1.7vw,1.3rem);
  align-items:stretch;
  margin-top:clamp(2.4rem,5vw,4.6rem);
}
#page-about .values-photo-rail .about-bottom-photo{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  min-height:0;
  margin:0;
  border-radius:26px;
  border:1px solid rgba(19,42,30,.08);
  overflow:hidden;
  background:var(--sage);
  box-shadow:0 22px 56px -44px rgba(8,31,19,.62);
}
#page-about .values-photo-rail .about-bottom-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
#page-about .values-photo-rail .values-photo-korea,
#page-about .values-photo-rail .values-photo-middle,
#page-about .values-photo-rail .values-photo-europe{
  height:auto;
  border-radius:26px;
}
#page-about .values-photo-rail .values-photo-middle{
  border-radius:26px;
}
@media(hover:hover) and (pointer:fine){
  #page-about .values-photo-rail .about-bottom-photo{
    transition:transform .45s var(--ease),box-shadow .45s ease;
  }
  #page-about .values-photo-rail .about-bottom-photo:hover{
    transform:translateY(-5px);
    box-shadow:0 30px 72px -48px rgba(8,31,19,.72);
  }
}
@media(max-width:820px){
  #page-about .values-photo-rail{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #page-about .values-photo-rail .about-bottom-photo:last-child{
    grid-column:1/-1;
    aspect-ratio:16/8.5;
  }
}
@media(max-width:560px){
  #page-about .values-photo-rail{
    grid-template-columns:1fr;
  }
  #page-about .values-photo-rail .about-bottom-photo,
  #page-about .values-photo-rail .about-bottom-photo:last-child{
    grid-column:auto;
    aspect-ratio:4/3;
  }
}

/* ============================================================
   Social profile style testimonials
   ============================================================ */
.testimonials-social{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 15% 15%,rgba(29,107,66,.06),transparent 26%),
    radial-gradient(circle at 88% 78%,rgba(29,107,66,.05),transparent 26%),
    var(--paper);
}
.social-testimonial-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.social-testimonial{
  position:relative;
  min-height:300px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:clamp(1.35rem,2.6vw,2rem);
  border:1px solid rgba(19,42,30,.09);
  border-radius:24px;
  background:rgba(255,255,255,.78);
  box-shadow:0 24px 66px -52px rgba(8,31,19,.72);
  overflow:hidden;
  transition:
    translate .42s var(--ease),
    box-shadow .42s ease,
    border-color .42s ease;
  transition-delay:var(--card-delay,0ms);
}
.social-testimonial:nth-child(4),
.social-testimonial:nth-child(5){
  grid-column:span 1;
}
.social-testimonial:nth-child(4){
  grid-column:1 / span 1;
  margin-inline-start:17%;
}
.social-testimonial:nth-child(5){
  grid-column:2 / span 1;
  margin-inline-start:17%;
}
.social-testimonial-top{
  display:flex;
  align-items:center;
  gap:.85rem;
  position:relative;
  z-index:2;
}
.social-testimonial-top strong{
  font-size:1rem;
  color:var(--ink);
}
.default-avatar{
  position:relative;
  width:58px;
  height:58px;
  flex:0 0 58px;
  border-radius:50%;
  overflow:hidden;
  background:linear-gradient(145deg,#d9dedb,#eef0ee);
  border:1px solid rgba(19,42,30,.08);
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.42);
}
.default-avatar::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(145deg,rgba(255,255,255,.28),transparent 48%);
  pointer-events:none;
}
.avatar-head{
  position:absolute;
  width:20px;
  height:20px;
  left:50%;
  top:12px;
  translate:-50% 0;
  border-radius:50%;
  background:#aab3ad;
}
.avatar-shoulders{
  position:absolute;
  width:38px;
  height:24px;
  left:50%;
  bottom:-4px;
  translate:-50% 0;
  border-radius:50% 50% 18% 18%;
  background:#aab3ad;
}
.avatar-2{background:linear-gradient(145deg,#d7ded8,#edf1ed)}
.avatar-3{background:linear-gradient(145deg,#dcded9,#f1f0eb)}
.avatar-4{background:linear-gradient(145deg,#ddd9d2,#f3f0eb)}
.avatar-5{background:linear-gradient(145deg,#d8dcd9,#efefec)}
.social-testimonial blockquote{
  position:relative;
  z-index:2;
  margin:clamp(1.6rem,3vw,2.2rem) 0 0;
  font-size:clamp(1.08rem,1.55vw,1.34rem);
  line-height:1.52;
  letter-spacing:-.018em;
  font-weight:650;
  color:rgba(19,42,30,.88);
}
.social-quote-mark{
  position:absolute;
  inset-inline-end:1rem;
  inset-block-end:-1.4rem;
  font-family:Georgia,serif;
  font-size:8.5rem;
  line-height:1;
  color:rgba(29,107,66,.055);
  pointer-events:none;
}
.social-testimonial:nth-child(2),
.social-testimonial:nth-child(5){
  background:rgba(245,248,244,.88);
}
.social-testimonial:nth-child(3){
  background:var(--deep);
  border-color:rgba(255,255,255,.07);
}
.social-testimonial:nth-child(3) .social-testimonial-top strong,
.social-testimonial:nth-child(3) blockquote{
  color:white;
}
.social-testimonial:nth-child(3) .social-quote-mark{
  color:rgba(126,214,156,.11);
}
.social-testimonial:nth-child(3) .default-avatar{
  border-color:rgba(255,255,255,.1);
  background:linear-gradient(145deg,#63726a,#829087);
}
.social-testimonial:nth-child(3) .avatar-head,
.social-testimonial:nth-child(3) .avatar-shoulders{
  background:#c8d0cb;
}
@media(hover:hover) and (pointer:fine){
  .social-testimonial:hover{
    translate:0 -6px;
    border-color:rgba(29,107,66,.17);
    box-shadow:0 34px 80px -54px rgba(8,31,19,.82);
  }
}
@media(max-width:980px){
  .social-testimonial-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .social-testimonial:nth-child(4),
  .social-testimonial:nth-child(5){
    grid-column:auto;
    margin-inline-start:0;
  }
  .social-testimonial:last-child{
    grid-column:1 / -1;
    width:min(540px,100%);
    justify-self:center;
  }
}
@media(max-width:640px){
  .social-testimonial-grid{
    grid-template-columns:1fr;
  }
  .social-testimonial,
  .social-testimonial:last-child{
    grid-column:auto;
    width:100%;
    min-height:260px;
  }
}

/* Six-testimonial grid refinement */
.social-testimonial-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.social-testimonial:nth-child(4),
.social-testimonial:nth-child(5),
.social-testimonial:nth-child(6){
  grid-column:auto;
  margin-inline-start:0;
}
.avatar-6{
  background:linear-gradient(145deg,#d8dedb,#f0f2ef);
}
@media(max-width:980px){
  .social-testimonial-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .social-testimonial:last-child{
    grid-column:auto;
    width:100%;
    justify-self:stretch;
  }
}
@media(max-width:640px){
  .social-testimonial-grid{
    grid-template-columns:1fr;
  }
}

/* Testimonials cleanup: disclaimer/footer removed */
#page-stories .social-testimonial-grid{
  margin-top:0;
}

/* ============================================================
   Testimonials green palette refinement
   Three soft shades that match the All Life Care brand
   ============================================================ */
#page-stories .social-testimonial{
  border-color:rgba(29,107,66,.12);
  color:var(--ink);
}
#page-stories .social-testimonial:nth-child(1),
#page-stories .social-testimonial:nth-child(4){
  background:#F1F6F2;
}
#page-stories .social-testimonial:nth-child(2),
#page-stories .social-testimonial:nth-child(5){
  background:#E2EEE5;
}
#page-stories .social-testimonial:nth-child(3),
#page-stories .social-testimonial:nth-child(6){
  background:#D1E4D6;
  border-color:rgba(29,107,66,.16);
}

/* Keep all testimonial text dark and readable, including Sora Lee's card */
#page-stories .social-testimonial:nth-child(3) .social-testimonial-top strong,
#page-stories .social-testimonial:nth-child(3) blockquote,
#page-stories .social-testimonial:nth-child(6) .social-testimonial-top strong,
#page-stories .social-testimonial:nth-child(6) blockquote{
  color:var(--ink);
}
#page-stories .social-testimonial:nth-child(3) .social-quote-mark,
#page-stories .social-testimonial:nth-child(6) .social-quote-mark{
  color:rgba(29,107,66,.08);
}
#page-stories .social-testimonial:nth-child(3) .default-avatar,
#page-stories .social-testimonial:nth-child(6) .default-avatar{
  background:linear-gradient(145deg,#d8e5db,#eef4ef);
  border-color:rgba(29,107,66,.10);
}
#page-stories .social-testimonial:nth-child(3) .avatar-head,
#page-stories .social-testimonial:nth-child(3) .avatar-shoulders,
#page-stories .social-testimonial:nth-child(6) .avatar-head,
#page-stories .social-testimonial:nth-child(6) .avatar-shoulders{
  background:#9fb6a5;
}

/* ============================================================
   Alternating scroll-in testimonials
   ============================================================ */
#page-stories .social-testimonial-grid{
  display:flex;
  flex-direction:column;
  gap:clamp(1.6rem,4vw,3.2rem);
  align-items:stretch;
  overflow:visible;
  padding:clamp(.5rem,1.5vw,1rem) 0;
}
#page-stories .social-testimonial{
  width:min(76%,780px);
  min-height:250px;
  margin:0;
  grid-column:auto;
}
#page-stories .social-testimonial:nth-child(odd){
  align-self:flex-start;
}
#page-stories .social-testimonial:nth-child(even){
  align-self:flex-end;
}

/* Initial state before each card reaches the viewport */
#page-stories .testimonial-scroll-card{
  opacity:0;
  filter:blur(7px);
  transition:
    opacity .8s var(--ease),
    transform .95s var(--ease),
    filter .8s ease,
    box-shadow .42s ease,
    border-color .42s ease,
    translate .42s var(--ease);
  will-change:transform,opacity,filter;
}
#page-stories .testimonial-from-left{
  transform:translate3d(-120px,26px,0) rotate(-1.2deg) scale(.975);
}
#page-stories .testimonial-from-right{
  transform:translate3d(120px,26px,0) rotate(1.2deg) scale(.975);
}

/* Observer adds this class one card at a time */
#page-stories .testimonial-scroll-card.testimonial-in{
  opacity:1;
  filter:none;
  transform:translate3d(0,0,0) rotate(0) scale(1);
}

/* A subtle alternating edge accent helps reinforce the direction */
#page-stories .testimonial-scroll-card::before{
  content:"";
  position:absolute;
  inset-block:1.15rem;
  width:3px;
  border-radius:999px;
  background:rgba(29,107,66,.34);
  opacity:.7;
}
#page-stories .testimonial-from-left::before{
  inset-inline-start:0;
}
#page-stories .testimonial-from-right::before{
  inset-inline-end:0;
}

@media(hover:hover) and (pointer:fine){
  #page-stories .testimonial-scroll-card.testimonial-in:hover{
    translate:0 -6px;
  }
}

@media(max-width:820px){
  #page-stories .social-testimonial{
    width:min(88%,680px);
  }
  #page-stories .testimonial-from-left{
    transform:translate3d(-72px,20px,0) scale(.98);
  }
  #page-stories .testimonial-from-right{
    transform:translate3d(72px,20px,0) scale(.98);
  }
  #page-stories .testimonial-scroll-card.testimonial-in{
    transform:none;
  }
}
@media(max-width:640px){
  #page-stories .social-testimonial{
    width:100%;
    align-self:stretch !important;
  }
  #page-stories .testimonial-from-left,
  #page-stories .testimonial-from-right{
    transform:translate3d(0,34px,0) scale(.985);
  }
  #page-stories .testimonial-scroll-card::before{
    inset-inline-start:0;
    inset-inline-end:auto;
  }
}
@media(prefers-reduced-motion:reduce){
  #page-stories .testimonial-scroll-card{
    opacity:1 !important;
    filter:none !important;
    transform:none !important;
    transition:none !important;
  }
}

/* ============================================================
   Polished font-size selector
   ============================================================ */
.text-size{
  display:flex;
  align-items:center;
  gap:3px;
  padding:3px;
  border:1px solid rgba(29,107,66,.16);
  border-radius:999px;
  overflow:visible;
  background:rgba(255,255,255,.92);
  box-shadow:0 8px 24px -20px rgba(8,31,19,.55);
}
.text-size button{
  position:relative;
  display:grid;
  place-items:center;
  width:38px;
  min-width:38px;
  height:36px;
  padding:0;
  border:0;
  border-radius:999px;
  background:transparent;
  color:rgba(19,42,30,.66);
  cursor:pointer;
  line-height:1;
  transition:
    background .25s ease,
    color .25s ease,
    transform .25s var(--ease),
    box-shadow .25s ease;
}
.text-size button:hover{
  background:rgba(29,107,66,.07);
  color:var(--forest);
  transform:translateY(-1px);
}
.text-size button:focus-visible{
  outline:2px solid var(--forest);
  outline-offset:2px;
}
.text-size button[aria-pressed="true"]{
  background:var(--forest);
  color:white;
  box-shadow:0 7px 16px -10px rgba(29,107,66,.8);
}
.font-size-glyph{
  display:block;
  font-family:Inter,Arial,sans-serif;
  font-style:normal;
  line-height:1;
  letter-spacing:-.055em;
  transform-origin:center 62%;
  text-rendering:geometricPrecision;
}
.font-size-glyph-1{
  font-size:.72rem;
  font-weight:650;
  transform:translateY(1px);
}
.font-size-glyph-2{
  font-size:.94rem;
  font-weight:720;
  transform:translateY(.5px);
}
.font-size-glyph-3{
  font-size:1.18rem;
  font-weight:800;
  transform:translateY(-.5px);
}

/* Keep the three sizes visually balanced when global text scaling is active. */
html[style*="--text-scale"] .text-size{
  font-size:1rem;
}
@media(max-width:900px){
  .text-size button{
    width:36px;
    min-width:36px;
    height:34px;
  }
}

/* ============================================================
   Testimonial page call to action
   ============================================================ */
.testimonial-cta{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:clamp(1.5rem,4vw,3rem);
  margin-top:clamp(3rem,6vw,5.5rem);
  padding:clamp(1.7rem,4vw,3rem);
  border-radius:28px 80px 28px 28px;
  background:
    radial-gradient(circle at 86% 14%,rgba(126,214,156,.16),transparent 24%),
    var(--deep);
  color:var(--paper);
  overflow:hidden;
  box-shadow:0 30px 82px -62px rgba(8,31,19,.9);
}
.testimonial-cta::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:50%;
  inset-inline-end:-55px;
  inset-block-end:-90px;
  pointer-events:none;
}
.testimonial-cta-copy{
  position:relative;
  z-index:2;
  max-width:660px;
}
.testimonial-cta .eyebrow{
  color:#9FD6B1;
  margin-bottom:.55rem;
}
.testimonial-cta h2{
  margin:0;
  max-width:15ch;
  color:white;
  font-size:clamp(1.9rem,3.2vw,3.1rem);
}
.testimonial-cta p:not(.eyebrow){
  margin:.9rem 0 0;
  max-width:58ch;
  color:rgba(249,247,241,.72);
  line-height:1.6;
}
.testimonial-cta-button{
  position:relative;
  z-index:2;
  flex:none;
  background:var(--paper);
  color:var(--forest);
}
.testimonial-cta-button:hover{
  background:white;
  color:var(--forest);
}
@media(max-width:700px){
  .testimonial-cta{
    align-items:flex-start;
    flex-direction:column;
    border-radius:24px;
  }
  .testimonial-cta-button{
    width:100%;
    justify-content:center;
  }
}

/* ============================================================
   Hide font-size controls on mobile
   ============================================================ */
@media(max-width:768px){
  .text-size{
    display:none !important;
  }
}


/* ============================================================
   Footer contact details + legal pages
   ============================================================ */
.footer-grid{grid-template-columns:1.35fr .75fr 1fr 1.15fr;align-items:start}
.footer-grid p{max-width:42ch}
.footer-grid a{overflow-wrap:anywhere}
.legal-links{display:flex;flex-wrap:wrap;gap:.65rem 1.25rem;margin-bottom:.9rem}
.legal-links a{color:var(--paper);font-weight:700;text-decoration:none}
.legal-links a:hover{text-decoration:underline}
.legal-page-head{padding:clamp(3.8rem,7vw,6.8rem) 0 1.5rem}
.legal-page-head h1{font-size:clamp(2.45rem,4.6vw,4.65rem)}
.legal-updated{margin:.9rem 0 0;color:var(--soft);font-weight:650}
.legal-language-note{max-width:75ch;margin:1rem 0 0;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:14px;background:var(--sage);color:var(--soft);font-size:.94rem}
.legal-band{padding-top:2.4rem}
.legal-copy{width:min(920px,calc(100% - var(--pad)*2));margin-inline:auto}
.legal-copy>p{max-width:78ch;color:var(--soft)}
.legal-copy h2{max-width:none;font-size:clamp(1.35rem,2vw,1.8rem);margin:2.2rem 0 .75rem}
.legal-copy a{color:var(--forest);font-weight:700}
.legal-draft-note{margin-top:2.5rem;padding:1.1rem 1.2rem;border-radius:14px;background:#FFF5D3;color:#5E4C1A!important}
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr}.legal-links{display:grid;gap:.4rem}.legal-copy{width:min(100% - 2rem,920px)}}

/* Production legal-page refinements */
.legal-copy ul{margin:.8rem 0 1.35rem 1.25rem;padding:0;display:grid;gap:.48rem}
.legal-copy li{padding-left:.15rem;line-height:1.7}
.legal-callout{margin:1.4rem 0 2rem;padding:1.15rem 1.25rem;border:1px solid var(--line);border-left:4px solid var(--forest);border-radius:14px;background:rgba(244,248,241,.78)}
.legal-callout strong{display:block;color:var(--forest);font-size:1rem;margin-bottom:.35rem}
.legal-callout p{margin:0}
.form-privacy-note{grid-column:1/-1;margin:-.15rem 0 .1rem;font-size:.86rem;line-height:1.55;color:var(--muted)}
.form-privacy-note a{font-weight:750;text-decoration:underline;text-underline-offset:2px}
@media(max-width:640px){.legal-callout{padding:1rem}.legal-copy ul{margin-left:1.05rem}}


/* ===== Live Formspree enquiry submission ===== */
.form-submit-status{grid-column:1/-1;margin:0;min-height:0;font-size:.9rem;font-weight:650}
.form-submit-status:empty{display:none}
.form-submit-status.error{display:block;color:#A22D22;background:#FFF3F1;border:1px solid rgba(162,45,34,.28);border-radius:12px;padding:.85rem 1rem}
#form-submit:disabled{cursor:wait;opacity:.72;transform:none}
