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

:root { --radius-xl: 34px; --radius-lg: 24px; --shadow: 0 24px 70px rgba(20, 66, 75, .13); }
body { overflow-x: hidden; background: #fff; font-family: 'DM Sans', Arial, sans-serif; }
h1,h2,h3,.button { font-family: 'Nunito', Arial, sans-serif; }
.site-header { min-height: 104px; padding-block: 10px; backdrop-filter: blur(18px); background: rgba(255,255,255,.93); box-shadow: 0 12px 45px rgba(31,73,83,.07); }
.brand img { width: 152px; height: 82px; }
.brand span { font-size: .92rem; max-width: 175px; line-height: 1.3; }
.site-header nav { gap: clamp(14px,1.7vw,29px); font-weight: 700; }
.site-header nav > a:not(.button) { position: relative; padding: 12px 0; }
.site-header nav > a:not(.button)::after { content:''; position:absolute; left:0; right:100%; bottom:5px; height:3px; border-radius:99px; background:var(--gold); transition:right .25s ease; }
.site-header nav > a:not(.button):hover::after { right:0; }
.site-header .button { border-radius: 999px; box-shadow: 0 10px 24px rgba(243,106,33,.25); }
.language { top: 6px; font-weight: 700; }
.hero { min-height: calc(100svh - 104px); position: relative; place-items: center start; text-align: left; padding: 90px clamp(24px,8vw,145px); background: linear-gradient(90deg,rgba(7,45,56,.91) 0%,rgba(7,45,56,.7) 45%,rgba(8,27,51,.22) 100%),url('assets/hero.webp') center/cover; }
.hero::before { content:''; position:absolute; width:180px; height:180px; right:7%; top:13%; border:28px solid rgba(243,106,33,.78); border-radius:38% 62% 58% 42%; transform:rotate(18deg); animation:float 7s ease-in-out infinite; }
.hero::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:58px; background:#fff; clip-path:polygon(0 62%,12% 35%,26% 75%,41% 30%,58% 68%,74% 24%,88% 63%,100% 32%,100% 100%,0 100%); }
.hero-content { width:min(760px,68vw); margin:0; position:relative; z-index:1; }
.hero .eyebrow { display:inline-block; padding:8px 14px; border:1px solid rgba(255,255,255,.4); border-radius:999px; background:rgba(255,255,255,.1); font-size:.78rem; }
.hero h1 { font-size:clamp(3rem,6.3vw,6.4rem); letter-spacing:-.055em; line-height:.94; }
.hero p:not(.eyebrow) { max-width:690px; margin-left:0; font-size:clamp(1rem,1.3vw,1.2rem); }
.hero .button { padding:18px 32px; border-radius:999px; box-shadow:0 16px 35px rgba(243,106,33,.32); transition:transform .25s ease,box-shadow .25s ease; }
.hero .button:hover { transform:translateY(-4px); box-shadow:0 22px 45px rgba(243,106,33,.42); }
.section { position:relative; padding:clamp(85px,9vw,140px) clamp(22px,7vw,120px); }
.section-heading { margin-bottom:75px; }
.section-heading span { display:inline-flex; align-items:center; gap:10px; padding:8px 15px; border-radius:999px; background:rgba(243,106,33,.1); }
.section-heading h2,.mission h2 { letter-spacing:-.035em; }
.about::before { content:''; position:absolute; width:250px; height:250px; left:-105px; top:20%; background:rgba(231,173,24,.16); border-radius:52% 48% 30% 70%; transform:rotate(22deg); }
.about-grid { grid-template-columns:.85fr 1.4fr; position:relative; }
.about-grid > img { padding:38px; background:linear-gradient(145deg,#fff,rgba(17,132,135,.08)); border-radius:44px 44px 130px 44px; box-shadow:var(--shadow); transform:rotate(-2deg); }
.prose { padding:clamp(28px,4vw,58px); background:#fff; border:1px solid rgba(17,132,135,.12); border-radius:var(--radius-xl); box-shadow:var(--shadow); }
.why { position:relative; padding:clamp(40px,6vw,80px); background:linear-gradient(135deg,rgba(17,132,135,.08),rgba(53,71,140,.05)); border-radius:54px 16px 54px 16px; }
.why h3 { font-size:clamp(2.5rem,5vw,4.8rem); text-align:left; margin-top:0; }
.why-grid { grid-template-columns:1.1fr .9fr; }
.why li { list-style:none; padding:22px 24px 22px 64px; position:relative; background:#fff; border-radius:18px; box-shadow:0 10px 28px rgba(20,66,75,.08); transition:transform .25s ease; }
.why li:hover { transform:translateX(7px); }
.why li::before { content:'✦'; position:absolute; left:22px; top:20px; color:var(--orange); font-size:1.25rem; }
.mission { position:relative; overflow:hidden; padding:clamp(105px,12vw,170px) 24px; background:linear-gradient(135deg,var(--teal-dark),var(--teal)); }
.mission::before,.mission::after { content:''; position:absolute; border:26px solid rgba(255,255,255,.12); width:190px; height:190px; transform:rotate(35deg); border-radius:35px; }
.mission::before { left:-75px; top:-75px; }.mission::after { right:-60px; bottom:-80px; }
.mission div { position:relative; z-index:1; }.mission p { font-size:clamp(1.05rem,1.5vw,1.28rem); }
.services { background:linear-gradient(180deg,#f7faf9,#fff); }
.service-grid { gap:34px; align-items:start; }
.service-grid article { overflow:hidden; border-radius:var(--radius-lg); border:1px solid rgba(17,132,135,.1); box-shadow:0 14px 44px rgba(20,66,75,.09); transition:transform .35s ease,box-shadow .35s ease; }
.service-grid article:nth-child(3n+2) { transform:translateY(34px); }
.service-grid article:hover { transform:translateY(-10px); box-shadow:0 28px 65px rgba(20,66,75,.17); }
.service-grid article:nth-child(3n+2):hover { transform:translateY(24px); }
.service-grid img { transition:transform .55s ease; }.service-grid article:hover img { transform:scale(1.045); }
.service-grid h3 { font-size:1.5rem; min-height:2.5em; }.service-grid h3::after { content:''; display:block; width:42px; height:4px; margin:15px auto 0; border-radius:9px; background:var(--gold); }
.orientation { position:relative; overflow:hidden; background:linear-gradient(145deg,var(--teal-dark),var(--teal)); }
.orientation::after { content:''; position:absolute; right:-90px; top:150px; width:280px; height:280px; background:var(--orange); opacity:.18; border-radius:38% 62% 60% 40%; transform:rotate(25deg); }
.orientation-form,.contact-form { position:relative; z-index:1; border-radius:var(--radius-xl); box-shadow:var(--shadow); }
input,textarea { border:2px solid #e2e9e9; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
input:hover,textarea:hover { border-color:rgba(17,132,135,.45); }input:focus,textarea:focus { transform:translateY(-2px); }
.contact { background:radial-gradient(circle at 80% 25%,rgba(231,173,24,.12),transparent 25%),#fff; }
.contact-grid { grid-template-columns:1.2fr .8fr; align-items:center; }
.contact-details { padding:60px 35px; border-radius:30px 80px 30px 80px; color:#fff; background:var(--navy); box-shadow:var(--shadow); transform:rotate(1.5deg); }
.contact-details h3,.contact-details a:not(.button) { color:#fff; }.contact-details .button { box-shadow:0 15px 30px rgba(0,0,0,.16); }
footer { position:relative; overflow:hidden; padding-top:90px; background:linear-gradient(145deg,var(--teal-dark),var(--teal)); }
footer::before { content:''; position:absolute; inset:0; opacity:.12; background-image:radial-gradient(circle,#fff 2px,transparent 2px); background-size:30px 30px; mask-image:linear-gradient(to right,#000,transparent 65%); }
footer>* { position:relative; z-index:1; }
.back-top { transition:transform .25s ease,background .25s ease; }.back-top:hover { transform:translateY(-5px); background:var(--orange); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.25,1); }.reveal.is-visible { opacity:1; transform:none; }
@keyframes float { 0%,100%{transform:rotate(18deg) translateY(0)}50%{transform:rotate(12deg) translateY(16px)} }
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media(max-width:1080px){.hero-content{width:min(820px,85vw)}.hero::before{opacity:.45}.service-grid article:nth-child(3n+2){transform:none}.service-grid article:nth-child(3n+2):hover{transform:translateY(-10px)}}
@media(max-width:780px){.site-header{min-height:86px}.hero{min-height:720px;padding:95px 24px;background:linear-gradient(180deg,rgba(7,45,56,.82),rgba(7,45,56,.62)),url('assets/hero.webp') 62% center/cover}.hero-content{width:100%}.hero h1{font-size:clamp(2.8rem,14vw,4.4rem)}.hero::before{width:95px;height:95px;border-width:16px;top:9%;right:-20px}.about-grid,.why-grid{grid-template-columns:1fr}.about-grid>img{max-width:430px}.why{padding:34px 18px}.why-grid{gap:0}.service-grid{grid-template-columns:1fr}.contact-details{transform:none}.section{padding-inline:20px}.service-grid article:hover{transform:none}}
