@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@500;600;700&display=swap");

:root{
  --bg:#f4f1e9;
  --surface:#ebe7dd;
  --surface-soft:#e4e1d7;
  --text:#202826;
  --muted:#68706c;
  --line:#d4d1c8;
  --teal:#315c5c;
  --teal-deep:#173f40;
  --ochre:#a8753d;
  --trust:#e1e5dc;
  --button:#202826;
  --button-text:#fff;
  --media-a:#d5d1c7;
  --media-b:#b7b2a7;
  --header-bg:rgba(244,241,233,.94);
  --shadow:0 14px 40px rgba(32,40,38,.07);
}

html[data-theme="dark"]{
  --bg:#151b1a;
  --surface:#1d2523;
  --surface-soft:#232c29;
  --text:#ece9e0;
  --muted:#aeb4ae;
  --line:#35403c;
  --teal:#5d8582;
  --teal-deep:#3f6b69;
  --ochre:#bd9360;
  --trust:#202a27;
  --button:#e9e5da;
  --button-text:#18201e;
  --media-a:#303835;
  --media-b:#1f2724;
  --header-bg:rgba(21,27,26,.94);
  --shadow:0 14px 40px rgba(0,0,0,.18);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"DM Sans",sans-serif;
  line-height:1.5;
  transition:background-color .25s ease,color .25s ease;
}
a{color:inherit}
.site-header{
  height:76px;
  padding:0 5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:var(--header-bg);
  backdrop-filter:blur(12px);
  z-index:10;
}
.brand{
  display:flex;
  align-items:center;
  width:140px;
  height:64px;
  text-decoration:none;
  flex:0 0 auto;
}
.brand img{
  display:block;
  width:140px;
  height:auto;
  max-height:62px;
  object-fit:contain;
}
.site-header nav{display:flex;gap:2rem}
.site-header nav a,.text-link{
  color:inherit;
  text-decoration:none;
  font-size:.9rem;
}
.site-header nav a{opacity:.84;transition:opacity .2s ease}
.site-header nav a:hover{opacity:1}
.header-actions{display:flex;align-items:center;gap:.65rem}
.header-cta{
  background:var(--button);
  color:var(--button-text);
  text-decoration:none;
  padding:.72rem 1rem;
  border-radius:999px;
  font-size:.82rem;
  transition:transform .2s ease,opacity .2s ease;
}
.header-cta:hover{transform:translateY(-1px);opacity:.92}
.theme-toggle{
  appearance:none;
  border:1px solid var(--line);
  background:transparent;
  color:var(--text);
  min-height:38px;
  padding:.48rem .72rem;
  border-radius:999px;
  display:flex;
  align-items:center;
  gap:.4rem;
  cursor:pointer;
  font:500 .78rem "DM Sans",sans-serif;
}
.theme-toggle:hover{background:var(--surface)}
.theme-icon{font-size:1rem;line-height:1}
.section-pad{padding:7rem 8vw}
.hero{
  min-height:calc(100vh - 76px);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6vw;
  align-items:center;
}
.eyebrow{
  font-size:.72rem;
  letter-spacing:.16em;
  font-weight:600;
  margin:0 0 1.5rem;
  color:var(--teal-deep);
}
html[data-theme="dark"] .eyebrow{color:var(--teal)}
.hero h1,.section-heading h2{
  font-family:Manrope,sans-serif;
  font-size:clamp(3.1rem,6.3vw,6.8rem);
  line-height:.95;
  letter-spacing:-.065em;
  margin:0;
}
.hero h1 em,.section-heading h2 em{
  font-family:Georgia,serif;
  font-weight:400;
  letter-spacing:-.07em;
  color:var(--teal);
}
.hero-text{
  max-width:480px;
  font-size:1.08rem;
  color:var(--muted);
  margin:2rem 0;
}
.hero-actions{display:flex;align-items:center;gap:1.5rem}
.button{
  display:inline-block;
  text-decoration:none;
  border-radius:999px;
  padding:.9rem 1.25rem;
  font-size:.85rem;
}
.button-dark{background:var(--button);color:var(--button-text)}
.hero-proof{
  display:flex;
  gap:.8rem;
  align-items:center;
  margin-top:4rem;
}
.hero-proof strong{font:700 .8rem Manrope}
.hero-proof span{
  font-size:.7rem;
  letter-spacing:.12em;
  color:var(--muted);
}
.hero-media{
  height:min(70vh,720px);
  min-height:480px;
  position:relative;
  overflow:hidden;
  background:var(--surface-soft);
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-media span,.photo-slide span,.reel-card span,.consultation-media span{
  position:absolute;
  bottom:1rem;
  left:1rem;
  font-size:.65rem;
  letter-spacing:.12em;
  font-weight:600;
  color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.ticker{
  display:flex;
  justify-content:center;
  gap:1.4rem;
  flex-wrap:wrap;
  background:var(--trust);
  color:var(--text);
  padding:1.1rem 5vw;
  font-size:.68rem;
  letter-spacing:.14em;
  font-weight:600;
}
.ticker i{font-style:normal;color:var(--ochre)}
.section-heading{margin-bottom:4rem}
.section-heading h2{font-size:clamp(2.8rem,5vw,5rem)}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.service-card{
  min-height:250px;
  padding:1.7rem;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition:background-color .2s ease;
}
.service-card:hover{background:var(--surface)}
.service-card span{font-size:.7rem;color:var(--muted)}
.service-image{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  height:auto;
  margin:1rem 0 1.25rem;
  object-fit:contain;
  background:var(--surface-soft);
  transition:transform .25s ease;
}
.service-card:hover .service-image{transform:scale(1.02)}
.service-card h3{font:600 1.35rem Manrope;margin:0 0 .5rem}
.service-card p,.trust-grid p,.consultation-copy>p{
  color:var(--muted);
  font-size:.92rem;
  max-width:340px;
}
.trust-section{background:var(--trust)}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:var(--line);
}
.trust-grid article{
  background:var(--trust);
  padding:1.5rem;
  min-height:220px;
}
.trust-grid b{font-size:.7rem;color:var(--teal-deep)}
html[data-theme="dark"] .trust-grid b{color:var(--teal)}
.trust-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.trust-icon{
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--teal-deep);
}
html[data-theme="dark"] .trust-icon{color:var(--teal)}
.trust-icon svg{
  width:46px;
  height:46px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.trust-grid h3{font:600 1.1rem Manrope;margin:1.25rem 0 .6rem}
.split{display:flex;justify-content:space-between;align-items:end;gap:2rem}
.section-note{max-width:300px;color:var(--muted);font-size:.9rem}
.photo-carousel{
  height:min(68vw,720px);
  min-height:480px;
  position:relative;
}
.photo-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .5s;
}
.photo-slide.active{opacity:1}
.photo-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.image-placeholder{
  background:linear-gradient(135deg,var(--media-a),var(--media-b));
  position:relative;
  overflow:hidden;
}
.image-placeholder:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.16) 50%,transparent 80%);
}
.carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:var(--bg);
  color:var(--text);
  border-radius:50%;
  width:48px;
  height:48px;
  font-size:1.1rem;
  cursor:pointer;
  box-shadow:var(--shadow);
}
.prev{left:1.25rem}.next{right:1.25rem}
.carousel-meta{
  position:absolute;
  bottom:1rem;
  left:1rem;
  right:1rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#fff;
  font-size:.7rem;
  letter-spacing:.1em;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.dots{display:flex;gap:5px}
.dots button{
  width:25px;
  height:3px;
  border:0;
  background:rgba(255,255,255,.4);
  cursor:pointer;
}
.dots button.active{background:#fff}
.reel-track{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  padding-bottom:1rem;
  scroll-snap-type:x mandatory;
}
.reel-card{
  flex:0 0 min(280px,72vw);
  aspect-ratio:9/14;
  scroll-snap-align:start;
  position:relative;
  overflow:hidden;
}
.reel-card video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:var(--surface-soft);
}
.reel-card span{color:#fff}
.reel-card small{
  position:absolute;
  right:1rem;
  top:1rem;
  background:var(--bg);
  color:var(--text);
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
}
.consultation{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:6vw;
  align-items:center;
  background:var(--surface);
}
.consultation-media{min-height:580px;position:relative;overflow:hidden}
.consultation-media img{
  display:block;
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-fit:cover;
}
.consultation-copy h2{
  font:600 clamp(2.8rem,5vw,5rem) Manrope;
  line-height:.95;
  letter-spacing:-.06em;
  margin:0;
}
.consultation-copy h2 em{font-family:Georgia,serif;font-weight:400;color:var(--teal)}
.consultation-copy>p{margin:2rem 0}
.contact-section{padding-bottom:5rem}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
}
.contact-grid a{
  padding:1.6rem 1rem 1.6rem 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.contact-icon{
  display:block;
  width:25px;
  height:25px;
  margin-bottom:1.5rem;
}
.contact-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:var(--teal-deep);
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html[data-theme="dark"] .contact-icon svg{stroke:var(--teal)}
.contact-grid strong{font:500 1rem Manrope}
.contact-grid a:hover strong{text-decoration:underline}
footer{
  border-top:1px solid var(--line);
  padding:2rem 8vw;
  display:flex;
  justify-content:space-between;
  font-size:.75rem;
  color:var(--muted);
}
footer span:first-child{font:700 1rem Manrope;color:var(--text)}
footer em{font-weight:400;font-style:normal;color:var(--teal)}
@media(max-width:900px){
  .site-header nav{display:none}
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:5rem}
  .hero-media{min-height:55vh}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .consultation{grid-template-columns:1fr}
  .consultation-media{min-height:60vh}
  .contact-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .site-header{padding:0 1.25rem;height:68px}
  .brand{width:118px;height:58px}
  .brand img{width:118px;max-height:55px}
  .header-actions{gap:.45rem}
  .theme-toggle{width:38px;height:38px;padding:0;justify-content:center}
  .theme-label{display:none}
  .header-cta{padding:.6rem .8rem}
  .section-pad{padding:5rem 1.25rem}
  .hero h1{font-size:3.5rem}
  .hero-media{min-height:55vh}
  .service-grid{grid-template-columns:1fr}
  .service-card{min-height:210px}
  .service-image{aspect-ratio:4/3}
  .trust-grid{grid-template-columns:1fr}
  .trust-grid article{min-height:180px}
  .trust-grid h3{margin-top:1.25rem}
  .split{display:block}
  .section-note{margin-top:1.5rem}
  .photo-carousel{min-height:60vh}
  .contact-grid{grid-template-columns:1fr}
  footer{padding:1.5rem 1.25rem;gap:1rem;flex-direction:column}
  .ticker{justify-content:flex-start;overflow:hidden;white-space:nowrap;flex-wrap:nowrap}
  .hero-actions{align-items:flex-start;flex-direction:column}
}
