:root { --ink:#1e2521; --sage:#7d8b72; --sage-dark:#65715d; --sage-pale:#e7eadf; --ivory:#fbfaf7; --cream:#f4f2eb; --line:#dedfd6; --body:"DM Sans",Arial,sans-serif; --display:"Cormorant Garamond",Georgia,serif; --script:"Allura","Segoe Script","Brush Script MT",cursive; }
* { box-sizing:border-box; }
html { overflow-x:clip; scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--ivory); color:var(--ink); font-family:var(--body); font-size:16px; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
.site-header { height:82px; padding:0 clamp(54px,7.2vw,108px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:clamp(22px,4.6vw,72px); background:rgba(255,255,255,.97); position:relative; z-index:20; }
.site-header > .brand { justify-self:start; }
.site-header > nav { margin:0; }
.site-header > .button { justify-self:end; }
.brand { flex:0 0 auto; display:inline-flex; align-items:center; gap:3px; color:#222924; }
.brand-mark { width:68px; height:55px; object-fit:cover; }
.brand strong { display:block; font:500 clamp(23px,2vw,30px)/.8 var(--display); letter-spacing:-.055em; white-space:nowrap; }
.brand em { display:block; margin-top:5px; text-align:center; color:#647061; font-size:7px; font-style:normal; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
nav { display:flex; align-items:center; gap:clamp(18px,2.4vw,37px); margin-left:auto; }
nav a { position:relative; padding:32px 0 29px; font-size:12px; font-weight:500; }
nav a.active::after, nav a:hover::after { width:28px; }
nav a::after { content:""; position:absolute; bottom:23px; left:0; height:2px; width:0; background:var(--sage); transition:width .25s ease; }
.button { display:inline-flex; min-height:49px; align-items:center; justify-content:center; gap:10px; padding:0 25px; border:0; border-radius:999px; color:#fff; background:linear-gradient(100deg,#829075,#6f7d66); box-shadow:inset 0 1px 0 rgba(255,255,255,.24); font:600 13px var(--body); transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.button span { font-size:19px; line-height:1; transition:transform .2s ease; }
.button:hover { background:linear-gradient(100deg,#727f68,#5f6c58); box-shadow:0 8px 20px rgba(76,87,67,.18); transform:translateY(-2px); }
.button:hover span { transform:translateX(3px); }
.button--small { min-height:43px; padding:0 22px; font-size:12px; }
.menu-toggle,.mobile-menu { display:none; }
.hero { position:relative; min-height:552px; display:grid; grid-template-columns:1fr; background:#f3f1ea; overflow:visible; }
.hero::before { content:""; position:absolute; z-index:1; width:48%; height:126%; left:-8%; top:-14%; border-radius:0 54% 48% 0 / 0 47% 53% 0; background:linear-gradient(104deg,#f6f5ef 0%,#fbfaf6 83%); pointer-events:none; }
.hero::after { content:""; position:absolute; z-index:2; width:61%; height:70%; left:-8%; bottom:-48%; border-radius:50%; background:#fff; pointer-events:none; }
.hero-copy { position:relative; z-index:3; align-self:center; width:560px; padding:50px 0 48px clamp(60px,12vw,180px); max-width:none; }
.eyebrow { margin:0 0 16px; color:#7d887a; font-size:10px; font-weight:700; letter-spacing:.25em; line-height:1.2; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--display); font-weight:500; letter-spacing:-.045em; }
h1 { margin-bottom:15px; font-size:clamp(52px,4.3vw,66px); line-height:.88; }
.hero-text { max-width:394px; margin-bottom:20px; color:#4a504c; font-size:14px; line-height:1.52; }
.handwritten { margin:10px 0 0 2px; color:#72756e; font:34px/.68 var(--script); transform:rotate(-8deg); }
.handwritten span { padding-left:20px; white-space:nowrap; }
.leaf-art { position:absolute; z-index:2; opacity:1; pointer-events:none; }
.leaf-art--hero { top:0; left:0; width:165px; height:221px; object-fit:cover; }
.hero-media { position:absolute; z-index:0; inset:0 0 0 calc(34% - 92px); min-height:552px; margin:0; overflow:hidden; }
.hero-media img { height:100%; object-fit:cover; object-position:center; }
.service-badge { position:absolute; z-index:4; right:clamp(22px,5vw,83px); bottom:-25px; width:162px; height:162px; padding:37px 14px 0; border:1px solid rgba(255,255,255,.9); border-radius:50%; background:rgba(225,231,210,.94); box-shadow:0 4px 14px rgba(60,67,54,.08); text-align:center; }
.service-badge::after { content:""; position:absolute; inset:9px; border:1px solid rgba(255,255,255,.76); border-radius:50%; }
.service-badge span,.service-badge strong { position:relative; z-index:2; display:block; }
.service-badge span { margin-bottom:4px; color:#818979; font-size:8px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.service-badge strong { font-size:11px; letter-spacing:.11em; line-height:1.42; text-transform:uppercase; }
.service-badge svg { position:absolute; z-index:3; width:96px; bottom:-12px; right:-9px; }
.section { position:relative; padding:72px clamp(30px,7vw,105px); }
.section-heading { position:relative; z-index:2; margin:0 auto 27px; max-width:630px; text-align:center; }
h2 { margin-bottom:8px; font-size:clamp(38px,4vw,58px); line-height:.87; }
.section-heading > p:last-child { max-width:590px; margin:0 auto; color:#5d625d; font-size:14px; line-height:1.45; }
.services { padding-bottom:65px; background:#fff; }
.bubbles { position:absolute; top:78px; right:7%; display:flex; align-items:center; gap:12px; }
.bubbles i { display:block; width:21px; height:21px; border:1px solid #e8e6df; border-radius:50%; background:radial-gradient(circle at 31% 24%,#fff 0 11%,#efeee8 55%,#fff 100%); box-shadow:0 4px 9px rgba(75,75,65,.09); }
.bubbles i:first-child { width:43px; height:43px; }.bubbles i:last-child { width:17px; height:17px; align-self:flex-end; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:25px; max-width:1200px; margin:0 auto; }
.service-card { min-width:0; }.service-card img { height:180px; border-radius:10px; object-fit:cover; }.service-card:first-child img { object-position:52% 58%; }.service-card:nth-child(2) img { object-position:center 50%; }.service-card h3 { margin:12px 0 5px; font-size:16px; font-weight:500; }.service-card p { margin:0; color:#606460; font-size:13px; line-height:1.48; }
.results { padding-top:60px; padding-bottom:65px; background:radial-gradient(ellipse 80% 27% at 73% 0,#f0f0e9 0%,#fff 70%); }
.section-heading--compact { margin-bottom:24px; }.section-heading--compact h2 { font-size:clamp(38px,3.7vw,54px); }.results-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1240px; margin:auto; }.results-grid figure { margin:0; }.results-grid img { height:213px; border-radius:7px; object-fit:cover; }.results-grid figure:first-child img { object-position:center 58%; }.results-grid figure:nth-child(2) img { object-position:center 53%; }.results-grid figure:nth-child(3) img { object-position:center 56%; }.results-grid figcaption { padding:8px 0 0 8px; }.results-grid figcaption span { display:table; margin-bottom:6px; padding:5px 13px; border-radius:99px; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.08); color:#535751; font-size:8px; letter-spacing:.06em; text-transform:uppercase; transform:translateY(-30px); }.results-grid figcaption strong { display:block; margin-top:-22px; font-size:13px; font-weight:500; }
.about { position:relative; display:grid; grid-template-columns:.9fr 1fr; align-items:center; gap:clamp(38px,7vw,115px); padding:60px clamp(30px,7.5vw,112px); background:radial-gradient(ellipse 80% 95% at 46% 52%,#f6f5f0 0,#ebebe2 67%,#e0e3d5 100%); overflow:hidden; }.about::before { content:""; position:absolute; width:70%; height:94%; top:-34%; left:-18%; border-radius:50%; background:#fff; opacity:.63; }.about-photo,.about-copy { position:relative; z-index:2; }.about-photo { margin:0; }.about-photo img { height:330px; border-radius:25px; object-fit:cover; object-position:46% 53%; }.about-copy { max-width:530px; }.about-copy h2 { margin-bottom:18px; font-size:clamp(39px,4vw,56px); }.about-copy > p:not(.eyebrow) { max-width:520px; margin-bottom:14px; color:#505650; font-size:13px; line-height:1.48; }.about-action { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:8px; }.about-action .handwritten { font-size:33px; }.leaf-art--about { right:0; top:0; width:203px; height:337px; object-fit:cover; }.leaf-art--about-left { left:0; bottom:0; width:119px; height:321px; object-fit:cover; }
.faq { padding-top:72px; padding-bottom:76px; background:#fff; }.faq-list { max-width:900px; margin:auto; border-top:1px solid var(--line); }.faq-list details { border-bottom:1px solid var(--line); }.faq-list summary { display:flex; align-items:center; justify-content:space-between; list-style:none; cursor:pointer; padding:21px 3px; font-size:16px; font-weight:600; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary span { color:var(--sage); font-size:23px; font-weight:400; transition:transform .25s ease; }.faq-list details[open] summary span { transform:rotate(45deg); }.faq-list p { max-width:760px; margin:0; padding:0 3px 20px; color:#5a605a; font-size:14px; line-height:1.55; }
.cta { position:relative; display:flex; align-items:center; justify-content:space-between; gap:30px; min-height:235px; padding:44px clamp(40px,14vw,220px); background:radial-gradient(ellipse 65% 130% at 44% 45%,#faf9f5 0,#eaebdd 72%,#dce2ce 100%); overflow:hidden; }.cta::before { content:""; position:absolute; width:310px; height:310px; left:-91px; bottom:-206px; border:1px solid rgba(255,255,255,.8); border-radius:50%; box-shadow:0 0 0 22px rgba(255,255,255,.21); }.cta > div,.cta-script { position:relative; z-index:2; }.cta h2 { margin-bottom:8px; font-size:clamp(40px,4vw,56px); }.cta div > p:not(.eyebrow) { max-width:560px; margin-bottom:16px; color:#505651; font-size:13px; line-height:1.45; }.cta-script { min-width:230px; color:#6d7268; font-size:34px; transform:rotate(-9deg); }.cta-line { position:absolute; left:0; top:0; width:283px; height:260px; object-fit:cover; }.cta-leaf { position:absolute; right:0; top:0; width:225px; height:271px; object-fit:cover; }
footer { padding:32px clamp(30px,6vw,91px) 24px; background:#fff; }.footer-main { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:25px; padding-bottom:20px; border-bottom:1px solid #e5e5de; }.footer-main nav { margin:0; gap:30px; }.footer-main nav a { padding:8px 0; font-size:10px; }.footer-main nav a::after { bottom:1px; }.location { justify-self:end; display:flex; align-items:center; gap:8px; font-size:10px; line-height:1.35; }.location svg { width:17px; }.location small { color:#676b66; font-size:8px; }.footer-bottom { display:flex; justify-content:space-between; padding-top:17px; color:#727671; font-size:9px; }
@media (max-width:800px) { .site-header { height:72px; padding:0 20px; display:flex; justify-content:space-between; gap:0; position:sticky; top:0; }.site-header > nav,.site-header > .button { display:none; }.brand-mark { width:46px;height:43px; }.brand strong { font-size:24px; }.menu-toggle { display:grid; width:41px; height:41px; place-content:center; gap:5px; border:0; border-radius:50%; background:var(--sage-pale); cursor:pointer; }.menu-toggle span { display:block; width:18px; height:1.5px; background:var(--ink); transition:.2s ease; }.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }.mobile-menu { position:fixed; z-index:19; inset:72px 0 auto; padding:18px 24px 26px; background:rgba(255,255,255,.98); box-shadow:0 9px 20px rgba(30,37,33,.08); }.mobile-menu:not([hidden]) { display:grid; gap:4px; }.mobile-menu a:not(.button) { padding:13px 5px; border-bottom:1px solid var(--line); font-size:15px; }.mobile-menu .button { margin-top:14px; }.hero { grid-template-columns:1fr; min-height:0; overflow:hidden; }.hero::before { display:none; }.hero-copy { order:2; width:auto; padding:42px 32px 58px; max-width:100%; }.hero h1 { font-size:44px; }.hero-media { position:relative; inset:auto; order:1; min-height:300px; margin:0; }.hero-media img { height:300px; }.hero::after { width:110%; height:32%; left:-32%; bottom:-8%; }.leaf-art--hero { width:140px; left:-58px; top:243px; opacity:.6; }.service-badge { right:20px; bottom:330px; width:125px; height:125px; padding-top:28px; }.service-badge strong { font-size:9px; }.service-badge svg { width:75px; }.section { padding:58px 24px; }.services { padding-bottom:48px; }.section-heading { margin-bottom:25px; }.bubbles { top:117px; right:20px; }.service-grid,.results-grid { grid-template-columns:1fr; gap:26px; max-width:500px; }.service-card img { height:205px; }.results-grid img { height:220px; }.about { grid-template-columns:1fr; gap:35px; padding:50px 26px; }.about-photo img { height:270px; }.about-copy h2 { font-size:47px; }.about-action { align-items:flex-end; }.leaf-art--about { opacity:.5; }.faq { padding-bottom:58px; }.cta { display:block; padding:49px 28px 105px; }.cta-script { position:absolute; bottom:18px; right:25px; font-size:31px; }.cta-line { top:auto; bottom:-12px; left:-10px; opacity:.65; }.cta-leaf { width:145px; right:-30px; bottom:-18px; }.footer-main { grid-template-columns:1fr; gap:19px; }.footer-main nav { flex-wrap:wrap; gap:11px 20px; }.location { justify-self:start; }.footer-bottom { display:grid; gap:9px; }.hero-text { font-size:14px; } }
@media (max-width:800px) { .brand-mark { width:52px; height:42px; }.leaf-art--hero { width:140px; height:188px; }.leaf-art--about-left { display:none; }.leaf-art--about { width:150px; height:248px; opacity:.35; }.cta-line { width:210px; height:193px; top:auto; bottom:-12px; }.cta-leaf { width:145px; height:175px; top:auto; bottom:-18px; } }
@media (max-width:390px) { .hero h1 { font-size:43px; }.hero-copy { padding-left:24px; padding-right:24px; }.service-badge { transform:scale(.9); transform-origin:right bottom; }.about-action .handwritten { font-size:29px; }.about-action { gap:10px; }.about-action .button { padding:0 17px; }.cta-script { font-size:27px; } }

.brand-mark { width:72px; height:58px; filter:contrast(1.08) saturate(.92); }
.brand em,
nav a,
.button,
.button--small,
.eyebrow,
.hero-text,
.service-badge span,
.service-badge strong,
.section-heading > p:last-child,
.service-card p,
.results-grid figcaption span,
.results-grid figcaption strong,
.about-copy > p:not(.eyebrow),
.faq-list p,
.cta div > p:not(.eyebrow),
.footer-main nav a,
.location,
.location small,
.footer-bottom { font-size:15px; }
.brand em { margin-top:4px; letter-spacing:.13em; line-height:1; }
.handwritten { font-family:var(--script); font-size:36px; font-weight:400; line-height:.76; letter-spacing:.01em; }
.hero-text,
.section-heading > p:last-child,
.service-card p,
.about-copy > p:not(.eyebrow),
.faq-list p,
.cta div > p:not(.eyebrow) { line-height:1.55; }
.service-badge { width:176px; height:176px; bottom:-30px; padding:34px 13px 0; }
.service-badge span { margin-bottom:5px; letter-spacing:.12em; line-height:1.15; }
.service-badge strong { letter-spacing:.055em; line-height:1.28; }
.service-badge svg { width:94px; right:-5px; bottom:-8px; }
.services { overflow:hidden; padding-bottom:100px; }
.services::before,
.services::after,
.results::before,
.results::after,
.about::after,
.cta::after,
.cta-top-wave { content:""; position:absolute; pointer-events:none; }
.services::before { z-index:0; left:-22%; bottom:-152px; width:82%; height:215px; border-radius:50%; background:#e3e6d9; transform:rotate(3deg); }
.services::after { z-index:1; right:-20%; bottom:-147px; width:92%; height:220px; border-radius:50%; background:#f5f3ed; transform:rotate(-2deg); }
.services .section-heading,
.service-grid,
.results .section-heading,
.results-grid { position:relative; z-index:2; }
.services .bubbles { position:absolute; z-index:2; }
.services { padding-bottom:48px; }
.services::before,.services::after,.results::before,.results::after { display:none; }
.section-wave { height:92px; margin:-1px 0; overflow:hidden; background:#fff; }
.section-wave svg { display:block; width:100%; height:100%; }
.results { overflow:hidden; padding-top:42px; padding-bottom:96px; background:#fff; }
.about { isolation:isolate; margin-top:-24px; padding-top:86px; padding-bottom:86px; border-radius:50% 50% 0 0 / 6% 6% 0 0; }
.about::before { display:none; }
.about-photo,.about-copy { z-index:3; }
.about .leaf-art { z-index:2; }
.about::after { z-index:1; left:-10%; bottom:-76px; width:120%; height:112px; border-radius:50%; background:#fff; }
.about-photo img { height:345px; object-position:center 53%; }
.cta { min-height:305px; padding-top:82px; padding-bottom:96px; }
.cta-top-wave { z-index:1; left:-10%; top:-78px; width:120%; height:116px; border-radius:50%; background:#fff; }
.cta::after { z-index:1; left:-10%; bottom:-78px; width:120%; height:116px; border-radius:50%; background:#fff; }
.cta-line,.cta-leaf { z-index:1; }
footer { position:relative; padding-top:42px; }

@media (max-width:800px) {
  .brand-mark { width:58px; height:46px; }
  .service-badge { width:145px; height:145px; bottom:420px; padding:26px 9px 0; }
  .service-badge svg { width:78px; }
  .services { padding-bottom:42px; }
  .section-wave { height:68px; }
  .results { padding-top:38px; padding-bottom:84px; }
  .about { margin-top:-12px; padding-top:66px; padding-bottom:78px; border-radius:50% 50% 0 0 / 2% 2% 0 0; }
  .about::after { bottom:-57px; height:84px; }
  .about-photo img { height:285px; }
  .cta { padding-top:76px; padding-bottom:122px; }
  .cta-top-wave { top:-54px; height:82px; }
  .cta::after { bottom:-57px; height:86px; }
  footer { padding-top:38px; }
  .section-heading h2,
  .section-heading--compact h2 { font-size:36px; line-height:.92; }
  .about-action .button { min-width:112px; padding:0 18px; white-space:nowrap; }
  .services .bubbles { z-index:1; right:12px; opacity:.7; }
}

@media (max-width:390px) {
  .section-heading h2,
  .section-heading--compact h2 { font-size:35px; }
}

.site-header { height:86px; }
.primary-nav { gap:clamp(18px,2vw,34px); }
.primary-nav > a,
.nav-dropdown > a { font-size:15px; }
.nav-dropdown { position:relative; }
.nav-dropdown > a { display:flex; align-items:center; gap:5px; padding:34px 0 31px; }
.nav-chevron { display:inline-block; color:var(--sage-dark); font-size:18px; line-height:1; transition:transform .2s ease; }
.dropdown-menu { position:absolute; z-index:40; top:72px; left:50%; width:270px; padding:11px; border:1px solid rgba(110,124,100,.16); border-radius:18px; background:rgba(255,255,255,.98); box-shadow:0 18px 42px rgba(47,58,47,.14); opacity:0; visibility:hidden; transform:translate(-50%,8px); transition:.22s ease; }
.dropdown-menu a { display:block; padding:12px 13px; border-radius:10px; color:#424a43; font-size:15px; line-height:1.25; }
.dropdown-menu a:hover,.dropdown-menu a:focus-visible { background:#eef0e8; }
.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.nav-dropdown:hover .nav-chevron,.nav-dropdown:focus-within .nav-chevron { transform:rotate(180deg); }
.hero::before,.hero::after { display:none; }
.hero { overflow:hidden; }
.hero-media { inset:0 0 0 31%; }
.hero-cream-shape,.hero-bottom-shape { position:absolute; inset:0; z-index:1; width:100%; height:100%; pointer-events:none; }
.hero-cream-shape path { fill:#f8f7f1; }
.hero-bottom-shape { z-index:2; }
.hero-bottom-shape path { fill:#fff; }
.hero-copy { z-index:4; }
.leaf-art--hero { z-index:3; }
.service-badge { z-index:5; }
.bubbles { z-index:5; top:84px; right:7%; opacity:1; }
.card-link { display:block; border-radius:12px; }
.service-card .text-link { display:inline-block; margin-top:10px; color:#6a7763; font-size:15px; font-weight:600; }
.service-card .card-link:hover .text-link { color:#4f5d49; }
.service-card img { transition:transform .35s ease,filter .35s ease; }
.service-card .card-link:hover img { transform:translateY(-3px); filter:brightness(1.025); }
.mobile-subnav { display:grid; margin:-2px 0 5px 14px; border-left:1px solid #dfe2d8; }
.mobile-subnav a { padding:9px 12px!important; border-bottom:0!important; color:#65705f; font-size:15px!important; }

.page-main { background:#fff; }
.page-hero { position:relative; min-height:500px; display:grid; grid-template-columns:minmax(0,.88fr) minmax(480px,1.12fr); align-items:center; overflow:hidden; background:linear-gradient(110deg,#f8f7f1 0%,#f1f1e8 68%,#e5e9db 100%); }
.page-hero::after { content:""; position:absolute; z-index:1; left:-6%; right:-6%; bottom:-68px; height:112px; border-radius:50%; background:#fff; }
.page-hero__copy { position:relative; z-index:3; max-width:610px; padding:78px 40px 100px clamp(54px,10vw,155px); }
.page-hero__copy h1 { margin-bottom:18px; font-size:clamp(54px,5.1vw,76px); line-height:.9; }
.page-hero__copy > p:not(.eyebrow):not(.handwritten) { max-width:560px; color:#4e554f; font-size:16px; line-height:1.62; }
.page-hero__actions { display:flex; align-items:center; gap:17px; margin-top:26px; }
.page-hero__media { position:relative; z-index:2; align-self:stretch; margin:0; overflow:hidden; border-radius:46% 0 0 52% / 15% 0 0 85%; }
.page-hero__media img { height:100%; min-height:500px; object-fit:cover; }
.page-hero__leaf { position:absolute; z-index:2; left:0; top:0; width:155px; height:230px; object-fit:cover; opacity:.78; }
.page-section { position:relative; padding:94px clamp(28px,8vw,120px); }
.page-section--soft { overflow:hidden; background:radial-gradient(ellipse 85% 110% at 50% 50%,#faf9f5 0,#eff0e7 70%,#e2e6d8 100%); }
.page-section--soft::before,.page-section--soft::after { content:""; position:absolute; left:-8%; width:116%; height:90px; border-radius:50%; background:#fff; pointer-events:none; }
.page-section--soft::before { top:-62px; }.page-section--soft::after { bottom:-62px; }
.page-container { position:relative; z-index:2; max-width:1180px; margin:0 auto; }
.split-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(45px,8vw,115px); }
.split-layout--reverse .split-media { order:2; }
.split-media { margin:0; }
.split-media img { height:430px; border-radius:28px; object-fit:cover; }
.split-copy h2,.content-intro h2 { font-size:clamp(44px,4.3vw,62px); }
.split-copy p,.content-intro p,.feature-card p,.service-list-card p,.review-card p,.contact-card p,.process-step p,.service-detail p,.service-detail li { color:#535a54; font-size:16px; line-height:1.65; }
.script-note { margin-top:27px; color:#73776f; font:400 34px/.82 var(--script); transform:rotate(-3deg); }
.feature-grid,.service-hub-grid,.review-grid,.contact-grid,.process-grid { display:grid; gap:24px; }
.feature-grid { grid-template-columns:repeat(3,1fr); }
.feature-card,.contact-card,.process-step { position:relative; padding:31px; border:1px solid #e1e3da; border-radius:22px; background:rgba(255,255,255,.82); box-shadow:0 15px 35px rgba(61,70,59,.06); }
.feature-card h3,.contact-card h3,.process-step h3 { margin:0 0 11px; font:500 27px/1 var(--display); }
.feature-number,.process-number { display:grid; width:42px; height:42px; margin-bottom:21px; place-items:center; border-radius:50%; background:#e7eadf; color:#66705f; font-size:15px; font-weight:700; }
.service-hub-grid { grid-template-columns:repeat(3,1fr); }
.service-list-card { overflow:hidden; border:1px solid #e1e3da; border-radius:22px; background:#fff; box-shadow:0 15px 38px rgba(61,70,59,.07); }
.service-list-card img { height:235px; object-fit:cover; }
.service-list-card__body { padding:28px; }
.service-list-card h2 { margin:0 0 12px; font-size:34px; line-height:.98; }
.service-list-card ul,.service-detail ul { margin:18px 0 23px; padding:0; list-style:none; }
.service-list-card li,.service-detail li { position:relative; margin:10px 0; padding-left:25px; font-size:15px; line-height:1.48; }
.service-list-card li::before,.service-detail li::before { content:""; position:absolute; left:0; top:.48em; width:9px; height:9px; border-radius:50%; background:#8f9c83; box-shadow:0 0 0 4px #edf0e8; }
.text-button { display:inline-flex; align-items:center; gap:8px; color:#63705c; font-size:15px; font-weight:700; }
.text-button:hover { color:#3f4b3a; }
.process-grid { grid-template-columns:repeat(3,1fr); counter-reset:process; }
.review-grid { grid-template-columns:repeat(3,1fr); }
.review-card { padding:30px; border-radius:22px; background:#fff; box-shadow:0 15px 40px rgba(61,70,59,.08); }
.stars { margin-bottom:16px; color:#7d8b72; font-size:20px; letter-spacing:.14em; }
.review-card blockquote { margin:0; }
.review-card footer { padding:18px 0 0; background:transparent; color:#343a35; font-size:15px; font-weight:700; }
.review-card footer span { display:block; margin-top:4px; color:#7a807a; font-size:15px; font-weight:400; }
.service-detail { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(350px,.9fr); gap:clamp(40px,8vw,110px); align-items:start; }
.service-detail__panel { padding:34px; border-radius:24px; background:#eef0e8; }
.service-detail__panel h2 { font-size:38px; }
.service-detail__panel .button { margin-top:10px; }
.contact-grid { grid-template-columns:repeat(3,1fr); margin-bottom:48px; }
.contact-card a { color:#62705b; font-size:16px; font-weight:700; }
.contact-layout { display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(35px,7vw,90px); align-items:start; }
.quote-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:34px; border:1px solid #e0e3d9; border-radius:25px; background:#fff; box-shadow:0 16px 40px rgba(61,70,59,.08); }
.field { display:grid; gap:8px; }
.field--full { grid-column:1/-1; }
.field label { color:#3f4640; font-size:15px; font-weight:600; }
.field input,.field select,.field textarea { width:100%; min-height:50px; padding:12px 14px; border:1px solid #d7dbd1; border-radius:12px; background:#fbfbf8; color:#273029; font:15px/1.4 var(--body); outline:none; transition:border-color .2s,box-shadow .2s; }
.field textarea { min-height:130px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:#819079; box-shadow:0 0 0 4px rgba(125,139,114,.13); }
.form-status { grid-column:1/-1; min-height:24px; margin:0; color:#5f6d59; font-size:15px; font-weight:600; }
.area-list { columns:2; gap:28px; margin:24px 0 0; padding:0; list-style:none; }
.area-list li { break-inside:avoid; margin:8px 0; color:#565d57; font-size:15px; }
.page-cta { position:relative; overflow:hidden; padding:96px 30px 110px; text-align:center; background:radial-gradient(ellipse 70% 120% at 50% 45%,#faf9f5 0,#e8eadf 72%,#dce2ce 100%); }
.page-cta::before,.page-cta::after { content:""; position:absolute; left:-8%; width:116%; height:95px; border-radius:50%; background:#fff; }
.page-cta::before { top:-65px; }.page-cta::after { bottom:-66px; }
.page-cta__inner { position:relative; z-index:2; max-width:760px; margin:auto; }
.page-cta h2 { font-size:clamp(45px,4.6vw,64px); }
.page-cta p { font-size:16px; line-height:1.6; }
.page-footer { position:relative; }
.page-footer .footer-main { padding-top:15px; }
.current-service { background:#eef0e8!important; }

@media (max-width:1100px) {
  .site-header { padding-inline:32px; gap:24px; }
  .primary-nav { gap:18px; }
  .site-header > .button { padding-inline:18px; }
  .service-hub-grid,.review-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:1040px) {
  .site-header { height:72px; padding:0 20px; display:flex; justify-content:space-between; gap:0; position:sticky; top:0; }
  .site-header > nav,.site-header > .button { display:none; }
  .menu-toggle { display:grid; width:41px; height:41px; place-content:center; gap:5px; border:0; border-radius:50%; background:var(--sage-pale); cursor:pointer; }
  .menu-toggle span { display:block; width:18px; height:1.5px; background:var(--ink); transition:.2s ease; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
  .mobile-menu { position:fixed; z-index:19; inset:72px 0 auto; max-height:calc(100vh - 72px); overflow:auto; padding:18px 24px 26px; background:rgba(255,255,255,.98); box-shadow:0 9px 20px rgba(30,37,33,.08); }
  .mobile-menu:not([hidden]) { display:grid; gap:4px; }
  .mobile-menu a:not(.button) { padding:13px 5px; border-bottom:1px solid var(--line); font-size:15px; }
  .mobile-menu .button { margin-top:14px; }
}

@media (max-width:800px) {
  .site-header { height:72px; }
  .hero-cream-shape,.hero-bottom-shape { display:none; }
  .hero-media { inset:auto; }
  .hero::after { display:block; width:115%; height:31%; left:-35%; bottom:-8%; }
  .services .bubbles { z-index:3; right:12px; top:103px; opacity:1; }
  .page-hero { min-height:0; grid-template-columns:1fr; }
  .page-hero__copy { order:2; padding:50px 25px 82px; }
  .page-hero__copy h1 { font-size:48px; }
  .page-hero__media { order:1; height:320px; border-radius:0 0 52% 12% / 0 0 18% 8%; }
  .page-hero__media img { min-height:320px; }
  .page-hero__leaf { top:276px; left:-42px; width:135px; opacity:.5; }
  .page-section { padding:72px 24px; }
  .split-layout,.service-detail,.contact-layout { grid-template-columns:1fr; gap:35px; }
  .split-layout--reverse .split-media { order:0; }
  .split-media img { height:320px; }
  .feature-grid,.service-hub-grid,.review-grid,.contact-grid,.process-grid { grid-template-columns:1fr; }
  .service-list-card img { height:220px; }
  .quote-form { grid-template-columns:1fr; padding:25px; }
  .field--full { grid-column:auto; }
  .area-list { columns:1; }
  .page-cta { padding:84px 25px 105px; }
  .page-footer .footer-main { padding-top:0; }
}

@media (max-width:390px) {
  .page-hero__copy h1 { font-size:44px; }
  .page-hero__actions { align-items:stretch; flex-direction:column; }
  .page-hero__actions .button { width:100%; }
}

.nav-chevron {
  width:8px;
  height:8px;
  margin:-4px 2px 0 3px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  color:#687461;
  font-size:0;
  transform:rotate(45deg);
  transform-origin:center;
}
.nav-dropdown:hover .nav-chevron,
.nav-dropdown:focus-within .nav-chevron { transform:translateY(4px) rotate(225deg); }
.hero-media::before,
.page-hero__media::before {
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
}
.hero-media::before {
  background:
    linear-gradient(90deg,rgba(248,247,241,.98) 0%,rgba(248,247,241,.72) 7%,rgba(248,247,241,.24) 14%,rgba(248,247,241,0) 23%),
    linear-gradient(0deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.34) 6%,rgba(255,255,255,0) 16%);
}
.page-hero__media::before {
  background:
    linear-gradient(90deg,rgba(246,245,239,.96) 0%,rgba(246,245,239,.68) 8%,rgba(246,245,239,.22) 19%,rgba(246,245,239,0) 35%),
    linear-gradient(0deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.28) 7%,rgba(255,255,255,0) 17%);
}
.hero-media img,.page-hero__media img { position:relative; z-index:1; }

@media (max-width:800px) {
  .hero-media::before,
  .page-hero__media::before {
    background:linear-gradient(0deg,rgba(248,247,241,.96) 0%,rgba(248,247,241,.48) 8%,rgba(248,247,241,0) 22%);
  }
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid #697660;
  outline-offset:4px;
}

/* Reference-matched home hero composition */
.hero {
  z-index:2;
  min-height:568px;
  background:#f8f7f1;
  overflow:visible;
}
.hero-media {
  inset:0 0 0 27%;
  min-height:568px;
}
.hero-media img {
  height:100%;
  object-position:center center;
}
.hero-media::before {
  background:linear-gradient(0deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.28) 5%,rgba(255,255,255,0) 14%);
}
.hero-cream-shape,
.hero-bottom-shape {
  height:100%;
}
.hero-cream-shape {
  width:max(100%,clamp(1261px,112vw,1491px));
  filter:drop-shadow(18px 0 18px rgba(248,247,241,.88));
}
.hero-bottom-shape {
  filter:drop-shadow(0 -8px 13px rgba(255,255,255,.48));
}
.leaf-art--hero {
  top:0;
  left:0;
  width:172px;
  height:233px;
  object-fit:cover;
  mix-blend-mode:multiply;
}
.hero-signature {
  display:block;
  width:270px;
  min-height:109px;
  margin:30px 0 0 -10px;
  color:#777b73;
  font-family:var(--script);
  font-size:47px;
  font-weight:400;
  line-height:.72;
  letter-spacing:.005em;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  transform:rotate(-7deg);
}
.service-badge {
  top:342px;
  right:1px;
  bottom:auto;
  width:238px;
  height:238px;
  padding:55px 18px 0;
  border-color:rgba(255,255,255,.95);
  background:rgba(225,231,210,.96);
  box-shadow:0 6px 20px rgba(60,67,54,.08);
}
.service-badge::after { inset:10px; }
.service-badge span { margin-bottom:7px; }
.service-badge strong { line-height:1.35; }
.service-badge svg {
  width:135px;
  right:-2px;
  bottom:-3px;
}
.services { z-index:1; }

@media (min-width:801px) {
  .site-header { height:80px; }
  .hero-copy { width:620px; transform:translateY(32px); }
  .hero-copy h1 { font-size:clamp(57px,4.7vw,67px); }
}

@media (max-width:800px) {
  .hero {
    min-height:0;
    overflow:hidden;
  }
  .hero-media {
    inset:auto;
    min-height:300px;
  }
  .hero-media::before {
    background:linear-gradient(0deg,rgba(248,247,241,.96) 0%,rgba(248,247,241,.48) 8%,rgba(248,247,241,0) 22%);
  }
  .leaf-art--hero {
    top:243px;
    left:-52px;
    width:140px;
    height:190px;
  }
  .hero-signature {
    width:255px;
    margin-top:13px;
    margin-left:-7px;
  }
  .service-badge {
    top:auto;
    right:14px;
    bottom:420px;
    width:145px;
    height:145px;
    padding:29px 9px 0;
  }
  .service-badge::after { inset:7px; }
  .service-badge span,
  .service-badge strong { font-size:9px; }
  .service-badge svg {
    width:82px;
    right:-3px;
    bottom:-3px;
  }
}
.about-action { gap:12px; }
.about-action .button {
  flex:0 0 260px;
  min-height:49px;
  padding-inline:17px;
  white-space:nowrap;
}

@media (max-width:800px) {
  .about-action { flex-direction:column; align-items:flex-start; }
  .about-action .button { flex-basis:auto; width:100%; max-width:290px; }
}

.handwritten,
.script-note {
  color:#72766f;
  font-family:var(--script);
  font-size:42px;
  font-style:normal;
  font-weight:400;
  line-height:.76;
  letter-spacing:.005em;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.handwritten span { padding-left:20px; }
.script-note { line-height:.82; }
.split-copy p.script-note,
.content-intro p.script-note {
  color:#72766f;
  font-family:var(--script);
  font-size:42px;
  font-weight:400;
  line-height:.82;
  letter-spacing:.005em;
}
.about-action .handwritten { font-size:40px; }
.cta-script { font-size:40px; }
.hero-signature {
  width:270px;
  min-height:109px;
  margin:30px 0 0 -10px;
  font-size:47px;
  line-height:.72;
  transform:rotate(-7deg);
}

@media (max-width:800px) {
  .handwritten,
  .script-note { font-size:38px; }
  .split-copy p.script-note,
  .content-intro p.script-note { font-size:38px; }
  .about-action .handwritten,
  .cta-script { font-size:37px; }
  .hero-signature {
    width:255px;
    min-height:102px;
    margin-top:13px;
    margin-left:-7px;
    font-size:44px;
  }
}

.dropdown-menu a::after,
.dropdown-menu a:hover::after,
.dropdown-menu a:focus-visible::after {
  content:none;
  display:none;
}

@media (min-width:801px) {
  .page-hero {
    z-index:2;
    min-height:568px;
    display:grid;
    grid-template-columns:1fr;
    background:#f8f7f1;
    overflow:visible;
  }
  .page-hero::before {
    content:"";
    display:block;
    position:absolute;
    z-index:1;
    width:calc(clamp(550px,49vw,650px) + 7vw);
    height:118%;
    left:-7%;
    top:-9%;
    border-radius:0 53% 47% 0 / 0 45% 55% 0;
    background:linear-gradient(104deg,#f7f6f0 0%,#fbfaf6 86%);
    filter:drop-shadow(18px 0 18px rgba(248,247,241,.88));
    pointer-events:none;
  }
  .page-hero::after {
    z-index:2;
    left:-7%;
    right:auto;
    bottom:-72px;
    width:114%;
    height:118px;
    border-radius:50%;
    background:#fff;
    filter:drop-shadow(0 -8px 13px rgba(255,255,255,.48));
  }
  .page-hero__copy {
    z-index:3;
    align-self:center;
    width:620px;
    max-width:none;
    padding:58px 0 82px clamp(60px,12vw,180px);
  }
  .page-hero__copy h1 { font-size:clamp(57px,4.7vw,67px); }
  .page-hero__copy > p:not(.eyebrow):not(.handwritten) { max-width:405px; }
  .page-hero__media {
    position:absolute;
    z-index:0;
    inset:0 0 0 27%;
    min-height:568px;
    border-radius:0;
  }
  .page-hero__media img {
    height:100%;
    min-height:568px;
    object-position:center;
  }
  .page-hero__media::before {
    background:linear-gradient(0deg,rgba(255,255,255,.87) 0%,rgba(255,255,255,.27) 5%,rgba(255,255,255,0) 14%);
  }
  .page-hero__leaf {
    z-index:2;
    width:172px;
    height:233px;
    opacity:.72;
  }

  .hero-media::before,
  .page-hero__media::before {
    background:
      linear-gradient(90deg,
        rgba(248,247,241,.98) 0,
        rgba(248,247,241,.92) calc(clamp(550px,46vw,650px) - 27vw),
        rgba(248,247,241,.38) calc(clamp(550px,46vw,650px) - 27vw + 34px),
        rgba(248,247,241,0) calc(clamp(550px,46vw,650px) - 27vw + 70px)),
      linear-gradient(0deg,rgba(255,255,255,.87) 0%,rgba(255,255,255,.27) 5%,rgba(255,255,255,0) 14%);
  }
}

@media (min-width:801px) and (max-width:1366px) {
  .page-hero__actions {
    max-width:440px;
    flex-wrap:wrap;
  }
}

.standards-ribbon {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  margin-top:44px;
  overflow:hidden;
  border:1px solid #dde1d7;
  border-radius:20px;
  background:#dde1d7;
}
.standards-ribbon span {
  min-height:112px;
  padding:23px;
  background:rgba(255,255,255,.88);
  color:#697069;
  font-size:15px;
  line-height:1.45;
}
.standards-ribbon strong {
  display:block;
  margin-bottom:7px;
  color:#3e473f;
  font:500 23px/1 var(--display);
}

.service-hub-grid--symbols .service-list-card { position:relative; }
.service-card-symbol {
  display:grid;
  height:150px;
  place-items:center;
  background:radial-gradient(circle at 50% 40%,#faf9f5 0%,#edf0e6 68%,#e1e6d8 100%);
  color:#71806a;
  font:400 54px/1 var(--display);
}
.service-card-symbol::before {
  content:"";
  position:absolute;
  top:24px;
  width:98px;
  height:98px;
  border:1px solid rgba(125,139,114,.28);
  border-radius:50%;
}

.detail-track {
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin-top:34px;
}
.detail-track::before {
  content:"";
  position:absolute;
  top:26px;
  left:7%;
  right:7%;
  height:1px;
  background:#ccd3c5;
}
.detail-track article { position:relative; padding:0 12px; text-align:center; }
.detail-track span {
  position:relative;
  z-index:1;
  display:grid;
  width:52px;
  height:52px;
  margin:0 auto 20px;
  place-items:center;
  border:1px solid #cfd6c8;
  border-radius:50%;
  background:#fff;
  color:#66735f;
  font-size:15px;
  font-weight:700;
}
.detail-track h3 { margin:0 0 9px; font:500 27px/1 var(--display); }
.detail-track p { margin:0; color:#5c635d; font-size:15px; line-height:1.55; }

.move-prep {
  position:relative;
  padding:62px clamp(28px,8vw,120px);
  overflow:hidden;
  background:#263129;
  color:#fff;
}
.move-prep::after {
  content:"";
  position:absolute;
  right:-80px;
  top:-120px;
  width:330px;
  height:330px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  box-shadow:0 0 0 32px rgba(255,255,255,.035);
}
.move-prep .page-container {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  align-items:center;
  gap:75px;
}
.move-prep .eyebrow { color:#b8c4b0; }
.move-prep h2 { margin:0; color:#fff; font-size:48px; }
.move-prep ul { display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; margin:0; padding:0; list-style:none; }
.move-prep li { position:relative; padding-left:25px; color:#eef2eb; font-size:15px; line-height:1.5; }
.move-prep li::before { content:"✓"; position:absolute; left:0; color:#b4c3ab; }

.customer-values { padding:0 clamp(28px,8vw,120px) 80px; background:#fff; }
.customer-values .page-container {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.customer-values article {
  padding:29px 30px;
  border-left:2px solid #9ca995;
  background:linear-gradient(105deg,#f6f6f0,rgba(246,246,240,0));
}
.customer-values article > span { color:#75816f; font-size:27px; }
.customer-values h3 { margin:11px 0 8px; font:500 29px/1 var(--display); }
.customer-values p { margin:0; color:#59605a; font-size:15px; line-height:1.55; }

.contact-grid--primary { align-items:stretch; }
.contact-card { overflow:hidden; }
.contact-card--call { background:linear-gradient(135deg,#f2f4eb,#fff); }
.contact-icon {
  display:grid;
  width:44px;
  height:44px;
  margin-bottom:20px;
  place-items:center;
  border-radius:50%;
  background:#e5e9de;
  color:#65715e;
  font-size:15px;
  font-weight:700;
}
.contact-direct {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(40px,7vw,90px);
  align-items:center;
}
.contact-summary {
  padding:36px;
  border:1px solid #dde1d7;
  border-radius:26px;
  background:linear-gradient(145deg,#f8f8f3,#eef1e7);
  box-shadow:0 18px 45px rgba(61,70,59,.08);
}
.contact-checklist { display:grid; gap:0; margin:0 0 27px; padding:0; list-style:none; }
.contact-checklist li {
  display:grid;
  grid-template-columns:100px 1fr;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid #d8ddd2;
  color:#555d56;
  font-size:15px;
  line-height:1.5;
}
.contact-checklist span { color:#3f4840; font-weight:700; }
.contact-process { padding-top:105px; }

@media (max-width:800px) {
  .page-hero {
    min-height:0;
    overflow:hidden;
  }
  .page-hero::before { display:none; }
  .page-hero::after {
    display:block;
    left:-10%;
    bottom:-58px;
    width:120%;
    height:88px;
  }
  .page-hero__copy {
    width:auto;
    max-width:100%;
    padding:50px 25px 82px;
  }
  .page-hero__media {
    position:relative;
    inset:auto;
    min-height:320px;
    height:320px;
    border-radius:0;
  }
  .page-hero__media img { min-height:320px; }
  .standards-ribbon { grid-template-columns:1fr 1fr; }
  .detail-track { grid-template-columns:1fr 1fr; }
  .detail-track::before { display:none; }
  .move-prep .page-container,
  .contact-direct { grid-template-columns:1fr; gap:32px; }
  .move-prep ul { grid-template-columns:1fr; }
  .customer-values .page-container { grid-template-columns:1fr; }
  .contact-checklist li { grid-template-columns:80px 1fr; }
}

@media (max-width:480px) {
  .standards-ribbon,
  .detail-track { grid-template-columns:1fr; }
  .contact-summary { padding:27px 23px; }
  .contact-checklist li { grid-template-columns:1fr; gap:4px; }
}

/* Keep every visible interface label at the requested 15px minimum. */
.menu-toggle { font-size:15px; }
@media (max-width:800px) {
  .service-badge { padding-top:23px; }
  .service-badge span,
  .service-badge strong {
    font-size:15px;
    letter-spacing:.025em;
    line-height:1.16;
  }
}
@media (max-width:390px) {
  .service-badge { transform:none; }
}

/* Business details shared by every page footer. */
.footer-main {
  grid-template-columns:minmax(260px,1.15fr) auto minmax(215px,.75fr) minmax(235px,.85fr);
  align-items:start;
  gap:clamp(20px,2.4vw,38px);
}
.footer-main nav {
  align-self:center;
  gap:clamp(14px,1.5vw,24px);
}
.footer-details {
  display:grid;
  gap:14px;
  padding-left:20px;
  border-left:1px solid #e1e3da;
}
.footer-detail {
  display:grid;
  gap:3px;
  color:#616860;
  font-size:15px;
  line-height:1.4;
}
.footer-detail strong {
  color:#3f4840;
  font-size:15px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.footer-detail small {
  color:#676d67;
  font-size:15px;
}
.footer-main .location { align-self:center; }
.brand em { letter-spacing:.08em; }

@media (max-width:1240px) {
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-main nav {
    justify-self:end;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .footer-details {
    padding-top:18px;
    padding-left:0;
    border-top:1px solid #e1e3da;
    border-left:0;
  }
  .footer-main .location { justify-self:end; }
}

@media (max-width:800px) {
  .footer-main { grid-template-columns:1fr; }
  .footer-main nav {
    justify-self:start;
    justify-content:flex-start;
  }
  .footer-details {
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .footer-main .location { justify-self:start; }
}

@media (max-width:520px) {
  .footer-details { grid-template-columns:1fr; }
}

/* Responsive QA refinements */
@media (max-width:800px) {
  .about-action { gap:24px; }
  .hero-signature { margin-top:22px; min-height:108px; }
  .footer-main nav {
    display:grid;
    grid-template-columns:repeat(2,max-content);
    justify-content:start;
    gap:4px 32px;
  }
  .footer-main nav a { padding:6px 0; }
  .footer-main .location { align-items:flex-start; }
  .footer-main .location svg { flex:0 0 auto; margin-top:3px; }
}

/* Enforce the requested footer information architecture in every cached page. */
.footer-main nav a[href="index.html"] { order:1; font-size:0; }
.footer-main nav a[href="index.html"]::before { content:"Home"; font-size:15px; }
.footer-main nav a[href="about.html"] { order:2; }
.footer-main nav a[href="services.html"] { order:3; }
.footer-main nav a[href="testimonials.html"] { order:4; }
.footer-main nav a[href="contact.html"] { order:5; }

/* Keep Home decorations clear of content on mobile and tablet screens. */
@media (max-width:800px) {
  .service-badge {
    top:145px;
    right:12px;
    bottom:auto;
  }
  .services .bubbles {
    top:15px;
    right:-5px;
    z-index:1;
    opacity:.82;
    transform:scale(.72);
    transform-origin:top right;
  }
  .services .section-heading { position:relative; z-index:2; }
}

@media (min-width:801px) and (max-width:1100px) {
  .services .bubbles {
    right:-24px;
    transform:scale(.72);
    transform-origin:top right;
  }
}

/* Scale the inner-page hero mask instead of letting it flatten on wide screens. */
@media (min-width:1441px) {
  .page-hero {
    min-height:clamp(590px,34vw,680px);
  }
  .page-hero::before {
    width:clamp(850px,50vw,1040px);
    height:126%;
    left:-8%;
    top:-13%;
    border-radius:0 55% 48% 0 / 0 43% 57% 0;
    background:radial-gradient(
      ellipse 116% 84% at 0 50%,
      #fbfaf6 0 59%,
      rgba(251,250,246,.99) 68%,
      rgba(251,250,246,.86) 77%,
      rgba(251,250,246,.46) 87%,
      rgba(251,250,246,0) 100%
    );
    filter:drop-shadow(24px 0 22px rgba(255,255,255,.78));
  }
  .page-hero__copy {
    width:clamp(620px,38vw,730px);
    padding-left:clamp(130px,10vw,220px);
  }
  .page-hero__media {
    inset:0 0 0 24%;
    min-height:clamp(590px,34vw,680px);
  }
  .page-hero__media img {
    min-height:clamp(590px,34vw,680px);
  }
  .page-hero__media::before {
    background:
      linear-gradient(90deg,rgba(248,247,241,.98) 0%,rgba(248,247,241,.82) 9%,rgba(248,247,241,.36) 19%,rgba(248,247,241,0) 31%),
      linear-gradient(0deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.35) 7%,rgba(255,255,255,0) 18%);
  }
}

/* Video hero: an organic window with a soft white boundary between copy and motion. */
.hero-video {
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:0;
  filter:brightness(.94) contrast(1.08) saturate(1.03);
  transition:opacity 1.35s linear;
  will-change:opacity;
}
.hero-video.is-visible {
  opacity:1;
}
.hero-media .service-badge {
  z-index:6;
}

@media (min-width:600px) {
  .hero {
    display:flex;
    align-items:center;
    min-height:clamp(600px,43vw,690px);
  }
  .hero::after {
    display:none;
  }
  .hero-media {
    position:absolute;
    inset:0 0 0 25%;
    min-height:100%;
    height:100%;
  }
  .hero-media::before {
    z-index:3;
    background:
      linear-gradient(90deg,
        #f8f7f1 0%,
        rgba(248,247,241,.995) 10%,
        rgba(248,247,241,.94) 20%,
        rgba(248,247,241,.68) 31%,
        rgba(248,247,241,.25) 42%,
        rgba(248,247,241,0) 54%),
      linear-gradient(0deg,
        rgba(255,255,255,.96) 0%,
        rgba(255,255,255,.62) 6%,
        rgba(255,255,255,.16) 13%,
        rgba(255,255,255,0) 21%);
  }
  .hero-cream-shape,
  .hero-bottom-shape {
    display:block;
  }
  .hero-cream-shape {
    width:112%;
    filter:drop-shadow(28px 0 26px rgba(255,255,255,.88));
  }
  .hero-copy {
    width:clamp(365px,46vw,650px);
    padding-left:clamp(34px,8vw,180px);
    padding-right:28px;
  }
  .hero-copy h1,
  .hero-text {
    width:100%;
    max-width:clamp(280px,32vw,430px);
  }
  .hero-copy h1 {
    font-size:clamp(50px,4.65vw,67px);
  }
  .hero-media .service-badge {
    top:auto;
    right:clamp(12px,1.8vw,34px);
    bottom:clamp(24px,3vw,48px);
  }
}

@media (min-width:600px) and (max-width:800px) {
  .hero-copy {
    transform:none;
    padding-top:58px;
    padding-bottom:78px;
  }
  .hero-signature {
    width:230px;
    font-size:40px;
  }
  .hero-media .service-badge {
    width:145px;
    height:145px;
    padding:27px 9px 0;
  }
}

@media (max-width:599px) {
  .hero {
    display:flex;
    flex-direction:column;
    min-height:0;
    background:#f8f7f1;
    overflow:hidden;
  }
  .hero-copy {
    order:1;
    width:100%;
    max-width:100%;
    padding:44px 24px 50px;
    transform:none;
  }
  .hero-copy h1,
  .hero-text {
    width:100%;
    max-width:min(100%,390px);
  }
  .hero-copy h1 {
    font-size:clamp(43px,12vw,57px);
  }
  .hero-media {
    position:relative;
    order:2;
    inset:auto;
    width:100%;
    height:clamp(330px,78vw,455px);
    min-height:clamp(330px,78vw,455px);
    overflow:hidden;
  }
  .hero-video {
    height:100%;
    min-height:100%;
    object-position:center center;
  }
  .hero-media::before {
    z-index:3;
    background:
      linear-gradient(180deg,
        #f8f7f1 0%,
        rgba(248,247,241,.98) 7%,
        rgba(248,247,241,.70) 16%,
        rgba(248,247,241,.20) 27%,
        rgba(248,247,241,0) 38%),
      linear-gradient(0deg,
        rgba(255,255,255,.94) 0%,
        rgba(255,255,255,.34) 9%,
        rgba(255,255,255,0) 21%);
  }
  .hero-cream-shape,
  .hero-bottom-shape {
    display:none;
  }
  .leaf-art--hero {
    top:0;
    left:-52px;
    width:140px;
    height:190px;
  }
  .hero-media .service-badge {
    top:auto;
    right:12px;
    bottom:22px;
    width:145px;
    height:145px;
    padding:27px 9px 0;
    transform:none;
  }
}

@media (min-width:1441px) {
  .hero {
    min-height:clamp(650px,38vw,730px);
  }
  .hero-cream-shape {
    width:100%;
  }
  .hero-media {
    left:24%;
  }
  .hero-media::before {
    background:
      linear-gradient(90deg,
        #f8f7f1 0%,
        rgba(248,247,241,.99) 5%,
        rgba(248,247,241,.82) 12%,
        rgba(248,247,241,.43) 21%,
        rgba(248,247,241,.12) 29%,
        rgba(248,247,241,0) 36%),
      linear-gradient(0deg,
        rgba(255,255,255,.96) 0%,
        rgba(255,255,255,.62) 6%,
        rgba(255,255,255,.16) 13%,
        rgba(255,255,255,0) 21%);
  }
  .hero-copy {
    width:clamp(610px,42vw,760px);
  }
  .hero-copy h1,
  .hero-text {
    max-width:440px;
  }
}

@media (min-width:2001px) {
  .hero {
    min-height:760px;
    height:760px;
  }
  .hero-media {
    min-height:760px;
    height:760px;
  }
  .hero-cream-shape,
  .hero-bottom-shape {
    height:760px;
  }
}

/* Final video window: the media itself fades through the organic mask. */
.leaf-art--about-left {
  display:none!important;
}
@media (min-width:600px) {
  .hero-video {
    -webkit-mask-image:radial-gradient(ellipse 100% 116% at 108% 43%,#000 0 70%,rgba(0,0,0,.82) 79%,rgba(0,0,0,.32) 90%,transparent 100%);
    mask-image:radial-gradient(ellipse 100% 116% at 108% 43%,#000 0 70%,rgba(0,0,0,.82) 79%,rgba(0,0,0,.32) 90%,transparent 100%);
  }
  .hero-media::before {
    background:linear-gradient(0deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.38) 7%,rgba(255,255,255,0) 18%);
  }
}

@media (max-width:599px) {
  .hero::after {
    display:block;
    z-index:2;
    width:118%;
    height:76px;
    left:-9%;
    bottom:-38px;
    border-radius:50% 50% 0 0 / 100% 100% 0 0;
    background:#fff;
  }
  .hero-media {
    z-index:auto;
  }
  .hero-video {
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.82) 5%,#000 12%,#000 91%,rgba(0,0,0,.72) 96%,transparent 100%);
    mask-image:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.82) 5%,#000 12%,#000 91%,rgba(0,0,0,.72) 96%,transparent 100%);
  }
  .hero-media::before {
    background:
      linear-gradient(180deg,#f8f7f1 0%,rgba(248,247,241,.46) 5%,rgba(248,247,241,.12) 11%,rgba(248,247,241,0) 17%),
      linear-gradient(0deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.18) 6%,rgba(255,255,255,0) 13%);
  }
}
