/* ==========================================================
   PRINTEX homepage styles
   Tokens -> base -> header -> hero -> sections -> footer
   ========================================================== */

/* ---------- Local fonts (offline) ---------- */
@font-face{font-family:"Sora";font-weight:600;font-display:swap;src:url("../assets/fonts/sora-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Sora";font-weight:700;font-display:swap;src:url("../assets/fonts/sora-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:400;font-display:swap;src:url("../assets/fonts/inter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-display:swap;src:url("../assets/fonts/inter-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-display:swap;src:url("../assets/fonts/inter-latin-600-normal.woff2") format("woff2")}

/* ---------- Design tokens: change colours here ---------- */
:root{
  --navy:#0B1B33;        /* deep navy */
  --navy-2:#13294a;
  --charcoal:#1d2430;    /* dark charcoal text */
  --mist:#F3F5F9;        /* soft gray */
  --line:#E1E6EE;
  --muted:#5b6678;
  --accent:#12B5E5;      /* single accent: print-cyan */
  --accent-dark:#0a8fb8;
  --radius:22px;
  --font-display:"Sora","Segoe UI",system-ui,sans-serif;
  --font-body:"Inter","Segoe UI",system-ui,sans-serif;
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--font-body);color:var(--charcoal);background:#fff;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);color:var(--navy);letter-spacing:-.02em;line-height:1.15}
h2{font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:700}
h3{font-size:1.2rem;font-weight:600}
a{text-decoration:none}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.section{padding:110px 0}
.section-tint{background:var(--mist)}
.section-head{margin-bottom:56px;max-width:680px}
.section-head p{color:var(--muted);font-size:1.1rem;margin:14px 0 0}
.d-flex.section-head{max-width:none}

/* ---------- Buttons ---------- */
.btn{font-weight:600;border-radius:999px;padding:.7rem 1.5rem;transition:transform .2s,box-shadow .2s,background .2s,color .2s}
.btn-lg{padding:.9rem 1.9rem;font-size:1rem}
.btn-accent{background:var(--accent);color:var(--navy);border:0}
.btn-accent:hover{background:#3fc6ee;color:var(--navy);transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(18,181,229,.7)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-2);color:#fff;transform:translateY(-2px)}
.btn-outline-navy{border:1.5px solid var(--navy);color:var(--navy)}
.btn-outline-navy:hover{background:var(--navy);color:#fff}
.btn-outline-light{border-width:1.5px}
.link-arrow{color:var(--navy);font-weight:600;display:inline-flex;gap:.45rem;align-items:center}
.link-arrow i{transition:transform .25s}
a:hover .link-arrow i,a.link-arrow:hover i{transform:translateX(5px)}

/* ---------- Header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:1030;transition:background .3s,box-shadow .3s}
.site-header .navbar{padding:18px 0;transition:padding .3s}
.brand{display:inline-flex;align-items:center;gap:.65rem;font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:.06em;color:#fff}
.brand:hover{color:#fff}
.site-header .nav-link{color:rgba(255,255,255,.8);font-weight:500;font-size:.95rem;padding:.5rem 1rem;position:relative}
.site-header .nav-link:hover,.site-header .nav-link.active{color:#fff}
.site-header .nav-link::after{content:"";position:absolute;left:1rem;right:1rem;bottom:2px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.site-header .nav-link.active::after,.site-header .nav-link:hover::after{transform:scaleX(1)}
.navbar-toggler{border:0;color:#fff;font-size:1.9rem;padding:0}
.navbar-toggler:focus{box-shadow:none}
/* Solid header after scrolling */
.site-header.scrolled{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.site-header.scrolled .navbar{padding:10px 0}
.site-header.scrolled .brand,.site-header.scrolled .navbar-toggler{color:var(--navy)}
.site-header.scrolled .nav-link{color:var(--muted)}
.site-header.scrolled .nav-link:hover,.site-header.scrolled .nav-link.active{color:var(--navy)}
@media (max-width:991.98px){
  .site-header .navbar-collapse{background:var(--navy);margin:14px -12px 0;padding:18px 22px 24px;border-radius:18px}
  .site-header.scrolled .navbar-collapse .nav-link{color:rgba(255,255,255,.85)}
  .site-header.scrolled .navbar-collapse .nav-link.active{color:#fff}
}

/* ---------- Hero ---------- */
.hero{position:relative;background:radial-gradient(900px 600px at 80% 30%,#17406b 0%,transparent 60%),linear-gradient(160deg,var(--navy) 0%,#0a1428 100%);color:#fff;padding:150px 0 90px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1.2px,transparent 1.2px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent,#000 70%)}
.hero .container{position:relative}
.hero-title{color:#fff;font-size:clamp(2.5rem,5.2vw,4.3rem);font-weight:700;letter-spacing:-.035em;margin-bottom:24px}
.hero-lead{font-size:1.2rem;color:rgba(255,255,255,.75);max-width:30em;margin-bottom:36px}
.hero-points{display:flex;flex-wrap:wrap;gap:12px 28px;margin:48px 0 0;color:rgba(255,255,255,.65);font-size:.95rem}
.hero-points i{color:var(--accent);margin-right:6px}
.hero-visual{position:relative}
.hero-img{width:100%;display:block}
/* Floating UI chips */
.chip{position:absolute;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.96);color:var(--navy);padding:12px 18px 12px 14px;border-radius:16px;box-shadow:0 18px 40px -14px rgba(0,0,0,.55);font-size:.85rem;line-height:1.3;animation:bob 6s ease-in-out infinite}
.chip i{width:38px;height:38px;border-radius:11px;background:var(--navy);color:var(--accent);display:grid;place-items:center;font-size:1.15rem}
.chip strong{display:block;font-weight:600}
.chip span{color:var(--muted);font-size:.78rem}
.chip-1{top:8%;left:0;animation-delay:.2s}
.chip-2{top:66%;right:0;animation-delay:1.4s}
.chip-3{bottom:14%;left:2%;animation-delay:2.6s}
@keyframes bob{50%{transform:translateY(-9px)}}
/* One orchestrated entrance for the hero text */
.js .hero-copy > *{opacity:0;transform:translateY(22px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-copy > :nth-child(2){animation-delay:.12s}
.js .hero-copy > :nth-child(3){animation-delay:.24s}
.js .hero-copy > :nth-child(4){animation-delay:.36s}
@keyframes rise{to{opacity:1;transform:none}}
@media (max-width:991.98px){.hero{padding:120px 0 70px}.chip-2{right:0}.chip{transform:scale(.9)}}
@media (max-width:575.98px){.chip-3{display:none}.chip-1{top:2%}}

/* ---------- Printer categories ---------- */
.cat-card{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:inherit;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.cat-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.cat-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -28px rgba(11,27,51,.45);border-color:transparent}
.cat-card:hover img{transform:scale(1.04)}
.cat-card:hover .link-arrow i{transform:translateX(5px)}
.cat-card .cat-body{padding:26px 30px 30px}
.cat-card h3{margin-bottom:8px}
.cat-card p{color:var(--muted);margin-bottom:18px}
.cat-img-wrap{overflow:hidden}
.cat-wide{flex-direction:row;align-items:center;background:var(--navy);border-color:var(--navy)}
.cat-wide h3{color:#fff;font-size:1.6rem}
.cat-wide p{color:rgba(255,255,255,.72);max-width:28em}
.cat-wide .link-arrow{color:var(--accent)}
.cat-wide .cat-body{flex:1;padding:40px 48px}
.cat-wide img{width:46%;aspect-ratio:auto;max-height:340px;object-fit:cover}
@media (max-width:767.98px){.cat-wide{flex-direction:column}.cat-wide img{width:100%}.cat-wide .cat-body{padding:26px 30px 30px}}

/* ---------- Technologies: open grid divided by hairlines (not cards) ---------- */
.tech-grid{border-top:1px solid #d5dbe6}
.tech{height:100%;padding:44px 36px 44px 0;border-bottom:1px solid #d5dbe6}
.tech i{font-size:1.9rem;color:var(--accent-dark);display:block;margin-bottom:22px}
.tech h3{margin-bottom:10px}
.tech p{color:var(--muted);margin:0;max-width:21em}
@media (min-width:992px){.tech-grid > div:not(:nth-child(3n+1)) .tech{padding-left:36px;border-left:1px solid #d5dbe6}}
@media (min-width:768px) and (max-width:991.98px){.tech-grid > div:nth-child(even) .tech{padding-left:36px;border-left:1px solid #d5dbe6}}

/* ---------- Solutions (tabs + panel) ---------- */
.sol-tabs{gap:10px;height:100%;justify-content:center}
.sol-tabs button{display:flex;align-items:center;gap:16px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:18px;padding:20px 22px;color:var(--muted);transition:all .25s}
.sol-tabs button i{font-size:1.5rem;color:var(--accent-dark)}
.sol-tabs strong{display:block;color:var(--navy);font-family:var(--font-display);font-size:1.05rem}
.sol-tabs small{font-size:.85rem}
.sol-tabs button:hover{border-color:var(--accent)}
.sol-tabs button.active{background:var(--navy);border-color:var(--navy)}
.sol-tabs button.active strong{color:#fff}
.sol-tabs button.active small{color:rgba(255,255,255,.7)}
.sol-tabs button.active i{color:var(--accent)}
.sol-panel{position:relative;height:100%;min-height:440px;border-radius:var(--radius);overflow:hidden;background:var(--navy)}
.sol-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sol-text{position:absolute;left:18px;right:18px;bottom:18px;max-width:460px;background:rgba(255,255,255,.96);border-radius:18px;padding:28px}
.sol-text h3{font-size:1.5rem;margin-bottom:8px}
.sol-text p{color:var(--muted);margin-bottom:18px}

/* ---------- Why choose us ---------- */
.section-dark{background:linear-gradient(160deg,var(--navy),#0a1428);color:#fff}
.section-dark h2{color:#fff}
.lead-muted{color:rgba(255,255,255,.7);font-size:1.15rem;max-width:26em;margin-top:16px}
.why{height:100%;padding:30px;border-radius:var(--radius);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:background .3s,border-color .3s}
.why:hover{background:rgba(255,255,255,.09);border-color:rgba(18,181,229,.5)}
.why i{font-size:1.7rem;color:var(--accent);display:block;margin-bottom:18px}
.why h3{color:#fff;font-size:1.1rem;margin-bottom:6px}
.why p{margin:0;color:rgba(255,255,255,.65);font-size:.95rem}

/* ---------- Guides ---------- */
.guide{display:block;height:100%;color:inherit}
.guide img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);margin-bottom:20px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.guide:hover img{transform:translateY(-5px);box-shadow:0 26px 40px -26px rgba(11,27,51,.5)}
.guide small{color:var(--muted);font-size:.82rem}
.guide h3{margin:6px 0 8px}
.guide p{color:var(--muted);margin-bottom:12px}

/* ---------- Support banner ---------- */
.support-banner{background:var(--mist);border-radius:32px;padding:64px}
.support-banner p{color:var(--muted);font-size:1.1rem;max-width:30em;margin:14px 0 30px}
.support-img{max-width:360px;width:100%;border-radius:24px;background:var(--navy)}
@media (max-width:767.98px){.support-banner{padding:36px 26px}}

/* ---------- Contact CTA ---------- */
.cta{background:linear-gradient(120deg,var(--navy) 10%,#0f4a7c 100%);color:#fff;padding:100px 0;overflow:hidden}
.cta h2{color:#fff;margin-bottom:16px}
.cta p{color:rgba(255,255,255,.78);font-size:1.15rem;max-width:30em;margin-bottom:32px}
.cta-img{width:100%;border-radius:26px;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}

/* ---------- Inquiry form ---------- */
.modal-content{border:0;border-radius:24px;padding:12px}
.form-control,.form-select{border-radius:12px;padding:.7rem .9rem;border-color:var(--line)}
.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 .25rem rgba(18,181,229,.2)}
.form-label{font-weight:600;font-size:.9rem}
.form-success{margin-top:16px;padding:14px 16px;border-radius:12px;background:#e8f8ef;color:#116b3a;font-size:.92rem}

/* ---------- Footer ---------- */
.site-footer{background:#08142a;color:rgba(255,255,255,.7);padding:80px 0 0}
.site-footer h3{color:#fff;font-size:1rem;margin-bottom:18px}
.site-footer ul li{margin-bottom:10px}
.site-footer ul a{color:rgba(255,255,255,.65);transition:color .2s}
.site-footer ul a:hover{color:var(--accent)}
.footer-note{max-width:22em;font-size:.95rem}
.social{display:flex;gap:10px;margin-top:22px}
.social a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);color:#fff;transition:all .25s}
.social a:hover{background:var(--accent);border-color:var(--accent);color:var(--navy);transform:translateY(-3px)}
.footer-bottom{margin-top:64px;padding:26px 0;border-top:1px solid rgba(255,255,255,.1);font-size:.88rem}

/* ---------- Back to top ---------- */
.to-top{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border:0;border-radius:50%;background:var(--navy);color:#fff;box-shadow:0 12px 28px -8px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(12px);transition:all .3s;z-index:1020}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--accent);color:var(--navy)}

/* ---------- Scroll reveal (only when JS is running) ---------- */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

@media (max-width:767.98px){.section{padding:76px 0}.section-head{margin-bottom:36px}}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal,.js .hero-copy > *{opacity:1;transform:none}
}

/* Large top-row category cards: image fills the available height so both cards match */
.cat-lg img{aspect-ratio:auto;flex:1 1 auto;min-height:260px}

/* Solutions panel: image on top, text below so the printer artwork is never covered */
.sol-panel{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line)}
.sol-panel img{position:static;width:100%;height:auto;flex:1 1 auto;min-height:280px;object-fit:cover}
.sol-text{position:static;max-width:none;background:#fff;border-radius:0;padding:26px 32px 30px}
/* Wide "Professional Printing" card keeps its image fully visible */
.cat-wide img{min-height:300px;object-position:center bottom}
