@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Figtree:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600&display=swap');
:root{--bg:#ffffff;--bg-alt:#f5f4f1;--fg:#1c1a18;--muted:#000000;--line:#828282;--stone:#000000;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:figtree;color:var(--fg);background:var(--bg);line-height:1.7}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.container{max-width:1200px;margin:0 auto;padding:0 24px}.container.narrow{max-width:860px}.kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);font-weight:500}.divider{height:1px;background:var(--line);margin:0 auto;max-width:1200px}.section{padding:96px 0}.section.alt{background:var(--bg-alt)}
h1,h2,h3,h4{font-family:'Figtree';font-weight:50;line-height:1.3;letter-spacing:none;margin:0 0 12px}h1{font-size:clamp(44px,7vw,78px)}h2{font-size:clamp(34px,4vw,52px)}h3{font-size:clamp(24px,2vw,32px)}h4{font-size:clamp(16px,2vw,22px)}p{margin:0 0 18px;color:var(--muted)}.body-text{font-size:18px}.btn,.btn-outline{display:inline-block;padding:14px 26px;font-size:13px;letter-spacing:.09em;text-transform:uppercase;font-weight:500;border:1px solid var(--fg);transition:.25s}.btn{background:var(--fg);color:var(--bg)}.btn:hover{background:transparent;color:var(--fg)}.btn-outline{background:transparent;color:var(--fg)}.btn-outline:hover{background:var(--fg);color:var(--bg)}.link-inline{font-size:13px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--fg);padding-bottom:3px}.header{position:fixed;top:0;left:0;right:0;z-index:50;transition:.35s;background:transparent}.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between}.header .logo img{height:54px;transition:.35s}.nav{display:flex;align-items:center;gap:28px}.nav a{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.nav .consult{padding:10px 18px;border:1px solid var(--fg);color:var(--fg)}.menu{display:none;font-size:28px;background:none;border:0;color:inherit}.hero-state{background:transparent}.hero-state .nav{display:none}.hero-state .menu,.hero-state .logo img{filter:brightness(0) invert(1)}.solid{background:rgba(247,244,239,.98);backdrop-filter:saturate(1.1) blur(8px);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(0,0,0,.03)}.solid .logo img{filter:none}.solid .menu{color:var(--fg)}.hero{min-height:100vh;position:relative;display:flex;align-items:flex-end}.hero-bg,.hero-bg::after{position:absolute;inset:0}.hero-bg img{width:100%;height:100%;object-fit:cover}.hero-bg::after{content:"";background:linear-gradient(90deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.14) 42%,rgba(0,0,0,.08) 100%)}.hero-content{position:relative;z-index:2;padding:0 0 84px;display:flex;align-items:flex-end;min-height:100vh}.hero-box{max-width:640px;width:min(640px,100%);margin-left:118px}.hero-title{color:#fff;font-family:Outfit,system-ui,sans-serif;font-weight:600;font-size:clamp(50px,6.4vw,82px);line-height:.93;max-width:620px;letter-spacing:-.045em;margin:0}.hero-title br{display:block}.hero-sub{color:rgba(255,255,255,.86);max-width:500px;font-size:17px;line-height:1.62;margin-top:28px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px;max-width:500px}.hero .btn{background:#fff;color:var(--fg);border-color:#fff}.hero .btn:hover{background:transparent;color:#fff;border-color:#fff}.hero .btn-outline{color:#fff;border-color:rgba(255,255,255,.58)}.hero .btn-outline:hover{background:#fff;color:var(--fg);border-color:#fff}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:72px}.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.chip{font-size:12px;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);padding:10px 14px;color:var(--muted)}.list{padding:0;margin:24px 0 0;list-style:none}.list li{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px;color:var(--muted)}.list li::before{content:"";width:6px;height:6px;background:var(--stone);border-radius:999px;margin-top:10px;flex:0 0 auto}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:28px}.card-line{border-top:1px solid var(--line);padding-top:14px}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}.step-num{font-family:'Figtree',Georgia,serif;color:var(--line);font-size:18px}.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.area-img{aspect-ratio:3/4;overflow:hidden;margin-bottom:18px}.area-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.area:hover .area-img img{transform:scale(1.04)}.about-grid{display:grid;grid-template-columns:2fr 3fr;gap:64px;align-items:start}.form-grid{display:grid;grid-template-columns:2fr 3fr;gap:72px}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.field label{display:block;margin-bottom:10px}.field input,.field select,.field textarea{width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;padding:0 0 12px;font:inherit;color:var(--fg);outline:none}.field textarea{min-height:120px;resize:vertical}.footer{border-top:1px solid var(--line);padding:72px 0 28px}

.footer-grid{
  display:grid;
  grid-template-columns: 1.25fr 0.8fr 0.65fr;
  gap:48px;
  align-items:start;
}

.footer-grid > div:nth-child(2){
  justify-self:start;
}

.footer-grid > div:nth-child(3){
  justify-self:end;
  text-align:left;
}

.footer-socials{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  margin-top:34px;
}

.social-link{
  width:50px;
  height:50px;
  border:0.8px solid var(--fg);
  border-radius:800px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#000;
  background:transparent;
  transition:.25s;
}

.social-link svg{
  width: 24px;px;
  height:24px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:0.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.social-link:hover{
  background:#000;
  color:#fff;
}

.footer-small{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-top:34px;
  padding-bottom:4px;
}

.footer-small p{
  margin:0;
  color:var(--muted);
}

.footer-legal{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
}

.footer-legal a{
  color:var(--muted);
}

.footer-legal span{
  opacity:.55;
}

@media (max-width: 768px){
  .footer-socials{
    gap:12px;
    flex-wrap:wrap;
  }

  .social-link{
    width:52px;
    height:52px;
  }

  .social-link svg{
    width:20px;
    height:20px;
  }

  .footer-small{
    flex-direction:column-reverse;
    align-items:center;
    text-align:center;
    gap:14px;
  }

  .footer-legal{
    justify-content:center;
  }
}

.page-top{padding:150px 0 72px}

/* legal pages: Privacy / Cookie / Terms */
.page-top > .container.narrow:not([style]){
  max-width: 900px;
  margin-left: 190px;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  text-align: left;
}

@media (max-width: 1440px){
  .page-top > .container.narrow:not([style]){
    margin-left: 136px;
  }
}

@media (max-width: 1200px){
  .page-top > .container.narrow:not([style]){
    margin-left: 72px;
  }
}

.hero-page{position:relative;min-height:60vh;display:flex;align-items:flex-end}.hero-page .overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.58),rgba(0,0,0,.18),transparent)}.hero-page .content{position:relative;z-index:1;padding:0 0 72px}.hero-page h1,.hero-page .kicker{color:#fff}.mobile-panel{display:none}.notice{padding:16px 0;color:var(--muted);font-size:14px}
@media (max-width: 1024px){
  .grid-3,
  .grid-2,
  .areas,
  .steps,
  .about-grid,
  .form-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .cards,
  .field-grid{
    grid-template-columns:1fr;
  }

  .footer-grid > div:nth-child(2),
  .footer-grid > div:nth-child(3){
    justify-self:start;
    text-align:left;
  }

  .nav{display:none}
  .menu{display:block}
  .header.open{background:rgba(247,244,239,.98);border-bottom:1px solid var(--line)}
  .header.open .logo img{filter:none}
  .header.open .menu{color:var(--fg)}
  .mobile-panel{display:none;padding:0 24px 24px}
  .header.open .mobile-panel{display:flex;flex-direction:column;gap:18px}
  .mobile-panel a{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .hero-content{position:relative;z-index:2;padding:0 0 84px;display:flex;align-items:flex-end;min-height:100vh}
  .hero-box{max-width:640px;width:min(640px,100%);margin-left:118px}
  .hero-title{color:#fff;font-family:Figtree,system-ui,sans-serif;font-weight:600;font-size:clamp(50px,6.4vw,82px);line-height:.93;max-width:620px;letter-spacing:-.045em;margin:0}
  .hero-sub{color:rgba(255,255,255,.86);max-width:500px;font-size:17px;line-height:1.62;margin-top:28px}
  .hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px;max-width:500px}
  .hero-actions .btn,
  .hero-actions .btn-outline{width:100%;text-align:center}
  .section{padding:72px 0}

  .page-top{padding:128px 0 56px}

  .page-top > .container.narrow:not([style]){
    max-width:none;
    margin-left:0;
    margin-right:0;
    padding-left:24px;
    padding-right:24px;
    text-align:left;
  }

  .header-inner{height:82px}
  .header .logo img{height:42px}
  .hero-state .menu{display:block}
  .hero-state.open .nav{display:none}
}


.hero .btn,.hero .btn-outline{min-width:220px;text-align:center;padding:16px 24px;font-size:12px;letter-spacing:.11em}
.hero .btn-outline{background:rgba(255,255,255,.06)}


/* v16 hero alignment refinements */
.header .container.header-inner,
.hero .container.hero-content{
  max-width:none;
  width:100%;
  padding-left:56px;
  padding-right:56px;
}
.header .logo img{
  height:40px;
}
.hero-content{
  justify-content:flex-start;
  padding-bottom:96px;
}
.hero-box{
  margin-left:0;
  max-width:820px;
  width:min(820px,100%);
}
.hero-title{
  font-family:figtree;
  font-weight:40;
  font-size:90px;
  line-height:.92;
  letter-spacing:none;
  max-width:760px;
}
.hero-sub{
  max-width:620px;
  font-size:17px;
  line-height:1.6;
  margin-top:24px;
}
.hero-actions{
  max-width:620px;
  margin-top:30px;
}
.hero .btn,.hero .btn-outline{
  min-width:0;
}
@media (max-width: 1024px){
  .header .container.header-inner,
  .hero .container.hero-content{
    padding-left:24px;
    padding-right:24px;
  }
  .header .logo img{height:34px}
  .hero-content{padding-bottom:72px}
  .hero-box{max-width:360px;width:100%;margin-left:0}
  .hero-sub{max-width:320px;font-size:16px}
  .hero-actions{max-width:320px;gap:12px}
}


/* v20 hero refinement based on v19, preserving full v16 content */
:root{--hero-overlay-top:rgba(16,16,16,.16);--hero-overlay-mid:rgba(16,16,16,.10);--hero-overlay-bottom:rgba(16,16,16,.24)}
.header{transition:background-color .35s ease, backdrop-filter .35s ease, border-color .35s ease, box-shadow .35s ease}
.solid{background:rgba(255, 255, 255, 0.94);backdrop-filter:saturate(1.08) blur(10px);border-bottom:1px solid rgba(28,26,24,.12);box-shadow:none}
.hero-state{background:transparent;border-bottom:1px solid transparent;box-shadow:none}
.hero-state .logo img{filter:brightness(0) invert(1)}
.hero-state .menu{color:#fff}
.hero-bg::after{background:linear-gradient(180deg,var(--hero-overlay-top) 0%,var(--hero-overlay-mid) 28%,var(--hero-overlay-bottom) 100%)}
.hero{min-height:100vh;align-items:flex-end}
.header .container.header-inner,.hero .container.hero-content{padding-left:34px;padding-right:34px}
.header .logo img{height:34px;transition:filter .35s ease,height .35s ease}
.header-inner{height:88px}
.hero-content{padding:0 0 72px;justify-content:flex-start;min-height:100vh}
.hero-box{margin-left:0;max-width:520px;width:min(520px,100%)}
.hero-sub{max-width:480px;font-size:14px;line-height:1.65;color:rgba(255,255,255,.82);margin-top:0}
.hero-actions{max-width:480px;margin-top:28px;gap:14px}
.hero .btn,.hero .btn-outline{min-width:220px;text-align:center;min-height:48px;padding:16px 22px;font-size:12px;letter-spacing:.12em}
.hero .btn{background:#fff;color:#111;border-color:#fff}
.hero .btn:hover{background:rgba(255,255,255,.92);color:#111;border-color:#fff}
.hero .btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.46)}
.hero .btn-outline:hover{background:#fff;color:#111;border-color:#fff}

@media (max-width:1024px){
  .header .container.header-inner,
  .hero .container.hero-content{
    padding-left:20px;
    padding-right:20px;
  }

  .header-inner{
    height:80px;
  }

  .header .logo img{
    height:32px;
  }

  .hero-content{
    padding-bottom:54px;
  }

  .hero-box{
    max-width:330px;
    width:100%;
    margin-left:0;
  }

  .hero-sub{
    max-width:330px;
    font-size:14px;
    line-height:1.55;
  }

  .hero-actions{
    max-width:330px;
    gap:12px;
  }

  .hero .btn,
  .hero .btn-outline{
    min-width:0;
    width:100%;
  }
}


.hero-state .nav{
  display:flex;
}
.hero-state .nav a{
  color:rgba(255,255,255,.88);
}
.hero-state .nav .consult{
  color:#fff;
  border-color:rgba(255,255,255,.42);
}
.hero-state .menu{
  color:#fff;
}
.header .logo img,
.header .nav a,
.header .nav .consult,
.header .menu{
  transition:filter .35s ease,color .35s ease,border-color .35s ease,opacity .35s ease,background-color .35s ease;
}
@media (max-width: 1024px){
  .hero-state .nav{display:none;}
}



/* v22 fixed – based on v21, larger hero typography and shifted slightly right */
.hero .container.hero-content{
  padding-left: 82px;
  padding-right: 34px;
}

.hero-content{
  padding-bottom: 86px;
  justify-content: flex-start;
}

.hero-box{
  margin-left: 0;
  max-width: 640px;
  width: min(640px, 100%);
}

.hero-title{
  font-family: Figtree,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  font-weight: 100;
  font-size: 50px;
  line-height: .96;
  letter-spacing: none;
  max-width: 620px;
  margin: 0 0 18px 0;
}

.hero-sub{
  max-width: 560px;
  font-size: 17px;
  line-height: 1.58;
  margin-top: 0;
}

.hero-actions{
  max-width: 560px;
  margin-top: 30px;
  gap: 16px;
}

.hero .btn,
.hero .btn-outline{
  min-width: 230px;
  min-height: 50px;
  padding: 16px 24px;
  font-size: 12px;
  letter-spacing: .12em;
}

@media (max-width: 1024px){
  .hero .container.hero-content{
    padding-left: 34px;
    padding-right: 20px;
  }

  .hero-content{
    padding-bottom: 62px;
  }

  .hero-box{
    max-width: 400px;
    width: 100%;
  }

  .hero-title{
    font-size: 36px;
    max-width: 330px;
    line-height: .96;
    margin: 0 0 16px 0;
  }

  .hero-sub{
    max-width: 350px;
    font-size: 15px;
    line-height: 1.55;
  }

  .hero-actions{
    max-width: 350px;
    gap: 12px;
  }

  .hero .btn,
  .hero .btn-outline{
    min-width: 0;
    width: 100%;
  }
}





/* tighten layout slightly */
.hero-sub{
  font-size: 15px;
  max-width: 520px;
}




/* v24 – editorial logo alignment */
.header .logo{
  margin-left:-118px;
}

@media (max-width: 1440px){
  .header .logo{
    margin-left:-88px;
  }
}

@media (max-width: 1200px){
  .header .logo{
    margin-left:-56px;
  }
}

@media (max-width: 1024px){
  .header .logo{
    margin-left:0;
  }
}



/* v25 – correct logo alignment (move RIGHT) */
.header .logo{
  margin-left:120px;
}

@media (max-width: 1440px){
  .header .logo{
    margin-left:90px;
  }
}

@media (max-width: 1200px){
  .header .logo{
    margin-left:60px;
  }
}

@media (max-width: 1024px){
  .header .logo{
    margin-left:0;
  }
}


/* v26 – fine alignment: shift by approx width of 'w' (~32px) */
.header .logo{
  margin-left:152px; /* 120 + ~32px */
}

@media (max-width: 1440px){
  .header .logo{
    margin-left:112px;
  }
}

@media (max-width: 1200px){
  .header .logo{
    margin-left:72px;
  }
}

@media (max-width: 1024px){
  .header .logo{
    margin-left:0;
  }
}


/* v27 – shift hero content right to match grid */
.hero .container.hero-content{
  padding-left: 200px; /* moved further right */
}

@media (max-width: 1440px){
  .hero .container.hero-content{
    padding-left: 160px;
  }
}

@media (max-width: 1200px){
  .hero .container.hero-content{
    padding-left: 100px;
  }
}

@media (max-width: 1024px){
  .hero .container.hero-content{
    padding-left: 34px;
  }
}


/* v28 – hero overlay + button consistency */

/* Dark overlay on hero */
.hero{
  position: relative;
}
.hero::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.25);
  pointer-events: none;
}
.hero .container{
  position: relative;
  z-index: 2;
}

/* Buttons – both transparent with hover to white */
.btn-primary,
.btn-secondary{
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.6) !important;
  color: #fff !important;
  transition: all 0.25s ease;
}

.btn-primary:hover,
.btn-secondary:hover{
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}


/* v29 – force primary button override */

/* target exact hero CTA */
.hero .btn-primary{
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.6) !important;
}

/* hover */
.hero .btn-primary:hover{
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}


/* v31 fixed – align Positioning / Approach / FAQ with the rest of the site */
.section-position .container.narrow,
.section-approach .container.narrow,
.section-faq .container.narrow{
  max-width: 900px;
  margin-left: 190px;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  text-align: left;
}

@media (max-width: 1440px){
  .section-position .container.narrow,
  .section-approach .container.narrow,
  .section-faq .container.narrow{
    margin-left: 136px;
  }
}

@media (max-width: 1200px){
  .section-position .container.narrow,
  .section-approach .container.narrow,
  .section-faq .container.narrow{
    margin-left: 72px;
  }
}

@media (max-width: 1024px){
  .section-position .container.narrow,
  .section-approach .container.narrow,
  .section-faq .container.narrow{
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 24px;
    padding-right: 24px;
    text-align: left;
  }
}




/* v32 – footer WASI aligned with NAVIGATE/CONTACT */
.footer .brand{
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8a837b;
  font-weight: 500;
}
