/* Marine Engineering - shared stylesheet (multi-page site) */

:root{--ocean:#0a4f6e;--ocean-mid:#0d6e96;--ocean-light:#e8f4f9;--ocean-pale:#f0f8fc;--ink:#0d1117;--ink-soft:#3a4250;--ink-muted:#7a8394;--white:#ffffff;--border:rgba(10,79,110,0.12);--border-soft:rgba(10,79,110,0.07);--nav-h:72px;--section-pad:clamp(60px,8vw,110px)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--white);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul{list-style:none}
button,input,textarea,select{font-family:inherit}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 5%;transition:background .4s,box-shadow .4s;background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--border)}
.nav.transparent{background:transparent;box-shadow:none}
.nav.transparent.scrolled{background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--border)}
.nav-logo{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:-.01em;color:var(--ocean);display:flex;align-items:center;gap:10px}
.nav.transparent:not(.scrolled) .nav-logo,.nav.transparent:not(.scrolled) .nav-links a,.nav.transparent:not(.scrolled) .nav-toggle span{color:#fff}
.nav-logo svg{width:30px;height:30px;flex-shrink:0}
.nav-links{display:flex;gap:2rem;align-items:center}
.nav-links a{font-size:.82rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);transition:color .2s;padding:4px 0;position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--ocean)}
.nav-links a.active::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--ocean-mid);border-radius:2px}
.lang-switcher{display:flex;gap:3px;align-items:center;border-left:1px solid var(--border);padding-left:1rem;margin-left:.75rem}
.lang-btn{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:4px;cursor:pointer;color:var(--ink-muted);transition:all .2s;border:none;background:none;font-family:inherit;line-height:1}
.lang-btn.active{background:var(--ocean);color:#fff}
.lang-btn:hover:not(.active){color:var(--ocean);background:var(--ocean-light)}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--ink);transition:.3s}

/* REVEAL */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:none}
.reveal-zoom{opacity:0;transform:scale(.94);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.reveal-zoom.visible{opacity:1;transform:scale(1)}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal-right.visible{opacity:1;transform:none}
.rd1{transition-delay:.1s}.rd2{transition-delay:.18s}.rd3{transition-delay:.26s}.rd4{transition-delay:.34s}
@media(prefers-reduced-motion:reduce){.reveal,.reveal-zoom,.reveal-right{opacity:1;transform:none;transition:none}}

/* HERO (home) */
.hero{position:relative;min-height:92svh;display:flex;align-items:center;overflow:hidden;background:var(--ink)}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#030f1a 0%,#0a2d42 40%,#0d4a68 70%,#0a3d58 100%)}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:60px 60px;opacity:.5}
.hero-glow{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(13,110,150,.25) 0%,transparent 70%);top:-150px;right:-150px;pointer-events:none}
.hero-glow2{position:absolute;width:450px;height:450px;border-radius:50%;background:radial-gradient(circle,rgba(13,110,150,.15) 0%,transparent 70%);bottom:-80px;left:-80px;pointer-events:none}
.hero-content{position:relative;z-index:2;padding:calc(var(--nav-h) + 2rem) 5% 5rem;max-width:1200px;margin:0 auto;width:100%}
.hero-tag{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ocean-mid);background:rgba(13,110,150,.15);border:1px solid rgba(13,110,150,.3);padding:6px 16px;border-radius:100px;margin-bottom:2rem}
.hero-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--ocean-mid);display:block}
.hero h1{font-family:'Syne',sans-serif;font-size:clamp(2.4rem,5.5vw,5rem);font-weight:700;line-height:1.06;color:#fff;letter-spacing:-.02em;max-width:820px;margin-bottom:1.5rem}
.hero h1 em{font-style:normal;color:var(--ocean-mid)}
.hero-desc{font-size:clamp(.95rem,1.4vw,1.15rem);color:rgba(255,255,255,.6);max-width:540px;line-height:1.75;margin-bottom:2.5rem;font-weight:300}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.btn-primary{display:inline-flex;align-items:center;gap:10px;background:var(--ocean-mid);color:#fff;padding:15px 30px;border-radius:6px;font-weight:500;font-size:.92rem;transition:all .25s;border:none;cursor:pointer;font-family:inherit}
.btn-primary:hover{background:var(--ocean);transform:translateY(-2px)}
.btn-primary svg{width:15px;height:15px;flex-shrink:0}
.btn-outline{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.8);padding:15px 30px;border-radius:6px;font-weight:500;font-size:.92rem;transition:all .25s;cursor:pointer;font-family:inherit;background:none}
.btn-outline:hover{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.05)}
.btn-outline.dark{border-color:var(--border);color:var(--ink-soft)}
.btn-outline.dark:hover{border-color:var(--ocean);color:var(--ocean);background:var(--ocean-pale)}

/* PAGE HERO (subpages) */
.page-hero{position:relative;padding:calc(var(--nav-h) + 3.5rem) 5% 4rem;background:linear-gradient(135deg,#030f1a 0%,#0a2d42 40%,#0d4a68 70%,#0a3d58 100%);overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:60px 60px;opacity:.5}
.page-hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto}
.breadcrumb{font-size:.78rem;color:rgba(255,255,255,.45);margin-bottom:1.1rem}
.breadcrumb a{color:rgba(255,255,255,.7);transition:color .2s}
.breadcrumb a:hover{color:#fff}
.page-hero h1{font-family:'Syne',sans-serif;font-size:clamp(2rem,4.5vw,3.4rem);font-weight:700;color:#fff;letter-spacing:-.02em;max-width:700px}
.page-hero p{font-size:clamp(.95rem,1.4vw,1.05rem);color:rgba(255,255,255,.6);max-width:560px;margin-top:1rem;line-height:1.75;font-weight:300}

/* SECTIONS */
section{padding:var(--section-pad) 5%}
.section-inner{max-width:1200px;margin:0 auto}
.section-tag{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ocean);font-weight:600;margin-bottom:.9rem;display:block}
.section-title{font-family:'Syne',sans-serif;font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}
.section-sub{font-size:1rem;color:var(--ink-muted);max-width:560px;margin-top:.9rem;line-height:1.75;font-weight:300}
.section-title.on-dark{color:#fff}

/* ABOUT */
.about{background:var(--white)}
.history-block{margin-top:3.5rem;padding:2rem;border:1px solid var(--border-soft);border-radius:14px;background:var(--ocean-pale)}
.history-block h3{font-family:'Syne',sans-serif;font-size:1.15rem;color:var(--ink);margin-bottom:.7rem}
.history-block p{font-size:.92rem;color:var(--ink-soft);line-height:1.75}

/* SERVICES / PHASE CARDS */
.services{background:var(--ocean-pale)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;margin-top:3.5rem;background:rgba(10,79,110,.08);border-radius:14px;overflow:hidden}
.service-card{background:var(--white);padding:2.5rem 2rem;transition:background .3s;display:flex;flex-direction:column;scroll-margin-top:calc(var(--nav-h) + 16px)}
.service-card:hover{background:var(--ocean-light)}
.service-name{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:.65rem}
.service-desc{font-size:.87rem;color:var(--ink-muted);line-height:1.7;flex:1}
.service-scope{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem}
.service-scope span{font-size:.68rem;letter-spacing:.03em;color:var(--ocean-mid);background:rgba(13,110,150,.1);border:1px solid rgba(13,110,150,.2);padding:3px 9px;border-radius:20px}

/* PROCESS */
.process{background:var(--ink);overflow:hidden}
.process .section-title{color:#fff}
.process .section-tag{color:var(--ocean-mid)}
.process-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-top:3rem;border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden}
.process-step{padding:1.6rem 1.1rem;border-right:1px solid rgba(255,255,255,.06);position:relative;background:rgba(255,255,255,.01);transition:background .3s}
.process-step:hover{background:rgba(13,110,150,.08)}
.process-step:last-child{border-right:none}
.process-step.pm-step{background:rgba(13,110,150,.12);border-left:2px solid var(--ocean-mid)}
.step-num{width:34px;height:34px;border-radius:50%;background:var(--ocean);color:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:.75rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;position:relative;z-index:1;flex-shrink:0}
.process-step.pm-step .step-num{background:var(--ocean-mid);box-shadow:0 0 0 3px rgba(13,110,150,.3)}
.step-title{font-family:'Syne',sans-serif;font-size:.78rem;font-weight:600;color:#fff;margin-bottom:.4rem;line-height:1.3}
.step-desc{font-size:.72rem;color:rgba(255,255,255,.38);line-height:1.55}
.process-hint{display:none;font-size:.72rem;color:rgba(255,255,255,.3);letter-spacing:.08em;text-transform:uppercase;margin-top:1.25rem;text-align:center}
@media(max-width:1100px){.process-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.process-grid{grid-template-columns:repeat(2,1fr)}.process-step{border-bottom:1px solid rgba(255,255,255,.06)}.process-hint{display:block}}

/* SUPPORT */
.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.support-card{padding:2rem 1.75rem;border:1px solid var(--border-soft);border-radius:14px;background:var(--white);transition:border-color .2s,box-shadow .2s}
.support-card:hover{border-color:var(--border);box-shadow:0 4px 24px rgba(10,79,110,.07)}
.support-card h3{font-family:'Syne',sans-serif;font-size:1.02rem;color:var(--ink);margin:0 0 .6rem}
.support-card ul{margin-top:.4rem}
.support-card li{font-size:.85rem;color:var(--ink-muted);line-height:1.65;padding-left:1rem;position:relative;margin-bottom:.4rem}
.support-card li::before{content:'';position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--ocean-mid)}

/* CONTACT */
.contact{background:var(--ocean-pale)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:3.5rem;align-items:start}
.contact-info-item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.75rem}
.contact-info-icon{width:42px;height:42px;background:var(--white);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border-soft)}
.contact-info-icon svg{width:19px;height:19px;stroke:var(--ocean);fill:none;stroke-width:1.5}
.contact-info-label{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:3px}
.contact-info-value{font-size:.92rem;color:var(--ink)}
.contact-info-value a{color:var(--ocean);transition:opacity .2s}
.contact-info-value a:hover{opacity:.7}
.map-wrap{background:var(--white);border-radius:14px;border:1px solid var(--border-soft);overflow:hidden;margin-top:1.5rem}
.map-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-soft);font-family:'Syne',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}
.map-header::before{content:'';width:8px;height:8px;border-radius:50%;background:#e53e3e;display:block}
#mapContainer{position:relative;background:#dbe9f2}
#mapContainer img{width:100%;height:auto;display:block}
.map-pin{position:absolute;left:52.7%;top:47.2%;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-radius:50%;background:#e53e3e;border:2.5px solid #fff;box-shadow:0 0 0 6px rgba(229,62,62,.22)}
.map-pin-label{position:absolute;left:52.7%;top:47.2%;transform:translate(15px,-50%);font-family:'Syne',sans-serif;font-size:.8rem;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.9);white-space:nowrap;pointer-events:none}
/* Zapasowa mapa wektorowa: pokazuje się tylko gdy img/europa.png nie wczyta się */
#mapContainer .map-fallback{display:none;width:100%;height:100%}
#mapContainer.no-photo{height:340px}
#mapContainer.no-photo img,#mapContainer.no-photo .map-pin,#mapContainer.no-photo .map-pin-label{display:none}
#mapContainer.no-photo .map-fallback{display:block}
.contact-form{background:var(--white);padding:2.25rem;border-radius:14px;border:1px solid var(--border-soft)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:.9rem}
.form-group label{font-size:.74rem;font-weight:500;letter-spacing:.05em;color:var(--ink-soft);text-transform:uppercase}
.form-group input,.form-group textarea,.form-group select{padding:13px 15px;border:1px solid var(--border);border-radius:7px;font-size:.92rem;color:var(--ink);background:var(--white);transition:border-color .2s,box-shadow .2s;outline:none;width:100%;-webkit-appearance:none;appearance:none}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--ocean-mid);box-shadow:0 0 0 3px rgba(13,110,150,.08)}
.form-group textarea{resize:vertical;min-height:115px}
.form-submit{width:100%;padding:15px;background:var(--ocean);color:#fff;border:none;border-radius:7px;font-family:'Syne',sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .25s;letter-spacing:.02em}
.form-submit:hover{background:var(--ocean-mid);transform:translateY(-1px)}
.form-success{display:none;text-align:center;padding:2rem}
.form-success svg{width:46px;height:46px;stroke:var(--ocean);margin:0 auto 1rem}

/* CTA BANNER */
.cta-banner{background:var(--ink);text-align:center}
.cta-banner h2{color:#fff}
.cta-banner .section-sub{color:rgba(255,255,255,.5);margin-left:auto;margin-right:auto}
.cta-banner .hero-cta{justify-content:center;margin-top:2rem}

/* FOOTER */
footer{background:var(--ink);padding:4.5rem 5% 2.5rem}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3.5rem;margin-bottom:3.5rem}
.footer-logo{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px}
.footer-brand-desc{font-size:.85rem;color:rgba(255,255,255,.4);margin-top:.9rem;line-height:1.7;font-weight:300;max-width:250px}
.footer-col h5{font-family:'Syne',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.3);font-weight:600;margin-bottom:1.1rem}
.footer-col ul li{margin-bottom:.7rem}
.footer-col ul a{font-size:.85rem;color:rgba(255,255,255,.5);transition:color .2s}
.footer-col ul a:hover{color:rgba(255,255,255,.9)}
.footer-social{display:flex;gap:.6rem;margin-top:1.25rem}
.social-link{width:34px;height:34px;border-radius:7px;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4);transition:all .2s}
.social-link:hover{border-color:rgba(255,255,255,.3);color:#fff}
.social-link svg{width:15px;height:15px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.06);padding-top:1.75rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-copy{font-size:.78rem;color:rgba(255,255,255,.3)}
.footer-bottom-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.footer-bottom-links a{font-size:.78rem;color:rgba(255,255,255,.3);transition:color .2s}
.footer-bottom-links a:hover{color:rgba(255,255,255,.6)}

/* MOBILE MENU */
.mobile-menu{display:none;position:fixed;inset:0;z-index:99;background:rgba(255,255,255,.98);flex-direction:column;align-items:center;justify-content:center;gap:2.1rem}
.mobile-menu.open{display:flex}
.mobile-menu a{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:700;color:var(--ink)}
.mobile-menu a:hover,.mobile-menu a.active{color:var(--ocean)}
.mobile-lang{display:flex;gap:6px;margin-top:.5rem;flex-wrap:wrap;justify-content:center}

/* LEGAL PAGES */
.legal{max-width:820px}
.legal h2{font-family:'Syne',sans-serif;font-size:1.2rem;color:var(--ink);margin:2rem 0 .8rem}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{font-size:.92rem;color:var(--ink-soft);line-height:1.8;margin-bottom:.6rem}
.legal ul{padding-left:1.2rem;list-style:disc}

/* COOKIE BANNER */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ink);padding:1rem 5%;display:none;align-items:center;gap:1.5rem;flex-wrap:wrap;box-shadow:0 -4px 24px rgba(0,0,0,.25)}
.cookie-banner.show{display:flex}
.cookie-banner p{flex:1;min-width:260px;font-size:.82rem;color:rgba(255,255,255,.75);line-height:1.6;margin:0}
.cookie-banner a{color:var(--ocean-mid);text-decoration:underline}
.cookie-btns{display:flex;gap:.6rem;flex-shrink:0}
.cookie-accept{background:var(--ocean-mid);color:#fff;border:none;padding:11px 26px;border-radius:6px;font-family:'Syne',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .2s;flex-shrink:0}
.cookie-accept:hover{background:var(--ocean)}
.cookie-reject{background:transparent;color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.3);padding:11px 22px;border-radius:6px;font-family:'Syne',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s}
.cookie-reject:hover{border-color:rgba(255,255,255,.6);color:#fff}

/* RESPONSIVE - tablets & phones */
@media(max-width:1100px){.services-grid{grid-template-columns:repeat(2,1fr)}.support-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1024px){.contact-grid{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr 1fr;gap:2.5rem}}
@media(max-width:768px){
  :root{--nav-h:60px}
  .nav-links,.lang-switcher{display:none}
  .nav-toggle{display:flex}
  .services-grid{grid-template-columns:1fr}
  .support-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:2rem}
  .footer-bottom{flex-direction:column;text-align:center}
  .hero-cta{flex-direction:column}
  .btn-primary,.btn-outline{justify-content:center}
  .process-hint{display:block}
  #mapContainer.no-photo{height:245px}
}
@media(max-width:480px){
  section{padding:clamp(48px,12vw,70px) 6%}
  .page-hero{padding:calc(var(--nav-h) + 2.5rem) 6% 3rem}
  .contact-form{padding:1.5rem}
}
