:root { --ink:#101313; --teal:#006d68; --teal-dark:#004f4c; --cream:#f4f3ef; --line:#d8dad4; --muted:#68706d; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; overflow-x: hidden; } body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",sans-serif; overflow-x: hidden; } a { color:inherit; text-decoration:none; } h1, h2, h3, h4, h5, h6 { word-break: normal; overflow-wrap: break-word; hyphens: none; }
.heading-amp { font-family: Georgia, serif; font-style: normal; text-transform: none; }
.site-header { height:92px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,5vw,80px); border-bottom:1px solid var(--line); background:rgba(244,243,239,.94); position:sticky; top:0; z-index:10; backdrop-filter:blur(12px); }
.brand { display:block; width:225px; } .logo-crop { width:100%; height:88px; position:relative; display:block; overflow:hidden; } .logo-crop img { position:absolute; width:225px; max-width:none; height:auto; left:0; top:-22px; }
.main-nav { display:flex; align-items:center; gap:34px; font-size:14px; font-weight:600; } .main-nav a:not(.nav-cta) { color:#3b4140; } .main-nav a:not(.nav-cta):hover,.text-link:hover,.services-trigger:hover { color:var(--teal); }.nav-cta,.button { display:inline-flex; align-items:center; gap:18px; }.nav-cta { background:var(--ink); color:#fff; padding:12px 17px; margin-left:8px; }.nav-cta span,.button span { font-size:19px; line-height:0; }.menu-button { display:none; border:0; background:transparent; font:600 14px inherit; align-items:center; gap:10px; }.menu-button span { width:20px; height:1px; background:var(--ink); display:block; }
.hero { min-height:calc(100vh - 92px); padding:clamp(36px,10vw,135px) clamp(24px,10vw,160px) 68px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(260px,.7fr); gap:50px; align-items:center; overflow:hidden; }.eyebrow,.section-kicker { color:var(--teal); letter-spacing:.12em; font-size:11px; font-weight:700; }.eyebrow { display:flex; align-items:center; gap:10px; }.eyebrow span { display:inline-block; width:32px; height:2px; background:var(--teal); }.hero h1,.statement h2,.services h2,.insights h2,.contact h2 { font-family:Fraunces,Georgia,serif; font-weight:500; letter-spacing:-.055em; line-height:.98; margin:20px 0; }.hero h1 { max-width:730px; font-size:clamp(32px,7.5vw,80px); }.hero h1 em,.statement h2 em,.contact h2 em { color:var(--teal); font-style:italic; }.hero-intro { max-width:465px; color:#4d5754; font-size:17px; line-height:1.7; margin:30px 0; }.button { padding:17px 21px; font-size:14px; font-weight:700; transition:transform .2s; justify-content: center; }.button:hover { transform:translateY(-3px); }.button-dark { background:var(--teal); color:white; }.hero-mark { width:min(33vw,415px); aspect-ratio:1; border-radius:50%; background:var(--teal); position:relative; margin:auto; color:white; overflow:hidden; }.check { position:absolute; inset:0; display:grid; place-items:center; font:clamp(36px,18vw,245px)/1 Arial,sans-serif; transform:translateY(-4%); }.orbit { position:absolute; border:1px solid rgba(255,255,255,.4); border-radius:50%; }.orbit-one { width:83%; height:83%; left:9%; top:9%; }.orbit-two { width:57%; height:57%; left:21.5%; top:21.5%; }.hero-mark p { position:absolute; bottom:29px; left:31px; margin:0; font-size:10px; font-weight:700; letter-spacing:.12em; line-height:1.5; }
.statement { padding:clamp(36px,10vw,150px) clamp(24px,10vw,160px); background:var(--ink); color:#fff; display:grid; grid-template-columns:28% 1fr; gap:30px; }.statement .section-kicker { color:#71c6bf; }.statement h2 { max-width:850px; font-size:clamp(36px,6vw,88px); }.statement > div > p { max-width:530px; color:#bfc7c3; font-size:17px; line-height:1.7; margin:35px 0; }.text-link { border-bottom:1px solid currentColor; padding-bottom:6px; display:inline-flex; gap:14px; font-weight:700; font-size:14px; }
.services,.insights { padding:clamp(36px,9vw,130px) clamp(24px,10vw,160px); }.section-topline { display:flex; justify-content:space-between; align-items:center; }.section-topline > p:last-child { font-size:11px; font-weight:700; letter-spacing:.1em; color:var(--muted); }.services h2,.insights h2 { font-size:clamp(36px,6.7vw,94px); }.services-empty { min-height:220px; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:30px; color:var(--muted); font-size:18px; line-height:1.5; }.empty-icon { width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--teal); color:var(--teal); border-radius:50%; font-size:28px; }
.insights { background:#e4e9e4; }.insight-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:1px; background:var(--line); }.insight { min-height:285px; padding:27px; position:relative; background:var(--cream); display:flex; flex-direction:column; justify-content:space-between; }.insight-featured { background:var(--teal); color:#fff; }.tag { margin:0; font-size:10px; letter-spacing:.12em; font-weight:700; }.insight h3 { font:500 clamp(26px,2.7vw,42px)/1.05 Fraunces,Georgia,serif; letter-spacing:-.04em; max-width:350px; margin:35px 0; }.arrow { font-size:25px; }
.contact { padding:clamp(36px,9vw,130px) clamp(24px,10vw,160px); background:var(--teal); color:#fff; display:grid; grid-template-columns:28% 1fr; gap:30px; }.contact .section-kicker { color:#b9e2dc; }.contact h2 { max-width:830px; font-size:clamp(36px,6.7vw,94px); }.contact h2 em { color:#fff; }.button-light { margin-top:15px; background:var(--cream); color:var(--ink); }.site-footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:34px clamp(24px,5vw,80px); background:#0d1010; color:#cbd0cc; font-size:12px; }.footer-brand { filter:grayscale(1) brightness(0) invert(1); width:225px; }.footer-brand .logo-crop { height:88px; }.footer-brand .logo-crop img { width:225px; left:0; top:-22px; }.site-footer p { margin:0; }.site-footer > a:last-child { text-decoration:underline; }
@media (max-width:760px) { .site-header{height:74px;padding:0 22px}.brand{width:160px}.logo-crop{height:38px}.logo-crop img{width:190px;left:-13px;top:-30px}.main-nav{display:none}.menu-button{display:flex}.main-nav.is-open{display:flex;position:absolute;top:73px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);padding:12px 22px 24px;border-bottom:1px solid var(--line)}.main-nav.is-open a{padding:14px 0}.main-nav.is-open .nav-cta{margin:8px 0 0;padding:14px 16px;justify-content:space-between}.hero{min-height:auto;grid-template-columns:1fr;padding:72px 24px 55px}.hero h1{font-size:clamp(36px,12vw,55px)}.hero-mark{width:245px;justify-self:end;margin-top:15px}.statement,.contact{grid-template-columns:1fr;gap:5px;padding:65px 24px}.services,.insights{padding:65px 24px}.insight-grid{grid-template-columns:1fr}.insight{min-height:215px}.section-topline > p:last-child{display:none}.site-footer{align-items:flex-start;flex-direction:column;gap:18px}.footer-brand{width:145px} }
.social-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:34px; }.social-links a { display:inline-flex; align-items:center; gap:8px; border-bottom:1px solid rgba(255,255,255,.6); padding-bottom:5px; font-size:13px; font-weight:700; transition:border-color .18s,opacity .18s; }.social-links a:hover { border-color:#fff; opacity:.85; }.social-links a svg { flex-shrink:0; vertical-align:middle; }.social-links span { margin-left:4px; }.contact h2,.contact-cta h2 { hyphens:none; }.contact-social { margin-top:24px; }.contact-social a { border-bottom:1px solid rgba(0,0,0,.15); color:#3c4843; }.contact-social a:hover { border-color:var(--teal); color:var(--teal); }.insight { transition:background .2s,color .2s; }.insight:hover { background:#d9e4df; }.insight-featured:hover { background:var(--teal-dark); }.page-main { min-height:calc(100vh - 92px); padding:clamp(36px,11vw,160px) clamp(24px,10vw,160px); }.page-main .eyebrow { margin:0; }.page-main h1 { max-width:900px; font:500 clamp(36px,8.4vw,125px)/.98 Fraunces,Georgia,serif; letter-spacing:-.055em; margin:24px 0; }.page-main h1 em { color:var(--teal); font-style:italic; }.page-main > p:not(.eyebrow) { max-width:630px; font-size:18px; line-height:1.7; color:#4d5754; }.placeholder-panel { margin-top:65px; padding:35px; border:1px solid var(--line); max-width:760px; background:#fff; }.placeholder-panel h2 { font:500 clamp(30px,3.5vw,48px)/1.05 Fraunces,Georgia,serif; letter-spacing:-.04em; margin:0 0 15px; }.placeholder-panel p { color:var(--muted); line-height:1.65; margin:0; }

@media (max-width:760px) { .brand,.footer-brand { width:180px; }.logo-crop,.footer-brand .logo-crop { height:72px; }.logo-crop img,.footer-brand .logo-crop img { width:180px; left:0; top:-18px; } }
.services-menu { position:relative; }.services-trigger { border:0; background:transparent; color:#3b4140; font:600 14px "DM Sans",sans-serif; cursor:pointer; padding:10px 0; text-decoration:none; }.services-trigger span { color:var(--teal); margin-left:4px; }.mega-menu { display:none; position:absolute; top:42px; left:50%; transform:translateX(-36%); width:min(1000px,88vw); min-height:390px; grid-template-columns:220px 1fr; background:#fff; border:1px solid var(--line); box-shadow:0 18px 48px rgba(16,19,19,.18); z-index:20; }.services-menu:hover .mega-menu,.services-menu.is-open .mega-menu { display:grid; }.mega-level-one.mega-top,.mega-category { width:100%; border:0; background:transparent; padding:12px 11px; display:flex; justify-content:space-between; text-align:left; color:#454d4a; font:600 13px "DM Sans",sans-serif; cursor:pointer; }.mega-top.is-active,.mega-category.is-active,.mega-top:hover,.mega-category:hover { color:#fff; background:var(--teal); }.mega-level-three { padding:25px 27px; max-height:530px; overflow:auto; columns:2; column-gap:30px; }.mega-level-three section { break-inside:avoid; margin:0 0 22px; }.mega-level-three p { margin:0 0 8px; font-size:10px; letter-spacing:.1em; color:var(--teal); font-weight:700; }.mega-level-three a { display:block; padding:4px 0; font-size:12px; line-height:1.35; color:#4d5754; }.mega-level-three a:hover { color:var(--teal); }.service-hero { padding:clamp(36px,11vw,155px) clamp(24px,10vw,160px); background:var(--cream); }.service-hero h1 { max-width:900px; margin:18px 0; font:500 clamp(32px,7.5vw,80px)/.98 Fraunces,Georgia,serif; letter-spacing:-.055em; text-transform: uppercase; }.service-hero > p:not(.eyebrow) { max-width:570px; font-size:18px; color:#4d5754; line-height:1.65; margin:25px 0; }.service-detail { padding:clamp(36px,9vw,130px) clamp(24px,10vw,160px); display:grid; grid-template-columns:1fr 1fr; gap:60px; background:#111414; color:#fff; }.service-detail h2,.service-columns h2,.service-process h2,.service-faq h2,.service-cta h2 { font:500 clamp(32px,5vw,68px)/1 Fraunces,Georgia,serif; letter-spacing:-.05em; margin:15px 0; }.service-detail h2 em { color:#70c9c1; }.service-detail > p { color:#c3cbc7; line-height:1.75; font-size:17px; max-width:480px; }.service-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }.service-columns article { background:var(--cream); padding:45px clamp(24px,4vw,60px); min-height:280px; }.service-columns h2 { font-size:34px; }.service-columns p,.service-columns li { color:#56605c; line-height:1.7; }.service-columns ul { padding-left:18px; }.service-process,.service-faq { padding:clamp(36px,9vw,130px) clamp(24px,10vw,160px); }.service-process { background:#e3e9e5; }.service-process ol { padding:0; margin:40px 0 0; list-style:none; max-width:820px; }.service-process li { display:flex; justify-content:space-between; gap:30px; padding:20px 0; border-top:1px solid #aeb8b2; }.service-process li strong { font-size:18px; }.service-process li span { color:var(--muted); }.service-faq { max-width:1100px; }.service-faq details { border-top:1px solid var(--line); padding:20px 0; }.service-faq summary { cursor:pointer; font-weight:700; }.service-faq p { color:var(--muted); line-height:1.6; }.service-cta { padding:clamp(36px,9vw,120px) clamp(24px,10vw,160px); background:var(--teal); color:#fff; }.service-cta h2 { font-size:clamp(36px,6vw,82px); }.service-cta .button-light { margin-top:16px; }
.services-static { position:relative; }.services-static summary { cursor:pointer; list-style:none; color:#3b4140; }.services-static summary::-webkit-details-marker { display:none; }.static-mega { position:absolute; top:28px; right:-260px; width:min(850px,86vw); display:grid; grid-template-columns:repeat(4,1fr); gap:1px; padding:22px; background:#fff; border:1px solid var(--line); box-shadow:0 18px 48px rgba(16,19,19,.18); z-index:30; }.static-mega div { padding:7px 13px; }.static-mega strong { display:block; color:var(--teal); font-size:12px; margin-bottom:10px; }.static-mega a { display:block; font-size:12px; line-height:1.35; padding:5px 0; color:#4d5754; }.static-mega a:hover { color:var(--teal); }
.services-trigger{display:flex;align-items:center;gap:5px}.services-trigger:focus-visible,.mega-top:focus-visible,.mega-category:focus-visible,.mega-level-three a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.mega-menu{display:grid;visibility:hidden;opacity:0;pointer-events:none;transform:translateX(-36%) translateY(-6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}.services-menu:hover .mega-menu,.services-menu.is-open .mega-menu{visibility:visible;opacity:1;pointer-events:auto;transform:translateX(-36%) translateY(0)}.mega-service-group a{display:flex;justify-content:space-between;gap:10px;transition:color .16s,transform .16s}.mega-service-group a span{opacity:0}.mega-service-group a:hover{transform:translateX(3px)}.mega-service-group a:hover span{opacity:1}.mega-top,.mega-category{transition:background .16s,color .16s}.breadcrumbs{padding:22px clamp(24px,10vw,160px) 0;display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}.breadcrumbs a:hover{color:var(--teal)}.breadcrumbs strong{font-weight:600;color:var(--ink)}.service-pricing{padding:clamp(36px,8vw,105px) clamp(24px,10vw,160px);display:grid;grid-template-columns:1fr 1fr;gap:50px;background:#fff}.service-pricing h2,.related-services h2{font:500 clamp(32px,5vw,68px)/1 Fraunces,Georgia,serif;letter-spacing:-.05em;margin:15px 0}.service-pricing p{margin:0 0 25px;color:#56605c;line-height:1.7}.service-pricing strong{color:var(--ink)}.related-services{padding:clamp(36px,8vw,105px) clamp(24px,10vw,160px);background:#e3e9e5}.related-services>div{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:35px;background:#aeb8b2}.related-services a{padding:25px;min-height:150px;background:var(--cream);display:flex;flex-direction:column;justify-content:space-between;font:500 23px/1.1 Fraunces,Georgia,serif;letter-spacing:-.03em;transition:background .18s,color .18s}.related-services a:hover{background:var(--teal);color:#fff}.related-services a span{font:700 10px/1 "DM Sans",sans-serif;color:var(--teal);letter-spacing:.1em}.related-services a:hover span{color:#c9ebe6}.related-services a b{font:400 22px/1 "DM Sans",sans-serif;align-self:flex-end}.service-cta{display:grid;grid-template-columns:1fr 1fr;gap:60px}.service-cta p{color:#d8efeb;line-height:1.6;max-width:400px}.enquiry-form{display:grid;gap:16px;max-width:480px}.enquiry-form label{display:grid;gap:6px;color:#d8efeb;font-size:12px;font-weight:700}.enquiry-form input,.enquiry-form textarea{border:1px solid rgba(255,255,255,.5);border-radius:0;background:rgba(255,255,255,.08);color:#fff;padding:12px;font:400 15px "DM Sans",sans-serif;resize:vertical}.enquiry-form .button{justify-content:space-between;border:0;cursor:pointer;margin-top:4px}
@media (max-width:760px) { .main-nav.is-open { display:flex; }.services-menu { width:100%; }.services-trigger { width:100%; text-align:left; padding:14px 0; }.mega-menu { display:none !important; position:static; transform:none; width:100%; min-height:0; grid-template-columns:1fr; box-shadow:none; }.services-menu:hover .mega-menu { display:none !important; }.services-menu.is-open .mega-menu { display:block !important; }.mega-level-one.mega-level-three { columns:1; padding:20px; max-height:360px; }.service-detail,.service-columns { grid-template-columns:1fr; gap:0; }.service-process li { display:block; }.service-process li span { display:block; margin-top:8px; } }
@media (max-width:760px){.mega-menu,.services-menu.is-open .mega-menu{transform:none;transition:opacity .18s ease}.mega-level-one.mega-top,.mega-category{padding:12px 0}.mega-level-three{max-height:none;padding:14px 0}.mega-service-group{margin-bottom:18px}.mega-level-three a{padding:7px 0}.service-pricing,.service-cta,.related-services>div{grid-template-columns:1fr}.service-cta{gap:35px}}
/* Services mega menu — explicit hierarchy columns with a contained service-card grid. */
@media (min-width:761px){
  .mega-menu{top:46px;left:50%;width:min(1240px,calc(100vw - 48px));min-height:0;grid-template-columns: 220px 1fr;align-items:stretch;transform:translateX(-32%) translateY(-8px);border:1px solid #d7ddd8;border-radius:0 0 10px 10px;box-shadow:0 24px 70px rgba(16,19,19,.16);overflow:hidden}
  .services-menu.is-open .mega-menu{transform:translateX(-32%) translateY(0)}
  .mega-level-one{padding:32px 20px;display:flex;flex-direction:column;gap:7px;border-right:1px solid #dce2dd} 
  .mega-level-one{background:#edf1ed}
  .mega-top,.mega-category{min-height:48px;padding:12px 13px;border-radius:6px;align-items:center;gap:12px;line-height:1.25}
  .mega-top{font-size:18px;font-weight:700}.mega-category{font-size:16px;font-weight:600}
  .mega-top span,.mega-category span{font-size:19px;line-height:1;color:var(--teal)}
  .mega-top.is-active,.mega-category.is-active,.mega-top:hover,.mega-category:hover{background:var(--teal);color:#fff}
  .mega-top.is-active span,.mega-category.is-active span,.mega-top:hover span,.mega-category:hover span{color:#fff}
  .mega-level-three{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:20px 18px;padding:32px;columns:auto;max-height:none;overflow:visible;background:#fff;transition:opacity .14s ease}.mega-level-three.is-refreshing{opacity:.55}
  .mega-level-three .mega-service-group{min-width:0;margin:0;padding:0;break-inside:auto}
  .mega-service-group p{margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid #dce2dd;color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.1em;line-height:1.25;text-transform:uppercase}
  .mega-service-group a{min-width:0;padding:5px 0;color:#384440;font-size:15px;font-weight:500;line-height:1.55;overflow-wrap:normal; word-break:normal; white-space:normal;}
  .mega-service-group a+ a{margin-top:4px}.mega-service-group a span{flex:0 0 auto;margin-top:2px}
}
@media (min-width:761px) and (max-width:1050px){
  .mega-menu{width:min(900px,calc(100vw - 40px));grid-template-columns:220px 1fr;transform:translateX(-38%) translateY(-8px)}
  .services-menu.is-open .mega-menu{transform:translateX(-38%) translateY(0)}
  .mega-level-one{grid-row:1 / span 2}
  .mega-level-three{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .services-menu.is-open .mega-menu{position:fixed;inset:74px 0 0;width:100%;z-index:100;border:0;border-top:1px solid var(--line);border-radius:0;overflow-y:auto;background:var(--cream)}
  .mega-level-one.mega-level-two,.mega-level-three{padding:20px 24px;background:var(--cream)}
  .mega-level-one
  .mega-top,.mega-category{padding:15px 0;font-size:17px}.mega-top{font-size:19px}.mega-level-three{display:grid;grid-template-columns:1fr;gap:20px;border-top:1px solid var(--line)}
  .mega-service-group{margin:0;padding-bottom:20px}.mega-service-group p{margin:0 0 11px;color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.mega-service-group a{padding:7px 0;font-size:15px;line-height:1.55}
}
/* Keep the desktop panel wholly inside the browser window at every zoom level. */
@media (min-width:761px){
  .mega-menu{position:fixed;top:92px;left:50%;width:min(1240px,calc(100vw - 32px));max-height:calc(100vh - 108px);transform:translateX(-50%) translateY(-8px);overflow-x:hidden;overflow-y:auto}
  .services-menu.is-open .mega-menu{transform:translateX(-50%) translateY(0)}
  .mega-level-three{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}
  .mega-service-group,.mega-service-group a{min-width:0;max-width:100%}
}
@media (min-width:761px) and (max-width:900px){
  .mega-menu{grid-template-columns:180px minmax(0,1fr)}
  .mega-level-one{grid-row:1 / span 2}.mega-level-three{grid-column:2;grid-template-columns:1fr}
}
/* Shared footer and informational pages */
.site-footer{padding:0;background:#0d1010;color:#cbd0cc}.footer-inner{width:min(1180px,calc(100% - 48px));margin:auto;padding:38px 0 30px;display:grid;justify-items:center;gap:28px}.footer-brand{width:180px;height:54px}.footer-brand .logo-crop{height:54px}.footer-brand .logo-crop img{width:180px;top:-18px}.footer-links{width:100%;padding:22px 0;display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.footer-links a{font-size:13px;font-weight:600;color:#d9dfdc;transition:color .18s}.footer-links a:hover{color:#78cec7;text-decoration:underline;text-underline-offset:5px}.footer-inner p{margin:0;font-size:12px;text-align:center;color:#aab4b0}
.contact-hero,.legal-hero{padding:clamp(36px,10vw,150px) clamp(24px,10vw,160px) clamp(36px,7vw,100px);background:var(--cream)}.contact-hero h1,.legal-hero h1{max-width:850px;margin:18px 0;font:500 clamp(36px,8vw,108px)/.96 Fraunces,Georgia,serif;letter-spacing:-.055em}.contact-hero h1 em{color:var(--teal);font-style:italic}.contact-hero>p:not(.eyebrow),.legal-hero>p:not(.eyebrow){max-width:590px;color:#53605b;font-size:18px;line-height:1.7}.contact-layout{padding:clamp(36px,8vw,110px) clamp(24px,10vw,160px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(32px,7vw,110px);background:#fff}.contact-form h2,.contact-details h2{margin:0 0 30px;font:500 clamp(32px,4.2vw,60px)/1 Fraunces,Georgia,serif;letter-spacing:-.045em}.contact-form{display:grid;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form label{display:grid;gap:8px;font-size:12px;font-weight:700;color:#3c4843}.contact-form input,.contact-form select,.contact-form textarea{width:100%;box-sizing:border-box;border:1px solid #b9c5be;background:#fbfcfa;padding:13px 14px;color:var(--ink);font:400 15px "DM Sans",sans-serif}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,.faq-search input:focus{outline:2px solid var(--teal);outline-offset:1px}.contact-details{padding:32px;background:#e8efea}.contact-details dl{margin:30px 0;display:grid;gap:20px}.contact-details dl div{border-top:1px solid #c4d0c8;padding-top:14px}.contact-details dt{margin-bottom:5px;color:var(--teal);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.contact-details dd{margin:0;color:#4d5954;line-height:1.55}.contact-details dd a:hover{color:var(--teal)}.map-placeholder{min-height:175px;display:grid;place-content:center;text-align:center;background:#c6d5cc;color:#31584f;font-weight:700}.map-placeholder span{margin-top:7px;font-size:12px;font-weight:400}.contact-cta,.legal-cta{padding:clamp(36px,8vw,115px) clamp(24px,10vw,160px);background:var(--teal);color:#fff}.contact-cta h2,.legal-cta h2{max-width:750px;margin:14px 0 24px;font:500 clamp(36px,6vw,78px)/1 Fraunces,Georgia,serif;letter-spacing:-.05em}
.legal-hero{padding-bottom:clamp(36px,7vw,85px);background:#e8efea}.legal-hero .breadcrumbs{padding:0;margin-bottom:55px}.legal-hero h1{font-size:clamp(36px,7vw,96px)}.policy-content,.faq-groups{max-width:900px;margin:auto;padding:clamp(36px,9vw,125px) 24px}.policy-content section{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--line)}.policy-content h2,.faq-group h2{margin:0 0 12px;font:500 clamp(29px,3.2vw,43px)/1.05 Fraunces,Georgia,serif;letter-spacing:-.04em}.policy-content p{max-width:720px;margin:0;color:#56605c;font-size:16px;line-height:1.75}.faq-search{padding:45px 24px;background:#fff;border-bottom:1px solid var(--line)}.faq-search label{display:block;max-width:700px;margin:auto;font-size:12px;font-weight:700}.faq-search input{display:block;width:100%;box-sizing:border-box;margin-top:9px;padding:15px;border:1px solid #b9c5be;background:#fbfcfa;font:400 16px "DM Sans",sans-serif}.faq-group{margin-bottom:55px}.faq-group details{border-top:1px solid var(--line);padding:0}.faq-group details:last-child{border-bottom:1px solid var(--line)}.faq-group summary{display:flex;justify-content:space-between;gap:20px;padding:19px 0;cursor:pointer;font-size:16px;font-weight:700;list-style:none}.faq-group summary::-webkit-details-marker{display:none}.faq-group summary span{color:var(--teal);font-size:23px;font-weight:400;line-height:.7}.faq-group details[open] summary span{transform:rotate(45deg)}.faq-group details p{max-width:700px;margin:0;padding:0 0 20px;color:#56605c;line-height:1.7}.legal-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#e8efea;color:var(--ink)}.legal-cta h2{margin:0}.legal-cta .button{flex:0 0 auto}
@media(max-width:760px){.footer-inner{width:calc(100% - 44px);padding:30px 0 26px;gap:20px}.footer-links{justify-content:flex-start;gap:13px 20px;padding:18px 0}.footer-links a{font-size:12px}.contact-layout{grid-template-columns:1fr;gap:35px}.form-grid{grid-template-columns:1fr}.contact-details{padding:25px}.legal-hero .breadcrumbs{margin-bottom:32px}.legal-cta{display:block}.legal-cta .button{margin-top:24px}.policy-content,.faq-groups{padding-left:24px;padding-right:24px}}
.faq-group details[open] p{animation:faq-open .2s ease-out both}@keyframes faq-open{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}

/* Global Search */
.global-search { position:relative; margin-left: 10px; display:flex; align-items:center; }
.search-input { padding: 8px 12px; border: 1px solid var(--line); border-radius: 20px; background: var(--cream); font: 400 13px "DM Sans", sans-serif; width: 180px; transition: width 0.2s, border-color 0.2s; outline: none; }
.search-input:focus { width: 220px; border-color: var(--teal); }
.search-results { position:absolute; top: 40px; right: 0; width: 280px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 30px rgba(16,19,19,0.1); border-radius: 8px; overflow: hidden; z-index: 50; max-height: 400px; overflow-y: auto; text-align: left; }
.search-results a { display: flex; flex-direction: column; padding: 10px 14px; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--ink); line-height: 1.4; transition: background 0.15s; text-decoration: none; }
.search-results a:hover { background: #f4f3ef; color: var(--teal); }
.search-results a small { font-size: 10px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 2px; }
.search-results .no-results { padding: 12px 14px; font-size: 13px; color: var(--muted); }
@media (max-width: 760px) {
  .global-search { margin: 10px 0; width: 100%; }
  .search-input { width: 100%; }
  .search-input:focus { width: 100%; }
  .search-results { width: 100%; right: auto; left: 0; }
}

/* WhatsApp Floating Button */
.whatsapp-float {
  position: fixed;
  bottom: 25px;
  right: 25px;
  width: 58px;
  height: 58px;
  background-color: #25D366;
  color: #FFF;
  border-radius: 50px;
  text-align: center;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}
.whatsapp-float:hover {
  transform: scale(1.1);
  color: #FFF;
}
.whatsapp-float svg {
  width: 32px;
  height: 32px;
  fill: currentColor;
}
.whatsapp-float::before {
  content: 'WhatsApp';
  position: absolute;
  right: 70px;
  background: #fff;
  color: #333;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 2px 5px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  pointer-events: none;
  white-space: nowrap;
}
.whatsapp-float:hover::before {
  opacity: 1;
  visibility: visible;
}

/* Hero Image & Shake Animation */
.hero-image-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.hero-image-container img {
  max-width: 135%;
  margin-left: -15%;
  height: auto;
  transition: transform 0.2s ease-in-out;
  mix-blend-mode: multiply;
}
.shake-on-hover:hover {
  animation: shake 1.5s ease-in-out infinite alternate;
}
@keyframes shake {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(1px, -1px) rotate(1deg); }
  50% { transform: translate(-1px, 1px) rotate(-1deg); }
  75% { transform: translate(-1px, -1px) rotate(0.5deg); }
  100% { transform: translate(1px, 1px) rotate(-0.5deg); }
}






.mega-service-group {
  margin: 0;
  padding: 0;
}
.mega-service-group p {
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #dce2dd;
  color: var(--teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.mega-service-group a {
  display: block;
  padding: 6px 0;
  color: #384440;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
}
.mega-service-group a:hover {
  color: var(--teal);
}







/* Ensure sections are proper grid items */




.mega-level-one {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    border-right: 1px solid #dce2dd;
    padding: 32px 20px !important;
}

.mega-level-two {
    grid-column: 2;
    background: #fafbf8;
    width: 100%;
}

.mega-all-services {
    display: block !important;
    column-count: 3 !important;
    column-gap: 32px !important;
    padding: 32px !important;
    width: 100%;
}

.mega-all-services > .mega-service-group {
    display: inline-block !important;
    width: 100% !important;
    break-inside: avoid !important;
    page-break-inside: avoid;
    -webkit-column-break-inside: avoid;
    margin-bottom: 32px !important;
    vertical-align: top;
}

@media (max-width: 1050px) {
    .mega-all-services {
        column-count: 2 !important;
    }
}

@media (max-width: 760px) {
    .mega-all-services {
        column-count: 1 !important;
        padding: 24px !important;
    }
}

.service-page-group {
    padding: 60px 0;
    border-top: 1px solid var(--line);
    margin-top: 40px;
}
.service-page-group h2 {
    font: 500 48px/1 Fraunces, Georgia, serif;
    letter-spacing: -0.04em;
    color: var(--ink);
    margin-bottom: 40px;
}
#all-services-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}
.page-main {
    padding-bottom: 100px;
}


.service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 32px;
    margin-top: 60px;
}

.home-service-card {
    display: flex;
    flex-direction: column;
    padding: 32px;
    background: #fff;
    border: 1px solid #dce2dd;
    border-radius: 12px;
    text-decoration: none;
    color: var(--ink);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
    height: 100%;
}
.home-service-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--teal);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.home-service-card:hover {
    transform: translateY(-4px);
    border-color: #c0c9c5;
    box-shadow: 0 16px 32px rgba(0,0,0,0.06);
}
.home-service-card:hover::before {
    transform: scaleX(1);
}
.home-service-card-top {
    flex-grow: 0;
}
.home-service-icon {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: #e9f2f0;
    color: var(--teal);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    transition: background 0.3s ease;
}
.home-service-card:hover .home-service-icon {
    background: var(--teal);
    color: #fff;
}
.home-service-icon svg {
    width: 22px;
    height: 22px;
}
.home-service-card h3 {
    font: 600 22px/1.2 "Fraunces", Georgia, serif;
    margin: 0 0 10px;
    color: #101313;
}
.home-service-card p {
    font: 400 14.5px/1.6 "DM Sans", sans-serif;
    color: #56605c;
    margin: 0 0 20px;
}
.home-service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
    flex-grow: 1;
    align-content: flex-start;
}
.service-pill {
    background: #f7f9f8;
    border: 1px solid #e3e9e5;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 12px;
    color: #384440;
    font-weight: 500;
    line-height: 1.2;
}
.service-pill-more {
    padding: 6px 4px;
    font-size: 12px;
    color: var(--muted);
    font-weight: 500;
    line-height: 1.2;
}
.home-service-card-bottom {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid #edf1ed;
}
.home-service-link {
    display: inline-flex;
    align-items: center;
    font-size: 14px;
    font-weight: 600;
    color: var(--teal);
}
.home-service-arrow {
    margin-left: 6px;
    font-size: 16px;
    transition: transform 0.2s ease;
}
.home-service-card:hover .home-service-arrow {
    transform: translateX(4px);
}
\n
/* New Footer Styles */
.new-footer {
    background: #0f1110;
    padding: 60px 40px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #aeb8b2;
}
.footer-logo-container {
    margin-bottom: 40px;
}
.footer-divider {
    width: 100%;
    max-width: 1200px;
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
    margin: 0 auto;
}
.footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px;
    padding: 32px 0;
}
.footer-links a {
    color: #e3e9e5;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    transition: color 0.2s ease;
}
.footer-links a:hover {
    color: #70c9c1;
}
.footer-copyright {
    padding-top: 32px;
    font-size: 13px;
    text-align: center;
}
.legal-content h2 {
    font: 500 clamp(30px,3.5vw,48px)/1.05 Fraunces,Georgia,serif;
    letter-spacing: -0.04em;
    margin: 40px 0 20px;
    color: #101313;
}
.legal-content h1 {
    font: 500 clamp(36px,5vw,60px)/1.05 Fraunces,Georgia,serif;
    color: #101313;
    margin-bottom: 30px;
}
.legal-content p {
    margin-bottom: 20px;
}
.legal-content ul {
    margin-bottom: 20px;
    padding-left: 20px;
}
.legal-content li {
    margin-bottom: 10px;
}

.approach-image {
  display: block;
  width: 100%;
  max-width: 350px;
  margin: 50px 0 0 -90px;
  transform: rotate(-4deg);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* nice bouncy effect */
}

.approach-image:hover {
  transform: rotate(2deg) scale(1.05);
}

/* ── Contact Form Styles ── */
.contact-layout {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 60px;
  max-width: 1100px;
  margin: 60px auto;
  padding: 0 20px;
  align-items: start;
}

.contact-form {
  padding: 0;
}

.contact-form h2 {
  font-family: Fraunces, Georgia, serif;
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-top: 40px;
  margin-bottom: 32px;
  color: var(--ink);
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

.contact-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: #56605c;
  margin-bottom: 24px;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  font-family: inherit;
  font-size: 16px;
  padding: 16px 20px;
  border: 1px solid rgba(0, 109, 104, 0.15);
  border-radius: 12px;
  background: #fcfcfc;
  transition: all 0.25s ease;
  color: var(--ink);
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 4px rgba(0, 109, 104, 0.08);
  background: #fff;
}

.contact-form textarea {
  resize: vertical;
  min-height: 120px;
}

.contact-form button {
  width: 100%;
  padding: 16px;
  font-size: 16px;
  border-radius: 8px;
  margin-top: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

@media (max-width: 768px) {
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .contact-form {
    padding: 30px 20px;
  }
}
