/* ===== ROOT & RESET ===== */
:root {
  --alc-navy: #1e3a8a;
  --alc-blue: #2563eb;
  --alc-white: #ffffff;
  --alc-dark: #0f172a;

  --container: 100%;
  --pad-left: clamp(14px, 3.2vw, 42px);
  --pad-right: clamp(6px, 1.2vw, 14px);
  --gap-x: clamp(16px, 2.2vw, 30px);
  --menu-end-gap: var(--gap-x);
  --underline-h: 2px;
  --underline-dur: .28s;

  --glass-bg: rgba(16, 20, 28, 0.42);
  --glass-border-color: rgba(255, 255, 255, .16);
  --glass-blur: 12px;
  --glass-shadow: 0 12px 28px rgba(0, 0, 0, .38);
  --glass-radius: 10px;

  --drawer-w: min(66.666vw, 420px);

  /* Drawer */
  --drawer-bg: #f3f4f6;
  --drawer-head-bg: var(--alc-dark);
}

*,
*::before,
*::after { box-sizing: border-box; }

html, body { margin: 0; padding: 0; overflow-x: hidden; }

[hidden] { display: none !important; }

/* ===== GENERIC HELPERS ===== */
.full-bleed {
  width: 100vw;
  position: relative;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  left: 0;
  z-index: 0;
}

.font-mont { font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }



@media (min-width:769px){ .pf-hero-slashed .hero-scroll-cue { transform: translate(-50%, 40px); } }

.hero-logo-mobile { display:none; }

/* MOBILE HERO */
@media (max-width:768px){
  .pf-hero-slashed .hero-content--left {
    transform:none !important;
    margin-left:20px;
    max-width:92%;
    padding:12px 14px;
    padding-left: max(14px, env(safe-area-inset-left, 0px));
    padding-right: max(14px, env(safe-area-inset-right, 0px));
    background: rgba(0,0,0,.14);
    backdrop-filter: saturate(115%) blur(1.5px);
    -webkit-backdrop-filter: saturate(115%) blur(1.5px);
    border-radius:12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    z-index:2;
  }
  .pf-hero-slashed .hero-title{ font-size: clamp(24px, 7vw, 34px); line-height:1.18; margin-bottom:10px;}
  .pf-hero-slashed .hero-desc{ font-size: clamp(15px, 4vw, 17px); opacity:.98; }
  .hero-logo-mobile{ display:none !important; position:absolute; left: calc(clamp(12px, 5vw, 24px) + 10px); top:50%; transform: translateY(-50%); width: clamp(360px, 108vw, 780px); opacity:.18; pointer-events:none; z-index:1; filter: drop-shadow(0 2px 6px rgba(0,0,0,.12)); }
  .pf-hero-slashed .hero-scroll-cue { height:42px; transform: translateX(-50%); }
  .pf-hero-slashed .hero-scroll-cue__runner { height:14px; }
}
.rimando-anchor { scroll-margin-top:var(--hdr-h); }

/* ===== CATALOG HEADER ===== */
.pf-catalog-header {
  --blue-1: #1e3a8a; --blue-2: #2563eb; --blue-3: #60a5fa;
  background:#ffffff; color:#0b0b0b; font-family:'Montserrat', system-ui, sans-serif;
  padding: clamp(24px, 4vw, 56px) 0; padding-top: calc(clamp(24px, 4vw, 56px) + 80px); padding-bottom: 0;
}
.catalog-wrap { max-width:1100px; width:100%; padding:0 16px; margin-inline:auto; display:flex; flex-direction:column; align-items:center; text-align:center; }
.catalog-eyebrow { display:inline-block; margin:0 0 8px; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:#2563eb; font-weight:700; line-height:1; }
.catalog-title { margin:0 0 12px; font-weight:800; line-height:1.15; font-size: clamp(24px, 3.1vw, 46px); letter-spacing:.01em; }
.catalog-title .alc-prefix { position:relative; display:inline-block; }
.catalog-title .alc-prefix::after {
  content:""; display:block; height:3px; width:84px; margin:10px auto 0; border-radius:999px;
  background: linear-gradient(90deg, var(--blue-1), var(--blue-2), var(--blue-3)); transition: width .45s ease;
}
.catalog-title:hover .alc-prefix::after { width:104px; }
.hl-blue { color:#2563eb; }
.catalog-subtitle { margin:0; font-size: clamp(14px, 1.25vw, 18px); line-height:1.6; width:min(60ch, 100%); margin-inline:auto; opacity:.95; }
@media(max-width:768px){ .catalog-wrap{ padding:0 20px; } .pf-catalog-header{ padding-top:0; padding-bottom:25px; }}

/* ===== DIVIDERS & CARDS ===== */
.divider-svg { display:block; width:100%; height: clamp(70px, 14vw, 160px); pointer-events:none; line-height:0; }
.pf-work-cards {
  --blue-1: #1e3a8a; --blue-2: #2563eb; --blue-3: #60a5fa; --ink: #0b1220;
  --card-radius: 12px;
  --card-bg: radial-gradient(120% 120% at 0% 0%, rgba(96, 165, 250, .12) 0%, rgba(37, 99, 235, .10) 45%, rgba(30, 58, 138, .18) 100%), #0b1220;
  --card-border-color: rgba(37, 99, 235, .28);
  --card-shadow: 0 12px 26px rgba(2, 6, 23, .18);
  --card-shadow-hover: 0 20px 46px rgba(37, 99, 235, .22);
  --card-text: #ffffff; --card-text-muted: rgba(255,255,255,.85);
  --gap: clamp(16px, 2.2vw, 24px); --container-max: clamp(1100px, 92vw, 1280px); --side-pad: clamp(12px, 2.2vw, 24px);
  background: #e5e7eb; padding: clamp(28px, 4vw, 72px) 0;
}
.pf-work-cards .cardsset { display:grid; grid-template-columns: repeat(3, minmax(320px, 1fr)); gap: var(--gap); max-width: var(--container-max); padding: 0 var(--side-pad); margin: 0 auto; font-family: var(--font, Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif); }
.pf-work-cards .cardsset-item {
  display:flex; flex-direction:column; border-radius: var(--card-radius); overflow:hidden; background: var(--card-bg);
  border: 1px solid var(--card-border-color); box-shadow: var(--card-shadow);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s cubic-bezier(.22,.61,.36,1), border-color .25s ease;
  position:relative; isolation:isolate; min-height: 520px;
}
.pf-work-cards .cardsset-item:hover, .pf-work-cards .cardsset-item:focus-within { box-shadow: var(--card-shadow-hover); transform: translateY(-3px); border-color: rgba(37,99,235,.38); }
.pf-work-cards .cardsset-item::after {
  content:""; position:absolute; inset:-40% -120%; background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.26) 48%, transparent 62%);
  transform: translateX(-120%) rotate(14deg); opacity:0; pointer-events:none; z-index:1;
}
.pf-work-cards .cardsset-item:hover::after, .pf-work-cards .cardsset-item:focus-within::after { animation: pfCardsShine 1.05s ease-out 1 forwards; }
@keyframes pfCardsShine{ 0%{ transform: translateX(-120%) rotate(14deg); opacity:0;} 30%{opacity:.16;} 55%{opacity:.22;} 100%{ transform: translateX(120%) rotate(14deg); opacity:0;} }
.pf-work-cards .cardsset-item-image { display:block; position:relative; overflow:hidden; aspect-ratio:16/10; background:#0b1220; }
.pf-work-cards .cardsset-item-image img { width:100%; height:100%; object-fit:cover; display:block; transform: scale(1); transition: transform .45s ease; will-change: transform; }
.pf-work-cards .cardsset-item:hover .cardsset-item-image img, .pf-work-cards .cardsset-item:focus-within .cardsset-item-image img { transform: scale(1.07); }
.pf-work-cards .cardsset-item-text { color: var(--card-text); text-align:center; padding: clamp(18px, 3vw, 28px) clamp(16px, 3vw, 24px); display:flex; flex-direction:column; gap:12px; flex:1 1 auto; }
.pf-work-cards .cardsset-item-text h4 { margin:0; font: 800 clamp(20px, 2.6vw, 32px)/1.15 Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; letter-spacing:.2px; color: var(--card-text); position:relative; }
.pf-work-cards .cardsset-item-text h4::after {
  content:""; display:block; height:3px; width:84px; margin:10px auto 0; border-radius:999px;
  background: linear-gradient(90deg, var(--blue-1), var(--blue-2), var(--blue-3)); transition: width .45s ease;
}
.pf-work-cards .cardsset-item:hover .cardsset-item-text h4::after,
.pf-work-cards .cardsset-item:focus-within .cardsset-item-text h4::after { width:104px; }
.pf-work-cards .cardsset-item-text p { margin:0; color: var(--card-text-muted); font: 500 clamp(14px, 1.8vw, 18px)/1.5 Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
.pf-work-cards .ui-iconlink { margin: clamp(14px, 2.2vw, 18px) auto clamp(16px, 2.4vw, 22px); display:inline-flex; align-items:center; gap:8px; color: rgba(255,255,255,.72); text-decoration:none; font: 500 13px/1 Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; letter-spacing:.4px; text-transform: uppercase; transition: transform .25s ease, color .2s ease; }
.pf-work-cards .cardsset-item:hover .ui-iconlink, .pf-work-cards .cardsset-item:focus-within .ui-iconlink { color:#fff; transform: scale(1.06); }
.pf-work-cards .ui-iconlink svg{ width:16px; height:16px; }

@media (max-width:1024px){ .pf-work-cards .cardsset{ grid-template-columns: repeat(2, 1fr);} }
@media (max-width:640px){
  .divider-svg { height: clamp(90px, 22vw, 180px); }
  .pf-divider-top { margin-bottom: -10px; } .pf-divider-bottom { margin-top: -10px; }
  .pf-divider-top .divider-svg polygon, .pf-divider-bottom .divider-svg polygon {
    transform-box: fill-box; transform-origin: center; will-change: transform;
    stroke: #e5e7eb; stroke-width: 2px; vector-effect: non-scaling-stroke;
  }
  .pf-divider-top .divider-svg polygon { transform: translateY(-16px); }
  .pf-divider-bottom .divider-svg polygon { transform: translateY(20px); }
  .pf-work-cards .cardsset { grid-template-columns: 1fr; justify-items: center; }
  .pf-work-cards .cardsset-item { width: clamp(300px, 88vw, 356px); min-height: 420px; }
  .pf-work-cards .cardsset-item-text { padding: 16px 14px; gap: 10px; }
  .pf-work-cards .cardsset-item-text h4 { font-size: clamp(18px, 6vw, 22px); }
  .pf-work-cards .cardsset-item-text h4::after { width: 72px; }
  .pf-work-cards .cardsset-item-text p { font-size: 13.5px; line-height: 1.5; }
  .pf-work-cards .ui-iconlink { margin: 12px auto 16px; font-size: 12px; letter-spacing: .35px; }
  .pf-work-cards { padding: 36px 0 48px; }
}
@media (prefers-reduced-motion: reduce){
  .pf-work-cards .cardsset-item, .pf-work-cards .cardsset-item-image img, .pf-work-cards .ui-iconlink { transition: none !important; }
  .pf-work-cards .cardsset-item::after { display: none !important; }
  .pf-work-cards .cardsset-item-text h4::after { transition: none !important; }
}

/* ===== WHITEBAND + COMPARE ===== */
.pf-whiteband { background:#ffffff; padding: clamp(28px, 4vw, 72px) 0; font-family:'Montserrat', system-ui, sans-serif; }
.pf-hero-compare { --blue-2:#2563eb; --ink:#0b0b0b; --radius:18px; --max: clamp(1020px, 92vw, 1280px); --pos: 50;
  color: var(--ink); background: transparent; padding-bottom: 90px;
}
.pf-hero-compare .inner { max-width: var(--max); margin: 0 auto; padding: clamp(24px, 4vw, 56px) clamp(16px, 3vw, 28px);
  display:grid; grid-template-columns: 1.05fr 1.2fr; align-items:center; gap: clamp(18px, 3vw, 34px); min-height: clamp(520px, 62vh, 720px);
}
.pf-hero-compare h1 { margin: 0 0 12px; font-weight: 800; line-height: 1.15; font-size: clamp(24px, 3.1vw, 46px); letter-spacing: .01em; color: var(--ink); }
.pf-hero-compare .subtitle { margin: 0 0 18px; font-size: clamp(14px, 1.25vw, 18px); line-height:1.6; width:min(60ch, 100%); opacity:.95; color: var(--ink); }
.pf-hero-compare ul { margin:0 0 6px; padding:0; list-style:none; color:#8a8a8a; display:grid; gap:10px; font-weight:600; font-size: clamp(14px, 1.4vw, 17px); }
.pf-hero-compare ul li::before { content:"✔"; color: var(--blue-2); margin-right:10px; }
.pf-compare-wrap { position:relative; border-radius: var(--radius); }
.pf-compare { position:relative; border-radius: var(--radius); overflow:hidden; background:#ffffff; border:1px solid rgba(2,6,23,.08); box-shadow: 0 12px 26px rgba(2,6,23,.08);
  aspect-ratio: 16/10; user-select: none; touch-action: none; isolation:isolate; z-index:1;
}
.pf-compare img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.pf-compare .after { filter: contrast(1.02) saturate(1.02); z-index:1; }
.pf-compare .before {
  z-index:2; clip-path: polygon(0 0, calc(var(--pos) * 1%) 0, calc(var(--pos) * 1%) 100%, 0 100%); will-change: clip-path;
}
.pf-compare .divider { position:absolute; top:0; left: calc(var(--pos) * 1%); transform: translateX(-50%); width:2px; height:100%;
  background: linear-gradient(180deg, rgba(37,99,235,0) 0%, rgba(37,99,235,.85) 35%, rgba(37,99,235,.85) 65%, rgba(37,99,235,0) 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.35) inset; pointer-events:none; z-index:3;
}
.pf-compare .handle {
  position:absolute; top:50%; left: calc(var(--pos) * 1%); transform: translate(-50%, -50%);
  width:46px; height:46px; border-radius:999px; background: rgba(255,255,255,.95); color: var(--blue-2);
  display:grid; place-items:center; box-shadow: 0 10px 24px rgba(2,6,23,.18), 0 0 0 1px rgba(2,6,23,.06) inset;
  transition: transform .12s ease; cursor: grab; touch-action: none; z-index:5;
}
.pf-compare .handle:active { cursor: grabbing; }
.pf-compare .handle:after { content:"↔"; font-weight:800; font-size:18px; line-height:1; }
.pf-compare input[type="range"] { position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none; }

.labels-fixed { position:absolute; inset:0; z-index:20; pointer-events:none; }
.labels-fixed .label { position:absolute; top:12px; padding:6px 12px; border-radius:10px; font-weight:700; font-size:13px; white-space:nowrap; color:#fff; background: rgba(11,18,32,.82); border:2px solid #fff; box-shadow: 0 0 0 1px rgba(2,6,23,.35) inset; }
.labels-fixed .label.before{ left:16px; } .labels-fixed .label.after{ right:16px; }

@media(max-width:980px){
  .pf-hero-compare .inner { grid-template-columns: 1fr; min-height:auto; }
  .pf-whiteband { padding-bottom:0; }
  .pf-hero-compare { padding-bottom:0; margin-bottom:40px; }
}

/* ===== FOOTER ===== */
.alc-footer {
  --navy:#1e3a8a; --dark:#0f172a; --white:#ffffff; --wm-opacity:.10; --container: min(1280px, 92vw);
  font-family:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: var(--white); background: var(--dark); position:relative; overflow:hidden; z-index:0;
}
.alc-footer .footer-watermark {
  position:absolute; top:50%; left:50%; transform: translate(-50%, -50%);
  width: clamp(440px, 36vw, 680px); height:auto; opacity: var(--wm-opacity); pointer-events:none; z-index:2;
  object-fit: contain; filter: saturate(.9) contrast(1.02);
}
.footer-cta, .footer-bottom { position:relative; z-index:1; }
.footer-cta { background: var(--navy); padding: clamp(40px, 6vw, 90px) 0; text-align:center; }
.footer-bottom { background: var(--dark); padding: clamp(28px, 4.8vw, 64px) 0 clamp(16px, 3vw, 32px); }
.footer-container { width: var(--container); margin:0 auto; padding: 0 clamp(16px, 3vw, 28px); position:relative; z-index:3; }
.cta-head { max-width:920px; margin: 0 auto clamp(18px, 3.6vw, 30px); }
.cta-title { margin:0 0 10px; font-weight:800; letter-spacing:-0.01em; line-height:1.18; font-size: clamp(24px, 3.6vw, 40px); color: var(--white); }
.cta-subtitle { margin:0; color:#e2e8f0; font-size: clamp(14px, 1.4vw, 18px); line-height:1.6; }
.cta-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top: clamp(14px, 2.2vw, 22px); }
.btn { border:1.5px solid var(--white); background:transparent; color: var(--white); padding:13px 22px; border-radius:10px; font-weight:800; font-size:15.5px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; transition: transform .25s cubic-bezier(.2,.8,.2,1), background .2s ease; }
.btn:hover { transform: translateY(-2px); background: rgba(255,255,255,.06); }
.footer-cols { display:grid; grid-template-columns: 1.1fr 1fr 1fr; gap: clamp(16px, 3vw, 32px); margin-bottom: clamp(18px, 3vw, 28px); }
.brand-logo { width: clamp(140px, 18vw, 200px); height:auto; margin-bottom:10px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); }
.brand-name { font-weight:800; font-size:16px; letter-spacing:.2px; }
.info-list, .legal-list { list-style:none; margin:0; padding:0; color:#e5e7eb; font-size:14.5px; line-height:1.7; }
.info-list a, .legal-list a { color:#e5e7eb; text-decoration:none; border-bottom:1px dotted rgba(229,231,235,.35); }
.legal-list a:hover, .info-list a:hover { color:#fff; }
.footer-copy { border-top: 1px solid rgba(255,255,255,.08); padding-top: clamp(10px, 1.6vw, 14px); font-size:13.5px; color:#cbd5e1; text-align:center; }

@media(max-width:900px){
  .footer-cols { grid-template-columns: 1fr; text-align:center; gap:14px; margin-bottom:14px; }
  .alc-footer .footer-watermark { width: clamp(360px, 34vw, 520px); }
  .brand-logo { margin: 0 auto 8px; }
  .cta-actions { margin-top: 12px; }
  .btn { padding:10px 16px; font-size:14px; border-radius:9px; }
  .footer-info { text-align:center; }
  .footer-info .info-list { text-align:center; margin-left:0; }
  .footer-legal .legal-list { display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; white-space:nowrap; gap:0; font-size: clamp(10px, 2.8vw, 12px); letter-spacing:-0.1px; }
  .footer-legal .legal-list li { display:inline; }
  .footer-legal .legal-list li + li::before { content:"•"; margin: 0 6px; opacity:.6; }
  .footer-bottom { padding-top:20px; padding-bottom:18px; }
}


