:root{
  --bg:#f7fbf8;
  --bg-soft:#eef5f1;
  --panel:#ffffff;
  --panel-dark:#10251f;
  --text:#16312a;
  --muted:#58746b;
  --line:rgba(18,49,42,.09);
  --line-strong:rgba(18,49,42,.14);
  --green:#19c87a;
  --green-dark:#15a767;
  --green-soft:#e8f8f0;
  --gold:#d6b76d;
  --white:#ffffff;
  --max:1180px;
  --radius:28px;
  --radius-soft:22px;
  --shadow:0 18px 45px rgba(18,49,42,.09);
  --shadow-soft:0 10px 28px rgba(18,49,42,.06);
  --transition:280ms ease;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#fbfdfc 0%,#f5faf7 100%);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
h1,h2,h3,p{margin:0}

.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;z-index:1000;background:var(--white);padding:.65rem .8rem;border-radius:.75rem;box-shadow:var(--shadow-soft)}
.container{width:min(var(--max),calc(100% - 2rem));margin:0 auto}

.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(250,252,251,.84);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(18,49,42,.06);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0}
.brand img{width:162px;height:auto}
.nav{display:flex;align-items:center;gap:1.3rem;color:var(--muted)}
.nav a{position:relative;font-size:.95rem;transition:color var(--transition)}
.nav a:not(.button)::after{
  content:"";position:absolute;left:0;bottom:-.35rem;width:100%;height:2px;
  transform:scaleX(0);transform-origin:left;transition:transform var(--transition);
  background:linear-gradient(90deg,var(--green),var(--gold));
}
.nav a:hover,.nav a.is-active{color:var(--text)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}
.menu-toggle{display:none;border:1px solid var(--line);background:var(--white);color:var(--text);border-radius:999px;padding:.65rem .95rem}
.mobile-nav{display:none;padding:0 1rem 1rem;background:rgba(250,252,251,.97);border-top:1px solid var(--line)}
.mobile-nav.open{display:grid;gap:.85rem}
.mobile-nav a{color:var(--muted)}
.mobile-nav a:hover{color:var(--text)}

.button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:none;border-radius:999px;padding:.9rem 1.15rem;font-weight:700;font-size:.92rem;cursor:pointer;transition:transform var(--transition), background var(--transition), box-shadow var(--transition), border-color var(--transition), color var(--transition)}
.button.small{padding:.68rem .96rem;font-size:.84rem}
.button.primary{background:linear-gradient(135deg,var(--green),#25d686);color:#fff;box-shadow:0 12px 28px rgba(25,200,122,.22)}
.button.primary:hover{transform:translateY(-2px);background:linear-gradient(135deg,#25d686,var(--green-dark));box-shadow:0 18px 36px rgba(25,200,122,.28)}
.button.ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px)}
.button.ghost:hover{transform:translateY(-2px);background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28)}

.hero{position:relative;min-height:92vh;overflow:hidden;border-bottom:1px solid rgba(18,49,42,.06)}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);animation:heroFloat 18s ease-in-out infinite alternate}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,16,.78),rgba(8,20,16,.52)),linear-gradient(110deg,rgba(0,90,60,.16),rgba(0,0,0,.12))}
.hero-shell{position:relative;z-index:1;min-height:92vh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:2rem;align-items:end;padding:8.5rem 0 4rem}
.hero-copy{max-width:680px}
.eyebrow{display:inline-block;margin:0 0 .9rem;font-size:.74rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#4f7f70}
.eyebrow-light{color:rgba(255,255,255,.74)}
.hero-title{font-size:clamp(2.15rem,4.2vw,3.6rem);line-height:1.02;letter-spacing:-.045em;color:#fff;max-width:12ch}
.hero-lead{margin-top:1.2rem;max-width:58ch;color:rgba(255,255,255,.82);font-size:1rem;line-height:1.72}
.button-row{display:flex;gap:.85rem;flex-wrap:wrap;margin-top:1.65rem}
.hero-panel{align-self:end;display:grid;gap:1rem;transform:perspective(1200px) rotateX(0deg);transition:transform var(--transition)}
.hero-panel:hover{transform:perspective(1200px) rotateX(1deg) translateY(-3px)}
.hero-panel-card,.hero-panel-grid > div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft)}
.hero-panel-card{padding:1.2rem 1.25rem;border-radius:var(--radius)}
.panel-label{display:inline-block;margin-bottom:.6rem;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#b6e9cf}
.hero-panel-card p,.hero-panel-grid span{color:rgba(255,255,255,.78);line-height:1.6}
.hero-panel-grid{display:grid;gap:.9rem}
.hero-panel-grid > div{padding:1rem 1.05rem;border-radius:20px}
.hero-panel-grid strong{display:block;margin-bottom:.35rem;color:#fff;font-size:1rem}

.credibility-strip{background:#fcfefd;border-bottom:1px solid rgba(18,49,42,.06)}
.credibility-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.05rem 0;color:#315046;font-size:.95rem}
.credibility-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .15rem}
.credibility-item span{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--green),var(--gold));box-shadow:0 0 0 5px rgba(25,200,122,.10)}

.section{padding:6rem 0}
.section-soft{background:linear-gradient(180deg,var(--bg-soft),rgba(232,248,240,.45))}
.section-dark{background:linear-gradient(135deg,#0e221d,#153129);color:#fff}

.section-head{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}
.section-head-narrow{max-width:780px}
.section-head-light h2,.section-head-light .subhead{color:#fff}
.section-head-light .subhead{opacity:.82}
h2{font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.08;letter-spacing:-.035em;color:var(--text)}
.subhead{max-width:62ch;color:var(--muted);font-size:1rem;line-height:1.72}
p{color:var(--muted);line-height:1.74}

.about-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);gap:2rem;align-items:center}
.copy-block{max-width:62ch}
.copy-block p + p{margin-top:1rem}
.about-visual-card{overflow:hidden;border-radius:30px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);padding:.85rem}
.about-visual-card img{width:100%;height:520px;object-fit:cover;border-radius:24px;transition:transform 620ms ease, filter 620ms ease}
.about-visual-card:hover img{transform:scale(1.05);filter:saturate(1.03)}

.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.service-card{overflow:hidden;border-radius:26px;background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:var(--shadow-soft);transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition)}
.service-media{overflow:hidden;aspect-ratio:16/10;background:#dfeae5}
.service-media img{width:100%;height:100%;object-fit:cover;transition:transform 620ms ease, filter 620ms ease}
.service-copy{padding:1.2rem 1.25rem 1.35rem}
.service-tag{display:inline-block;margin-bottom:.7rem;padding:.36rem .58rem;border-radius:999px;background:var(--green-soft);color:#1f684b;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.service-copy h3{font-size:1.1rem;margin-bottom:.55rem;color:var(--text)}

.sector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.sector-card,.insight-card{overflow:hidden;border-radius:26px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft)}
.sector-media,.insight-media{aspect-ratio:16/9;overflow:hidden;background:#dfeae5}
.sector-media img,.insight-media img{width:100%;height:100%;object-fit:cover;transition:transform 620ms ease, filter 620ms ease}
.sector-copy,.insight-copy{padding:1.2rem 1.25rem 1.35rem}
.sector-copy h3,.insight-copy h3{font-size:1.08rem;margin-bottom:.5rem;color:var(--text)}

.difference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.difference-card{padding:1.35rem;border-radius:26px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.05));box-shadow:0 18px 42px rgba(0,0,0,.18)}
.difference-number{display:inline-block;margin-bottom:1rem;font-size:2.8rem;line-height:1;font-weight:800;letter-spacing:-.05em;color:rgba(255,255,255,.14)}
.difference-card h3{margin-bottom:.6rem;color:#fff;font-size:1.08rem}
.difference-card p{color:rgba(255,255,255,.82)}

.approach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}
.step-card,.info-card{padding:1.3rem;border-radius:26px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft)}
.step-number{display:inline-block;margin-bottom:1rem;font-size:2.5rem;font-weight:800;letter-spacing:-.05em;color:rgba(22,49,42,.12)}
.step-card h3,.info-card h3{font-size:1.08rem;margin-bottom:.55rem;color:var(--text)}

.insights-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}

.inquiry-shell{display:grid;grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);gap:1.4rem;align-items:start}
.inquiry-copy{max-width:60ch}
.inquiry-visual{margin-top:1.5rem;overflow:hidden;border-radius:30px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);padding:.8rem}
.inquiry-visual img{width:100%;height:320px;object-fit:cover;border-radius:24px;transition:transform 620ms ease, filter 620ms ease}
.inquiry-visual:hover img{transform:scale(1.06);filter:saturate(1.04)}
.inquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1.4rem;border-radius:30px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.inquiry-form label{display:grid;gap:.45rem}
.inquiry-form .full{grid-column:1/-1}
.inquiry-form span{font-weight:600;color:var(--text)}
.inquiry-form input,.inquiry-form select,.inquiry-form textarea{width:100%;padding:.95rem 1rem;border-radius:16px;border:1px solid rgba(18,49,42,.10);background:#fbfdfc;color:var(--text);outline:none;transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition)}
.inquiry-form input:focus,.inquiry-form select:focus,.inquiry-form textarea:focus{border-color:rgba(25,200,122,.46);box-shadow:0 0 0 4px rgba(25,200,122,.10);transform:translateY(-1px)}
.form-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.form-status{font-size:.94rem;color:var(--muted)}

.site-footer{border-top:1px solid rgba(18,49,42,.08);background:#f9fcfa}
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 0 1.2rem}
.footer-brand{display:flex;align-items:center;gap:.9rem}
.footer-brand img{width:132px;height:auto}
.footer-brand p{font-size:.92rem;color:var(--muted)}
.footer-links{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem}
.footer-links a:hover{color:var(--text)}

.hover-lift{transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition)}
.hover-lift:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(18,49,42,.10);border-color:rgba(25,200,122,.18)}
.service-card:hover,.sector-card:hover,.insight-card:hover,.step-card:hover,.info-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(18,49,42,.10);border-color:rgba(25,200,122,.18)}
.service-card:hover img,.sector-card:hover img,.insight-card:hover img{transform:scale(1.06);filter:saturate(1.04)}

.reveal{opacity:0;transform:translateY(24px) scale(.985);filter:blur(5px);transition:opacity .8s ease, transform .8s ease, filter .8s ease}
.reveal.visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(25,200,122,.24);outline-offset:3px}

@keyframes heroFloat{from{transform:scale(1.04) translateY(0)}to{transform:scale(1.09) translateY(-8px)}}

@media (max-width:1080px){
  .hero-shell,.about-layout,.inquiry-shell{grid-template-columns:1fr}
  .hero-shell{padding-top:7rem}
  .hero-panel{max-width:620px}
}

@media (max-width:980px){
  .nav{display:none}
  .menu-toggle{display:inline-flex}
  .credibility-grid,.services-grid,.sector-grid,.difference-grid,.approach-grid,.insights-grid,.inquiry-form{grid-template-columns:1fr}
  .section{padding:4.8rem 0}
  .hero{min-height:auto}
  .hero-shell{min-height:auto;padding:7rem 0 3rem}
  .about-visual-card img,.inquiry-visual img{height:320px}
}

@media (max-width:680px){
  .container{width:min(var(--max),calc(100% - 1.2rem))}
  .header-inner{padding:.85rem 0}
  .hero-title{font-size:clamp(1.85rem,8vw,2.6rem);max-width:14ch}
  .hero-lead,.subhead,p{font-size:.96rem}
  .section{padding:4rem 0}
  .inquiry-form{padding:1.1rem}
  .button-row{gap:.7rem}
  h2{font-size:clamp(1.55rem,6vw,2rem)}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
  .reveal{opacity:1;transform:none;filter:none}
}
