/* HUDSON MARINE SOLUTIONS LLC • Responsive static website prototype */
:root{--navy:#071d30;--navy-2:#0b2a40;--ocean:#0b4050;--sea:#708238;--mint:#c9d992;--ice:#f6f8f0;--line:#dce7e9;--muted:#587080;--ink:#10283b;--white:#fff;--max:1230px;--header:112px;--shadow:0 24px 65px rgba(7,29,48,.09)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}body{margin:0;background:#fff;color:var(--ink);font-family:'Segoe UI',Inter,Arial,sans-serif;font-size:16px;line-height:1.69;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}p{margin:0 0 18px}h1,h2,h3,h4{letter-spacing:-.035em;line-height:1.17;margin:0 0 21px;font-weight:750}h1{font-size:clamp(3.1rem,5.65vw,6.1rem)}h2{font-size:clamp(2.15rem,3.65vw,3.7rem)}h3{font-size:1.33rem}strong{font-weight:750}ul{padding-left:21px}.container,.wrap{width:min(var(--max),calc(100% - 60px));margin-inline:auto}.section-pad{padding:105px 0}.tone-light,.light{background:var(--ice)}.eyebrow{display:block;margin-bottom:21px;color:#57672c;text-transform:uppercase;letter-spacing:.17em;font-size:.74rem;font-weight:850}.lead{font-size:1.12rem;line-height:1.77;color:var(--muted);max-width:770px}.ink-soft{color:#507688}.skip-link{position:fixed;z-index:1000;left:20px;top:-100px;background:#fff;color:var(--navy);padding:12px 22px}.skip-link:focus{top:8px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--sea);outline-offset:4px}
.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:23px;line-height:1.2;padding:17px 23px;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850;transition:background .2s,color .2s,transform .2s,border-color .2s;border-radius:3px}.button span{font-size:1.18rem;font-weight:500}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:var(--sea)}.button-primary:hover{background:#5b6c2e}.button-outline{color:white;border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.02)}.button-outline:hover{background:rgba(255,255,255,.15);border-color:white}.button-light{background:white;color:var(--navy)}.button-light:hover{background:var(--ice)}.button-text{color:var(--mint);border-color:#ffffff47;background:transparent}.button-text:hover{background:#ffffff14}
/* Navigation */
.site-header{position:sticky;z-index:100;top:0;background:var(--navy);color:#fff;box-shadow:0 5px 23px rgba(3,15,27,.1)}.utility-bar{height:31px;background:#031322;border-bottom:1px solid #ffffff12;color:#a6c2c9;font-size:.67rem;font-weight:750;letter-spacing:.095em}.utility-inner{display:flex;height:100%;align-items:center;justify-content:space-between;gap:20px}.utility-bar a:hover{color:white}.nav-shell{background:var(--navy)}.nav-main{height:81px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:11px;flex-shrink:0;line-height:1.05}.logo-symbol{display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-name{font-size:1rem;font-weight:850;letter-spacing:.035em;white-space:nowrap}.brand-name small{display:block;color:#b0d0d8;font-size:.68rem;letter-spacing:.22em;margin-top:6px}.primary-links{display:flex;align-items:center;gap:16px;margin-left:auto}.nav-link{position:relative;padding:12px 0;font-size:.77rem;font-weight:750;white-space:nowrap;color:#d7e5ea;transition:color .2s}.nav-link:hover,.nav-link.is-active{color:var(--mint)}.nav-link::after{position:absolute;content:"";bottom:6px;left:0;width:0;height:2px;background:var(--sea);transition:width .25s}.nav-link:hover::after,.nav-link.is-active::after{width:100%}.mobile-toggle{display:none;flex-direction:column;gap:6px;background:transparent;border:1px solid #ffffff40;padding:12px}.mobile-toggle span{width:24px;height:2px;background:#fff;display:block;transition:.2s}
/* Hero */
.home-hero{min-height:730px;min-height:calc(90svh - var(--header));position:relative;isolation:isolate;display:flex;align-items:center;background:#051b2c;color:#fff;overflow:hidden}.home-hero-photo{position:absolute;z-index:-2;inset:0;background-position:center 48%;background-size:cover;animation:slowzoom 23s ease-in-out infinite alternate}.home-hero::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#051929f7 0%,#051d31ec 33%,#061e31bb 56%,#061e3150 83%,#061e3120),linear-gradient(0deg,#051929c2,transparent 45%)}@keyframes slowzoom{from{transform:scale(1.02)}to{transform:scale(1.09)}}.hero-container{padding:110px 0 155px;position:relative}.hero-copy{max-width:870px}.home-hero .eyebrow{color:var(--mint)}.home-hero h1{max-width:940px;letter-spacing:-.056em;line-height:1.04;margin-bottom:24px}.home-hero h1 em{font-style:normal;color:var(--mint)}.hero-copy p{font-size:1.19rem;color:#d3e3e9;max-width:650px;margin-bottom:34px;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:13px}.hero-accent{position:absolute;bottom:45px;left:0;display:flex;flex-wrap:wrap;gap:30px;color:#c9dce3;letter-spacing:.12em;font-size:.67rem;font-weight:850}.hero-accent span{border-top:2px solid #a6ba68;padding-top:10px;min-width:130px}.scroll-prompt{position:absolute;right:3%;bottom:51px;letter-spacing:.18em;font-size:.63rem;font-weight:750;display:flex;align-items:center;gap:18px;transform:rotate(-90deg);transform-origin:right}.scroll-prompt span{font-size:1.1rem}.intro-band{background:#072c3c;color:white}.intro-band-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px 0}.intro-band strong{font-size:.94rem;letter-spacing:.04em}.intro-band span{font-size:.9rem;color:#b9d7de}
/* About main */
.about-grid{display:grid;grid-template-columns:1fr 1.03fr;gap:80px;align-items:center}.about-visual{position:relative;margin-right:25px}.about-visual>img{height:570px;width:100%;object-fit:cover;border-radius:2px}.floating-note{position:absolute;right:-25px;bottom:28px;background:var(--navy);color:#fff;padding:22px 27px;font-size:.85rem;font-weight:850;letter-spacing:.05em;box-shadow:var(--shadow)}.floating-note span{display:block;color:var(--mint);font-size:.76rem;letter-spacing:.18em;margin-top:5px}.about-copy h2{font-size:clamp(2.1rem,3.5vw,3.55rem)}.about-copy>p{color:#576b78}.about-copy .lead{font-size:1.07rem;color:#3a5461}.three-values{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:31px 0}.three-values>div{padding:16px 10px 17px 0;border-top:2px solid var(--sea);display:flex;gap:8px;flex-direction:column}.three-values b{color:var(--sea);font-size:.76rem}.three-values strong{font-size:.85rem;line-height:1.35}.section-divider{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-top:20px;color:#6b8592;font-size:.7rem;letter-spacing:.15em;font-weight:850}
/* Main service blocks */
.home-service{scroll-margin-top:var(--header)}.service-grid{display:grid;grid-template-columns:.96fr 1fr;gap:86px;align-items:center}.service-reverse>.service-visual{order:2}.service-reverse>.service-copy{order:1}.visual-frame{position:relative;overflow:hidden;background:#0d3245;box-shadow:0 25px 60px rgba(6,29,50,.11)}.visual-frame::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,#061d338c,transparent 35%);pointer-events:none}.visual-frame>img{height:630px;width:100%;object-fit:cover;object-position:center}.service-visual::after{content:"";display:block;height:6px;width:26%;background:var(--sea);margin-top:0}.visual-caption{position:absolute;z-index:2;bottom:20px;left:24px;color:#fff;font-size:.7rem;letter-spacing:.18em;font-weight:850}.service-copy h2{margin-bottom:12px}.service-subheading{font-size:clamp(1.07rem,1.35vw,1.33rem);line-height:1.42;font-weight:700;letter-spacing:-.015em;color:#586a31;margin-bottom:17px}.service-intro{color:#5b707d;margin-bottom:26px}.feature-list{margin:20px 0 34px;border-top:1px solid var(--line)}.feature-item{display:grid;grid-template-columns:23px 1fr;align-items:start;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.feature-item p{margin:0;line-height:1.42}.feature-item strong{font-size:.97rem;display:block}.feature-item span:not(.tick){display:block;font-size:.87rem;color:var(--muted);margin-top:4px;line-height:1.55}.tick{color:var(--sea);font-size:1rem;font-weight:850;margin-top:1px}
/* partnership & contact home */
.partnership-wrap{display:grid;grid-template-columns:.85fr 1fr;gap:95px;align-items:center}.partnership-wrap .lead{margin:23px 0 30px}.partner-matrix{display:grid;grid-template-columns:1fr 1fr;gap:14px}.partner-matrix>div{padding:25px 26px;background:white;border:1px solid var(--line);min-height:178px}.partner-matrix>div span{display:block;color:var(--sea);font-weight:850;font-size:.72rem;margin-bottom:18px}.partner-matrix>div strong{display:block;margin-bottom:7px;line-height:1.35}.partner-matrix>div p{font-size:.85rem;color:var(--muted);margin:0}.contact-band{background:linear-gradient(112deg,#062437,#3a4d35 116%);color:#fff;padding:83px 0}.contact-band-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:50px}.contact-band h2{max-width:760px}.contact-band .eyebrow{color:var(--mint)}.contact-band p{color:#cce4e8;max-width:670px;font-size:1.05rem}.contact-services{display:flex;gap:7px;flex-wrap:wrap;margin-top:24px}.contact-services span{display:inline-flex;padding:7px 12px;border:1px solid #ffffff42;color:#e3edc6;font-size:.73rem;letter-spacing:.02em}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.contact-email{color:#e4eccf;font-size:.9rem;overflow-wrap:anywhere}.contact-email:hover{color:#fff}
/* footer */
.site-footer{background:#031623;color:#c7dce4}.footer-columns{padding:72px 0;display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:75px}.footer-brand{margin-bottom:20px;width:max-content;color:#fff}.footer-info p{font-size:.93rem;max-width:410px;color:#acc6ce;margin-top:20px}.mail{display:block;margin-top:25px;color:var(--mint);font-weight:700;overflow-wrap:anywhere}.site-footer h3{font-size:.91rem;letter-spacing:.09em;color:#fff;margin:0 0 21px;text-transform:uppercase}.footer-links{display:flex;flex-direction:column;gap:12px}.footer-links a{display:flex;gap:22px;align-items:center;justify-content:space-between;font-size:.89rem;color:#b8d2db}.footer-links a:hover{color:var(--mint)}.footer-links a span{color:#b4c97b}.footer-bottom{border-top:1px solid #ffffff1c;padding:21px 0 26px;display:flex;justify-content:space-between;gap:18px;color:#a5bec5;font-size:.76rem}.back-top{position:fixed;right:22px;bottom:20px;background:var(--sea);color:white;width:42px;height:42px;display:grid;place-items:center;z-index:50;border-radius:2px;font-size:22px;opacity:0;pointer-events:none;transition:opacity .2s}.back-top.is-visible{opacity:1;pointer-events:auto}
/* shared interior pages */
.breadcrumbs{background:#f6f8f1;font-size:.79rem;color:#587482;border-bottom:1px solid var(--line)}.breadcrumbs .container{padding:12px 0}.breadcrumbs a:hover{color:var(--sea)}.breadcrumbs span{padding:0 9px}.sub-hero{background:radial-gradient(ellipse at 80% 12%,#70823860,transparent 45%),linear-gradient(125deg,#062135,#0a3549);color:#fff;padding:88px 0}.sub-hero-grid{display:grid;grid-template-columns:1.05fr .88fr;gap:78px;align-items:center}.sub-hero h1{font-size:clamp(2.9rem,4.65vw,5.4rem);line-height:1.075}.sub-hero h1 em{font-style:normal;color:var(--mint)}.sub-hero p{max-width:690px;font-size:1.12rem;color:#c8e0e8}.sub-hero .eyebrow{color:var(--mint)}.sub-hero-image{position:relative}.sub-hero-image::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:2px solid #b6c97890;z-index:0;pointer-events:none}.sub-hero-image img{height:440px;width:100%;object-fit:cover;position:relative;z-index:1;box-shadow:var(--shadow)}.sub-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.tag-row{display:flex;flex-wrap:wrap;gap:9px;margin:23px 0}.tag-row span{border:1px solid #a5ba6877;background:#7082381c;padding:7px 11px;font-size:.74rem;color:#ebf3d2;border-radius:2px;letter-spacing:.02em}.readable-two{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:start}.readable-two h2{font-size:clamp(2rem,3.3vw,3.4rem)}.readable-two p{color:#5a7280}.value-panel{border:1px solid var(--line);padding:20px 34px;background:var(--ice)}.value-panel>div{padding:24px 0;border-bottom:1px solid var(--line)}.value-panel>div:last-child{border:0}.value-panel span,.tile-card>span{display:block;font-size:.7rem;letter-spacing:.13em;color:#57672c;font-weight:850;margin-bottom:12px}.value-panel h3{font-size:1.27rem;margin-bottom:7px}.value-panel p{font-size:.92rem;color:#657b86;margin:0}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin-top:34px}.cards-three{grid-template-columns:repeat(3,1fr)}.cards-four{grid-template-columns:repeat(4,1fr)}.tile-card{display:block;background:white;border:1px solid var(--line);border-top:3px solid var(--sea);padding:27px;min-height:195px;transition:transform .2s,box-shadow .2s}.tile-card:hover{box-shadow:0 18px 35px rgba(4,36,46,.09);transform:translateY(-3px)}.tile-card h3{margin-bottom:13px}.tile-card p{font-size:.91rem;color:#607582;margin-bottom:15px}.tile-card b{font-size:.77rem;color:#57672c}.about-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.about-gallery>div{position:relative}.about-gallery img{height:275px;object-fit:cover;width:100%}.about-gallery span{display:block;padding:15px 10px 0;color:#60798a;font-weight:850;font-size:.7rem;letter-spacing:.08em}.scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:29px}.scope-item{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;background:white;border:1px solid var(--line);font-size:.96rem;font-weight:650}.scope-item>span{color:var(--sea);font-weight:900}.callout-image img{width:100%;height:370px;object-fit:cover}.end-cta{background:linear-gradient(100deg,#072337,#3a4d35);color:#fff;padding:77px 0}.end-cta>.container{display:flex;gap:50px;align-items:center;justify-content:space-between}.end-cta h2{font-size:clamp(2rem,3.3vw,3.4rem);max-width:680px}.end-cta .eyebrow{color:var(--mint)}.end-cta p{max-width:760px;color:#c7e2e9;margin:0}.end-cta .button{flex-shrink:0}
/* Imported source detail pages. All source body sections retained. */
.source-detail-hero{background:linear-gradient(125deg,#062135,#104658);color:#fff;padding:73px 0 68px}.source-hero-inner{display:grid;grid-template-columns:1.1fr .82fr;gap:12px 65px;align-items:start}.source-hero-inner>.eyebrow,.source-hero-inner>h1,.source-hero-inner>p,.source-hero-inner>.tags,.source-hero-inner>.btn,.source-hero-inner>.hero-foot{grid-column:1}.source-hero-inner>.eyebrow{color:var(--mint);margin-bottom:3px}.source-hero-inner h1{font-size:clamp(2.9rem,4.65vw,5.3rem);margin:0;line-height:1.08}.source-hero-inner h1 span{color:var(--mint)}.source-hero-inner>p{font-size:1.06rem;color:#cbe3e8;margin:0 0 3px}.source-hero-inner>.tags{display:flex;flex-wrap:wrap;gap:8px;margin:9px 0}.source-hero-inner>.tags span{color:#e8f1cf;font-size:.7rem;letter-spacing:.02em;border:1px solid #bdcf8060;padding:7px 10px}.source-hero-inner>.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--sea);color:#fff;font-weight:800;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:15px 20px;width:max-content;margin-top:5px;grid-row:auto}.source-hero-inner>.btn:hover{background:#5b6c2e}.source-hero-inner>.hero-foot{display:flex;flex-wrap:wrap;gap:10px 21px;font-size:.74rem;color:#a9cad4;border-top:1px solid #ffffff30;padding-top:18px;margin-top:16px}.source-hero-photo{grid-column:2;grid-row:1/9;margin:26px 0 0;align-self:center;position:relative}.source-hero-photo::before{content:"";position:absolute;inset:-16px -16px 16px 16px;border:2px solid #bacd7e6d;z-index:0}.source-hero-photo img{position:relative;z-index:1;width:100%;height:470px;object-fit:cover;box-shadow:0 24px 53px #0003}.source-detail section{padding:89px 0;scroll-margin-top:var(--header)}.source-detail section>.wrap{width:min(1180px,calc(100% - 60px))}.source-detail section h2{font-size:clamp(2rem,3.45vw,3.55rem);margin:0 0 18px}.source-detail section .lead{font-size:1.08rem;color:var(--muted);max-width:850px}.source-detail section h3{font-size:1.26rem;margin-bottom:12px}.source-detail .split{display:grid;grid-template-columns:1fr 1fr;gap:65px}.source-detail .list{padding:0;list-style:none;margin:0}.source-detail .list li{border-bottom:1px solid var(--line);padding:14px 0}.source-detail .list b,.source-detail .list span{display:block}.source-detail .list span{color:var(--muted);font-size:.94rem}.source-detail .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin:33px 0}.source-detail .card{position:relative;padding:28px;background:white;border:1px solid var(--line);border-top:3px solid var(--sea);border-radius:3px}.source-detail .card p,.source-detail .card li{font-size:.92rem;color:var(--muted)}.source-detail .card ul{padding-left:19px;margin-bottom:0}.source-detail .card .number{font-weight:850;font-size:.72rem;letter-spacing:.09em;color:#57672c;display:block;margin-bottom:13px}.source-detail .dark{background:var(--navy);color:#fff}.source-detail .dark h2,.source-detail .dark h3{color:#fff}.source-detail .dark p,.source-detail .dark .lead{color:#bdd5dc}.source-detail .dark .step p{color:#bdd5dc}.source-detail .dark .eyebrow{color:var(--mint)}.source-detail .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:23px;margin:35px 0}.source-detail .step{border-top:2px solid var(--sea);padding-top:22px}.source-detail .step p{font-size:.94rem;color:var(--muted)}.source-detail .outcomes{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:29px 0}.source-detail .outcome{padding:23px;border:1px solid var(--line)}.source-detail .outcome p{color:var(--muted);font-size:.93rem;margin:5px 0 0}.source-detail .note{border-left:4px solid var(--sea);background:#f2f6e7;color:#52623b;padding:21px 24px;margin-top:28px;font-size:.95rem}.source-detail .cta{border-radius:4px;background:linear-gradient(100deg,#708238,#3a4d35);padding:38px 43px;color:#fff}.source-detail .cta h2{font-size:clamp(2rem,3vw,2.9rem)}.source-detail .cta p{color:#edf5d9}.source-detail .cta .btn{background:white;color:var(--navy);display:inline-block;padding:14px 22px;font-weight:850;font-size:.81rem}.source-detail .hero-foot{line-height:1.6}.source-detail .eyebrow{color:#57672c}.source-detail ul li{line-height:1.64}
/* Contact form */
.contact-grid{display:grid;grid-template-columns:.75fr 1.15fr;gap:75px;align-items:start}.contact-aside h2{font-size:clamp(2.1rem,3.5vw,3.4rem)}.contact-info-card{background:var(--navy);color:#fff;padding:34px;margin:31px 0}.contact-info-card span{display:block;margin-bottom:7px;color:var(--mint);font-size:.7rem;font-weight:850;letter-spacing:.13em}.contact-info-card a{display:block;margin-bottom:27px;overflow-wrap:anywhere;font-size:.94rem;font-weight:700}.contact-info-card a:last-child{margin-bottom:0}.contact-service-list{display:flex;flex-direction:column;gap:9px}.contact-service-list>span{border-bottom:1px solid var(--line);padding:7px 0;font-weight:680;color:#375c6d}.contact-aside h3{margin-top:32px}.privacy-note{padding:15px;border-left:3px solid var(--sea);background:var(--ice);font-size:.82rem;color:#56707e;margin-top:26px}.form-box{padding:40px;background:#f7fafb;border:1px solid var(--line);box-shadow:var(--shadow)}.form-box h3{font-size:1.8rem}.form-box>p{color:#617680;font-size:.89rem}.form-box form{display:flex;flex-direction:column;gap:15px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:15px}form label{display:flex;flex-direction:column;gap:7px;color:#2b4b5b;font-size:.85rem;font-weight:750}form input,form select,form textarea{border:1px solid #cbdcdf;border-radius:2px;width:100%;background:white;color:var(--ink);padding:13px 14px;outline:0;font-size:.95rem}form textarea{resize:vertical;min-height:160px}form input:focus,form select:focus,form textarea:focus{border-color:var(--sea);box-shadow:0 0 0 3px #70823820}.form-submit{align-self:start;margin-top:5px}.form-status{color:#54727d;font-size:.85rem;margin:0}
/* Layout adjustments */
@media(max-width:1400px){.primary-links{gap:12px}.nav-link{font-size:.73rem}.brand-name{font-size:.93rem}.nav-main{gap:15px}}
@media(max-width:1220px){:root{--header:102px}.utility-bar{height:27px}.nav-main{height:75px}.mobile-toggle{display:flex;margin-left:auto}.primary-links{position:absolute;display:none;top:100%;left:0;right:0;background:var(--navy);padding:17px max(24px,calc((100vw - var(--max))/2));max-height:calc(100svh - var(--header));overflow:auto;box-shadow:0 15px 22px #0003;flex-direction:column;gap:0;align-items:stretch}.primary-links.is-open{display:flex}.nav-link{font-size:.91rem;padding:12px 0;border-bottom:1px solid #ffffff16}.nav-link::after{display:none}.service-grid{gap:56px}.partnership-wrap{gap:50px}.footer-columns{gap:40px}}
@media(max-width:950px){.section-pad{padding:75px 0}.about-grid,.service-grid,.partnership-wrap,.readable-two,.contact-grid,.sub-hero-grid,.source-hero-inner,.source-detail .split{grid-template-columns:1fr;gap:40px}.service-reverse>.service-visual,.service-reverse>.service-copy{order:unset}.service-copy{max-width:780px}.visual-frame>img{height:500px}.about-visual{margin-right:0}.about-visual>img{height:470px}.floating-note{right:0}.sub-hero-image img{height:340px}.source-hero-inner>.eyebrow,.source-hero-inner>h1,.source-hero-inner>p,.source-hero-inner>.tags,.source-hero-inner>.btn,.source-hero-inner>.hero-foot,.source-hero-photo{grid-column:1;grid-row:auto}.source-hero-photo{margin:25px 0 0}.source-hero-photo img{height:340px}.source-detail .grid,.cards-four{grid-template-columns:repeat(2,1fr)}.source-detail .steps{grid-template-columns:repeat(2,1fr)}.contact-band-inner{grid-template-columns:1fr}.contact-actions{flex-direction:row;flex-wrap:wrap;align-items:center}}
@media(max-width:700px){:root{--header:78px}.container,.wrap,.source-detail section>.wrap{width:calc(100% - 38px)}.utility-bar{display:none}.nav-main{height:78px}.logo-symbol svg{width:37px;height:37px}.brand-name{font-size:.89rem}.brand-name small{font-size:.56rem}.section-pad{padding:65px 0}.home-hero{min-height:680px}.hero-container{padding:85px 0 145px}.home-hero h1{font-size:clamp(2.65rem,10vw,4.6rem)}.hero-copy p{font-size:1.02rem}.hero-accent{bottom:35px;gap:10px}.hero-accent span{min-width:0;font-size:.57rem}.scroll-prompt{display:none}.intro-band-inner{align-items:flex-start;flex-direction:column;gap:3px}.three-values{grid-template-columns:1fr 1fr}.service-grid{gap:33px}.visual-frame>img{height:375px}.partner-matrix{gap:10px}.partner-matrix>div{padding:19px;min-height:160px}.partner-matrix>div p{font-size:.82rem}.cards-grid,.cards-four,.cards-three,.scope-grid,.about-gallery,.source-detail .grid,.source-detail .outcomes{grid-template-columns:1fr}.source-detail section{padding:64px 0}.source-detail .card{padding:22px}.source-detail .cta{padding:25px}.footer-columns{grid-template-columns:1fr 1fr;gap:35px}.footer-info{grid-column:1/-1}.footer-bottom{flex-direction:column}.end-cta>.container{flex-direction:column;align-items:start;gap:24px}.form-box{padding:26px}.contact-grid{gap:40px}.sub-hero{padding:64px 0}.source-detail-hero{padding:61px 0}.contact-band{padding:65px 0}.contact-band-inner{gap:25px}.contact-actions{align-items:start;flex-direction:column}.service-intro{margin-bottom:14px}}
@media(max-width:430px){.home-hero h1{font-size:2.7rem}.button{font-size:.73rem;padding:15px 16px;gap:10px}.hero-actions{flex-direction:column;align-items:start}.hero-accent span{font-size:.51rem}.partner-matrix{grid-template-columns:1fr}.three-values{grid-template-columns:1fr 1fr}.service-subheading{font-size:1.09rem}.visual-frame>img{height:300px}.form-two{grid-template-columns:1fr}.source-detail .steps{grid-template-columns:1fr}.footer-columns{grid-template-columns:1fr}.footer-info{grid-column:auto}.contact-services span{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* ===== CLIENT REVISION: official brand, more legible single-line desktop nav ===== */
:root{--header:116px;--max:1230px}
.nav-main.container{max-width:1550px;width:calc(100% - 52px)}
.nav-main{height:85px;gap:14px}
.site-header .brand{gap:9px}
.logo-symbol{width:53px;height:53px;overflow:hidden;padding:3px;border-radius:5px;background:#fff;box-shadow:0 2px 7px #0002}
.official-brand-mark{display:block;width:100%;height:100%;object-fit:contain}
.brand-name{font-size:.92rem;letter-spacing:.012em}
.brand-name small{font-size:.62rem;letter-spacing:.15em;margin-top:5px}
.primary-links{gap:clamp(8px,.8vw,15px)}
.primary-links .nav-link{font-family:"Arial Narrow","Liberation Sans Narrow",Arial,sans-serif;font-size:clamp(.85rem,.9vw,.91rem);font-weight:800;letter-spacing:.01em;text-transform:uppercase;white-space:nowrap}
.utility-bar{height:31px}
.utility-inner a{font-size:.74rem;letter-spacing:.06em}
.footer-brand .logo-symbol{width:58px;height:58px}
.footer-contact-details{margin:0 0 15px;font-size:.88rem;line-height:1.6;color:#bed6df}
.footer-contact-details a{display:block;color:#cceae9;font-weight:800}
.footer-contact-details address{font-style:normal;max-width:340px}
.contact-info-card address{font-style:normal;line-height:1.62;margin:0 0 26px;color:#fff}
.contact-info-card .contact-person{display:block;margin:0 0 24px;font-size:1.08rem}
.contact-person small{display:block;font-size:.82rem;color:#c1d9df;font-weight:500}
.contact-quick-details{display:grid;gap:6px;font-size:.86rem;color:#cde9e9;max-width:360px}
.contact-quick-details a{color:#fff;font-weight:800}
.contact-quick-details span{line-height:1.55}
/* Full-service carousel: Explore always takes the visitor to its matching home section. */
.home-hero.hero-slider{height:clamp(650px,calc(90svh - var(--header)),850px);min-height:650px;position:relative;display:block;background:#031b2d;isolation:isolate}
.hero-slider::before{display:none}
.hero-slides{position:absolute;inset:0;z-index:1}
.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;display:flex;align-items:center;overflow:hidden;transition:opacity .95s ease, visibility 0s linear .95s}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:2;transition:opacity .95s ease, visibility 0s}
.hero-slide-photo{position:absolute;inset:0;z-index:-2;background-repeat:no-repeat;background-position:center 47%;background-size:cover;transform:scale(1.02);transition:transform 9s ease}
.hero-slide.is-active .hero-slide-photo{transform:scale(1.075)}
.hero-slide::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,21,35,.98) 0%,rgba(3,25,41,.94) 31%,rgba(3,25,41,.77) 53%,rgba(3,25,41,.23) 100%),linear-gradient(0deg,rgba(3,21,35,.58),transparent 39%)}
.hero-photo-ship-design{background-position:50% 44%}
.hero-photo-green-transition{background-position:54% 44%}
.hero-photo-consultancy{background-position:51% 40%}
.hero-photo-shipyard-solutions{background-position:50% 48%}
.hero-photo-construction-supervision{background-position:50% 47%}
.hero-slider .hero-container{width:min(1360px,calc(100% - 120px));padding:65px 0 140px;z-index:1}
.hero-slider .hero-copy{max-width:750px}
.hero-slider .eyebrow{color:#dce8b0;font-size:.79rem;letter-spacing:.19em;margin-bottom:28px}
.hero-slider .hero-service-title{color:#fff;font-size:clamp(3.3rem,5.25vw,6.4rem);letter-spacing:-.045em;line-height:1.045;font-weight:800;margin:0 0 21px;max-width:750px}
.hero-slider .hero-tagline{font-size:clamp(1.28rem,2vw,1.8rem);font-weight:750;line-height:1.34;color:#dce8b0;max-width:720px;margin-bottom:15px}
.hero-slider .hero-description{font-size:clamp(.99rem,1.1vw,1.17rem);color:#e0eff2;line-height:1.65;max-width:650px;margin-bottom:30px}
.hero-slider .hero-explore{font-size:.87rem;letter-spacing:.06em;padding:17px 26px;min-width:220px}
.hero-controls.container{position:absolute;z-index:5;bottom:44px;left:50%;transform:translateX(-50%);width:min(1360px,calc(100% - 120px));display:flex;gap:24px;align-items:center;color:#fff}
.hero-count{display:flex;align-items:center;gap:10px;font-size:.88rem;font-weight:750;letter-spacing:.04em;color:#b0ccd1}
.hero-count b{color:#fff;font-size:1.08rem}
.hero-count-line{width:44px;height:1px;background:#88a8b5}
.hero-dots{display:flex;align-items:center;gap:9px;margin-left:18px}
.hero-dot{height:30px;min-width:28px;border:0;background:none;padding:0 2px;display:grid;place-items:center}
.hero-dot::before{content:"";width:24px;height:4px;background:#ffffff79;display:block;transition:background .2s,width .2s}
.hero-dot.is-active::before,.hero-dot:hover::before{width:38px;background:#aabe70}
.hero-dot.is-active{min-width:42px}
.hero-arrows{display:flex;gap:9px;margin-left:auto}
.hero-arrow,.hero-pause{width:44px;height:44px;border:1px solid #ffffff5c;background:#09273978;color:white;display:grid;place-items:center;font-size:1.3rem;line-height:1;transition:background .2s,border-color .2s}
.hero-arrow:hover,.hero-pause:hover{background:#708238;border-color:#c2d78a}
.hero-pause{font-weight:800;font-size:1rem;margin-left:-14px}
.hero-slider .scroll-prompt{z-index:5;right:25px;bottom:65px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.primary-links .nav-link{font-size:.9rem}.nav-main.container{width:calc(100% - 70px)}}
/* preserve desktop single-line navigation by switching to the mobile menu before links wrap */
@media(max-width:1340px){
  :root{--header:108px}
  .nav-main{height:77px}
  .mobile-toggle{display:flex;margin-left:auto}
  .primary-links{position:absolute;display:none;top:100%;left:0;right:0;background:var(--navy);padding:17px max(24px,calc((100vw - var(--max))/2));max-height:calc(100svh - var(--header));overflow:auto;box-shadow:0 15px 22px #0003;flex-direction:column;gap:0;align-items:stretch}
  .primary-links.is-open{display:flex}
  .primary-links .nav-link{font-size:.95rem;padding:12px 0;border-bottom:1px solid #ffffff16;letter-spacing:.025em}
  .nav-link::after{display:none}
}
@media(max-width:950px){
  .hero-slider .hero-container{width:calc(100% - 85px);padding-bottom:155px}
  .hero-controls.container{width:calc(100% - 85px)}
  .hero-slide::before{background:linear-gradient(90deg,#031523f7 0%,#031b2be0 50%,#031b2b8a 100%)}
  .hero-slider .scroll-prompt{display:none}
}
@media(max-width:700px){
  :root{--header:78px}
  .nav-main.container{width:calc(100% - 38px)}
  .logo-symbol{height:48px;width:48px}
  .brand-name{font-size:.94rem}
  .brand-name small{font-size:.59rem}
  .hero-slider.home-hero{height:690px;min-height:620px}
  .hero-slider .hero-container{width:calc(100% - 42px);padding:65px 0 180px}
  .hero-slider .hero-copy{max-width:550px}
  .hero-slider .hero-service-title{font-size:clamp(2.7rem,9.7vw,4.3rem)}
  .hero-slider .hero-tagline{font-size:1.21rem}
  .hero-slider .hero-description{font-size:.98rem;max-width:470px}
  .hero-slide::before{background:linear-gradient(90deg,#031523f8,#031b2be6 65%,#031b2b9c),linear-gradient(0deg,#03152390,transparent)}
  .hero-controls.container{width:calc(100% - 42px);bottom:33px;gap:9px;flex-wrap:wrap}
  .hero-count{font-size:.8rem;gap:7px}
  .hero-count-line{width:20px}
  .hero-dots{gap:3px;margin-left:10px}
  .hero-dot{min-width:23px;width:23px}
  .hero-dot::before{width:17px;height:3px}
  .hero-dot.is-active{min-width:29px;width:29px}
  .hero-dot.is-active::before{width:28px}
  .hero-arrows{gap:5px;margin-left:auto}
  .hero-arrow,.hero-pause{width:37px;height:37px}
  .hero-pause{margin-left:0}
  .contact-quick-details{font-size:.83rem}
}
@media(max-width:420px){
  .logo-symbol{width:43px;height:43px}
  .site-header .brand{gap:7px}
  .brand-name{font-size:.81rem}
  .brand-name small{font-size:.51rem}
  .hero-slider.home-hero{height:690px}
  .hero-slider .hero-service-title{font-size:clamp(2.42rem,10vw,3.3rem)}
  .hero-slider .hero-tagline{font-size:1.09rem}
  .hero-slider .hero-description{font-size:.94rem}
  .hero-slider .hero-explore{width:100%;max-width:290px;min-width:unset;padding:15px 15px;font-size:.75rem}
  .hero-slider .hero-container{padding-top:54px;padding-bottom:172px}
  .hero-count{display:none}
  .hero-dots{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-slide-photo{transition:none!important}}

.official-logo-panel{margin:25px 0 25px;background:#fff;border:1px solid var(--line);padding:18px 26px;box-shadow:0 12px 36px #051e3210;text-align:center}
.official-logo-panel img{display:block;object-fit:contain;width:190px;max-width:100%;height:auto;margin:0 auto}


/* ===== REVISION 3 — ONE SHARED ALIGNMENT GRID / OLIVE BRANDING =====
   Exact primary olive: #708238 (RGB 112, 130, 56).
   Shared container begins with header logo and utility text and ends with CONTACT and phone.
   All homepage sections, page details, carousel and footer use identical left/right boundaries.
*/
:root{
  --sea:#708238;
  --mint:#c9d992;
  --max:1440px;
  --header:168px;
  --ice:#f6f8f0;
}
.container,.wrap,.nav-main.container,.hero-slider .hero-container,.hero-controls.container,
.source-detail section>.wrap{
  width:min(var(--max),calc(100% - 60px));
  max-width:var(--max);
  margin-inline:auto;
}
/* Make the official logo itself (with the name printed inside it) the only brand graphic. */
.site-header .nav-main{height:135px;gap:21px;justify-content:space-between}
.site-header .brand{gap:0;flex:0 0 auto;align-self:center}
.brand-full-logo{display:block;width:119px;height:auto;aspect-ratio:430/438;object-fit:contain;background:#fff;border-radius:2px}
.site-header .primary-links{display:flex;align-items:center;justify-content:flex-end;gap:clamp(8px,.95vw,16px);margin-left:auto;flex-wrap:nowrap;min-width:0}
.site-header .primary-links .nav-link{font-size:clamp(.83rem,.86vw,.94rem);font-weight:850;letter-spacing:.012em;white-space:nowrap}
.utility-bar{height:33px}
.utility-inner{justify-content:space-between}
.hero-slider .hero-container{padding:65px 0 140px}
.hero-controls.container{margin-inline:0}
.hero-slider .scroll-prompt{right:max(30px,calc((100vw - var(--max))/2))}
/* The company logo is also the footer brand, without a second typed brand name. */
.footer-brand{width:max-content;max-width:100%;margin:0 0 24px}
.footer-brand .brand-full-logo{width:144px;height:auto}
/* Pure olive CTA; lighter olive on dark backgrounds keeps labels legible. */
.button-primary,.source-hero-inner>.btn{background:#708238;color:#fff}
.button-primary:hover,.source-hero-inner>.btn:hover{background:#586a2c}
.eyebrow,.tile-card b,.value-panel span,.tile-card>span,.source-detail .eyebrow{color:#596b2e}
.home-hero .eyebrow,.sub-hero .eyebrow,.source-hero-inner>.eyebrow,
.source-detail .dark .eyebrow,.end-cta .eyebrow,.contact-band .eyebrow{color:#dce8b0}
.hero-slider .hero-tagline,.button-text,.mail{color:#dce8b0}
.hero-dot.is-active::before,.hero-dot:hover::before{background:#aabe70}
.hero-arrow:hover,.hero-pause:hover{background:#708238;border-color:#bacd7e}
.three-values>div,.source-detail .step,.tile-card,.source-detail .card{border-color:var(--line);border-top-color:#708238}
.service-visual::after,.nav-link::after{background:#708238}
.service-subheading{color:#536329}
.source-detail .cta{background:linear-gradient(100deg,#708238,#3a4d35)}
.contact-band{background:linear-gradient(112deg,#062437,#33452f 116%)}
.end-cta{background:linear-gradient(100deg,#072337,#34492f)}
/* Start mobile navigation before the complete desktop row could overflow. */
@media(max-width:1350px){
  :root{--header:145px}
  .site-header .nav-main{height:112px}
  .brand-full-logo{width:103px}
  .site-header .mobile-toggle{display:flex;margin-left:auto}
  .site-header .primary-links{position:absolute;display:none;top:100%;left:0;right:0;background:var(--navy);
    padding:17px max(30px,calc((100vw - var(--max))/2));max-height:calc(100svh - var(--header));overflow:auto;
    box-shadow:0 15px 22px #0003;flex-direction:column;align-items:stretch;gap:0;min-width:auto}
  .site-header .primary-links.is-open{display:flex}
  .site-header .primary-links .nav-link{font-size:.95rem;padding:12px 0;border-bottom:1px solid #ffffff16;letter-spacing:.02em}
  .nav-link::after{display:none}
}
@media(max-width:700px){
  :root{--header:96px}
  .container,.wrap,.nav-main.container,.hero-slider .hero-container,.hero-controls.container,
  .source-detail section>.wrap{width:calc(100% - 38px)}
  .site-header .nav-main{height:96px}
  .brand-full-logo{width:81px}
  .site-header .primary-links{padding:14px 19px;max-height:calc(100svh - 96px)}
  .hero-slider .hero-container{padding:65px 0 180px}
  .hero-slider .scroll-prompt{display:none}
  .footer-brand .brand-full-logo{width:132px}
}
@media(max-width:420px){
  .brand-full-logo{width:77px}
  .hero-slider .hero-container{padding-top:54px;padding-bottom:172px}
}

/* Carousel controls occupy the right boundary; omit the rotated prompt to avoid overlap. */
.hero-slider .scroll-prompt{display:none}


/* ===== REVISION 4 — smaller desktop menu labels, with space for the full logo =====
   Keep the existing logo size and page alignment. Reduce menu type by roughly
   one point, and tighten horizontal spacing to avoid nav/logo collisions.
*/
@media (min-width:1351px) {
  .site-header .primary-links { gap:clamp(8px,.82vw,13px); }
  .site-header .primary-links .nav-link {
    font-size:clamp(.76rem,.80vw,.87rem);
    letter-spacing:0;
  }
}


/* ===== REVISION 5 — direct Contact page link as a distinct navigation CTA =====
   All service links still target homepage sections, while the final CTA opens contact.html.
   The button stays aligned with the right edge of the global content grid.
*/
.site-header .primary-links .nav-contact-button{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:12px 16px;margin-left:5px;flex:0 0 auto;
  background:#708238;border:1px solid #85974e;border-radius:3px;
  color:#fff;font-weight:850;line-height:1.2;
  box-shadow:0 3px 0 rgba(0,0,0,.08);
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.site-header .primary-links .nav-contact-button span{font-size:1rem;line-height:1;}
.site-header .primary-links .nav-contact-button::after{display:none;}
.site-header .primary-links .nav-contact-button:hover,
.site-header .primary-links .nav-contact-button:focus-visible,
.site-header .primary-links .nav-contact-button.is-active{
  background:#536729;border-color:#a8bd6b;color:#fff;
}
@media(min-width:1351px){
  /* Modestly smaller labels and tighter spacing so the new CTA never crowds the logo. */
  .site-header .primary-links{gap:clamp(7px,.65vw,11px);}
  .site-header .primary-links .nav-link{font-size:clamp(.73rem,.76vw,.83rem);}
  .site-header .primary-links .nav-contact-button{padding:12px 13px;margin-left:6px;}
}
@media(max-width:1350px){
  .site-header .primary-links .nav-contact-button{
    align-self:flex-start;width:auto;margin:15px 0 6px;
    padding:13px 20px;border-bottom:1px solid #85974e;
    font-size:.95rem;letter-spacing:.04em;
  }
}
@media(prefers-reduced-motion:reduce){
  .site-header .primary-links .nav-contact-button{transition:none;}
}
