.catalog-section { display:block; padding-block:clamp(28px,4vw,52px); }
.catalog-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.catalog-categories { width:360px; max-width:100%; }
.catalog-filter-label { display:block; margin-bottom:10px; color:var(--navy); font-size:.85rem; font-weight:600; }
.catalog-category-dropdown { position:relative; }
.catalog-category-dropdown > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; padding:12px 16px; border:1px solid #b8c9e2; border-radius:8px; background:#fff; color:var(--navy); font-size:.9rem; font-weight:600; line-height:1.5; list-style:none; cursor:pointer; }
.catalog-category-dropdown > summary::-webkit-details-marker { display:none; }
.catalog-category-dropdown > summary::marker { content:""; }
.catalog-dropdown-icon { flex:none; width:8px; height:8px; margin:0 3px 4px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); }
.catalog-category-dropdown[open] .catalog-dropdown-icon { transform:rotate(225deg); margin-bottom:0; }
.catalog-category-links { position:absolute; z-index:7; top:calc(100% + 6px); left:0; right:0; max-height:min(420px,65vh); overflow-y:auto; padding:6px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 12px 32px #08244c20; }
.catalog-category-dropdown:not([open]) > .catalog-category-links { display:none; }
.catalog-product-count { padding-bottom:13px; color:var(--muted); font-size:.82rem; }
.catalog-categories a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:12px 10px; border-bottom:1px solid var(--line); color:var(--navy); text-decoration:none; font-size:.88rem; font-weight:600; line-height:1.45; }
.catalog-categories a small { flex:none; min-width:24px; padding:2px 5px; border-radius:20px; background:#edf2fa; color:#536a8a; font-size:.7rem; text-align:center; font-weight:400; }
.catalog-categories a:hover,.catalog-categories a[aria-current] { color:var(--blue); background:var(--ice); }
.catalog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.catalog-heading h2 { margin:0; }
.catalog-heading > span { flex:none; color:var(--muted); font-size:.82rem; }
.catalog-heading .eyebrow { margin-bottom:8px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.catalog-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:white; }
.catalog-card > a { display:flex; flex-direction:column; height:100%; color:var(--text); text-decoration:none; }
.catalog-card-image { aspect-ratio:1; overflow:hidden; background:#fff; }
.catalog-card-image img { width:100%; height:100%; object-fit:contain; }
.catalog-card-copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:16px; }
.catalog-card-copy > span { font-size:.73rem; font-weight:600; color:var(--muted); margin-bottom:8px; }
.catalog-card-copy :is(h2,h3) { font-size:1rem; line-height:1.45; margin:0 0 16px; letter-spacing:0; overflow-wrap:anywhere; }
.catalog-card-copy p { font-size:.88rem; margin-bottom:18px; }
.catalog-card-copy strong { display:inline-flex; gap:8px; align-items:center; margin-top:auto; color:var(--blue); font-size:.84rem; }
.catalog-card:hover { border-color:#86a9ea; box-shadow:0 8px 28px #08244c12; }
.page-products-services .fdl-extra-faqs-v162 { max-width:920px; margin-inline:auto; }
.faq details,.fdl-extra-faqs-v162 details { margin-block:12px; padding:16px 20px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.faq details > summary,.fdl-extra-faqs-v162 details > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:28px; padding:0; list-style:none; color:var(--navy); font-size:.95rem; line-height:1.5; font-weight:600; cursor:pointer; }
.faq summary::-webkit-details-marker,.fdl-extra-faqs-v162 summary::-webkit-details-marker { display:none; }
.faq details > summary::after,.fdl-extra-faqs-v162 details > summary::after { content:"+"; flex:none; color:var(--blue); font-size:1.4rem; font-weight:400; }
.faq details[open] > summary::after,.fdl-extra-faqs-v162 details[open] > summary::after { content:"−"; }
.faq details p,.fdl-extra-faqs-v162 details p { margin:14px 0 0; color:var(--muted); font-size:.92rem; line-height:1.75; }
.product-detail { background:linear-gradient(#f5f8ff 0,white 820px); }
.product-detail > .shell { padding-top:24px; }
.product-intro-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(24px,5vw,70px); align-items:center; padding-block:12px 54px; }
.product-main-image { margin:0; aspect-ratio:1.15; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:#eaf0f8; }
.product-main-image img { width:100%; height:100%; object-fit:contain; }
.product-summary h1 { font-size:clamp(2.1rem,4vw,3.65rem); }
.product-lead { font-size:1.05rem; }
.product-highlights { display:grid; grid-template-columns:1fr 1.6fr; gap:12px; font-size:.89rem; padding-block:16px; border-block:1px solid var(--line); }
.product-highlights dt { font-weight:700; }
.product-highlights dd { margin:0; }
.product-summary .text-link-action { margin-top:18px; }
.product-thumbnail-strip { display:flex; gap:10px; margin-top:12px; }
.product-thumbnail-strip button { padding:0; width:84px; height:70px; border:1px solid var(--line); background:white; border-radius:8px; overflow:hidden; cursor:pointer; }
.product-thumbnail-strip button[aria-pressed=true] { border:2px solid var(--blue); }
.product-thumbnail-strip img { width:100%; height:100%; object-fit:contain; }
.product-photo-note { margin:10px 0 0; color:var(--muted); font-size:.76rem; }
.product-content-grid { display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(24px,4vw,54px); padding-bottom:56px; }
.product-content-grid aside .button { margin-top:20px; }
.product-content > h2 { scroll-margin-top:24px; margin-top:1.6em; }
.product-content > p { max-width:76ch; }
.product-content .closing-band { margin-top:32px; }
.product-section-links { display:flex; flex-wrap:wrap; gap:6px 24px; padding-block:12px; border-bottom:1px solid var(--line); }
.product-section-links a { padding-block:8px; font-weight:600; font-size:.9rem; }
.product-specs { width:100%; border-collapse:collapse; font-size:.94rem; }
.product-specs th,.product-specs td { text-align:start; vertical-align:top; padding:15px 18px; border:1px solid var(--line); overflow-wrap:anywhere; }
.product-specs th { width:32%; color:var(--navy); background:var(--ice); }
.product-specs td { background:white; }
.product-specs-scroll { margin-block:20px; }
.product-content details { margin-block:12px; padding:16px 20px; border:1px solid var(--line); border-radius:10px; }
.product-content summary { cursor:pointer; font-weight:600; color:var(--navy); }
.product-content details p { margin-block:12px 0; }
.compliance-section { padding-block:54px; }
.compliance-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.compliance-grid article { padding:24px; border:1px solid var(--line); border-radius:12px; background:var(--ice); }
.compliance-grid dt { margin-top:12px; font-weight:700; }
.compliance-grid dd { margin:0; overflow-wrap:anywhere; }
.comparison-section { padding-block:clamp(40px,6vw,80px); }
.comparison-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.comparison-heading h2 { margin-bottom:12px; }
.comparison-heading p:last-child { margin-bottom:0; }
.comparison-navigation { display:flex; align-items:center; gap:14px; flex:none; }
.comparison-navigation button { width:46px; height:46px; border:1px solid #aac1e4; border-radius:50%; background:white; color:var(--navy); cursor:pointer; font:inherit; font-size:1.3rem; }
.comparison-navigation button:hover { background:var(--blue); color:white; }
.comparison-slide { margin:0 0 24px; }
.comparison-stage { position:relative; aspect-ratio:16/9; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#0b1423; }
.comparison-layer { position:absolute; inset:0; background:#0b1423; }
.comparison-layer img { width:100%; height:100%; object-fit:contain; }
.comparison-before { clip-path:inset(0 calc(100% - var(--comparison)) 0 0); }
.comparison-handle { position:absolute; top:0; bottom:0; left:var(--comparison); border-left:2px solid white; transform:translateX(-1px); }
.comparison-handle span { position:absolute; top:50%; left:0; transform:translate(-50%,-50%); display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--orange); color:#14203a; font-size:1.8rem; box-shadow:0 2px 16px #07142980; }
.comparison-label { position:absolute; z-index:1; top:14px; padding:6px 12px; color:white; font-size:.82rem; font-weight:700; border-radius:6px; background:#102449e0; pointer-events:none; }
.comparison-label-before { left:14px; }
.comparison-label-after { right:14px; }
.comparison-range { position:absolute; inset:0; z-index:2; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; touch-action:pan-y; }
.comparison-stage:has(.comparison-range:focus-visible) { outline:3px solid var(--blue); outline-offset:4px; }
.comparison-slide figcaption { margin-top:10px; font-size:.85rem; color:var(--muted); }
@media(max-width:1100px) { .catalog-grid { gap:16px; } }
@media(max-width:767px) { .catalog-toolbar { align-items:stretch; flex-direction:column; gap:12px; } .catalog-categories { width:100%; } .catalog-product-count { padding:0; } .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; } .catalog-heading { align-items:start; flex-direction:column; gap:8px; } .catalog-card-copy { padding:12px; } .catalog-card-copy > span { font-size:.66rem; line-height:1.5; } .catalog-card-copy :is(h2,h3) { font-size:.88rem; } .catalog-card-copy strong { font-size:.75rem; gap:4px; } }
@media(max-width:800px) { .product-intro-grid { grid-template-columns:1fr; } .product-main-image { max-height:540px; } .product-content-grid { grid-template-columns:1fr; } .product-content-grid > aside { display:none; } .compliance-grid { grid-template-columns:1fr; } }
@media(max-width:640px) { .product-highlights { grid-template-columns:1fr; gap:4px; } .product-highlights dd { margin-bottom:8px; } .product-specs th,.product-specs td { padding:12px 10px; font-size:.86rem; } .comparison-heading { align-items:start; flex-direction:column; } .comparison-stage { aspect-ratio:1.2; } }
.partners-section { background:#fff; padding-block:clamp(38px,6vw,76px); overflow:hidden; }
.partners-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:28px; }
.partners-heading h2 { margin-bottom:0; }
.page-home .partners-section > .shell { width:100%; }
.partners-heading .eyebrow { margin-bottom:8px; }
.partners-viewport { overflow:hidden; }
.partners-track { display:flex; width:max-content; animation:partner-marquee 60s linear infinite; }
.partner-logo-group { display:flex; align-items:center; gap:24px; padding:0 24px 0 0; margin:0; list-style:none; }
.partner-logo { display:grid; place-items:center; flex:0 0 220px; width:220px; height:100px; padding:16px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.partner-logo img { max-width:180px; max-height:65px; object-fit:contain; }
.partner-supplied-mark { display:block; background-repeat:no-repeat; }
@keyframes partner-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce) { .partners-track { animation:none; width:auto; } .partner-logo-group { flex-wrap:wrap; justify-content:center; padding-inline:16px; } .partner-logo-group[aria-hidden] { display:none; } .partners-viewport { mask-image:none; } }

/* Inner-page photography fills the hero; content stays readable above it. */
.hero-inner { position:relative; isolation:isolate; overflow:hidden; min-height:420px; padding-block:clamp(60px,8vw,112px); background:#0b1e43; border:0; }
.hero-inner .hero-grid { display:block; }
.hero-inner .hero-copy { position:relative; z-index:1; max-width:760px; }
.hero-copy > h1:only-child { margin-bottom:0; }
.hero-inner h1 { color:#fff; }
.hero-inner .eyebrow,.hero-inner .hero-intro { color:#eff5ff; }
.hero-inner .hero-intro { max-width:65ch; }
.hero-inner .button-outline { color:#fff; background:#102449dd; border-color:#d2e0f5; }
.hero-inner .hero-photo { position:absolute; inset:0; z-index:-1; max-width:none; width:100%; height:100%; }
.hero-inner .hero-photo-frame { position:absolute; inset:0; border-radius:0; background:#071b3e; }
.hero-inner .hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 55%; aspect-ratio:auto; }
.hero-inner .hero-photo-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#06172df5 0%,#06172dd9 32%,#06172d85 65%,#06172d52 100%); }
.hero-article .hero-copy { max-width:880px; }
.hero-article h1 { font-size:clamp(2.2rem,4.7vw,4.3rem); }
.photo-stage { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; background:#071429; }
.photo-stage figure { margin:0; overflow:hidden; }
.photo-stage figure:first-child { grid-column:1 / -1; }
.photo-stage img { width:100%; height:100%; aspect-ratio:16/9; object-fit:cover; }

/* An editorial reading column, with wider stages for images and video. */
.blog-article { width:min(100% - 40px,1080px); max-width:1080px; padding-block:clamp(36px,5vw,72px); font-size:1.075rem; line-height:1.86; overflow-wrap:anywhere; }
.blog-article > * { max-width:760px; margin-inline:auto; }
.blog-article > .alignwide,.blog-article > .alignfull { max-width:100%; width:100%; margin-inline:0; }
.blog-article > p { margin-block:0 1.4em; }
.blog-article > .article-meta + p { font-size:1.19em; line-height:1.75; color:#223e63; margin-bottom:2em; }
.blog-article h2 { margin-top:2.25em; margin-bottom:.7em; font-size:clamp(1.6rem,2.8vw,2.3rem); line-height:1.25; letter-spacing:-.025em; }
.blog-article h3 { margin-top:1.9em; margin-bottom:.65em; font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.35; letter-spacing:-.015em; }
.blog-article h4,.blog-article h5,.blog-article h6 { margin-top:1.7em; margin-bottom:.6em; font-size:1.1em; line-height:1.45; letter-spacing:0; }
.blog-article :is(ul,ol) { padding-inline-start:1.5em; margin-block:1.1em 1.6em; }
.blog-article li { padding-inline-start:.3em; margin-block:.45em; }
.blog-article :is(strong,b) { color:var(--navy); }
.blog-article :is(em,i) { font-style:italic; }
.blog-article a { text-underline-offset:.2em; text-decoration-thickness:1px; }
.blog-article blockquote,.blog-article .wp-block-pullquote { padding:clamp(22px,4vw,38px); border:0; border-inline-start:4px solid var(--orange); border-radius:0 14px 14px 0; background:#f1f6ff; margin-block:2em; color:#17375e; font-size:clamp(1.15rem,2.3vw,1.45rem); line-height:1.65; font-style:italic; }
.blog-article .wp-block-pullquote blockquote { padding:0; border:0; background:none; font-size:inherit; margin:0; }
.blog-article blockquote p { margin:0 0 .7em; }
.blog-article blockquote p:last-child { margin-bottom:0; }
.blog-article :is(blockquote cite,.wp-block-pullquote cite) { display:block; margin-top:1em; font-size:.7em; line-height:1.5; font-style:normal; font-weight:var(--weight-semibold); }
.blog-article :is(figure,.wp-caption) { margin-block:2em; }
.blog-article :is(.wp-block-image,.wp-block-video,.wp-block-embed,.wp-block-gallery,.wp-caption) { overflow:hidden; }
.blog-article :is(.wp-block-image img,.wp-caption img) { display:block; width:100%; height:auto; border-radius:14px; margin:0; }
.blog-article :is(figcaption,.wp-caption-text) { margin:.8em auto 0; max-width:76ch; color:var(--muted); font-size:.8em; line-height:1.6; text-align:center; }
.blog-article :is(video,iframe) { display:block; width:100%; max-width:100%; border:0; border-radius:14px; background:#0b1e43; }
.blog-article video { height:auto; }
.blog-article :is(.wp-block-embed iframe,.wp-block-video video) { aspect-ratio:16/9; }
.blog-article .wp-block-embed__wrapper { position:relative; }
.blog-article .wp-block-table { overflow-x:auto; }
.blog-article table { width:100%; border-collapse:collapse; font-size:.9em; line-height:1.6; }
.blog-article :is(th,td) { padding:14px; text-align:start; border:1px solid var(--line); }
.blog-article th { background:var(--ice); }
.blog-article hr { border:0; border-top:1px solid var(--line); margin-block:2.5em; }
.article-meta { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:20px; margin-bottom:32px; border-bottom:1px solid var(--line); font-size:.78em; line-height:1.5; color:var(--muted); }
.article-meta a { font-weight:var(--weight-semibold); }

/* A native disclosure stays closed and usable even before JavaScript arrives. */
.mobile-navigation { display:none; }
.mobile-site-nav { position:absolute; top:100%; left:0; right:0; z-index:5; padding:12px 16px 20px; background:#fff; border-block:1px solid var(--line); max-height:calc(100vh - 66px); max-height:calc(100dvh - 66px); overflow-y:auto; overscroll-behavior:contain; }
.mobile-navigation:not([open]) > .mobile-site-nav { display:none; }
.mobile-navigation[open] > .mobile-site-nav { display:block; }
.mobile-navigation summary { list-style:none; }
.mobile-navigation summary::-webkit-details-marker { display:none; }
.mobile-nav-list { display:block; border:0; padding:0; }
.mobile-nav-list > li { border-bottom:1px solid var(--line); }
.mobile-nav-list a { min-height:44px; padding-block:10px; }
.mobile-category-links,.mobile-nav-list .sub-menu { margin:0 0 8px; padding:0 0 0 14px; list-style:none; border-left:2px solid var(--line); }
.mobile-category-links a,.mobile-nav-list .sub-menu a { font-size:.86rem; font-weight:var(--weight-regular); }
.mobile-site-nav .mobile-nav-quote { display:inline-flex; margin:18px 0 0; }
.site-header-home .mobile-site-nav { background:#0b1e43; border-color:#415776; }
.site-header-home .mobile-site-nav a { color:#f5f8ff; }
.site-header-home .mobile-nav-list > li,.site-header-home .mobile-category-links { border-color:#415776; }
.site-header-home .mobile-site-nav .button-primary { color:#14203a; }
@media(max-width:1120px) {
  .masthead { flex-wrap:nowrap; gap:8px; }
  .masthead > .site-nav-desktop { display:none !important; }
  .mobile-navigation { display:block; order:2; flex:none; }
  .mobile-navigation > summary { display:flex; justify-content:center; width:44px; height:44px; padding:0; cursor:pointer; }
  .mobile-navigation .menu-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .mobile-navigation[open] .menu-icon { border-block:0; position:relative; }
  .mobile-navigation[open] .menu-icon::before,.mobile-navigation[open] .menu-icon::after { content:""; position:absolute; top:4px; left:0; width:15px; height:2px; background:var(--blue); transform:rotate(45deg); }
  .mobile-navigation[open] .menu-icon::after { transform:rotate(-45deg); }
}
@media(prefers-reduced-motion:no-preference) {
  .hero-home .hero-photo img { animation:fairy-photo-float 12s ease-in-out infinite; }
}
@keyframes fairy-photo-float { 0%,100% { transform:translate3d(0,0,0) scale(1.025); } 50% { transform:translate3d(0,-8px,0) scale(1.025); } }

.language-flag { display:block; flex:none; width:24px; height:16px; object-fit:cover; border-radius:2px; box-shadow:0 0 0 1px #8799b344; }
.site-language .language-options a { gap:9px; }
a.whatsapp-link { display:inline-flex; align-items:center; gap:.5rem; }
.whatsapp-icon { display:inline-block; flex:none; vertical-align:middle; }
a.button.whatsapp-link { color:#fff; background:#147d43; border-color:#147d43; }
a.button.whatsapp-link:hover { background:#0d6233; border-color:#0d6233; }
.site-footer nav a.whatsapp-link { display:flex; }
.floating-whatsapp { position:fixed; z-index:9; right:calc(24px + env(safe-area-inset-right,0px)); bottom:calc(24px + env(safe-area-inset-bottom,0px)); display:grid; place-items:center; width:56px; height:56px; border:2px solid #fff; border-radius:50%; background:#147d43; color:#fff; text-decoration:none; box-shadow:0 4px 14px #06172d26; }
.floating-whatsapp > svg { width:30px; height:30px; }
.floating-whatsapp:hover { background:#0d6233; }
.floating-wa-label { display:none; }
@media(hover:hover) { .floating-whatsapp:hover .floating-wa-label,.floating-whatsapp:focus-visible .floating-wa-label { display:block; position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%); width:max-content; max-width:240px; padding:9px 12px; border-radius:8px; color:#fff; background:#102449; font-size:.82rem; line-height:1.4; } }
@media(max-width:640px) { .floating-whatsapp { width:52px; height:52px; right:calc(14px + env(safe-area-inset-right,0px)); bottom:calc(16px + env(safe-area-inset-bottom,0px)); } .footer-base.has-floating-whatsapp { padding-inline-end:72px; } }
@media(max-width:420px) { .site-language summary { padding-inline:7px; gap:4px; font-size:.75rem; } .site-language summary .language-flag { width:18px; height:12px; } .site-language summary > svg { width:12px; } }

/* Brand and social profiles, product links and compact site navigation. */
.site-footer { padding:56px 0 20px; }
.site-footer .footer-grid { display:grid; grid-template-columns:minmax(230px,1.25fr) minmax(210px,1fr) minmax(210px,1fr); grid-template-areas:"brand products explore" "social products explore"; align-items:start; gap:16px 48px; padding-bottom:32px; }
.site-footer .footer-brand { grid-area:brand; }
.site-footer .footer-brand > .brand img { width:192px; max-width:100%; }
.site-footer .footer-brand > .footer-tagline { margin:16px 0 0; max-width:32ch; color:#eaf1ff; font-size:.94rem; font-weight:600; line-height:1.6; }
.site-footer .footer-location { display:block; font-size:.7rem; letter-spacing:.12em; }
.footer-contact-text { max-width:430px; margin-top:18px; color:#c7d6ee; font-size:.84rem; line-height:1.7; }
.footer-address { margin:0; font-style:normal; overflow-wrap:anywhere; }
.site-footer .footer-phone-text { margin:10px 0 0; max-width:none; }
.footer-contact-label,.footer-phone-text > span:first-child { color:#a9bfdf; }
.footer-phone-number { color:#eaf1ff; white-space:nowrap; font-variant-numeric:tabular-nums; }
.footer-social-area { grid-area:social; }
.site-footer .footer-social { margin:0; gap:8px; }
.footer-mobile-menus { display:none; grid-area:menus; }
.site-footer .footer-social-title { margin:0 4px 0 0; font-size:.75rem; font-weight:400; color:#b4c8e9; }
.site-footer .social-icon { position:relative; width:32px; height:32px; border:0; border-radius:0; background:transparent; }
.site-footer .social-icon::before { content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:28px; height:28px; border:1px solid #7188b1; border-radius:50%; }
.site-footer .social-icon img { position:relative; width:16px; height:16px; }
.site-footer a.social-icon:hover { background:transparent; }
.site-footer a.social-icon:hover::before { background:#193766; border-color:#b4c8e9; }
.footer-products { grid-area:products; }
.footer-explore { grid-area:explore; }
.site-footer .footer-column h2 { margin:0 0 12px; color:#fff; font-family:var(--font-body); font-size:.94rem; font-weight:700; line-height:1.45; letter-spacing:0; }
.site-footer .footer-column h2 a { display:inline; padding:0; margin:0; min-height:0; color:inherit; font:inherit; text-decoration:none; }
.site-footer .footer-links { display:grid; gap:2px; margin:0; padding:0; list-style:none; }
.site-footer .footer-links li { min-width:0; }
.site-footer .footer-links a { display:flex; align-items:center; width:auto; min-height:32px; padding:4px 0; color:#c7d6ee; font-size:.875rem; line-height:1.55; overflow-wrap:anywhere; }
.site-footer .footer-links a:hover,.site-footer .footer-column h2 a:hover { color:#fff; text-decoration:underline; }
.site-footer .footer-base { align-items:center; gap:8px 24px; padding:18px 72px 0 0; border-color:#34496f; }
.site-footer .footer-base > small { color:#b4c8e9; font-size:.75rem; line-height:1.6; }
.site-footer .footer-legal a { min-height:32px; padding:4px 0; color:#b4c8e9; font-size:.75rem; line-height:1.5; }
@media(min-width:641px) { .site-footer.footer-actions-left-desktop .footer-base { padding-inline-start:56px; } }
@media(min-width:768px) and (max-width:900px) { .site-footer .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"brand brand" "products explore" "social social"; gap:24px 40px; } }
@media(max-width:767px) {
  .site-footer .footer-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"brand" "menus" "social"; gap:0; }
  .site-footer .footer-brand { padding-bottom:24px; }
  .footer-desktop-menu { display:none; }
  .footer-mobile-menus { display:block; }
  .footer-accordion { border-top:1px solid #34496f; }
  .footer-accordion:last-child { border-bottom:1px solid #34496f; }
  .footer-accordion > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:14px 0; color:#fff; font-size:.94rem; font-weight:600; line-height:1.5; list-style:none; cursor:pointer; }
  .footer-accordion > summary::-webkit-details-marker { display:none; }
  .footer-accordion > summary::marker { content:""; }
  .footer-accordion > summary:focus-visible { outline-offset:-3px; }
  .footer-accordion-icon { display:block; position:relative; flex:none; width:16px; height:16px; }
  .footer-accordion-icon::before,.footer-accordion-icon::after { content:""; position:absolute; top:7px; left:2px; width:12px; height:2px; background:#d5e2f7; }
  .footer-accordion-icon::after { transform:rotate(90deg); }
  .footer-accordion[open] > summary .footer-accordion-icon::after { display:none; }
  .footer-accordion:not([open]) > .footer-links { display:none; }
  .footer-accordion[open] > .footer-links { display:grid; padding:0 0 14px; }
  .site-footer .footer-accordion .footer-links a { min-height:44px; padding:8px 0; }
  .footer-social-area { padding-top:18px; }
  .site-footer .footer-social-title { margin-inline-end:auto; }
}
@media(max-width:640px) {
  .site-footer { padding:36px 0 22px; }
  .site-footer .footer-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"brand" "menus" "social"; gap:0; padding-bottom:24px; }
  .site-footer .footer-brand > .footer-tagline { margin-top:14px; }
  .site-footer .social-icon { width:44px; height:44px; }
  .site-footer .footer-column h2 { margin-bottom:8px; }
  .site-footer .footer-links { gap:0; }
  .site-footer .footer-links a { min-height:44px; padding:8px 0; font-size:.83rem; line-height:1.55; }
  .site-footer .footer-base { display:flex; flex-direction:column; align-items:flex-start; padding-inline-end:72px; gap:4px; }
  .site-footer .footer-legal a { min-height:44px; }
  .site-footer.footer-actions-left-mobile .footer-base { padding-inline-start:56px; }
}
@media(max-width:640px) {
  .hero-inner { min-height:370px; padding-block:56px; }
  .hero-inner .hero-photo-frame::after { background:linear-gradient(90deg,#06172ded,#06172db5),linear-gradient(0deg,#06172d55,transparent); }
  .hero-article h1 { font-size:clamp(1.95rem,8vw,2.6rem); }
  .blog-article { width:calc(100% - 36px); font-size:1rem; line-height:1.8; }
  .blog-article > .article-meta + p { font-size:1.1em; }
  .blog-article :is(.alignleft,.alignright) { float:none; width:100%; margin-inline:0; }
  .blog-article blockquote { padding:22px; }
}

/* Center the title within mobile banners, including multi-line headings. */
@media(max-width:767px) {
  .hero-inner { display:flex; align-items:center; }
  .hero-home { min-height:420px; padding-block:56px; }
  .hero-home.hero-illustrated .hero-grid { grid-template-columns:minmax(0,1fr); }
  .hero .hero-copy { width:100%; margin-inline:auto; text-align:center; }
  .hero .hero-copy > h1 { margin:0 auto; text-wrap:balance; overflow-wrap:anywhere; }
  .hero-home .hero-photo { inset:0; }
  .hero-home .hero-actions { justify-content:center; }
}

/* Article titles sit below the cover, above the reading column. */
.article-cover { margin:0; overflow:hidden; background:#071b3e; }
.article-cover img { display:block; width:100%; height:clamp(240px,32vw,460px); object-fit:cover; object-position:center 55%; }
.blog-article > .article-heading { max-width:960px; margin:0 auto clamp(28px,4vw,44px); text-align:center; }
.article-heading h1 { margin:0; font-size:clamp(2rem,4.4vw,3.65rem); line-height:1.18; letter-spacing:-.03em; text-wrap:balance; overflow-wrap:anywhere; }

/* More space between the main sections, keeping card and form spacing compact. */
:root { --section-space:clamp(48px,6.8vw,96px); --section-stack-gap:clamp(60px,7.6vw,112px); }
.page-body { padding-block:var(--section-space); }
.page-body > .wp-block-group + .wp-block-group,
.page-body > .wp-block-group + .related-services { margin-top:var(--section-stack-gap); }
.factory-film { padding-block:clamp(56px,8vw,128px); }
.product-films { padding-block:var(--section-space); }
.partners-section { padding-block:clamp(48px,7vw,96px); }
.page-body > .partners-section + .closing-band { margin-top:clamp(28px,4vw,48px); }
.comparison-section { padding-block:clamp(52px,7vw,100px); }
.compliance-section { padding-block:clamp(48px,7vw,72px); }
.blog-article { padding-block:clamp(48px,6vw,88px); }
.product-intro-grid { padding-bottom:clamp(64px,7vw,84px); }
.product-content-grid { padding-bottom:clamp(68px,7vw,88px); }
.product-content .closing-band { margin-top:48px; }
.catalog-section { padding-bottom:clamp(36px,5vw,64px); }

.home-wa-label-short { display:none; }
@media(max-width:767px) {
  .hero-home .hero-actions { flex-wrap:nowrap; gap:8px; margin-top:20px; }
  .hero-home .hero-actions > .button { min-height:44px; padding:8px 10px; gap:6px; font-size:.8rem; line-height:1.4; white-space:nowrap; }
  .hero-home .hero-actions .action-arrow { width:.95em; height:.95em; }
  .home-whatsapp > .whatsapp-icon { width:18px; height:18px; }
  .home-whatsapp .home-wa-label-full { display:none; }
  .home-whatsapp .home-wa-label-short { display:inline; }
}
@media(max-width:359px) {
  .hero-home .hero-actions > .button { padding-inline:9px; font-size:.75rem; }
}
