@font-face{font-family:Geom;src:url('assets/fonts/geom-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Geom;src:url('assets/fonts/geom-medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Geom;src:url('assets/fonts/geom-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}

:root{--ink:#0c1622;--body:#414e5e;--blue:#2689dd;--pale:#edf5fc;--line:#dce2e8;--gutter:clamp(24px,6.25vw,120px);--ease:cubic-bezier(.16,1,.3,1);color-scheme:light;scroll-behavior:smooth;scroll-padding-top:32px;font-family:Geom,Arial,sans-serif;color:var(--ink);background:#fff;font-synthesis:none}
*{box-sizing:border-box}
body{position:relative;margin:0 auto;min-width:320px;max-width:1920px;overflow-wrap:break-word}
::selection{background:#b5daf9;color:#071b2b}
:focus-visible{outline:3px solid #075b9e;outline-offset:6px;border-radius:3px}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#edf5fb}
::-webkit-scrollbar-thumb{background:#9cb8d0;border:2px solid #edf5fb;border-radius:6px}
html{scrollbar-color:#9cb8d0 #edf5fb;scrollbar-width:thin}
a{color:inherit;text-decoration:none;text-underline-offset:.3em}
img{display:block;max-width:100%;height:auto}
svg{display:block;flex-shrink:0}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:500;letter-spacing:-.04em}
p{line-height:1.5}
section[id],article[id]{scroll-margin-top:32px}
.skip-link{position:fixed;left:20px;top:12px;padding:12px 20px;background:var(--ink);color:#fff;z-index:20;transform:translateY(-150%);clip-path:inset(50%)}
.skip-link:focus{transform:translateY(0);clip-path:none}
.site-header{position:absolute;inset:0 0 auto;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:clamp(20px,1.58vw,30px) var(--gutter)}
.brand{display:inline-flex;align-items:center;min-height:44px;gap:20px;white-space:nowrap;font-size:clamp(18px,1.45vw,24px);font-weight:600;letter-spacing:.045em;line-height:1.2}
.brand-mark{width:30px;height:30px}
.desktop-nav{display:flex;align-items:center;gap:clamp(24px,3vw,58px);font-size:clamp(15px,1.17vw,19px)}
.desktop-nav a{display:inline-flex;align-items:center;min-height:44px;padding:6px 0;position:relative;white-space:nowrap}
.desktop-nav a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.desktop-nav a:hover::after{transform:scaleX(1)}
.mobile-nav{display:none}
.hero{position:relative;aspect-ratio:1536/642;overflow:hidden;background:#cfe5f6}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 32%,rgb(255 255 255 / .11) 43%,transparent 54%);transform:translateX(-70%);opacity:0;animation:light-pass 2.6s var(--ease) .4s 1}
.hero-content{position:absolute;inset:22.3% auto auto var(--gutter);width:44%}
.hero h1{font-size:clamp(46px,5.47vw,96px);line-height:.99;font-weight:400;letter-spacing:-.04em}
.hero h1 span{display:block;white-space:nowrap}
.hero-content>p{font-size:clamp(17px,1.8vw,31px);line-height:1.27;color:#4b5969;letter-spacing:-.017em;margin-top:clamp(20px,1.9vw,36px);white-space:nowrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:60px;padding:14px 31px;border-radius:999px;background:#111e2b;color:#fff;font-size:20px;font-weight:400;line-height:1.4;transition:background .25s,box-shadow .25s,transform .25s var(--ease)}
.button svg,.text-link svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.hero .button{margin-top:clamp(12px,.82vw,16px);font-size:clamp(16px,1.3vw,22px);min-height:clamp(44px,3.9vw,68px);padding:clamp(12px,.83vw,16px) clamp(24px,2.08vw,40px)}
.button:hover{background:#173c5c;box-shadow:0 8px 20px rgb(0 0 0 / .13);transform:translateY(-2px)}
.company{display:grid;grid-template-columns:50.52% 49.48%;padding-top:clamp(40px,3.9vw,75px)}
.company-left h2{font-size:clamp(36px,4.17vw,72px);line-height:1.06;margin:0 2vw 2.6vw var(--gutter)}
.company-image{width:100%;height:auto}
.company-right{padding:0 12.63% 0 12.24%}
.company-description{font-size:clamp(16px,1.3vw,23px);line-height:1.35;letter-spacing:-.01em;color:#2c394a}
.business-links{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.24vw 0 1.88vw;margin-top:1.88vw}
.business-links a{display:flex;align-items:center;min-height:44px;gap:10px;font-size:clamp(12px,.98vw,17px);line-height:1.3;white-space:nowrap;transition:color .25s}
.business-links a:hover{color:#0863a6}
.area-icon{width:41px;height:43px;border-radius:13px;background:#d3e9fe;display:grid;place-items:center;color:#1874c3;flex-shrink:0}
.area-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.legal-name{margin-top:1.3vw;font-size:clamp(12px,.85vw,14px);letter-spacing:.1em;line-height:1.7;color:#445268}
.section-space{padding:110px var(--gutter)}
.section-heading>*,.service-row>*,.approach>*,.closing>*{min-width:0}
.section-heading{display:grid;grid-template-columns:1.12fr 1fr;gap:9vw;align-items:end;margin-bottom:70px}
.section-heading h2,.approach h2,.closing h2{font-size:clamp(36px,3.65vw,64px);line-height:1.08}
.section-heading>p,.approach-intro>p{font-size:19px;line-height:1.6;color:var(--body);max-width:48ch}
.service-row{display:grid;grid-template-columns:1.12fr 1fr;gap:9vw;padding:40px 0 44px;border-top:1px solid var(--line)}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-row h3{font-size:clamp(27px,2.2vw,38px);line-height:1.25;display:flex;align-items:center;justify-content:space-between;gap:20px}
.service-symbol{color:#3899e5;opacity:.8;display:block;margin-right:20px}
.service-symbol svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.service-row p{font-size:18px;line-height:1.6;color:var(--body);max-width:49ch}
.service-note{display:block;margin-top:20px;font-size:13px;letter-spacing:.01em;color:#52677c}
.approach{background:var(--pale);display:grid;grid-template-columns:1.12fr 1fr;gap:9vw}
.approach-intro>p{margin-top:30px;max-width:40ch}
.approach-steps{list-style:none;padding:0;margin:0}
.approach-steps li{position:relative;padding:0 0 30px 48px;margin-bottom:30px;border-bottom:1px solid #cfdeeb}
.approach-steps li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.step-number{position:absolute;left:0;top:1px;font-size:14px;color:#16679e;border:1px solid #b7cedf;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-variant-numeric:tabular-nums}
.approach-steps h3{font-size:23px;letter-spacing:-.025em;line-height:1.3;margin-bottom:12px}
.approach-steps p{font-size:17px;line-height:1.6;color:var(--body);max-width:45ch}
.closing{display:grid;grid-template-columns:1.12fr 1fr;gap:9vw;align-items:end;padding-top:100px;padding-bottom:100px}
.closing p{font-size:21px;line-height:1.55;color:var(--body);margin-bottom:26px}
.contact-details{display:flex;flex-direction:column;align-items:flex-start}
.contact-email{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;font-size:clamp(17px,1.4vw,23px);line-height:1.5;max-width:100%;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px}
.contact-email:hover,.footer-email:hover{color:#075b9e}
.footer-email{display:inline-flex;align-items:center;min-height:44px;font-size:16px;text-decoration:underline;text-decoration-thickness:1px}
.text-link{display:inline-flex;align-items:center;gap:20px;min-height:44px;font-size:16px;line-height:1.5;padding-bottom:5px;border-bottom:1px solid currentColor}
.text-link svg{width:21px;height:21px;transition:transform .25s var(--ease)}
.text-link:hover svg{transform:translateX(4px)}
.site-footer{margin:0 var(--gutter);padding:40px 0 24px;border-top:1px solid var(--line)}
.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px}
.footer-top{margin-bottom:36px}
.footer-top .brand{font-size:20px;gap:16px}
.footer-top .brand-mark{width:26px;height:26px}
.back-top{font-size:14px;border:0}
.back-top:hover svg{transform:translateY(-4px)}
.footer-bottom{align-items:baseline;font-size:12px;color:#526175;letter-spacing:.025em}
@keyframes light-pass{0%{transform:translateX(-70%);opacity:0}20%{opacity:1}80%{opacity:1}100%{transform:translateX(70%);opacity:0}}

@media(min-width:1920px){.company-left h2{margin-right:38px;margin-bottom:50px}.business-links{padding:24px 0 36px;margin-top:36px}.legal-name{margin-top:25px}.section-heading,.service-row,.approach,.closing{gap:172px}}
@media(max-width:1200px) and (min-width:761px){.business-links{gap:9px;flex-wrap:wrap;padding:15px 0}.business-links a{font-size:12px;gap:7px}.area-icon{width:30px;height:34px;border-radius:10px}.area-icon svg{width:19px;height:19px}.hero .button{gap:14px}.hero .button svg{width:19px;height:19px}.section-space{padding-top:85px;padding-bottom:85px}.section-heading,.service-row,.approach,.closing{gap:6vw}}
@media(max-width:1024px){
  :root{--gutter:max(24px,env(safe-area-inset-left),env(safe-area-inset-right));scroll-padding-top:24px}
  .site-header{padding:24px var(--gutter);align-items:center}
  .brand{font-size:18px;gap:13px;letter-spacing:.035em}
  .brand-mark{width:26px;height:26px}
  .desktop-nav{display:none}
  .mobile-nav{display:block}
  .mobile-nav summary{display:flex;align-items:center;gap:9px;min-height:44px;list-style:none;font-size:14px;cursor:pointer;padding:5px 0}
  .mobile-nav summary::-webkit-details-marker{display:none}
  .mobile-nav summary svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.4}
  .mobile-nav[open] summary svg{transform:rotate(90deg)}
  .mobile-nav nav{position:absolute;top:70px;right:var(--gutter);width:210px;padding:10px 20px;background:#f1f8fe;box-shadow:0 12px 32px rgb(0 0 0 / .13);border-radius:12px}
  .mobile-nav nav a{display:block;padding:14px 0;font-size:16px}
  .hero{aspect-ratio:auto;display:flex;flex-direction:column;overflow:hidden;background:#d1e7f7}
  .hero-content{position:relative;inset:auto;order:0;width:auto;padding:115px var(--gutter) 23px}
  .hero h1{font-size:clamp(38px,11.6vw,68px);line-height:1.05;letter-spacing:-.04em}
  .hero-content>p{font-size:18px;line-height:1.5;letter-spacing:-.015em;white-space:normal;margin-top:24px;max-width:35ch}
  .desktop-break{display:none}
  .hero .button{font-size:16px;min-height:52px;padding:14px 24px;gap:20px;margin-top:23px}
  .hero .button svg{width:21px;height:21px}
  .hero-media{position:relative;inset:auto;order:1;aspect-ratio:1.45;max-height:390px}
  .hero-media img{object-fit:cover;object-position:right center;width:100%;height:100%}
  .hero-media::before{content:'';position:absolute;inset:0 0 auto;height:27%;background:linear-gradient(#d1e7f7,transparent);pointer-events:none}
  .hero-media::after{display:none}
  .company{grid-template-columns:1fr;padding-top:48px}
  .company-left h2{font-size:clamp(35px,9.7vw,52px);line-height:1.06;margin:0 var(--gutter) 30px}
  .company-image{width:100%}
  .company-right{padding:30px var(--gutter) 0}
  .company-description{font-size:17px;line-height:1.55;max-width:55ch}
  .business-links{margin-top:25px;padding:18px 0;display:grid;justify-content:start;gap:14px}
  .business-links a{font-size:15px;gap:12px;min-height:44px}
  .area-icon{width:38px;height:38px;border-radius:12px}
  .area-icon svg{width:21px;height:21px}
  .legal-name{font-size:12px;letter-spacing:.06em;margin-top:18px;line-height:1.8}
}
@media(min-width:761px) and (max-width:1024px){
  .hero-content{padding-top:130px;padding-bottom:28px;max-width:760px}
  .hero h1{font-size:clamp(60px,8.3vw,78px)}
  .hero-content>p{font-size:21px;max-width:40ch}
  .hero-media{aspect-ratio:2;max-height:460px}
  .company{grid-template-columns:1fr 1fr;align-items:start;gap:32px;padding:60px var(--gutter) 0}
  .company-left h2{font-size:clamp(34px,4.5vw,46px);margin:0 0 28px}
  .company-image{aspect-ratio:2.7;object-fit:cover;object-position:right}
  .company-right{padding:0}
  .business-links{margin-top:22px;gap:10px}
  .business-links a{font-size:15px;min-height:44px}
  .section-heading{align-items:start;margin-bottom:48px}
  .section-heading>p,.approach-intro>p{font-size:17px}
  .service-row p{font-size:17px}
  .service-symbol{margin-right:0}
  .approach-steps p{font-size:16px}
  .closing p{font-size:19px}
  .closing .button{font-size:17px;min-height:52px;padding:14px 24px}
}
@media(max-width:760px){
  .section-space{padding:65px var(--gutter)}
  .section-heading,.service-row,.approach,.closing{grid-template-columns:1fr;gap:24px}
  .section-heading{margin-bottom:38px}
  .section-heading h2,.approach h2,.closing h2{font-size:clamp(34px,9.3vw,52px);line-height:1.08}
  .section-heading>p,.approach-intro>p{font-size:17px;line-height:1.6;max-width:52ch}
  .service-row{padding:30px 0;gap:18px}
  .service-row h3{font-size:27px}
  .service-symbol{margin-right:0}
  .service-symbol svg{width:27px;height:27px}
  .service-row p{font-size:16px;line-height:1.65;max-width:54ch}
  .service-note{font-size:12px;margin-top:16px}
  .approach{gap:40px}
  .approach-intro>p{margin-top:24px}
  .approach-steps h3{font-size:21px}
  .approach-steps p{font-size:16px}
  .approach-steps li{padding-left:43px}
  .closing{padding-top:64px;padding-bottom:64px;gap:28px}
  .closing p{font-size:19px;margin-bottom:22px}
  .closing .button{font-size:17px;min-height:52px;padding:14px 24px}
  .contact-email{font-size:18px}
  .site-footer{margin:0 var(--gutter);padding-top:28px;padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .footer-top{align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:26px}
  .footer-top .brand{font-size:15px;gap:10px}
  .footer-top .brand-mark{width:23px;height:23px}
  .back-top{font-size:12px;gap:7px}
  .back-top svg{width:17px;height:17px}
  .footer-email{order:1;flex-basis:100%;font-size:16px}
  .footer-bottom{flex-direction:column;gap:10px;font-size:12px;line-height:1.6}
}
@media(hover:none){.button:hover{box-shadow:none;transform:none}}
@media(max-width:360px){:root{--gutter:max(20px,env(safe-area-inset-left),env(safe-area-inset-right))}.hero h1{font-size:37px}.hero-content{padding-top:108px}.hero-content>p{font-size:17px}.hero-media{aspect-ratio:1.35}}
@media(prefers-reduced-motion:reduce){html,:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
