@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@300;500;600;700&display=swap');

:root { --brand:#19255a; --brand-rgb:25,37,90; --ink:var(--brand); --blue:var(--brand); --blue-dark:var(--brand); --accent:var(--brand); --accent-dark:var(--brand); --muted:rgba(var(--brand-rgb),.68); --paper:#f7f7f5; --white:#fff; --line:rgba(var(--brand-rgb),.12); --shadow:0 20px 60px rgba(var(--brand-rgb),.12); --radius:8px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font:500 16px/1.58 "Inter Tight",Arial,sans-serif; }
body.panel-open { overflow:hidden; }
body.catalog-choice-open { overflow:hidden; }
body.project-lightbox-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
.container { width:min(1240px,calc(100% - 40px)); margin:auto; }
.eyebrow { color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.section { padding:92px 0; }
.section--white { background:#fff; }
.section-head { display:flex; gap:25px; align-items:end; justify-content:space-between; margin-bottom:42px; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:"Inter Tight",Manrope,sans-serif; line-height:1.06; letter-spacing:-.045em; }
h1 { max-width:900px; font-size:clamp(42px,6.8vw,88px); font-weight:800; }
h2 { font-size:clamp(30px,4.2vw,54px); font-weight:800; }
h3 { font-size:20px; font-weight:800; }
.lead { max-width:650px; color:var(--muted); font-size:17px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:15px 24px; border:1px solid transparent; border-radius:14px; background:var(--blue); color:#fff; font-weight:800; font-size:12px; line-height:1.25; letter-spacing:.08em; text-align:center; text-transform:uppercase; overflow-wrap:anywhere; transition:all .3s ease; }
.button:hover { background:var(--blue-dark); box-shadow:0 15px 28px rgba(43,69,148,.25); transform:translateY(-3px); }
.button:disabled,.button:disabled:hover { cursor:not-allowed; opacity:.55; box-shadow:none; transform:none; }
.button--outline { color:var(--blue); background:rgba(255,255,255,.52); border-color:rgba(43,69,148,.28); }
.button--outline:hover { color:#fff; border-color:var(--blue); }
.button--small { min-height:42px; padding:10px 16px; }

/* Header */
.site-header { position:sticky; top:0; z-index:100; border-bottom:1px solid rgba(255,255,255,.45); background:rgba(255,255,255,.76); backdrop-filter:blur(22px) saturate(160%); }
.header-inner { min-height:78px; display:flex; align-items:center; gap:26px; }
.logo { display:flex; flex:0 0 auto; }
.logo img { width:102px; height:auto; display:block; }
.menu-toggle { display:none; width:42px; height:42px; border:0; border-radius:12px; background:#edf0f8; color:var(--ink); font-size:21px; }
.main-nav { display:flex; flex:1; align-items:center; justify-content:center; gap:22px; }
.main-nav a,.catalog-trigger { padding:7px 0; border:0; background:transparent; color:var(--ink); font:800 11px/1.2 Manrope,sans-serif; letter-spacing:.075em; text-transform:uppercase; white-space:nowrap; transition:color .3s ease; }
.main-nav a:hover,.catalog-trigger:hover,.main-nav a.active { color:var(--blue); }
.nav-dropdown { position:relative; }
.dropdown-menu { position:absolute; top:calc(100% + 15px); left:-20px; width:330px; padding:10px; border:1px solid rgba(255,255,255,.8); border-radius:18px; background:rgba(255,255,255,.94); box-shadow:var(--shadow); backdrop-filter:blur(18px); opacity:0; visibility:hidden; transform:translateY(-8px); transition:all .25s ease; }
.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu { opacity:1; visibility:visible; transform:none; }
.dropdown-menu a { display:block; padding:11px 12px; border-radius:10px; font-size:11px; line-height:1.35; white-space:normal; overflow-wrap:anywhere; }
.dropdown-menu a:hover { background:#f0f3fb; }
.header-actions { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.header-phone { font-weight:800; font-size:13px; white-space:nowrap; }
.header-icon { min-width:44px; padding:11px; }
.cart-count { display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 4px; border-radius:50px; background:#fff; color:var(--blue); font-size:10px; }

/* Footer */
.site-footer { background:var(--ink); color:#cdd4eb; padding:70px 0 26px; }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:45px; }
.footer-brand img { width:120px; filter:brightness(0) invert(1); margin-bottom:18px; }
.footer-title { margin-bottom:18px; color:#fff; font-size:14px; letter-spacing:0; }
.footer-copy { max-width:360px; font-size:13px; }
.footer-links { display:grid; gap:10px; font-size:13px; }
.footer-links a { transition:color .3s ease; }
.footer-links a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:55px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); font-size:11px; }

/* Landing */
.home-hero { position:relative; min-height:min(660px,calc(100svh - 78px)); display:grid; align-items:center; overflow:hidden; color:#fff; background:linear-gradient(110deg,rgba(8,15,38,.9),rgba(13,23,54,.53)),url('background.png') center/cover; }
.home-hero::before { display:none; }
.home-hero::after { content:""; position:absolute; inset:auto -10% -40% 45%; height:520px; border-radius:50%; background:rgba(43,69,148,.42); filter:blur(80px); }
.home-hero .container { position:relative; z-index:1; padding:95px 0; }
.home-hero .eyebrow { color:#b9c7ff; }
.home-hero h1 { margin:13px 0 22px; }
.hero-copy { max-width:655px; color:#e4e8f6; font-size:17px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.hero-note { margin-top:64px; display:flex; gap:34px; color:#e5e8f4; font-size:12px; }
.hero-note strong { display:block; color:#fff; font-size:24px; letter-spacing:-.06em; }
.collection-grid { display:grid; grid-template-columns:1.1fr .9fr .9fr; grid-auto-rows:260px; gap:18px; }
.visual-card { position:relative; display:flex; overflow:hidden; align-items:end; padding:28px; border-radius:var(--radius); background:#dde2ee center/cover; color:#fff; box-shadow:0 13px 32px rgba(13,23,54,.1); transition:all .3s ease; }
.visual-card:first-child { grid-row:span 2; }
.visual-card::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,14,33,.78),rgba(7,14,33,.03) 65%); transition:.3s; }
.visual-card:hover { transform:translateY(-7px); box-shadow:0 24px 42px rgba(13,23,54,.2); }
.visual-card:hover::before { background:linear-gradient(0deg,rgba(43,69,148,.88),rgba(7,14,33,.05)); }
.visual-card span { position:relative; font-size:19px; font-weight:800; line-height:1.25; }
.split-feature { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,7vw,100px); align-items:center; }
.feature-art { min-height:520px; position:relative; }
.feature-art img { position:absolute; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
.feature-art img:first-child { width:72%; height:72%; top:0; left:0; }
.feature-art img:last-child { width:59%; height:58%; right:0; bottom:0; border:8px solid #fff; }
.check-list { display:grid; gap:20px; margin-top:32px; }
.check-item { position:relative; padding-left:34px; }
.check-item::before { content:"✓"; position:absolute; top:0; left:0; display:grid; width:23px; height:23px; place-items:center; border-radius:50%; color:#fff; background:var(--blue); font-size:12px; }
.check-item strong { display:block; margin-bottom:4px; }
.company-feature { position:relative; isolation:isolate; background:linear-gradient(rgba(249,249,250,.95),rgba(249,249,250,.95)),url('materials/konoshima-official/ora146h7378r.jpg') center/cover; }
.company-feature::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,transparent 45%,rgba(43,69,148,.06)); }

/* Specializations */
.expertise-section { overflow:hidden; background:#f1f3f9; }
.expertise-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.expertise-card { position:relative; min-height:510px; display:flex; overflow:hidden; flex-direction:column; justify-content:space-between; padding:27px; border-radius:var(--radius); background-color:var(--blue-dark); background-position:center; background-size:cover; color:#fff; isolation:isolate; box-shadow:0 15px 40px rgba(13,23,54,.12); transition:transform .35s ease,box-shadow .35s ease; }
.expertise-card::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(7,14,33,.08) 15%,rgba(7,14,33,.92) 92%); transition:background .35s ease; }
.expertise-card > span { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(255,255,255,.34); border-radius:50%; background:rgba(12,25,61,.18); font-size:10px; font-weight:800; backdrop-filter:blur(8px); }
.expertise-card h3 { max-width:330px; margin:0 0 13px; color:#fff; font-size:clamp(24px,2.5vw,34px); line-height:1.03; }
.expertise-card p { max-width:350px; margin:0; color:#d7dced; font-size:12px; line-height:1.65; }
.expertise-card:hover,.expertise-card:focus-visible { outline:none; box-shadow:0 27px 55px rgba(13,23,54,.24); transform:translateY(-8px); }
.expertise-card:hover::before,.expertise-card:focus-visible::before { background:linear-gradient(180deg,rgba(43,69,148,.12),rgba(23,39,95,.95)); }

/* Partners */
.partners-section { scroll-margin-top:78px; background:#fff; }
.partners-map-area { padding:92px 0 70px; text-align:center; }
.partners-map-area h2 { margin:8px 0 13px; }
.partners-map-intro { max-width:570px; margin:0 auto 18px; color:var(--muted); font-size:13px; }
.partners-map-stage { position:relative; width:min(100%,1080px); margin:0 auto; }
.partners-map-image { display:block; width:100%; height:auto; }
.partners-map-marker { position:absolute; z-index:2; left:var(--map-x); top:var(--map-y); width:38px; height:38px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--blue-dark); transform:translate(-50%,-50%); }
.partners-map-marker i { position:absolute; left:50%; top:50%; width:12px; height:12px; border:3px solid #fff; border-radius:50%; background:var(--blue); box-shadow:0 0 0 2px var(--blue),0 5px 14px rgba(13,23,54,.3); transform:translate(-50%,-50%); transition:transform .25s ease,background .25s ease; }
.partners-map-marker i::after { content:""; position:absolute; inset:-8px; border:1px solid rgba(43,69,148,.35); border-radius:50%; opacity:0; transform:scale(.65); transition:opacity .25s ease,transform .25s ease; }
.partners-map-marker span { position:absolute; left:50%; bottom:31px; padding:5px 9px; border:1px solid rgba(43,69,148,.14); border-radius:8px; background:rgba(255,255,255,.92); box-shadow:0 7px 18px rgba(13,23,54,.09); font-size:9px; font-weight:800; line-height:1; white-space:nowrap; transform:translateX(-50%); transition:background .25s ease,color .25s ease,transform .25s ease; backdrop-filter:blur(8px); }
.partners-map-marker--right span { left:30px; bottom:10px; transform:none; }
.partners-map-marker--left span { right:30px; left:auto; bottom:8px; transform:none; }
.partners-map-marker:hover i,.partners-map-marker:focus-visible i,.partners-map-marker.is-active i { background:#ff7a19; transform:translate(-50%,-50%) scale(1.25); }
.partners-map-marker:hover i::after,.partners-map-marker:focus-visible i::after,.partners-map-marker.is-active i::after { opacity:1; transform:scale(1); }
.partners-map-marker:hover span,.partners-map-marker:focus-visible span,.partners-map-marker.is-active span { background:var(--blue-dark); color:#fff; transform:translateX(-50%) translateY(-2px); }
.partners-map-marker--right:hover span,.partners-map-marker--right:focus-visible span,.partners-map-marker--right.is-active span,.partners-map-marker--left:hover span,.partners-map-marker--left:focus-visible span,.partners-map-marker--left.is-active span { transform:translateY(-2px); }
.partners-map-marker:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.partners-map-status { display:inline-grid; min-width:280px; margin:5px auto 0; padding:13px 22px; border:1px solid rgba(43,69,148,.12); border-radius:15px; background:#f5f7fd; box-shadow:0 10px 26px rgba(13,23,54,.06); }
.partners-map-status span { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.partners-map-status strong { margin-top:1px; font-size:16px; line-height:1.25; }
.partners-map-status small { margin-top:3px; color:var(--blue); font-size:10px; }
.partners-directory { padding:52px 0 56px; background:linear-gradient(125deg,var(--blue-dark),#203b83); color:#fff; }
.partners-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:27px 68px; }
.partner-link { position:relative; display:grid; align-content:center; min-height:57px; padding:4px 0 4px 16px; border-left:1px solid rgba(255,255,255,.2); border-radius:0 12px 12px 0; transition:border-color .25s ease,transform .25s ease,background .25s ease,padding .25s ease; }
.partner-link strong { font-family:"Inter Tight",Manrope,sans-serif; font-size:17px; line-height:1.2; letter-spacing:-.025em; transition:color .25s ease; }
.partner-link strong span { display:inline-block; margin-left:2px; color:#aebcf0; font-size:12px; transition:transform .25s ease,color .25s ease; }
.partner-link small { margin-top:4px; color:#aeb8d7; font-size:10px; line-height:1.3; }
.partner-link:hover,.partner-link:focus-visible { border-color:#fff; outline:none; transform:translateX(4px); }
.partner-link:hover strong,.partner-link:focus-visible strong { color:#dce4ff; }
.partner-link:hover strong span,.partner-link:focus-visible strong span { color:#fff; transform:translate(2px,-2px); }
.partner-link.is-map-active { padding-left:21px; border-color:#fff; background:rgba(255,255,255,.09); }
.partner-link.is-map-active strong { color:#fff; }
.partner-link--placeholder { cursor:pointer; user-select:none; }

/* Homepage catalogue choice */
.catalog-choice-modal { width:min(1040px,calc(100% - 32px)); max-height:calc(100svh - 32px); padding:0; overflow:auto; border:1px solid rgba(255,255,255,.62); border-radius:26px; background:rgba(246,248,255,.94); color:var(--ink); box-shadow:0 35px 100px rgba(7,14,33,.35); opacity:0; transform:translateY(24px) scale(.985); transition:opacity .24s ease,transform .32s cubic-bezier(.2,.8,.2,1); backdrop-filter:blur(24px) saturate(145%); }
.catalog-choice-modal.is-open { opacity:1; transform:none; transition-duration:.3s,.44s; }
.catalog-choice-modal::backdrop { background:rgba(7,14,33,0); backdrop-filter:blur(0); transition:background-color .32s ease,backdrop-filter .32s ease; }
.catalog-choice-modal.is-open::backdrop { background:rgba(7,14,33,.62); backdrop-filter:blur(8px); }
.catalog-choice-header { display:flex; gap:28px; align-items:start; justify-content:space-between; padding:35px 36px 25px; }
.catalog-choice-header > *,.catalog-choice-card { opacity:0; transform:translateY(15px); transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease; transition-delay:0s; }
.catalog-choice-modal.is-open .catalog-choice-header > *,.catalog-choice-modal.is-open .catalog-choice-card { opacity:1; transform:none; transition-duration:.45s,.55s,.3s; }
.catalog-choice-modal.is-open .catalog-choice-header > :first-child { transition-delay:.1s; }
.catalog-choice-modal.is-open .catalog-choice-header > :last-child { transition-delay:.14s; }
.catalog-choice-modal.is-open .catalog-choice-card:nth-child(1) { transition-delay:.16s; }
.catalog-choice-modal.is-open .catalog-choice-card:nth-child(2) { transition-delay:.2s; }
.catalog-choice-modal.is-open .catalog-choice-card:nth-child(3) { transition-delay:.24s; }
.catalog-choice-modal.is-open .catalog-choice-card:nth-child(4) { transition-delay:.28s; }
.catalog-choice-modal.is-open .catalog-choice-card:nth-child(5) { transition-delay:.32s; }
.catalog-choice-header h2 { margin:7px 0 9px; font-size:clamp(30px,4vw,45px); }
.catalog-choice-header p { margin:0; color:var(--muted); font-size:13px; }
.catalog-choice-close { display:grid; width:42px; height:42px; flex:0 0 auto; place-items:center; padding:0; border:0; border-radius:13px; background:#e8ecf8; color:var(--ink); font-size:25px; line-height:1; transition:background .25s ease,color .25s ease,transform .25s ease; }
.catalog-choice-close:hover { background:var(--blue); color:#fff; transform:rotate(4deg); }
.catalog-choice-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; padding:0 18px 18px; }
.catalog-choice-card { position:relative; display:flex; min-height:285px; overflow:hidden; flex-direction:column; justify-content:end; padding:28px; border-radius:19px; background-position:center; background-size:cover; color:#fff; isolation:isolate; }
.catalog-choice-card--large { grid-column:span 3; }
.catalog-choice-card--compact { grid-column:span 2; min-height:200px; padding:24px; }
.catalog-choice-card::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(18,35,82,.08),rgba(18,35,82,.9)); transition:background .3s ease; }
.catalog-choice-card--facade { background-image:url('konoshima main facade.jpg'); }
.catalog-choice-card--dpk { background-image:url('cat-dpk.png'); }
.catalog-choice-card--granite { background-image:url('cat-granite.png'); }
.catalog-choice-card--paving { background-image:url('materials/paving/paving-catalog.png'); background-position:center 58%; }
.catalog-choice-card--components { background-image:url('germetic.png'); background-position:center 42%; }
.catalog-choice-card span { margin-bottom:7px; color:#d6def8; font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.catalog-choice-card strong { max-width:330px; font-family:"Inter Tight",Manrope,sans-serif; font-size:clamp(23px,3vw,33px); line-height:1.04; letter-spacing:-.045em; }
.catalog-choice-card--compact strong { font-size:clamp(20px,2.3vw,27px); }
.catalog-choice-card i { margin-top:25px; font-size:10px; font-style:normal; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.catalog-choice-card:hover,.catalog-choice-card:focus-visible { outline:none; box-shadow:0 22px 45px rgba(23,39,95,.24); transform:translateY(-5px); }
.catalog-choice-modal.is-open .catalog-choice-card:hover,.catalog-choice-modal.is-open .catalog-choice-card:focus-visible { transform:translateY(-5px); }
.catalog-choice-card:hover::before,.catalog-choice-card:focus-visible::before { background:linear-gradient(180deg,rgba(30,61,145,.18),rgba(30,61,145,.94)); }

/* Projects */
.projects-page-hero { min-height:540px; display:grid; align-items:end; background:linear-gradient(105deg,rgba(7,14,33,.92),rgba(13,23,54,.28)),url('projects/fxhaij1s-hero.jpg') center/cover; }
.projects-page-hero::after { width:540px; height:540px; right:-90px; bottom:-370px; background:#6f8dea; opacity:.42; }
.projects-page-hero h1 { margin:16px 0 17px; }
.projects-page-hero p { max-width:620px; }
.projects-gallery-section { background:#f5f6fa; }
.projects-gallery-head { align-items:end; }
.projects-count { display:inline-flex; align-items:center; gap:10px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.projects-count::before { content:""; width:36px; height:1px; background:var(--blue); }
.projects-filters { display:flex; flex-wrap:wrap; gap:10px; margin:-8px 0 18px; }
.projects-filter { min-height:48px; padding:11px 18px; border:1px solid rgba(25,37,90,.18); border-radius:999px; background:#fff; color:rgba(25,37,90,.72); font-size:12px; font-weight:700; line-height:1.2; transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease; }
.projects-filter:hover,.projects-filter:focus-visible { border-color:rgba(25,37,90,.56); color:#19255a; outline:none; transform:translateY(-1px); }
.projects-filter[aria-pressed="true"] { border-color:#19255a; background:#19255a; color:#fff; }
.projects-category-description { max-width:760px; margin:0 0 clamp(30px,4vw,48px); color:var(--muted); font-size:clamp(15px,1.15vw,18px); line-height:1.55; }
.projects-gallery { columns:3 310px; column-gap:18px; }
.project-tile { position:relative; display:block; width:100%; margin:0 0 18px; padding:0; overflow:hidden; break-inside:avoid; border:0; border-radius:20px; background:#dfe3ee; color:#fff; box-shadow:0 10px 26px rgba(13,23,54,.08); opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease; }
.project-tile.is-visible { opacity:1; transform:none; }
.project-tile img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .35s ease; }
.project-tile--portrait img { aspect-ratio:4/5; }
.project-tile--wide img { aspect-ratio:16/10; }
.project-tile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 56%,rgba(7,14,33,.74)); opacity:.62; transition:opacity .3s ease; }
.project-tile span { position:absolute; z-index:2; right:18px; bottom:17px; left:18px; display:flex; align-items:end; justify-content:space-between; gap:18px; text-align:left; }
.project-tile strong { max-width:75%; font-family:"Inter Tight",Manrope,sans-serif; font-size:14px; line-height:1.15; }
.project-tile i { color:#dbe2fb; font-size:9px; font-style:normal; font-weight:800; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.project-tile:hover,.project-tile:focus-visible { outline:none; box-shadow:0 24px 48px rgba(13,23,54,.2); }
.project-tile:hover img,.project-tile:focus-visible img { filter:saturate(1.08); transform:scale(1.045); }
.project-tile:hover::after,.project-tile:focus-visible::after { opacity:.88; }
.project-lightbox { width:min(1220px,calc(100% - 38px)); height:min(88svh,850px); padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:24px; background:#0b1021; color:#fff; box-shadow:0 35px 120px rgba(0,0,0,.5); }
.project-lightbox::backdrop { background:rgba(5,9,20,.88); backdrop-filter:blur(9px); }
.project-lightbox figure { width:100%; height:100%; display:grid; grid-template-rows:minmax(0,1fr) auto; margin:0; }
.project-lightbox-media { min-height:0; display:grid; place-items:center; overflow:hidden; }
.project-lightbox img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; opacity:1; transform:scale(1); transition:opacity .2s ease,transform .3s ease; }
.project-lightbox img.is-changing { opacity:0; transform:scale(.985); }
.project-lightbox figcaption { display:flex; min-height:64px; align-items:center; justify-content:space-between; gap:20px; padding:13px 82px 13px 24px; border-top:1px solid rgba(255,255,255,.1); color:#cdd4eb; font-size:12px; }
.project-lightbox figcaption strong { color:#fff; }
.project-lightbox-close,.project-lightbox-nav { position:absolute; z-index:3; display:grid; place-items:center; border:1px solid rgba(255,255,255,.15); border-radius:50%; background:rgba(13,23,54,.66); color:#fff; backdrop-filter:blur(10px); transition:background .25s ease,transform .25s ease; }
.project-lightbox-close { top:16px; right:16px; width:42px; height:42px; font-size:24px; }
.project-lightbox-nav { top:50%; width:48px; height:48px; font-size:23px; transform:translateY(-50%); }
.project-lightbox-prev { left:16px; }
.project-lightbox-next { right:16px; }
.project-lightbox-close:hover,.project-lightbox-close:focus-visible { outline:none; background:var(--blue); transform:rotate(4deg); }
.project-lightbox-nav:hover,.project-lightbox-nav:focus-visible { outline:none; background:var(--blue); }
.project-lightbox-nav:hover { transform:translateY(-50%) scale(1.06); }

/* Konoshima virtual showroom */
.showroom-section { position:relative; isolation:isolate; overflow:hidden; padding:112px 0 96px; background:#14171c; color:#f5f4f0; }
.showroom-section::before { content:""; position:absolute; z-index:-2; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(90deg,#000,transparent 62%); }
.showroom-section::after { content:""; position:absolute; z-index:-1; width:620px; height:620px; top:-290px; right:-180px; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 85px rgba(255,255,255,.025),0 0 0 170px rgba(255,255,255,.018); }
.showroom-intro { margin-bottom:46px; }
.showroom-kicker { display:flex; align-items:center; gap:15px; margin-bottom:27px; color:#c9c5b9; font-size:10px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.showroom-kicker i { width:44px; height:1px; background:#898579; }
.showroom-heading { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr); gap:clamp(38px,7vw,105px); align-items:end; }
.showroom-heading h2 { max-width:790px; margin:0; color:#fff; font-size:clamp(42px,5.8vw,78px); line-height:.99; letter-spacing:-.065em; }
.showroom-copy { padding-left:25px; border-left:1px solid rgba(255,255,255,.22); }
.showroom-copy p { margin-bottom:25px; color:#babdc5; font-size:14px; line-height:1.75; }
.showroom-link { display:inline-flex; align-items:center; gap:10px; color:#fff; font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.showroom-link svg { width:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.showroom-link::after { content:""; width:34px; height:1px; margin-left:4px; background:#fff; transition:width .25s ease; }
.showroom-link:hover::after { width:54px; }
.showroom-frame-shell { position:relative; width:100%; max-width:1200px; margin:0 auto; padding:8px 8px 0; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:#0d1015; box-shadow:0 26px 80px rgba(0,0,0,.34); }
.showroom-frame-shell iframe { display:block; width:100%; height:800px; border:none; border-radius:12px; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.1); }
.showroom-fallback { position:absolute; z-index:3; inset:8px 8px 62px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:25px; align-items:center; padding:clamp(30px,6vw,80px); border-radius:12px; background:radial-gradient(circle at 78% 25%,rgba(74,83,103,.34),transparent 34%),linear-gradient(135deg,#191d24,#101216); transition:opacity .45s ease,visibility .45s ease; }
.showroom-frame-shell.is-loaded .showroom-fallback { opacity:0; visibility:hidden; pointer-events:none; }
.showroom-fallback-icon { display:grid; width:84px; height:84px; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; color:#fff; }
.showroom-fallback-icon svg { width:47px; fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; animation:showroom-cube 7s ease-in-out infinite; }
.showroom-fallback-label { color:#aaa698; font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.showroom-fallback h3 { margin:10px 0 12px; color:#fff; font-size:clamp(25px,3.2vw,42px); letter-spacing:-.05em; }
.showroom-fallback p { max-width:570px; margin:0; color:#aeb2bc; font-size:12px; }
.showroom-fallback-button { max-width:300px; padding-inline:20px; background:#f3f1ea; color:#15181e; }
.showroom-fallback-button:hover { background:#fff; color:#15181e; }
.showroom-fallback-button svg { width:22px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.showroom-fallback-button span { display:block; font-size:8px; opacity:.58; }
.showroom-frame-footer { min-height:54px; display:flex; align-items:center; gap:22px; padding:10px 13px; color:#8f949f; font-size:9px; letter-spacing:.04em; }
.showroom-frame-footer > span:nth-child(2) { flex:1; }
.showroom-frame-footer a { color:#fff; font-weight:800; }
.showroom-status { display:inline-flex; align-items:center; gap:8px; color:#d7d9df; font-weight:700; }
.showroom-status i { width:7px; height:7px; border-radius:50%; background:#d3a94c; box-shadow:0 0 0 4px rgba(211,169,76,.12); animation:showroom-pulse 1.7s ease infinite; }
.showroom-frame-shell.is-loaded .showroom-status i { background:#61ad83; box-shadow:0 0 0 4px rgba(97,173,131,.13); animation:none; }
.showroom-frame-shell.is-error .showroom-status i { background:#ce6172; box-shadow:0 0 0 4px rgba(206,97,114,.13); animation:none; }
.showroom-noscript { padding:15px; color:#fff; font-size:12px; }
.showroom-noscript a { text-decoration:underline; }
.showroom-guide { display:grid; grid-template-columns:230px minmax(0,1fr); gap:45px; align-items:stretch; margin-top:28px; padding-top:28px; border-top:1px solid rgba(255,255,255,.14); }
.showroom-guide-title { display:flex; flex-direction:column; justify-content:space-between; color:#969aa4; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.showroom-guide-title strong { max-width:150px; color:#fff; font-size:23px; line-height:1.08; letter-spacing:-.04em; text-transform:none; }
.showroom-steps { display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding:0; list-style:none; }
.showroom-steps li { position:relative; min-height:172px; display:grid; grid-template-columns:42px 1fr; gap:18px; align-content:start; padding:18px 27px; border-left:1px solid rgba(255,255,255,.14); }
.showroom-steps svg { width:31px; grid-column:1; margin-top:33px; fill:none; stroke:#d6d2c7; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.showroom-step-number { position:absolute; top:18px; right:22px; color:#686d77; font-size:10px; font-weight:800; letter-spacing:.13em; }
.showroom-steps div { grid-column:2; grid-row:1; padding-top:30px; }
.showroom-steps strong { display:block; margin-bottom:8px; color:#fff; font-size:13px; }
.showroom-steps p { margin:0; color:#9499a4; font-size:10px; line-height:1.65; }
.showroom-disclaimer { max-width:850px; margin:25px 0 0 auto; color:#777c86; font-size:9px; text-align:right; }
.reveal-enabled [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .7s ease var(--reveal-delay,0ms),transform .7s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms); }
.reveal-enabled [data-reveal="media"] { transform:translateY(22px) scale(.985); }
.reveal-enabled [data-reveal].is-visible { opacity:1; transform:none; }
@keyframes showroom-cube { 0%,100% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-5px); } }
@keyframes showroom-pulse { 50% { opacity:.45; transform:scale(.82); } }

/* Generic and catalogue pages */
.page-hero { position:relative; overflow:hidden; padding:105px 0 72px; background:linear-gradient(125deg,#0d1736,#17255a); color:#fff; }
.page-hero::before { display:none; }
.page-hero::after { content:""; position:absolute; width:440px; height:440px; right:3%; bottom:-260px; border-radius:50%; background:#3e63ce; filter:blur(15px); opacity:.5; }
.page-hero--konoshima::after { width:440px; height:440px; right:3%; bottom:-260px; border-radius:50%; background:#3e63ce; filter:blur(15px); opacity:.5; transform:none; box-shadow:none; }
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { margin:13px 0 18px; }
.page-hero p { max-width:650px; color:#d9e1fb; font-size:16px; }
.breadcrumbs { display:flex; gap:8px; color:#b9c7ff; font-size:11px; font-weight:700; }
.catalog-showroom-cta { position:relative; z-index:2; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:20px; align-items:center; max-width:930px; margin-top:34px; padding:18px 20px; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:rgba(255,255,255,.08); box-shadow:0 18px 50px rgba(0,0,0,.16); backdrop-filter:blur(16px); }
.catalog-showroom-icon { display:grid; width:54px; height:54px; place-items:center; border-radius:15px; background:#eef1fb; color:var(--blue); }
.catalog-showroom-icon svg { width:30px; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linejoin:round; }
.catalog-showroom-cta span,.catalog-showroom-cta small { display:block; }
.catalog-showroom-cta span { margin-bottom:4px; color:#b9c7ff; font-size:9px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.catalog-showroom-cta strong { display:block; color:#fff; font-family:"Inter Tight",Manrope,sans-serif; font-size:18px; line-height:1.2; }
.catalog-showroom-cta small { margin-top:4px; color:#d9e1fb; font-size:10px; }
.catalog-showroom-cta .button--light { min-height:46px; background:#fff; color:var(--blue); }
.catalog-showroom-cta .button--light:hover { background:#eef1fb; color:var(--blue-dark); }
.catalog-showroom-cta .button svg { width:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.content-grid { display:grid; grid-template-columns:260px minmax(0,1fr); gap:30px; align-items:start; }
.filter-panel { position:sticky; top:98px; padding:24px; border-radius:20px; background:#fff; box-shadow:0 10px 30px rgba(13,23,54,.06); }
.filter-panel h3 { margin-bottom:12px; font-size:14px; letter-spacing:0; }
.filter-group { display:grid; gap:9px; padding:17px 0; border-top:1px solid var(--line); }
.filter-label { color:var(--muted); font-size:12px; cursor:pointer; }
.filter-label input { accent-color:var(--blue); }
.sealant-feature { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr); min-height:370px; margin-bottom:28px; overflow:hidden; border:1px solid rgba(13,23,54,.07); border-radius:24px; background:#fff; box-shadow:0 14px 38px rgba(13,23,54,.07); }
.sealant-feature-media { min-height:370px; overflow:hidden; background:#fff; }
.sealant-feature-media img { width:100%; height:100%; min-height:370px; object-fit:contain; }
.sealant-feature-content { display:flex; flex-direction:column; justify-content:center; padding:clamp(28px,5vw,58px); background:linear-gradient(135deg,#f5f7fd,#e8edfa); }
.sealant-feature-content h2 { margin:8px 0 14px; font-size:clamp(30px,4vw,48px); }
.sealant-feature-content p { max-width:650px; margin:0; color:var(--muted); font-size:14px; }
.sealant-palette { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:24px 0; }
.sealant-palette i { width:29px; height:29px; flex:0 0 auto; border:2px solid #fff; border-radius:50%; background:var(--swatch); box-shadow:0 0 0 1px rgba(13,23,54,.13),0 4px 10px rgba(13,23,54,.1); }
.sealant-palette span { margin-left:6px; color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.sealant-feature-actions { display:flex; flex-wrap:wrap; gap:10px; }
.sealant-feature-actions .button--outline { background:transparent; }
.products-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.product-card { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid rgba(13,23,54,.06); border-radius:20px; background:#fff; box-shadow:0 6px 22px rgba(13,23,54,.04); transition:all .3s ease; }
.product-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.product-card[hidden] { display:none; }
.product-card--clickable { cursor:pointer; }
.product-card-stretched-link { position:absolute; z-index:1; inset:0; border-radius:inherit; }
.product-card-stretched-link:focus-visible { outline:3px solid var(--blue); outline-offset:-4px; }
.product-card--clickable .product-actions { position:relative; z-index:2; }
.product-image { min-height:180px; display:grid; place-items:center; padding:22px; background:linear-gradient(135deg,#e8ecf6,#cdd4e7); color:#627092; text-align:center; font-size:12px; }
.product-image--photo { position:relative; padding:0; overflow:hidden; background:#fff !important; }
.product-image--photo::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(13,23,54,.05); }
.product-image--photo img { width:100%; height:225px; object-fit:cover; transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.paving-product-image img { box-sizing:border-box; padding:12px; object-fit:contain; background:#fff; }
.product-card:hover .product-image--photo img { transform:scale(1.065); }
.product-card:nth-child(3n+2) .product-image { background:linear-gradient(135deg,#e7e1d7,#c9b9a5); }
.product-card:nth-child(3n) .product-image { background:linear-gradient(135deg,#e2e5e4,#aeb7b5); }
.product-body { display:flex; flex:1; flex-direction:column; padding:20px; }
.product-tag { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.product-title { margin:10px 0 13px; font-size:17px; letter-spacing:-.04em; }
.product-meta { margin-bottom:18px; color:var(--muted); font-size:12px; }
.product-price { margin:-5px 0 18px; color:var(--ink); font-size:20px; font-weight:800; letter-spacing:-.05em; }
.product-price small { display:block; margin-top:3px; color:var(--muted); font-size:10px; font-weight:600; letter-spacing:0; }
.product-actions { display:flex; gap:8px; margin-top:auto; }
.product-actions .button { flex:1; }
.product-actions .button:first-child { color:var(--blue); background:#eef1f8; }
.catalog-intro { display:grid; grid-template-columns:1.2fr .8fr; gap:26px; margin-bottom:30px; }
.fact-card { padding:26px; border-radius:20px; background:#e9edfa; }
.fact-card strong { display:block; font-size:32px; letter-spacing:-.07em; }
.catalog-toolbar { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:16px; margin-bottom:24px; padding:18px; border-radius:20px; background:#fff; box-shadow:0 8px 26px rgba(13,23,54,.05); }
.catalog-toolbar label { display:grid; gap:6px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.catalog-toolbar input,.catalog-toolbar select { width:100%; min-height:48px; padding:11px 14px; border:1px solid #dfe4f1; border-radius:12px; background:#fafbfe; color:var(--ink); outline:none; }
.catalog-toolbar input:focus,.catalog-toolbar select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(43,69,148,.1); }
.catalog-result-line { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:36px; margin-bottom:14px; color:var(--muted); font-size:11px; }
.catalog-result-line strong { color:var(--ink); font-size:15px; }
.catalog-result-line a { color:var(--blue); font-weight:800; }
.catalog-empty { padding:50px 28px; border-radius:20px; background:#fff; color:var(--muted); text-align:center; }
.catalog-empty a { color:var(--blue); font-weight:800; }
.product-image--placeholder { min-height:225px; grid-template-rows:auto auto; align-content:center; gap:7px; background:linear-gradient(135deg,#e7ebf8,#c9d2ec) !important; }
.product-image--placeholder span { color:var(--ink); font-size:20px; font-weight:800; letter-spacing:-.05em; }
.product-image--placeholder small { color:var(--blue); font-weight:700; }
.product-image--component { min-height:225px; background:linear-gradient(135deg,#17275f,#3e63ce) !important; color:#fff; }
.product-image--component span { max-width:210px; font-size:20px; font-weight:800; line-height:1.15; }
.product-image--component-photo img { object-fit:contain; background:#fff; }
.product-color-note { display:flex; gap:8px; align-items:center; margin:12px 0 -2px; color:var(--blue-dark); font-size:11px; font-weight:800; }
.product-color-dot { width:18px; height:18px; flex:0 0 auto; border:3px solid #fff; border-radius:50%; background:conic-gradient(#eee9df,#c3ae93,#7b6354,#343736,#eee9df); box-shadow:0 0 0 1px rgba(13,23,54,.15); }
.product-badges { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:12px; }
.stock-badge,.product-promo { display:inline-flex; align-items:center; min-height:25px; padding:5px 9px; border-radius:40px; font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.stock-badge--in-stock { background:#e6f5ec; color:#197244; }
.stock-badge--order { background:#e9edfa; color:var(--blue); }
.stock-badge--out-of-stock { background:#f1f2f5; color:#777f90; }
.product-promo { background:#fff0be; color:#775500; }
.stock-note { display:block; margin:-9px 0 15px; color:#9a6420; font-size:10px; }
.catalog-notes { margin-top:34px; padding:24px 28px; border-radius:20px; background:#fff; box-shadow:0 8px 26px rgba(13,23,54,.05); }
.catalog-toolbar--dpk { align-items:end; }
.dpk-filter-summary { display:grid; align-content:center; min-height:48px; padding:7px 15px; border-radius:12px; background:#eef1f8; }
.dpk-filter-summary span { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.dpk-filter-summary strong { color:var(--blue-dark); font-size:16px; }
.dpk-palette-section { margin-bottom:30px; padding:clamp(24px,4vw,40px); border:1px solid rgba(13,23,54,.07); border-radius:24px; background:#fff; box-shadow:0 12px 34px rgba(13,23,54,.06); }
.dpk-palette-heading { display:flex; justify-content:space-between; gap:28px; align-items:end; margin-bottom:24px; }
.dpk-palette-heading h2 { margin:6px 0 0; font-size:clamp(26px,3vw,38px); }
.dpk-palette-heading > p { max-width:390px; margin:0; color:var(--muted); font-size:12px; text-align:right; }
.dpk-color-palette { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.dpk-color-card { display:flex; min-width:0; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:14px; background:#fafbfe; }
.dpk-color-card > i { width:42px; height:42px; flex:0 0 auto; border:3px solid #fff; border-radius:12px; background:linear-gradient(145deg,color-mix(in srgb,var(--dpk-swatch),#fff 18%),var(--dpk-swatch)); box-shadow:0 0 0 1px rgba(13,23,54,.13),0 5px 13px rgba(13,23,54,.12); }
.dpk-color-card span,.dpk-color-card strong,.dpk-color-card small { display:block; min-width:0; }
.dpk-color-card strong { color:var(--ink); font-size:11px; line-height:1.25; }
.dpk-color-card small { margin-top:4px; color:var(--muted); font-size:8px; line-height:1.25; }
.dpk-palette-note { margin:18px 0 0; color:var(--muted); font-size:9px; }
.dpk-color-filters .filter-label { display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; gap:8px; }
.dpk-color-filters .filter-label > i { width:17px; height:17px; border:2px solid #fff; border-radius:50%; background:var(--dpk-swatch); box-shadow:0 0 0 1px rgba(13,23,54,.14); }
.dpk-color-filters .filter-label span { min-width:0; }
.dpk-color-filters .filter-label small { color:#8b93a6; font-size:8px; font-weight:800; }
.filter-reset { width:100%; margin-bottom:10px; padding:9px 12px; border:0; border-radius:10px; background:#eef1f8; color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.filter-reset:hover { background:#dfe5f5; }
.filter-reset:disabled { opacity:.48; cursor:default; }
.catalog-notes summary { cursor:pointer; color:var(--ink); font-weight:800; }
.catalog-notes ul { margin:18px 0 0; padding-left:20px; color:var(--muted); font-size:12px; }
.product-detail-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(34px,7vw,96px); align-items:start; }
.product-detail-image { position:sticky; top:105px; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow); }
.product-detail-image .product-image { min-height:520px; }
.product-detail-image .product-image--photo img { height:520px; }
.product-detail-price { margin:30px 0 24px; color:var(--ink); font-size:44px; font-weight:800; letter-spacing:-.07em; }
.product-detail-price small { display:block; color:var(--muted); font-size:11px; font-weight:600; letter-spacing:0; }
.product-detail-price--request { font-size:38px; }
.product-detail-description { margin:14px 0 0; color:var(--muted); font-size:13px; }
.product-detail-promo { display:inline-flex; margin:4px 0 0; padding:9px 13px; border-radius:10px; background:#fff0be; color:#775500; font-size:11px; font-weight:800; }
.product-specs { margin:0; border-top:1px solid var(--line); }
.product-specs div { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:13px 0; border-bottom:1px solid var(--line); }
.product-specs dt { color:var(--muted); font-size:11px; }
.product-specs dd { margin:0; font-size:12px; font-weight:800; }
.dpk-detail-palette { margin-top:28px; }
.dpk-detail-palette h3 { margin-bottom:13px; font-size:15px; }
.dpk-detail-palette > p { margin:13px 0 0; color:var(--muted); font-size:9px; }
.dpk-detail-colors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.dpk-detail-color { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1px 9px; align-items:center; min-width:0; padding:10px; border:1px solid var(--line); border-radius:12px; background:#fafbfe; }
.dpk-detail-color i { grid-row:1 / 3; width:30px; height:30px; border:2px solid #fff; border-radius:9px; background:var(--dpk-swatch); box-shadow:0 0 0 1px rgba(13,23,54,.14); }
.dpk-detail-color b { overflow:hidden; color:var(--ink); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.dpk-detail-color small { overflow:hidden; color:var(--muted); font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
.dpk-detail-select { display:grid; gap:7px; margin-top:20px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.dpk-detail-select select { min-height:48px; padding:10px 13px; border:1px solid #dfe4f1; border-radius:12px; background:#fafbfe; color:var(--ink); font:inherit; font-size:11px; letter-spacing:0; text-transform:none; }
.product-source-link { display:inline-block; margin-top:20px; color:var(--blue); font-size:10px; font-weight:800; }
.catalog-loading { padding:80px 20px; color:var(--muted); text-align:center; }

/* Services and project request */
.services-hero { min-height:620px; display:grid; align-items:center; padding:95px 0 82px; background:linear-gradient(118deg,#0b1432 0%,#182b69 62%,#3556b5 100%); }
.services-hero::before { content:""; position:absolute; inset:0; display:block; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size:54px 54px; mask-image:linear-gradient(90deg,transparent,#000); }
.services-hero::after { width:560px; height:560px; right:-120px; bottom:-330px; background:#7898ff; opacity:.32; }
.services-hero-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:clamp(45px,8vw,115px); align-items:end; margin-top:48px; }
.services-hero .eyebrow { color:#b9c7ff; }
.services-hero h1 { max-width:820px; margin:12px 0 20px; font-size:clamp(46px,6.5vw,82px); }
.services-hero p { max-width:660px; }
.services-hero .button--light { background:#fff; color:var(--blue); }
.services-hero .button--light:hover { background:#eef1fb; color:var(--blue-dark); }
.services-hero-outline { border-color:rgba(255,255,255,.38); background:rgba(255,255,255,.07); color:#fff; }
.services-hero-outline:hover { border-color:#fff; background:#fff; color:var(--blue); }
.services-hero-summary { display:grid; gap:0; padding:28px; border:1px solid rgba(255,255,255,.18); border-radius:22px; background:rgba(7,14,33,.24); box-shadow:0 24px 65px rgba(0,0,0,.15); backdrop-filter:blur(18px); }
.services-hero-summary span { margin-bottom:16px; color:#b9c7ff; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.services-hero-summary strong { padding:13px 0; border-top:1px solid rgba(255,255,255,.13); color:#fff; font-family:"Inter Tight",Manrope,sans-serif; font-size:20px; line-height:1.15; }
.services-choice-section { background:#f4f6fb; }
.services-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.service-path { position:relative; min-height:535px; display:flex; overflow:hidden; flex-direction:column; justify-content:space-between; padding:clamp(27px,4vw,46px); border-radius:26px; isolation:isolate; box-shadow:0 15px 40px rgba(13,23,54,.09); }
.service-path--talk { background:linear-gradient(125deg,rgba(9,18,47,.95),rgba(23,39,95,.74)),url('projects/01.jpg') center/cover; color:#fff; }
.service-path--calculation { border:1px solid rgba(43,69,148,.09); background:linear-gradient(145deg,#fff,#e9edfa); }
.service-path--calculation::after { content:""; position:absolute; z-index:-1; width:310px; height:310px; top:-130px; right:-80px; border:42px solid rgba(43,69,148,.07); border-radius:50%; }
.service-path-number { align-self:flex-end; display:grid; width:48px; height:48px; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:11px; font-weight:800; opacity:.7; }
.service-path .eyebrow { margin-bottom:12px; }
.service-path--talk .eyebrow { color:#b9c7ff; }
.service-path h3 { max-width:520px; margin-bottom:16px; font-size:clamp(32px,4vw,52px); }
.service-path p { max-width:520px; color:var(--muted); font-size:14px; }
.service-path--talk p { color:#d7dced; }
.service-path ul { display:grid; gap:8px; margin:22px 0 30px; padding:0; list-style:none; font-size:12px; }
.service-path li { position:relative; padding-left:22px; }
.service-path li::before { content:""; position:absolute; top:.62em; left:0; width:8px; height:8px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 4px rgba(43,69,148,.12); }
.service-path--talk li::before { background:#b9c7ff; box-shadow:0 0 0 4px rgba(185,199,255,.14); }
.service-path .button { width:max-content; }
.service-path--talk .button { background:#fff; color:var(--blue); }
.services-process-section { overflow:hidden; }
.services-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; padding:0; list-style:none; counter-reset:service-step; }
.services-process li { position:relative; min-height:260px; padding:28px 28px 24px; border-top:1px solid var(--line); border-right:1px solid var(--line); }
.services-process li:last-child { border-right:0; }
.services-process li > span { display:grid; width:38px; height:38px; place-items:center; margin-bottom:62px; border-radius:12px; background:#edf1fb; color:var(--blue); font-size:10px; font-weight:800; }
.services-process strong { display:block; margin-bottom:9px; font-size:15px; }
.services-process p { margin:0; color:var(--muted); font-size:11px; }
.project-request-section { scroll-margin-top:78px; padding:100px 0; background:linear-gradient(125deg,#0b1432,#17275f); color:#fff; }
.project-request-layout { display:grid; grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr); gap:clamp(45px,7vw,90px); align-items:start; }
.project-request-aside { position:sticky; top:112px; }
.project-request-aside .eyebrow { color:#aebcf0; }
.project-request-aside h2 { margin:10px 0 18px; color:#fff; }
.project-request-aside > p { color:#cdd4eb; }
.project-source-list { display:grid; gap:13px; margin-top:38px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); }
.project-source-list > strong { margin-bottom:5px; font-size:13px; }
.project-source-list span { display:flex; gap:12px; align-items:center; color:#cbd3ec; font-size:11px; }
.project-source-list i { display:grid; width:39px; height:27px; flex:0 0 auto; place-items:center; border-radius:8px; background:rgba(255,255,255,.1); color:#fff; font-size:8px; font-style:normal; font-weight:800; letter-spacing:.06em; }
.project-request-note { margin-top:38px; padding:20px; border:1px solid rgba(255,255,255,.12); border-radius:17px; background:rgba(255,255,255,.06); }
.project-request-note strong { display:block; margin-bottom:5px; color:#fff; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.project-request-note p { margin:0; color:#b9c3df; font-size:10px; }
.project-request-form { overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:28px; background:#fff; color:var(--ink); box-shadow:0 28px 80px rgba(0,0,0,.23); }
.project-form-section { min-width:0; margin:0; padding:34px clamp(22px,5vw,48px) 40px; border:0; border-bottom:1px solid var(--line); }
.project-form-section legend { width:100%; padding:0; color:var(--ink); font-family:"Inter Tight",Manrope,sans-serif; font-size:21px; font-weight:800; letter-spacing:-.03em; }
.project-form-section legend span { display:inline-grid; width:33px; height:33px; margin-right:11px; place-items:center; border-radius:10px; background:#edf1fb; color:var(--blue); font-family:Manrope,sans-serif; font-size:9px; letter-spacing:0; vertical-align:middle; }
.project-request-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin-top:24px; }
.project-request-types label { position:relative; cursor:pointer; }
.project-request-types input { position:absolute; opacity:0; pointer-events:none; }
.project-request-types label > span { display:flex; min-height:142px; flex-direction:column; padding:19px; border:1px solid #dfe4f1; border-radius:16px; background:#fafbfe; transition:border-color .2s,background .2s,box-shadow .2s; }
.project-request-types b { display:block; margin-bottom:8px; font-size:12px; }
.project-request-types small { color:var(--muted); font-size:9px; line-height:1.55; }
.project-request-types input:checked + span { border-color:var(--blue); background:#eef2fc; box-shadow:0 0 0 3px rgba(43,69,148,.08); }
.project-request-types input:focus-visible + span { outline:2px solid var(--blue); outline-offset:2px; }
.project-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; margin-top:25px; }
.project-field { display:grid; gap:7px; min-width:0; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.project-field--wide { grid-column:1/-1; }
.project-field input,.project-field select,.project-field textarea { width:100%; min-height:50px; padding:13px 15px; border:1px solid #dfe4f1; border-radius:12px; background:#fafbfe; color:var(--ink); font:600 12px/1.45 Manrope,Arial,sans-serif; letter-spacing:0; text-transform:none; outline:none; transition:border-color .2s,box-shadow .2s,background .2s; }
.project-field textarea { min-height:140px; resize:vertical; }
.project-field input:focus,.project-field select:focus,.project-field textarea:focus { border-color:var(--blue); background:#fff; box-shadow:0 0 0 3px rgba(43,69,148,.09); }
.project-field.has-error input,.project-field.has-error select,.project-field.has-error textarea { border-color:#b13d52; box-shadow:0 0 0 3px rgba(177,61,82,.07); }
.project-field-error { min-height:0; color:#aa334b; font-size:10px; font-weight:700; letter-spacing:0; line-height:1.35; text-transform:none; }
.project-field-error:empty { display:none; }
.project-file-drop { position:relative; display:grid; min-height:190px; margin-top:24px; place-items:center; align-content:center; padding:25px; border:1px dashed #aeb9d5; border-radius:18px; background:#f7f9fd; text-align:center; cursor:pointer; transition:border-color .2s,background .2s,transform .2s; }
.project-file-drop:hover,.project-file-drop.is-dragging { border-color:var(--blue); background:#eef2fc; transform:translateY(-2px); }
.project-file-drop input { position:absolute; width:1px; height:1px; opacity:0; }
.project-file-icon { display:grid; width:46px; height:46px; margin-bottom:12px; place-items:center; border-radius:14px; background:var(--blue); color:#fff; font-size:24px; line-height:1; }
.project-file-drop strong { font-size:12px; }
.project-file-drop small { margin-top:5px; color:var(--muted); font-size:9px; }
.project-file-list { display:grid; gap:8px; margin-top:12px; }
.project-file-item { display:flex; gap:12px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:#fafbfe; }
.project-file-item i { display:grid; width:34px; height:28px; flex:0 0 auto; place-items:center; border-radius:8px; background:#e9edfa; color:var(--blue); font-size:8px; font-style:normal; font-weight:800; text-transform:uppercase; }
.project-file-item div { min-width:0; flex:1; }
.project-file-item strong { display:block; overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.project-file-item small { color:var(--muted); font-size:8px; }
.project-file-item button { display:grid; width:28px; height:28px; flex:0 0 auto; place-items:center; padding:0; border:0; border-radius:8px; background:#f7e9ed; color:#a82f48; font-size:17px; }
.project-files-error { display:block; margin-top:9px; }
.project-consent { display:flex; gap:12px; align-items:flex-start; margin:30px clamp(22px,5vw,48px) 0; color:var(--muted); font-size:10px; cursor:pointer; }
.project-consent input { width:18px; height:18px; flex:0 0 auto; margin:1px 0 0; accent-color:var(--blue); }
.project-consent.has-error { color:#9f2f47; }
.project-consent-error { display:block; margin:7px clamp(22px,5vw,48px) 0; }
.project-form-submit { display:flex; gap:24px; align-items:center; padding:27px clamp(22px,5vw,48px) 34px; }
.project-form-submit span { max-width:340px; color:var(--muted); font-size:9px; }
.project-request-form > .request-message { margin:0 clamp(22px,5vw,48px) 34px; }

@media (max-width:950px) {
  .services-hero-layout { grid-template-columns:1fr; }
  .services-hero-summary { grid-template-columns:repeat(3,1fr); }
  .services-hero-summary span { grid-column:1/-1; }
  .services-hero-summary strong { padding-right:15px; }
  .services-choice-grid,.project-request-layout { grid-template-columns:1fr; }
  .project-request-aside { position:static; }
  .services-process { grid-template-columns:repeat(2,1fr); }
  .services-process li:nth-child(2) { border-right:0; }
}
@media (max-width:650px) {
  .services-hero { min-height:0; padding:78px 0 58px; }
  .services-hero-layout { margin-top:28px; }
  .services-hero h1 { font-size:42px; }
  .services-hero-summary { grid-template-columns:1fr; }
  .services-hero-summary span { grid-column:auto; }
  .service-path { min-height:500px; }
  .services-process { grid-template-columns:1fr; }
  .services-process li { min-height:220px; border-right:0; }
  .services-process li > span { margin-bottom:38px; }
  .project-request-section { padding:70px 0; }
  .project-request-layout { gap:34px; }
  .project-form-section { padding-top:28px; }
  .project-request-types,.project-form-grid { grid-template-columns:1fr; }
  .project-request-types label > span { min-height:108px; }
  .project-field--wide { grid-column:auto; }
  .project-form-submit { display:grid; }
  .project-form-submit .button { width:100%; }
}

/* Placeholder pages */
.service-grid,.partner-grid,.docs-grid,.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.info-card { min-height:240px; padding:28px; border:1px solid rgba(13,23,54,.06); border-radius:var(--radius); background:#fff; box-shadow:0 8px 28px rgba(13,23,54,.04); transition:all .3s ease; }
.info-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.info-number { display:grid; place-items:center; width:40px; height:40px; margin-bottom:45px; border-radius:13px; background:#eef1fb; color:var(--blue); font-weight:800; }
.info-card p { color:var(--muted); font-size:13px; }
.partner-grid { grid-template-columns:1fr .9fr; }
.partner-form { padding:clamp(25px,5vw,56px); border-radius:var(--radius); background:var(--ink); color:#fff; box-shadow:var(--shadow); }
.partner-form h2 { max-width:470px; }
.partner-form .form-field { border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; }
.partner-form .form-field::placeholder { color:#b8c2df; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:25px; }
.form-field { width:100%; min-height:52px; padding:14px 16px; border:1px solid #dfe4f1; border-radius:13px; background:#fff; outline:none; transition:border .2s; }
.form-field:focus { border-color:var(--blue); }
.form-field--wide { grid-column:1/-1; min-height:100px; resize:vertical; }
.aside-note { padding:38px; border-radius:var(--radius); background:linear-gradient(145deg,#e5e9f7,#f7f8fd); }
.aside-note ul { padding-left:20px; color:var(--muted); font-size:13px; }
.doc-card { display:flex; min-height:195px; flex-direction:column; justify-content:space-between; }
.doc-type { color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.1em; }
.location-grid { grid-template-columns:1.05fr .95fr; }
.map-box { min-height:390px; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow); }
.map-box iframe { width:100%; height:100%; border:0; }

/* Panels */
.overlay { position:fixed; inset:0; z-index:400; background:rgba(7,14,33,.45); backdrop-filter:blur(5px); opacity:0; visibility:hidden; transition:all .3s ease; }
.overlay.active { opacity:1; visibility:visible; }
.side-panel { position:fixed; z-index:500; top:14px; right:14px; bottom:14px; display:flex; flex-direction:column; width:min(440px,calc(100% - 28px)); padding:27px; border:1px solid rgba(255,255,255,.75); border-radius:24px; background:rgba(255,255,255,.91); box-shadow:-12px 20px 55px rgba(13,23,54,.2); backdrop-filter:blur(24px); transform:translateX(calc(100% + 35px)); transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.request-panel { width:min(520px,calc(100% - 28px)); }
.side-panel.active { transform:none; }
.panel-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.panel-header h2 { margin:0; font-size:25px; }
.close-btn { width:36px; height:36px; border:0; border-radius:50%; background:#edf0f7; color:var(--ink); font-size:25px; line-height:1; transition:all .2s; }
.close-btn:hover { background:var(--blue); color:#fff; transform:rotate(90deg); }
.form-group { margin-bottom:15px; }
.form-group label { display:block; margin-bottom:7px; color:var(--muted); font-size:11px; font-weight:700; }
.form-group input,.form-group textarea { width:100%; min-height:48px; padding:12px 14px; border:1px solid #dce1ed; border-radius:12px; background:rgba(255,255,255,.7); outline:none; }
.form-group textarea { min-height:112px; line-height:1.55; resize:vertical; }
.form-group input:focus,.form-group textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(43,69,148,.08); }
.form-group.has-error input { border-color:#b13d52; box-shadow:0 0 0 3px rgba(177,61,82,.08); }
.optional-label { font-weight:500; opacity:.72; }
.form-error { display:block; margin-top:6px; color:#a92f47; font-size:11px; font-weight:700; line-height:1.4; }
.form-error:empty { display:none; }
.request-cart-summary { margin-bottom:20px; padding:16px; border:1px solid var(--line); border-radius:16px; background:rgba(237,240,247,.62); }
.request-cart-summary h3 { margin-bottom:10px; font-size:14px; letter-spacing:-.02em; }
.request-cart-list { max-height:190px; overflow:auto; padding-right:5px; }
.request-cart-item { display:flex; gap:16px; align-items:flex-start; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); }
.request-cart-item:first-child { padding-top:0; }
.request-cart-item:last-child { padding-bottom:0; border-bottom:0; }
.request-cart-item div { min-width:0; }
.request-cart-item strong { display:block; overflow-wrap:anywhere; font-size:12px; line-height:1.35; }
.request-cart-item span { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.request-cart-item b { flex:0 0 auto; color:var(--blue); font-size:12px; white-space:nowrap; }
.request-submit { width:100%; }
.request-message { margin-top:14px; padding:13px 14px; border-radius:12px; font-size:12px; font-weight:700; line-height:1.5; }
.request-message--success { color:#17613d; background:#e6f5ed; border:1px solid #bfe5d0; }
.request-message--error { color:#8c2840; background:#faecef; border:1px solid #efc8d1; }
.request-cart-error { margin-bottom:0; }
.cart-request-error { margin:0 0 10px; }
.cart-items { flex:1; overflow:auto; }
.empty-cart-msg { padding:40px 0; color:var(--muted); text-align:center; }
.cart-item { display:flex; gap:10px; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); }
.cart-item-info { flex:1; min-width:0; }
.cart-item-title { font-size:12px; font-weight:800; line-height:1.35; }
.cart-item-category { margin-top:3px; color:var(--muted); font-size:10px; }
.cart-item-controls { display:flex; gap:5px; align-items:center; }
.qty-btn,.remove-btn { display:grid; width:27px; height:27px; place-items:center; border:0; border-radius:8px; background:#edf0f7; color:var(--ink); font-weight:800; }
.remove-btn { color:#b13d52; background:#f9ebee; }
.cart-item-qty-input { width:32px; border:0; background:transparent; text-align:center; font-weight:700; outline:none; }
.cart-footer { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.cart-footer .button { width:100%; }

@media (max-width:1080px) { .header-phone { display:none; } .main-nav { gap:14px; } .products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) { .container { width:min(100% - 32px,1240px); } .section { padding:62px 0; } .site-header { top:0; } .header-inner { min-height:68px; justify-content:space-between; } .logo img { width:88px; } .menu-toggle { display:block; order:2; } .header-actions { order:3; } .header-actions .button--outline { display:none; } .header-icon { min-width:42px; } .main-nav { position:absolute; top:68px; left:0; right:0; display:none; max-height:calc(100vh - 68px); padding:16px; overflow:auto; background:rgba(255,255,255,.98); box-shadow:0 18px 32px rgba(13,23,54,.1); } .main-nav.open { display:grid; justify-content:stretch; } .main-nav a,.catalog-trigger { padding:13px 4px; text-align:left; } .nav-dropdown { display:contents; } .dropdown-menu { position:static; display:grid; width:auto; margin:0; padding:0 0 0 14px; border:0; border-radius:0; box-shadow:none; background:transparent; opacity:1; visibility:visible; transform:none; backdrop-filter:none; } .dropdown-menu a { padding:9px 0; } .home-hero { min-height:580px; } .hero-note { gap:22px; margin-top:45px; } .collection-grid { grid-template-columns:1fr 1fr; grid-auto-rows:220px; } .visual-card:first-child { grid-column:span 2; grid-row:span 1; } .split-feature,.catalog-intro,.partner-grid,.location-grid,.product-detail-grid { grid-template-columns:1fr; } .product-detail-image { position:static; } .feature-art { min-height:370px; } .service-grid,.docs-grid { grid-template-columns:repeat(2,1fr); } .content-grid { grid-template-columns:1fr; } .filter-panel { position:static; display:grid; grid-template-columns:repeat(2,1fr); gap:0 20px; } .filter-panel > h3 { grid-column:1/-1; } .products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .footer-grid { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1/-1; } .showroom-section { padding:78px 0 68px; } .showroom-heading { grid-template-columns:1fr; gap:27px; } .showroom-copy { max-width:650px; } .showroom-frame-shell iframe { height:680px; } .showroom-fallback { grid-template-columns:auto 1fr; align-content:center; } .showroom-fallback-button { grid-column:1/-1; margin-top:5px; } .showroom-guide { grid-template-columns:1fr; gap:15px; } .showroom-guide-title { min-height:70px; flex-direction:row; align-items:start; } .showroom-steps li { padding-inline:20px; } }
@media (max-width:800px) { .sealant-feature { grid-template-columns:1fr; } .sealant-feature-media,.sealant-feature-media img { min-height:300px; max-height:420px; } }
@media (max-width:800px) { .catalog-showroom-cta { grid-template-columns:auto 1fr; } .catalog-showroom-cta .button { grid-column:1/-1; } .home-hero::after { right:-90px; opacity:.38; } .page-hero--konoshima::after { right:-170px; opacity:.34; } }
@media (max-width:800px) { [data-static-catalog] .filter-panel { display:block; } [data-static-catalog] .filter-group { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:540px) { h1 { font-size:42px; } .lead,.hero-copy { font-size:15px; } .header-actions .button { min-width:0; padding:10px; } .header-actions .button .cart-label { display:none; } .home-hero .container { padding:72px 0; } .hero-note { display:grid; grid-template-columns:1fr 1fr; } .collection-grid,.service-grid,.docs-grid,.products-grid,.catalog-toolbar { grid-template-columns:1fr; } .catalog-result-line { display:grid; } .product-detail-image .product-image,.product-detail-image .product-image--photo img { min-height:340px; height:340px; } .product-specs div { grid-template-columns:110px 1fr; } .visual-card:first-child { grid-column:auto; } .section-head { display:block; margin-bottom:28px; } .section-head .lead { margin-top:13px; } .filter-panel { grid-template-columns:1fr; } .footer-grid { grid-template-columns:1fr; } .footer-brand { grid-column:auto; } .footer-bottom { display:block; } .footer-bottom span { display:block; margin:8px 0; } .side-panel { top:8px; right:8px; bottom:8px; width:calc(100% - 16px); padding:22px; border-radius:20px; } .form-grid { grid-template-columns:1fr; } .form-field--wide { grid-column:auto; } .showroom-section { padding-top:64px; } .showroom-heading h2 { font-size:39px; } .showroom-copy { padding:20px 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.2); } .showroom-frame-shell { margin-inline:-8px; width:calc(100% + 16px); } .showroom-frame-shell iframe { height:610px; } .showroom-fallback { inset:8px 8px 90px; grid-template-columns:1fr; gap:18px; padding:27px 23px; text-align:center; } .showroom-fallback-icon { width:64px; height:64px; margin:auto; } .showroom-fallback-icon svg { width:38px; } .showroom-fallback-button { width:100%; grid-column:auto; } .showroom-frame-footer { min-height:82px; flex-wrap:wrap; gap:5px 15px; } .showroom-frame-footer > span:nth-child(2) { flex-basis:100%; order:3; } .showroom-steps { grid-template-columns:1fr; } .showroom-steps li { min-height:135px; border-left:0; border-top:1px solid rgba(255,255,255,.14); } .showroom-guide-title { align-items:end; } .showroom-disclaimer { text-align:left; } }
@media (max-width:540px) { .home-hero::after { display:none; } .catalog-showroom-cta { grid-template-columns:1fr; padding:20px; } .catalog-showroom-cta .button { grid-column:auto; width:100%; } .catalog-showroom-icon { width:48px; height:48px; } .company-feature { background-attachment:scroll; } }
@media (max-width:540px) { .sealant-feature-media,.sealant-feature-media img { min-height:250px; } .sealant-feature-content { padding:26px 20px; } .sealant-feature-actions { display:grid; } .sealant-feature-actions .button { width:100%; } .sealant-palette span { width:100%; margin:6px 0 0; } }
@media (max-width:540px) {
  [data-static-catalog] .filter-group { grid-template-columns:1fr 1fr; }
  [data-static-catalog] .dpk-color-filters { grid-template-columns:1fr; }
  .dpk-filter-summary { min-height:44px; }
  .dpk-palette-heading { display:block; }
  .dpk-palette-heading > p { margin-top:10px; text-align:left; }
  .dpk-color-palette { grid-template-columns:1fr; }
  .dpk-detail-colors { grid-template-columns:1fr; }
}

/* Responsive stability */
body { overflow-x:hidden; overflow-x:clip; }
img,svg,video,canvas,iframe { max-width:100%; }
input,select,textarea,button { min-width:0; }
.content-grid > *,.catalog-intro > *,.catalog-toolbar > *,.split-feature > *,.partner-grid > *,.location-grid > *,.product-detail-grid > *,.section-head > * { min-width:0; }
.product-title,.product-meta,.product-price,.catalog-result-line,.product-specs dd,.footer-links a { overflow-wrap:anywhere; }
.product-actions .button { min-width:0; padding-inline:12px; }
.map-box iframe { display:block; min-height:390px; }
[data-static-catalog] .product-image--photo img { object-fit:contain; background:#fff; }
.side-panel { overflow-y:auto; }

@media (max-width:1080px) {
  .header-inner { min-height:68px; justify-content:space-between; }
  .logo img { width:88px; }
  .menu-toggle { display:block; order:2; }
  .header-actions { order:3; margin-left:auto; }
  .header-actions .button--outline { display:none; }
  .main-nav { position:absolute; top:68px; left:0; right:0; display:none; max-height:calc(100svh - 68px); padding:16px max(16px,calc((100% - 920px)/2)); overflow:auto; overscroll-behavior:contain; background:rgba(255,255,255,.98); box-shadow:0 18px 32px rgba(13,23,54,.1); }
  .main-nav.open { display:grid; justify-content:stretch; }
  .main-nav a,.catalog-trigger { padding:13px 4px; white-space:normal; text-align:left; }
  .nav-dropdown { display:contents; }
  .dropdown-menu { position:static; display:grid; width:auto; margin:0; padding:0 0 0 14px; border:0; border-radius:0; box-shadow:none; background:transparent; opacity:1; visibility:visible; transform:none; backdrop-filter:none; }
  .dropdown-menu a { padding:9px 0; }
}

@media (max-width:900px) {
  .section { padding:68px 0; }
  .content-grid { grid-template-columns:1fr; }
  .filter-panel,[data-static-catalog] .filter-panel { position:static; display:block; }
  .filter-group,[data-static-catalog] .filter-group { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 18px; }
  .filter-label { display:flex; min-height:36px; align-items:center; gap:7px; }
  .filter-label input { width:16px; height:16px; flex:0 0 auto; }
  .filter-panel > .button,.filter-panel > .filter-reset { width:auto; min-width:190px; }
  .catalog-result-line { flex-wrap:wrap; align-items:flex-start; }
  .expertise-card { min-height:440px; padding:24px; }
}

@media (max-width:700px) {
  .container { width:min(100% - 32px,1240px); }
  h1 { font-size:clamp(38px,10vw,52px); }
  h2 { font-size:clamp(29px,8vw,40px); }
  .page-hero { padding:82px 0 58px; }
  .page-hero::after,.page-hero--konoshima::after { right:-210px; opacity:.32; }
  .section-head { display:block; margin-bottom:30px; }
  .section-head .lead,.section-head .button { margin-top:16px; }
  .home-hero { min-height:auto; }
  .home-hero .container { padding:76px 0; }
  .hero-note { flex-wrap:wrap; gap:20px 28px; margin-top:44px; }
  .hero-note span { min-width:130px; }
  .catalog-showroom-cta { grid-template-columns:auto minmax(0,1fr); }
  .catalog-showroom-cta .button { grid-column:1/-1; width:100%; }
  .catalog-toolbar { grid-template-columns:1fr; }
  .service-grid,.docs-grid { grid-template-columns:1fr; }
  .info-card { min-height:0; }
  .info-number { margin-bottom:28px; }
  .aside-note { padding:28px; }
  .map-box,.map-box iframe { min-height:330px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:34px 26px; }
  .footer-brand { grid-column:1/-1; }
  .expertise-grid { grid-template-columns:1fr; }
  .expertise-card { min-height:390px; }
  .partners-map-area { padding:68px 0 50px; }
  .partners-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 35px; }
  .partners-map-marker span { display:none; }
  .partners-map-marker.is-active span { display:block; }
  .partners-map-marker--right span { left:50%; bottom:31px; transform:translateX(-50%); }
  .partners-map-marker--left span { right:auto; left:50%; bottom:31px; transform:translateX(-50%); }
  .partners-map-marker--right.is-active span,.partners-map-marker--left.is-active span { transform:translateX(-50%) translateY(-2px); }
  .projects-page-hero { min-height:470px; }
  .project-lightbox { height:min(86svh,760px); }
  .catalog-choice-grid { grid-template-columns:1fr 1fr; }
  .catalog-choice-card--large,.catalog-choice-card--compact { grid-column:auto; }
  .catalog-choice-card { min-height:245px; }
  .catalog-choice-card--compact { min-height:200px; }
}

@media (max-width:560px) {
  .container { width:calc(100% - 28px); }
  .section { padding:54px 0; }
  .header-inner { gap:10px; }
  input,select,textarea { font-size:16px; }
  .logo img { width:80px; }
  .menu-toggle,.header-icon { width:40px; min-width:40px; height:40px; padding:8px; }
  .home-hero .container { padding:62px 0; }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions .button { width:100%; }
  .hero-note { display:grid; grid-template-columns:1fr 1fr; gap:17px 14px; }
  .hero-note strong { font-size:21px; letter-spacing:-.04em; }
  .collection-grid { grid-template-columns:1fr; grid-auto-rows:200px; }
  .visual-card:first-child { grid-column:auto; grid-row:auto; }
  .visual-card { padding:22px; }
  .feature-art { min-height:315px; }
  .catalog-intro { gap:18px; }
  .fact-card { padding:21px; }
  .filter-group,[data-static-catalog] .filter-group { grid-template-columns:1fr 1fr; }
  .filter-panel > .button,.filter-panel > .filter-reset { width:100%; min-width:0; }
  .products-grid { grid-template-columns:1fr; }
  .product-image--photo img { height:clamp(210px,68vw,285px); }
  .product-body { padding:18px; }
  .product-actions { flex-direction:column; }
  .product-actions .button { width:100%; }
  .product-detail-image .product-image,.product-detail-image .product-image--photo img { min-height:300px; height:300px; }
  .product-detail-price { font-size:36px; }
  .product-specs div { grid-template-columns:100px minmax(0,1fr); gap:14px; }
  .catalog-result-line { display:grid; }
  .catalog-notes { padding:21px; }
  .form-grid { grid-template-columns:1fr; }
  .form-field--wide { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { display:block; margin-top:38px; }
  .footer-bottom span { display:block; margin:8px 0; }
  .expertise-card { min-height:345px; padding:22px; }
  .partners-map-area { padding:54px 0 38px; }
  .partners-map-area h2 { margin-bottom:20px; }
  .partners-map-intro { margin-bottom:8px; }
  .partners-map-marker { width:28px; height:28px; }
  .partners-map-marker i { width:9px; height:9px; border-width:2px; }
  .partners-map-marker span { bottom:26px; }
  .partners-map-status { width:100%; min-width:0; margin-top:12px; }
  .partners-directory { padding:40px 0 44px; }
  .partners-list { grid-template-columns:1fr; gap:16px; }
  .partner-link { min-height:51px; }
  .projects-page-hero { min-height:420px; }
  .projects-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:16px; }
  .projects-filter { min-height:58px; padding:10px 12px; border-radius:14px; font-size:11px; }
  .projects-category-description { margin-bottom:26px; font-size:14px; }
  .projects-gallery { columns:2 145px; column-gap:10px; }
  .project-tile { margin-bottom:10px; border-radius:14px; }
  .project-tile span { right:12px; bottom:12px; left:12px; }
  .project-tile strong { max-width:100%; font-size:11px; }
  .project-tile i { display:none; }
  .project-lightbox { width:calc(100% - 16px); height:calc(100svh - 16px); border-radius:18px; }
  .project-lightbox figcaption { min-height:72px; padding:12px 18px; }
  .project-lightbox-nav { top:auto; bottom:83px; width:42px; height:42px; transform:none; }
  .project-lightbox-nav:hover { transform:scale(1.05); }
  .project-lightbox-prev { left:12px; }
  .project-lightbox-next { right:12px; }
  .catalog-choice-modal { width:calc(100% - 20px); max-height:calc(100svh - 20px); border-radius:20px; }
  .catalog-choice-header { padding:25px 22px 19px; }
  .catalog-choice-header p { max-width:260px; }
  .catalog-choice-grid { grid-template-columns:1fr; padding:0 10px 10px; }
  .catalog-choice-card--large,.catalog-choice-card--compact { grid-column:auto; }
  .catalog-choice-card { min-height:205px; padding:22px; }
  .side-panel { top:8px; right:8px; bottom:8px; width:calc(100% - 16px); padding:20px 20px max(20px,env(safe-area-inset-bottom)); border-radius:19px; }
  .cart-item { align-items:flex-start; flex-wrap:wrap; }
  .cart-item-controls { margin-left:auto; }
}

@media (max-width:390px) {
  h1 { font-size:35px; }
  h2 { font-size:29px; }
  .button { min-height:48px; padding:13px 16px; font-size:10px; }
  .page-hero { padding:68px 0 48px; }
  .breadcrumbs { flex-wrap:wrap; }
  .hero-note { grid-template-columns:1fr; }
  .hero-note span { min-width:0; }
  .catalog-showroom-cta { grid-template-columns:1fr; padding:18px; }
  .catalog-showroom-icon { width:46px; height:46px; }
  .catalog-showroom-cta .button { grid-column:auto; }
  .filter-group,[data-static-catalog] .filter-group { grid-template-columns:1fr; }
  .product-specs div { grid-template-columns:1fr; gap:4px; }
  .product-detail-image .product-image,.product-detail-image .product-image--photo img { min-height:260px; height:260px; }
  .aside-note,.partner-form { padding:22px; }
  .map-box,.map-box iframe { min-height:280px; }
  .side-panel { padding:17px; }
  .panel-header h2 { font-size:22px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .reveal-enabled [data-reveal],.project-tile,.catalog-choice-modal,.catalog-choice-header > *,.catalog-choice-card { opacity:1; transform:none; transition:none; } .catalog-choice-modal::backdrop { background:rgba(7,14,33,.62); backdrop-filter:none; transition:none; } .showroom-fallback-icon svg,.showroom-status i { animation:none; } }

/* 2026 identity refresh */
:root {
  --page-gutter:clamp(24px,7.8vw,120px);
  --type-display:clamp(52px,6.1vw,104px);
  --type-section:clamp(36px,3.8vw,62px);
  --type-card:clamp(22px,1.8vw,30px);
  --type-body:clamp(16px,1.08vw,19px);
  --type-meta:clamp(12px,.78vw,14px);
}

body,
button,
input,
select,
textarea {
  font-family:"Inter Tight",Arial,sans-serif;
}

.project-form-section legend span,
.project-field input,
.project-field select,
.project-field textarea {
  font-family:"Inter Tight",Arial,sans-serif;
}

.container {
  width:calc(100% - (var(--page-gutter) * 2));
  max-width:1680px;
}

h1,
h2,
h3 {
  font-family:"Inter Tight",Arial,sans-serif;
  font-weight:500;
  text-transform:uppercase;
}

h1 strong,
h2 strong,
h3 strong {
  font-weight:700;
}

h1 {
  max-width:1200px;
  font-size:var(--type-display);
  line-height:.96;
  letter-spacing:-.055em;
}

h2 {
  font-size:var(--type-section);
  line-height:.98;
  letter-spacing:-.05em;
}

h3 {
  font-size:var(--type-card);
  line-height:1.05;
  letter-spacing:-.035em;
}

.eyebrow,
.product-tag,
.doc-type,
.projects-count,
.breadcrumbs,
.catalog-toolbar label,
.showroom-kicker,
.service-path-number {
  font-size:var(--type-meta);
  font-weight:700;
}

.lead,
.hero-copy,
.page-hero p,
.company-feature p,
.section-head .lead,
.catalog-intro p,
.info-card p,
.service-path p,
.showroom-copy p,
.product-detail-description,
.partners-map-intro {
  font-size:var(--type-body);
  line-height:1.52;
}

.button,
.menu-toggle,
.catalog-choice-close,
.close-btn,
.qty-btn,
.remove-btn,
.filter-reset,
.project-file-item button {
  border-radius:0;
}

.button {
  min-height:50px;
  padding:14px 22px;
  background:#19255a;
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.045em;
}

.button:hover {
  background:#19255a;
  box-shadow:0 13px 28px rgba(25,37,90,.22);
}

.button--outline {
  border-color:rgba(25,37,90,.42);
  background:transparent;
  color:#19255a;
}

.button--outline:hover {
  border-color:#19255a;
  background:#19255a;
  color:#fff;
}

.site-header {
  background:rgba(255,255,255,.9);
  border-bottom-color:rgba(25,37,90,.1);
}

.header-inner {
  min-height:120px;
  gap:clamp(24px,2.1vw,42px);
}

.logo img {
  width:150px;
}

.main-nav {
  justify-content:flex-end;
  gap:clamp(17px,1.6vw,32px);
}

.main-nav a,
.catalog-trigger {
  color:#19255a;
  font:500 15px/1.2 "Inter Tight",Arial,sans-serif;
  letter-spacing:-.015em;
}

.main-nav a:hover,
.catalog-trigger:hover,
.main-nav a.active {
  color:#19255a;
  text-decoration:none;
}

.header-actions {
  gap:12px;
}

.header-phone {
  color:#19255a;
  font-size:15px;
  font-weight:700;
}

.home-hero {
  min-height:clamp(720px,calc(100svh - 120px),900px);
  background:linear-gradient(110deg,rgba(25,37,90,.94),rgba(25,37,90,.58)),url('background.png') center/cover;
}

.home-hero::after {
  background:rgba(25,37,90,.36);
}

.home-hero .container {
  padding:130px 0 112px;
}

.home-hero h1 {
  max-width:1320px;
  margin:0 0 30px;
  color:#fff;
  font-size:clamp(60px,6.5vw,110px);
}

.hero-copy {
  max-width:820px;
  color:#fff;
  font-size:clamp(19px,1.35vw,23px);
}

.home-hero .button--outline {
  border-color:rgba(255,255,255,.7);
  color:#fff;
}

.home-hero .button--outline:hover {
  border-color:#fff;
  background:#fff;
  color:#19255a;
}

.hero-note {
  gap:clamp(28px,4vw,72px);
  margin-top:78px;
  color:rgba(255,255,255,.82);
  font-size:var(--type-meta);
}

.hero-note strong {
  color:#fff;
  font-size:clamp(25px,2vw,32px);
  font-weight:700;
}

.section {
  padding:clamp(88px,8vw,140px) 0;
}

.section-head {
  align-items:flex-start;
  gap:clamp(35px,7vw,120px);
  margin-bottom:clamp(45px,5vw,78px);
}

.section-head > div:first-child {
  max-width:980px;
}

.section-head .lead {
  max-width:560px;
}

.visual-card span {
  font-size:var(--type-card);
  font-weight:700;
  text-transform:uppercase;
}

.product-title,
.product-price {
  font-size:20px;
}

.product-meta,
.product-color-note {
  font-size:14px;
}

.product-tag,
.product-price small,
.product-actions .button,
.stock-badge,
.product-promo {
  font-size:12px;
}

.service-path p {
  font-size:16px;
}

.service-path ul,
.service-path-number {
  font-size:12px;
}

.split-feature {
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(46px,6vw,110px);
  align-items:stretch;
}

.company-feature .feature-art {
  min-height:clamp(560px,50vw,760px);
  height:100%;
}

.company-feature .feature-art img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  border-radius:0;
  object-fit:cover;
}

.company-feature .check-list {
  gap:25px;
  margin-top:40px;
}

.company-feature .check-item {
  padding-left:0;
}

.company-feature .check-item::before {
  display:none;
}

.company-feature .check-item strong {
  display:block;
  color:#19255a;
  font-size:clamp(18px,1.25vw,22px);
  font-weight:700;
  text-transform:uppercase;
}

.company-feature .check-item span {
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:var(--type-body);
  line-height:1.5;
}

.page-hero {
  background:#19255a;
}

.page-hero::after,
.page-hero--konoshima::after {
  background:#19255a;
}

.expertise-card h3,
.catalog-choice-card strong,
.showroom-section h2,
.partner-form h2,
.project-request-section h2 {
  color:#fff;
}

.site-footer {
  padding:95px 0 34px;
  background:#19255a;
  color:rgba(255,255,255,.78);
}

.footer-grid {
  gap:clamp(45px,7vw,120px);
}

.footer-brand img {
  width:150px;
  margin-bottom:26px;
}

.footer-title {
  margin-bottom:24px;
  color:#fff;
  font-size:22px;
  font-weight:700;
  text-transform:uppercase;
}

.footer-copy,
.footer-links {
  font-size:17px;
  line-height:1.5;
}

.footer-links {
  gap:14px;
}

.footer-bottom {
  margin-top:72px;
  padding-top:26px;
  border-top-color:rgba(255,255,255,.25);
  color:#fff;
  font-size:14px;
}

@media (min-width:1081px) and (max-width:1500px) {
  .header-phone {
    display:none;
  }
}

@media (min-width:1081px) and (max-width:1320px) {
  .logo img {
    width:130px;
  }

  .main-nav {
    gap:14px;
  }

  .main-nav a,
  .catalog-trigger {
    font-size:14px;
  }

  .header-actions .button--outline {
    display:none;
  }
}

@media (max-width:1080px) {
  :root {
    --page-gutter:32px;
  }

  .header-inner {
    min-height:78px;
  }

  .logo img {
    width:108px;
  }

  .main-nav {
    top:78px;
    max-height:calc(100svh - 78px);
  }

  .main-nav a,
  .catalog-trigger {
    font-size:15px;
  }

  .home-hero {
    min-height:680px;
  }

  .home-hero .container {
    padding:100px 0 90px;
  }

  .split-feature {
    grid-template-columns:1fr;
  }

  .company-feature .feature-art {
    min-height:560px;
  }
}

@media (max-width:700px) {
  :root {
    --page-gutter:16px;
    --type-display:clamp(40px,12vw,58px);
    --type-section:clamp(32px,9vw,44px);
    --type-card:clamp(21px,6vw,27px);
    --type-body:16px;
    --type-meta:12px;
  }

  .section {
    padding:72px 0;
  }

  .home-hero {
    min-height:640px;
  }

  .home-hero .container {
    padding:80px 0 68px;
  }

  .home-hero h1 {
    font-size:clamp(46px,13vw,68px);
  }

  .hero-copy {
    font-size:18px;
  }

  .section-head {
    margin-bottom:38px;
  }

  .company-feature .feature-art {
    min-height:440px;
  }

  .footer-title {
    font-size:20px;
  }

  .footer-copy,
  .footer-links {
    font-size:16px;
  }
}

@media (max-width:430px) {
  .logo img {
    width:94px;
  }

  .home-hero h1 {
    font-size:clamp(42px,12.5vw,56px);
  }

  .hero-note {
    grid-template-columns:1fr;
  }

  .company-feature .feature-art {
    min-height:330px;
  }
}

/* 2026 layout refinement */
body {
  font-weight:300;
}

p,
small,
.lead,
.footer-copy,
.footer-links,
.check-item span,
.partners-map-intro {
  font-weight:300;
}

strong,
b,
.button,
.eyebrow,
.main-nav a,
.catalog-trigger,
.footer-title {
  font-weight:600;
}

h1,
h2,
h3,
.home-hero h1,
.page-hero h1,
.projects-page-hero h1,
.services-hero h1,
.showroom-heading h2,
.service-path h3,
.expertise-card h3,
.product-title,
.visual-card span,
.catalog-choice-card strong,
.project-tile strong,
.partner-link strong {
  letter-spacing:0;
}

h1,
h2,
h3 {
  font-weight:300;
}

h1 strong,
h2 strong,
h3 strong {
  font-weight:600;
}

.page-hero h1,
.projects-page-hero h1,
.services-hero h1 {
  max-width:1200px;
  font-size:var(--type-display);
  line-height:.96;
}

.page-hero p,
.projects-page-hero p,
.services-hero p {
  color:#fff;
  font-size:var(--type-body);
  font-weight:300;
}

.eyebrow + h1,
.eyebrow + h2,
.eyebrow + h3 {
  margin-top:clamp(22px,2.4vw,38px);
}

.button,
.menu-toggle,
.catalog-choice-close,
.close-btn,
.qty-btn,
.remove-btn,
.filter-reset,
.project-file-item button {
  border-radius:10px;
}

.button {
  font-weight:600;
}

.header-inner {
  min-height:140px;
}

.logo img {
  width:190px;
}

.main-nav a,
.catalog-trigger {
  color:#19255a;
  font-weight:600;
  letter-spacing:0;
}

.home-hero {
  min-height:clamp(800px,calc(100svh - 140px),980px);
}

.home-hero .container {
  padding:118px 0 96px;
}

.hero-main {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(210px,260px);
  gap:clamp(45px,7vw,130px);
  align-items:end;
}

.hero-main h1 {
  margin:0;
}

.hero-main .hero-actions {
  display:grid;
  width:100%;
  margin:0 0 8px;
}

.hero-main .hero-actions .button {
  width:100%;
}

.hero-products {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(52px,6vw,92px);
  border-top:1px solid rgba(255,255,255,.38);
  border-bottom:1px solid rgba(255,255,255,.38);
}

.hero-products span {
  min-height:112px;
  display:flex;
  align-items:center;
  padding:24px clamp(18px,2.1vw,34px);
  border-left:1px solid rgba(255,255,255,.25);
  color:rgba(255,255,255,.82);
  font-size:clamp(18px,1.35vw,23px);
  font-weight:300;
  line-height:1.25;
}

.hero-products span:first-child {
  padding-left:0;
  border-left:0;
}

.hero-products strong {
  margin-left:.25em;
  color:#fff;
  font-weight:600;
}

.hero-products strong:only-child {
  margin-left:0;
}

.hero-note {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(30px,5vw,90px);
  margin-top:clamp(52px,6vw,88px);
}

.hero-note span {
  min-width:0;
}

.hero-note strong {
  display:block;
  color:#fff;
  font-size:clamp(42px,4.35vw,72px);
  font-weight:500;
  line-height:.95;
  letter-spacing:0;
  text-transform:uppercase;
}

.hero-note small {
  display:block;
  max-width:420px;
  margin-top:18px;
  color:rgba(255,255,255,.7);
  font-size:clamp(14px,1.05vw,18px);
  font-weight:300;
  line-height:1.35;
  text-transform:uppercase;
}

.split-feature {
  grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);
  align-items:center;
}

.company-feature .feature-art {
  width:100%;
  max-width:620px;
  min-height:0;
  aspect-ratio:4 / 5;
  justify-self:start;
  overflow:hidden;
}

.company-feature .feature-art img {
  object-position:68% center;
}

.reveal-enabled .company-feature .feature-art[data-reveal] img {
  opacity:0;
  transform:translateY(26px) scale(1.07);
  transition:opacity 1s ease .08s,transform 1.15s cubic-bezier(.2,.8,.2,1) .08s;
}

.reveal-enabled .company-feature .feature-art[data-reveal].is-visible img {
  opacity:1;
  transform:none;
}

.partners-section {
  background:#eceef1;
}

.partners-map-area {
  padding:clamp(90px,8vw,140px) 0 clamp(65px,6vw,100px);
  text-align:left;
}

.partners-map-area h2 {
  margin-bottom:24px;
}

.partners-map-intro {
  max-width:720px;
  margin:0 0 42px;
  color:rgba(25,37,90,.68);
}

.partners-map-stage {
  width:100%;
  max-width:none;
  overflow:hidden;
  border:1px solid rgba(25,37,90,.18);
  border-radius:14px;
  background:#dfe2e6;
  box-shadow:0 24px 70px rgba(25,37,90,.11);
  isolation:isolate;
}

.partners-map-stage::after {
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(25,37,90,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(25,37,90,.035) 1px,transparent 1px);
  background-size:64px 64px;
}

.partners-map-image {
  position:relative;
  z-index:1;
  opacity:.78;
  filter:grayscale(1) sepia(.08) hue-rotate(175deg) saturate(.75) contrast(.92);
  mix-blend-mode:multiply;
}

.partners-map-marker {
  z-index:4;
  width:56px;
  height:56px;
}

.partners-map-marker i {
  width:19px;
  height:19px;
  border:4px solid #fff;
  background:#19255a;
  box-shadow:0 0 0 3px #19255a,0 8px 22px rgba(25,37,90,.34);
}

.partners-map-marker i::after {
  inset:-12px;
  border-color:rgba(25,37,90,.35);
}

.partners-map-marker span {
  bottom:43px;
  display:grid;
  min-width:150px;
  padding:11px 13px;
  border:1px solid rgba(25,37,90,.18);
  border-radius:9px;
  background:rgba(255,255,255,.95);
  color:#19255a;
  box-shadow:0 12px 28px rgba(25,37,90,.12);
  line-height:1.1;
  text-align:left;
}

.partners-map-marker span strong {
  color:#19255a;
  font-size:16px;
  font-weight:600;
  letter-spacing:0;
  text-transform:uppercase;
}

.partners-map-marker span small {
  margin-top:6px;
  color:rgba(25,37,90,.62);
  font-size:12px;
  font-weight:300;
}

.partners-map-marker--right span {
  left:41px;
  bottom:15px;
}

.partners-map-marker--left span {
  right:41px;
  bottom:15px;
}

.partners-map-marker:hover i,
.partners-map-marker:focus-visible i,
.partners-map-marker.is-active i {
  background:#19255a;
  transform:translate(-50%,-50%) scale(1.3);
}

.partners-map-marker:hover span,
.partners-map-marker:focus-visible span,
.partners-map-marker.is-active span {
  background:#19255a;
  color:#fff;
}

.partners-map-marker:hover span strong,
.partners-map-marker:focus-visible span strong,
.partners-map-marker.is-active span strong,
.partners-map-marker:hover span small,
.partners-map-marker:focus-visible span small,
.partners-map-marker.is-active span small {
  color:#fff;
}

.partners-map-status {
  min-width:min(100%,430px);
  margin:28px 0 0;
  padding:20px 24px;
  border:1px solid rgba(25,37,90,.16);
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}

.partners-map-status span {
  color:rgba(25,37,90,.58);
  font-size:12px;
  font-weight:300;
  letter-spacing:0;
}

.partners-map-status strong {
  margin-top:7px;
  color:#19255a;
  font-size:23px;
  font-weight:600;
  line-height:1.15;
  text-transform:uppercase;
}

.partners-map-status small {
  margin-top:7px;
  color:rgba(25,37,90,.62);
  font-size:14px;
  font-weight:300;
}

.partners-directory {
  padding:70px 0 76px;
  background:#19255a;
}

.partners-list {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:34px clamp(36px,5vw,84px);
}

.partner-link {
  min-height:68px;
  border-radius:0;
}

.partner-link strong {
  color:#fff;
  font-size:20px;
  font-weight:600;
  letter-spacing:0;
}

.partner-link small {
  margin-top:7px;
  color:rgba(255,255,255,.62);
  font-size:13px;
  font-weight:300;
}

.location-grid {
  grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
  gap:clamp(24px,3vw,48px);
}

.contact-card {
  padding:clamp(34px,4vw,62px);
}

.contact-logo {
  display:block;
  width:clamp(190px,16vw,270px);
  height:auto;
  margin-bottom:58px;
}

.map-box,
.map-box iframe {
  min-height:560px;
}

.map-box {
  border:1px solid rgba(25,37,90,.16);
  border-radius:14px;
  background:#dfe2e6;
  box-shadow:0 24px 70px rgba(25,37,90,.1);
}

.map-box iframe {
  filter:grayscale(.78) saturate(.38) contrast(.95);
}

.partner-grid {
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);
  gap:clamp(24px,3vw,48px);
}

.site-footer {
  padding-top:110px;
}

.footer-grid {
  grid-template-columns:minmax(420px,1.55fr) minmax(180px,.7fr) minmax(220px,.75fr);
  align-items:start;
}

.footer-brand {
  min-height:330px;
  padding-right:clamp(45px,6vw,100px);
  border-right:1px solid rgba(255,255,255,.22);
}

.footer-brand-label {
  display:block;
  margin-bottom:34px;
  color:rgba(255,255,255,.6);
  font-size:13px;
  font-weight:300;
  letter-spacing:0;
  text-transform:uppercase;
}

.footer-brand img {
  width:clamp(230px,18vw,320px);
  margin-bottom:38px;
}

.footer-copy {
  max-width:470px;
  font-size:19px;
}

.footer-column {
  padding-top:46px;
}

@media (min-width:1081px) and (max-width:1500px) {
  .header-inner {
    min-height:126px;
  }

  .logo img {
    width:150px;
  }

  .main-nav {
    gap:13px;
  }

  .main-nav a,
  .catalog-trigger {
    font-size:13px;
  }
}

@media (max-width:1080px) {
  .header-inner {
    min-height:88px;
  }

  .logo img {
    width:124px;
  }

  .main-nav {
    top:88px;
    max-height:calc(100svh - 88px);
  }

  .home-hero {
    min-height:760px;
  }

  .hero-main {
    grid-template-columns:1fr;
    gap:34px;
  }

  .hero-main .hero-actions {
    max-width:520px;
    grid-template-columns:1fr 1fr;
    justify-self:start;
  }

  .hero-products {
    margin-top:58px;
  }

  .hero-products span {
    min-height:102px;
  }

  .split-feature {
    grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);
  }

  .partners-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .location-grid,
  .partner-grid {
    grid-template-columns:1fr;
  }

  .footer-grid {
    grid-template-columns:1fr 1fr;
  }

  .footer-brand {
    grid-column:1 / -1;
    min-height:0;
    padding:0 0 60px;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.22);
  }

  .footer-column {
    padding-top:10px;
  }
}

@media (max-width:700px) {
  .home-hero {
    min-height:auto;
  }

  .home-hero .container {
    padding:74px 0 64px;
  }

  .hero-main .hero-actions,
  .hero-products,
  .hero-note {
    grid-template-columns:1fr;
  }

  .hero-main .hero-actions {
    max-width:none;
  }

  .hero-products {
    margin-top:46px;
  }

  .hero-products span {
    min-height:0;
    padding:19px 0;
    border-top:1px solid rgba(255,255,255,.22);
    border-left:0;
  }

  .hero-products span:first-child {
    border-top:0;
  }

  .hero-note {
    gap:34px;
    margin-top:48px;
  }

  .hero-note strong {
    font-size:clamp(38px,11vw,54px);
  }

  .hero-note small {
    margin-top:10px;
  }

  .split-feature {
    grid-template-columns:1fr;
  }

  .company-feature .feature-art {
    max-width:520px;
    aspect-ratio:4 / 5;
  }

  .partners-map-area {
    padding:72px 0 54px;
  }

  .partners-map-stage {
    overflow:visible;
    border-radius:10px;
  }

  .partners-map-marker {
    width:40px;
    height:40px;
  }

  .partners-map-marker i {
    width:14px;
    height:14px;
    border-width:3px;
  }

  .partners-map-marker span {
    display:none;
    min-width:132px;
    padding:9px 11px;
  }

  .partners-map-marker.is-active span,
  .partners-map-marker:focus-visible span {
    display:grid;
  }

  .partners-map-marker span strong {
    font-size:13px;
  }

  .partners-map-marker span small {
    font-size:11px;
  }

  .partners-list,
  .footer-grid {
    grid-template-columns:1fr;
  }

  .footer-brand {
    grid-column:auto;
  }

  .footer-brand img {
    width:230px;
  }

  .contact-logo {
    width:200px;
    margin-bottom:42px;
  }

  .map-box,
  .map-box iframe {
    min-height:400px;
  }
}

/* Header and home hero correction */
@media (min-width:1081px) {
  .header-inner {
    min-height:176px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "brand actions"
      "navigation navigation";
    gap:24px 40px;
    align-content:center;
    padding:24px 0 22px;
  }

  .logo {
    grid-area:brand;
    justify-self:start;
  }

  .logo img {
    width:200px;
  }

  .main-nav {
    grid-area:navigation;
    width:100%;
    justify-content:space-between;
    gap:24px;
  }

  .main-nav a,
  .catalog-trigger {
    font-size:16px;
    line-height:1.15;
  }

  .header-actions {
    grid-area:actions;
    justify-self:end;
    gap:14px;
  }

  .header-actions .button {
    min-height:56px;
    padding:16px 27px;
    font-size:14px;
  }

  .header-actions .button--outline {
    display:inline-flex;
  }

  .header-icon {
    min-width:58px;
  }

  .header-phone {
    display:inline;
    font-size:17px;
  }
}

.home-hero {
  min-height:clamp(760px,calc(100svh - 176px),920px);
}

.hero-main {
  display:block;
}

.hero-main h1 {
  max-width:1280px;
}

.hero-main .hero-actions {
  width:auto;
  max-width:none;
  display:flex;
  justify-content:flex-start;
  justify-self:auto;
  margin:38px 0 0;
}

.hero-main .hero-actions .button {
  width:auto;
  min-width:210px;
  min-height:56px;
  padding:16px 28px;
  font-size:14px;
}

.hero-products {
  gap:clamp(30px,5vw,90px);
  margin-top:clamp(52px,5vw,78px);
  border:0;
}

.hero-products span,
.hero-products span:first-child {
  min-height:0;
  display:block;
  padding:0;
  border:0;
}

.hero-products small {
  display:block;
  color:rgba(255,255,255,.66);
  font-size:clamp(15px,1.05vw,18px);
  font-weight:300;
  line-height:1.25;
}

.hero-products strong,
.hero-products strong:only-child {
  display:block;
  margin:10px 0 0;
  color:#fff;
  font-size:clamp(24px,2vw,34px);
  font-weight:600;
  line-height:1;
}

@media (max-width:1080px) {
  .header-inner {
    display:flex;
    min-height:96px;
    padding:0;
  }

  .logo img {
    width:138px;
  }

  .main-nav {
    top:96px;
    max-height:calc(100svh - 96px);
  }

  .hero-main .hero-actions {
    display:flex;
    max-width:none;
  }
}

@media (max-width:700px) {
  .hero-main .hero-actions {
    display:grid;
    margin-top:30px;
  }

  .hero-main .hero-actions .button {
    width:100%;
  }

  .hero-products {
    gap:28px;
    margin-top:44px;
    border:0;
  }

  .hero-products span,
  .hero-products span:first-child {
    padding:0;
    border:0;
  }
}

/* Clean map, larger brand and expertise cards */
@media (min-width:1081px) {
  .logo img {
    width:280px;
  }
}

.footer-brand img {
  width:clamp(340px,25vw,470px);
  max-width:100%;
  filter:none;
}

.contact-logo {
  width:clamp(280px,22vw,380px);
  max-width:100%;
}

.partners-section {
  background:#fff;
}

.partners-map-stage {
  width:calc(100% + min(10vw,160px));
  max-width:none;
  margin-left:calc(min(5vw,80px) * -1);
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  isolation:auto;
}

.partners-map-stage::after {
  display:none;
}

.partners-map-image {
  opacity:1;
  filter:none;
  mix-blend-mode:normal;
}

.partners-map-marker span {
  display:grid;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  border:0;
  background:#fff;
  color:#19255a;
  box-shadow:0 12px 30px rgba(25,37,90,.16);
  transition:opacity .2s ease,visibility .2s ease;
}

.partners-map-marker:hover span,
.partners-map-marker:focus-visible span {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  background:#fff;
  color:#19255a;
}

.partners-map-marker:hover span strong,
.partners-map-marker:focus-visible span strong {
  color:#19255a;
}

.partners-map-marker:hover span small,
.partners-map-marker:focus-visible span small {
  color:rgba(25,37,90,.62);
}

.partners-map-status {
  display:none;
}

.partners-directory {
  padding:84px 0 90px;
}

.partners-list {
  gap:42px clamp(42px,6vw,96px);
}

.partner-link {
  min-height:82px;
}

.partner-link strong {
  font-size:clamp(23px,1.75vw,30px);
  line-height:1.05;
}

.partner-link small {
  margin-top:10px;
  font-size:clamp(15px,1.05vw,18px);
}

.expertise-grid {
  gap:24px;
}

.expertise-card {
  min-height:650px;
  padding:clamp(30px,3vw,44px);
}

.expertise-card > span {
  width:52px;
  height:52px;
  font-size:14px;
}

.expertise-card h3 {
  max-width:100%;
  margin-bottom:22px;
  font-size:clamp(34px,2.7vw,46px);
  line-height:1.02;
}

.expertise-card p {
  max-width:520px;
  color:rgba(255,255,255,.84);
  font-size:clamp(17px,1.18vw,20px);
  font-weight:300;
  line-height:1.48;
}

.footer-title {
  font-size:clamp(25px,1.8vw,31px);
}

.footer-links {
  gap:18px;
  font-size:clamp(19px,1.25vw,23px);
}

.footer-copy {
  font-size:clamp(20px,1.35vw,24px);
}

.footer-bottom {
  font-size:clamp(16px,1.05vw,19px);
}

@media (max-width:1080px) {
  .logo img {
    width:190px;
  }

  .partners-map-stage {
    width:calc(100% + 48px);
    margin-left:-24px;
  }

  .expertise-card {
    min-height:560px;
  }
}

@media (max-width:700px) {
  .logo img {
    width:165px;
  }

  .footer-brand img {
    width:300px;
  }

  .contact-logo {
    width:270px;
  }

  .partners-map-stage {
    width:100%;
    margin-left:0;
    overflow:visible;
  }

  .partners-map-marker span {
    display:grid;
    opacity:0;
    visibility:hidden;
  }

  .partners-map-marker:focus-visible span {
    opacity:1;
    visibility:visible;
  }

  .expertise-card {
    min-height:500px;
  }

  .expertise-card h3 {
    font-size:32px;
  }

  .expertise-card p {
    font-size:17px;
  }

  .footer-links {
    font-size:20px;
  }
}

/* Documentation catalogue 2026 */
.docs-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}

.doc-card {
  display:flex;
  min-height:330px;
  flex-direction:column;
  justify-content:space-between;
  gap:32px;
  padding:clamp(28px,3vw,44px);
}

.doc-card h3 {
  font-size:clamp(27px,2.2vw,38px);
}

.doc-card p {
  margin:18px 0 0;
  font-size:clamp(16px,1.12vw,19px);
  font-weight:300;
  line-height:1.5;
}

.doc-card--catalog {
  grid-column:1 / -1;
  min-height:430px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,330px);
  gap:clamp(40px,7vw,120px);
  align-items:stretch;
  border:0;
  background:#19255a;
  color:#fff;
  box-shadow:none;
}

.doc-card--catalog:hover {
  box-shadow:0 24px 65px rgba(25,37,90,.18);
}

.doc-catalog-copy {
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:space-between;
  gap:38px;
}

.doc-card--catalog .doc-type,
.doc-card--catalog h3,
.doc-card--catalog p {
  color:#fff;
}

.doc-card--catalog h3 {
  max-width:850px;
  font-size:clamp(38px,4vw,66px);
}

.doc-card--catalog p {
  max-width:760px;
  color:rgba(255,255,255,.72);
  font-size:clamp(18px,1.3vw,22px);
}

.doc-catalog-button {
  align-self:flex-start;
  border-color:#fff;
  background:#fff;
  color:#19255a;
}

.doc-catalog-button:hover {
  border-color:#fff;
  background:#fff;
  color:#19255a;
}

.doc-qr-link {
  display:grid;
  place-items:center;
  align-content:center;
  padding:clamp(24px,3vw,40px);
  border-radius:12px;
  background:#fff;
  color:#19255a;
  text-align:center;
  transition:transform .25s ease,box-shadow .25s ease;
}

.doc-qr-link:hover,
.doc-qr-link:focus-visible {
  outline:none;
  box-shadow:0 20px 44px rgba(0,0,0,.18);
  transform:translateY(-5px);
}

.doc-qr-link img {
  width:clamp(150px,13vw,210px);
  height:auto;
  image-rendering:pixelated;
}

.doc-qr-link strong {
  margin-top:24px;
  font-size:20px;
  font-weight:600;
  text-transform:uppercase;
}

.doc-qr-link span {
  margin-top:8px;
  color:rgba(25,37,90,.62);
  font-size:15px;
  font-weight:300;
}

@media (max-width:800px) {
  .docs-grid {
    grid-template-columns:1fr;
  }

  .doc-card--catalog {
    grid-column:auto;
    grid-template-columns:1fr;
  }

  .doc-qr-link {
    min-height:330px;
  }
}

@media (max-width:540px) {
  .doc-card {
    min-height:0;
  }

  .doc-card--catalog {
    padding:28px 22px 22px;
  }

  .doc-catalog-button {
    width:100%;
  }

  .doc-qr-link {
    min-height:290px;
  }
}

/* Header scale and primary hero actions */
@media (min-width:1081px) {
  .header-inner {
    min-height:164px;
    grid-template-areas:
      "brand actions"
      "navigation navigation";
    padding:20px 0 19px;
  }

  .logo img {
    width:196px;
  }

  .main-nav {
    gap:clamp(20px,2vw,38px);
  }

  .main-nav a,
  .catalog-trigger {
    font-size:18px;
    font-weight:600;
  }
}

.hero-main .hero-actions {
  gap:16px;
}

.hero-main .hero-actions .button {
  min-width:250px;
  min-height:66px;
  padding:19px 34px;
  border:2px solid #fff;
  font-size:17px;
  font-weight:600;
  box-shadow:0 15px 34px rgba(0,0,0,.18);
}

.hero-main .hero-actions .button:not(.button--outline) {
  background:#fff;
  color:#19255a;
}

.hero-main .hero-actions .button:not(.button--outline):hover {
  border-color:#fff;
  background:#fff;
  color:#19255a;
  box-shadow:0 20px 42px rgba(0,0,0,.24);
}

.hero-main .hero-actions .button--outline {
  border-color:#fff;
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter:blur(10px);
}

.hero-main .hero-actions .button--outline:hover {
  border-color:#fff;
  background:#fff;
  color:#19255a;
}

@media (max-width:1080px) {
  .header-inner {
    min-height:90px;
    gap:12px;
  }

  .logo {
    min-width:0;
  }

  .logo img {
    width:145px;
    max-width:100%;
  }

  .main-nav {
    top:90px;
    max-height:calc(100svh - 90px);
  }

  .main-nav a,
  .catalog-trigger {
    font-size:17px;
    line-height:1.25;
  }

  .menu-toggle,
  .header-icon {
    width:46px;
    min-width:46px;
    height:46px;
    flex:0 0 46px;
  }

  .header-actions {
    margin-left:auto;
  }

  .hero-main .hero-actions .button {
    min-width:220px;
    min-height:62px;
    padding:17px 27px;
    font-size:16px;
  }
}

@media (max-width:700px) {
  .header-inner {
    min-height:82px;
    gap:9px;
  }

  .logo img {
    width:132px;
  }

  .main-nav {
    top:82px;
    max-height:calc(100svh - 82px);
  }

  .main-nav a,
  .catalog-trigger {
    font-size:16px;
  }

  .menu-toggle,
  .header-icon {
    width:43px;
    min-width:43px;
    height:43px;
    flex-basis:43px;
  }

  .hero-main .hero-actions {
    gap:12px;
  }

  .hero-main .hero-actions .button {
    width:100%;
    min-width:0;
    min-height:58px;
    padding:16px 20px;
    font-size:15px;
  }
}

@media (max-width:390px) {
  .logo img {
    width:112px;
  }

  .menu-toggle,
  .header-icon {
    width:40px;
    min-width:40px;
    height:40px;
    flex-basis:40px;
  }

  .hero-main .hero-actions .button {
    min-height:56px;
    font-size:14px;
  }
}

/* Compact footer typography and spacing */
.site-footer {
  padding:76px 0 24px;
}

.footer-grid {
  gap:clamp(30px,4.5vw,72px);
}

.footer-brand {
  min-height:250px;
  padding-right:clamp(30px,4vw,64px);
}

.footer-brand-label {
  margin-bottom:22px;
  font-size:11px;
}

.footer-brand img {
  margin-bottom:25px;
}

.footer-title {
  margin-bottom:18px;
  font-size:clamp(20px,1.35vw,24px);
}

.footer-copy {
  max-width:430px;
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.45;
}

.footer-column {
  padding-top:30px;
}

.footer-links {
  gap:12px;
  font-size:clamp(15px,1vw,18px);
  line-height:1.4;
}

.footer-bottom {
  margin-top:45px;
  padding-top:18px;
  font-size:clamp(13px,.85vw,15px);
}

@media (max-width:1080px) {
  .site-footer {
    padding-top:62px;
  }

  .footer-brand {
    min-height:0;
    padding-right:0;
  }

  .footer-column {
    padding-top:12px;
  }
}

@media (max-width:700px) {
  .site-footer {
    padding:48px 0 20px;
  }

  .footer-grid {
    gap:30px;
  }

  .footer-brand-label {
    margin-bottom:18px;
  }

  .footer-brand img {
    margin-bottom:20px;
  }

  .footer-title {
    margin-bottom:14px;
    font-size:19px;
  }

  .footer-copy,
  .footer-links {
    font-size:15px;
  }

  .footer-links {
    gap:10px;
  }

  .footer-bottom {
    margin-top:32px;
    padding-top:16px;
    font-size:12px;
  }
}

/* Refined partner map, expertise proportions and footer brand */
.footer-brand img {
  width:clamp(272px,20vw,376px);
}

.expertise-section .section-head {
  justify-content:flex-start;
  gap:clamp(24px,3vw,46px);
}

.expertise-section .section-head .button {
  flex:0 0 auto;
  margin-bottom:5px;
}

.expertise-grid {
  gap:clamp(20px,2vw,30px);
}

.expertise-card {
  min-height:760px;
  padding:clamp(34px,3.2vw,50px);
  border-radius:28px;
}

.expertise-card p {
  max-width:560px;
  font-size:clamp(20px,1.4vw,23px);
  line-height:1.42;
}

.partners-section {
  background:#f7f7f7;
}

.partners-map-stage {
  width:min(90%,1120px);
  max-width:100%;
  margin-inline:auto;
  overflow:hidden;
  border:0;
  border-radius:14px;
  background:#f7f7f7;
  box-shadow:none;
  isolation:isolate;
}

.partners-map-image {
  opacity:.84;
  filter:grayscale(1) brightness(1.04) contrast(.86);
  mix-blend-mode:multiply;
}

.partners-map-marker {
  width:46px;
  height:46px;
}

.partners-map-marker i {
  width:16px;
  height:16px;
  border:3px solid #fff;
  background:#19255a;
  box-shadow:0 0 0 2px #19255a,0 7px 20px rgba(25,37,90,.3);
}

.partners-map-marker i::after {
  inset:-11px;
  border-color:rgba(25,37,90,.32);
}

.partners-map-marker:hover i,
.partners-map-marker:focus-visible i,
.partners-map-marker.is-active i {
  background:#5d75d5;
  box-shadow:0 0 0 3px #5d75d5,0 10px 26px rgba(25,37,90,.38);
  transform:translate(-50%,-50%) scale(1.25);
}

.partners-map-marker span {
  border:0;
  border-radius:10px;
  background:#19255a;
  color:#fff;
  box-shadow:0 14px 34px rgba(25,37,90,.24);
}

.partners-map-marker:hover span,
.partners-map-marker:focus-visible span,
.partners-map-marker.is-active span {
  background:#19255a;
  color:#fff;
}

.partners-map-marker:hover span strong,
.partners-map-marker:focus-visible span strong,
.partners-map-marker.is-active span strong,
.partners-map-marker:hover span small,
.partners-map-marker:focus-visible span small,
.partners-map-marker.is-active span small {
  color:#fff;
}

@media (max-width:1080px) {
  .partners-map-stage {
    width:100%;
    margin-inline:auto;
    overflow:hidden;
  }

  .expertise-card {
    min-height:640px;
  }
}

@media (max-width:700px) {
  .footer-brand img {
    width:240px;
  }

  .expertise-section .section-head {
    display:grid;
    justify-items:start;
    gap:22px;
  }

  .expertise-section .section-head .button {
    margin:0;
  }

  .expertise-card {
    min-height:540px;
    padding:30px;
    border-radius:22px;
  }

  .expertise-card p {
    font-size:18px;
  }

  .partners-map-stage {
    border-radius:10px;
  }

  .partners-map-marker {
    width:36px;
    height:36px;
  }

  .partners-map-marker i {
    width:12px;
    height:12px;
    border-width:2px;
  }
}

/* 2026 premium motion and interaction system */
:root {
  --premium-ease:cubic-bezier(.22,1,.36,1);
  --premium-fast:420ms;
  --premium-slow:900ms;
}

.button {
  box-shadow:none;
  background-image:linear-gradient(90deg,rgba(255,255,255,.11) 0 50%,transparent 50%);
  background-position:100% 0;
  background-size:205% 100%;
  transition:
    background-color var(--premium-fast) ease,
    background-position 620ms var(--premium-ease),
    border-color var(--premium-fast) ease,
    color var(--premium-fast) ease,
    transform var(--premium-fast) var(--premium-ease);
}

.button:hover,
.button:focus-visible {
  box-shadow:none !important;
  background-position:0 0;
  transform:translateY(-1px);
}

.button:active {
  box-shadow:none !important;
  transform:translateY(0) scale(.985);
  transition-duration:120ms;
}

.button--outline {
  background-image:linear-gradient(90deg,#19255a 0 50%,transparent 50%);
}

.button--outline:hover,
.button--outline:focus-visible {
  border-color:#19255a;
  background-color:transparent;
  color:#fff;
}

.button--light {
  background-image:linear-gradient(90deg,#e9ebf1 0 50%,#fff 50%);
}

.hero-main .hero-actions .button:not(.button--outline) {
  background-image:linear-gradient(90deg,#e9ebf1 0 50%,#fff 50%);
}

.hero-main .hero-actions .button--outline,
.services-hero .button--outline {
  background-image:linear-gradient(90deg,#fff 0 50%,rgba(255,255,255,.12) 50%);
}

.hero-main .hero-actions .button:hover,
.hero-main .hero-actions .button:focus-visible,
.services-hero .button:hover,
.services-hero .button:focus-visible {
  box-shadow:none !important;
}

.main-nav a,
.catalog-trigger,
.footer-links a {
  position:relative;
}

.main-nav a::after,
.catalog-trigger::after,
.footer-links a::after {
  content:"";
  position:absolute;
  right:0;
  bottom:1px;
  left:0;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right center;
  transition:transform 560ms var(--premium-ease);
}

.main-nav a:hover::after,
.main-nav a:focus-visible::after,
.main-nav a.active::after,
.catalog-trigger:hover::after,
.catalog-trigger:focus-visible::after,
.footer-links a:hover::after,
.footer-links a:focus-visible::after {
  transform:scaleX(1);
  transform-origin:left center;
}

.visual-card,
.expertise-card,
.catalog-choice-card,
.product-card,
.project-tile,
.info-card,
.doc-qr-link {
  box-shadow:none;
}

.visual-card,
.expertise-card,
.catalog-choice-card {
  background-position:center 50%;
  transition:
    background-position 1.1s var(--premium-ease),
    border-color var(--premium-fast) ease,
    transform var(--premium-fast) var(--premium-ease);
}

.visual-card:hover,
.visual-card:focus-visible,
.expertise-card:hover,
.expertise-card:focus-visible,
.catalog-choice-card:hover,
.catalog-choice-card:focus-visible {
  box-shadow:none;
  background-position:center 47%;
  transform:none;
}

.visual-card::before,
.expertise-card::before,
.catalog-choice-card::before {
  transition:background 720ms var(--premium-ease),opacity 720ms var(--premium-ease);
}

.product-card,
.info-card,
.doc-card,
.doc-qr-link {
  transition:
    border-color var(--premium-fast) ease,
    background-color var(--premium-fast) ease,
    transform var(--premium-fast) var(--premium-ease);
}

.info-card {
  position:relative;
  overflow:hidden;
}

.product-card::after,
.info-card::after {
  content:"";
  position:absolute;
  z-index:4;
  right:0;
  bottom:0;
  left:0;
  height:2px;
  pointer-events:none;
  background:#19255a;
  transform:scaleX(0);
  transform-origin:right center;
  transition:transform 680ms var(--premium-ease);
}

.product-card:hover,
.product-card:focus-within,
.info-card:hover,
.info-card:focus-within,
.doc-card--catalog:hover,
.doc-card--catalog:focus-within,
.doc-qr-link:hover,
.doc-qr-link:focus-visible,
.project-tile:hover,
.project-tile:focus-visible {
  box-shadow:none;
  transform:none;
}

.product-card:hover,
.product-card:focus-within,
.info-card:hover,
.info-card:focus-within,
.doc-qr-link:hover,
.doc-qr-link:focus-visible {
  border-color:rgba(25,37,90,.28);
}

.product-card:hover::after,
.product-card:focus-within::after,
.info-card:hover::after,
.info-card:focus-within::after {
  transform:scaleX(1);
  transform-origin:left center;
}

.product-image--photo img,
.project-tile img,
.sealant-feature-media img,
.feature-art img,
.doc-qr-link img {
  transition:
    transform var(--premium-slow) var(--premium-ease),
    filter 700ms ease;
}

.product-card:hover .product-image--photo img,
.product-card:focus-within .product-image--photo img,
.project-tile:hover img,
.project-tile:focus-visible img,
.sealant-feature:hover .sealant-feature-media img,
.doc-qr-link:hover img,
.doc-qr-link:focus-visible img {
  filter:saturate(1.03) contrast(1.015);
  transform:scale(1.035);
}

.company-feature .feature-art:hover img {
  transform:scale(1.025);
}

.reveal-enabled [data-reveal] {
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity 820ms ease var(--reveal-delay,0ms),
    transform 980ms var(--premium-ease) var(--reveal-delay,0ms),
    clip-path 1.1s var(--premium-ease) var(--reveal-delay,0ms);
  will-change:opacity,transform;
}

.reveal-enabled [data-reveal="media"] {
  clip-path:inset(0 0 12% 0 round 16px);
  transform:translateY(30px) scale(1.018);
}

.reveal-enabled [data-reveal="media"] img {
  transform:scale(1.055);
}

.reveal-enabled [data-reveal].is-visible {
  opacity:1;
  clip-path:inset(0 0 0 0 round 0);
  transform:none;
}

.reveal-enabled [data-reveal="media"].is-visible img {
  transform:none;
}

@media (hover:hover) {
  .reveal-enabled .product-card[data-reveal="media"].is-visible:hover .product-image--photo img,
  .reveal-enabled .project-tile[data-reveal="media"].is-visible:hover img,
  .reveal-enabled .doc-qr-link[data-reveal="media"].is-visible:hover img {
    transform:scale(1.035);
  }
}

@media (max-width:700px) {
  .button:hover,
  .button:focus-visible {
    transform:none;
  }

  .visual-card,
  .expertise-card,
  .catalog-choice-card {
    background-position:center;
  }

  .reveal-enabled [data-reveal],
  .reveal-enabled [data-reveal="media"] {
    transform:translateY(18px);
  }
}

@media (hover:none), (pointer:coarse) {
  .page-hero::before,
  .page-hero::after,
  .page-hero--konoshima::after,
  .projects-page-hero::after,
  .home-hero::before,
  .home-hero::after {
    animation:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .reveal-enabled [data-reveal],
  .reveal-enabled [data-reveal="media"],
  .reveal-enabled [data-reveal="media"] img {
    opacity:1;
    clip-path:none;
    transform:none;
    transition:none;
    will-change:auto;
  }

  .button,
  .main-nav a::after,
  .catalog-trigger::after,
  .footer-links a::after,
  .visual-card,
  .expertise-card,
  .catalog-choice-card,
  .product-card,
  .product-image--photo img,
  .project-tile,
  .project-tile img,
  .sealant-feature-media img,
  .feature-art img,
  .doc-qr-link,
  .doc-qr-link img {
    transition:none;
  }
}

/* 2026 mobile re-adaptation: narrow-screen stability and touch comfort */
@media (max-width:900px) {
  .expertise-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .expertise-card h3 {
    min-width:0;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
  }
}

@media (max-width:700px) {
  html,
  body {
    max-width:100%;
    overflow-x:hidden;
    overflow-x:clip;
  }

  .container,
  .page-hero .container,
  .section-head,
  .catalog-intro,
  .content-grid,
  .products-grid,
  .product-card,
  .product-body,
  .product-actions,
  .service-path,
  .service-path > div,
  .docs-grid,
  .doc-card,
  .doc-catalog-copy,
  .dpk-palette-section,
  .dpk-palette-heading,
  .legal-layout,
  .legal-layout > *,
  .legal-document,
  .legal-nav,
  .partner-form,
  .project-request-form,
  .project-form-grid,
  .project-request-types,
  .form-group,
  .form-field,
  .project-field {
    min-width:0;
    max-width:100%;
  }

  h1,
  h2,
  h3,
  h1 strong,
  h2 strong,
  h3 strong,
  .legal-document,
  .legal-nav,
  .footer-links,
  .form-consent,
  .consent-row {
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
  }

  input,
  select,
  textarea {
    width:100%;
    max-width:100%;
    font-size:16px;
  }

  img,
  picture,
  video,
  iframe {
    max-width:100%;
  }

  .main-nav {
    width:100%;
    max-width:100vw;
  }

  .expertise-grid {
    grid-template-columns:1fr;
  }

  .dropdown-menu a {
    display:flex;
    min-height:44px;
    align-items:center;
  }

  .filter-reset {
    min-height:44px;
  }

  .side-panel,
  .catalog-choice-modal,
  .project-lightbox {
    max-width:calc(100% - 16px);
  }

  .legal-document,
  .legal-nav {
    width:100%;
  }
}

@media (max-width:430px) {
  .page-hero h1,
  .projects-page-hero h1,
  .services-hero h1 {
    font-size:clamp(26px,8vw,38px);
    line-height:1.02;
  }

  .home-hero h1 {
    font-size:clamp(38px,12vw,48px);
    line-height:.98;
  }

  .catalog-intro h2,
  body[data-page="catalog"] .section-head h2,
  .sealant-feature-content h2 {
    font-size:clamp(27px,8.8vw,34px);
    line-height:1.02;
  }

  .dpk-palette-section {
    padding:22px;
  }

  .dpk-palette-heading h2 {
    font-size:clamp(27px,8.8vw,34px);
  }

  .doc-card h3 {
    font-size:clamp(21px,7vw,27px);
  }

  .service-path h3 {
    font-size:clamp(21px,7.2vw,25px);
  }

  .menu-toggle,
  .header-icon,
  .close-btn,
  .qty-btn,
  .remove-btn {
    min-width:44px;
    min-height:44px;
  }

  .cookie-banner-actions {
    grid-template-columns:1fr;
  }

  .cookie-banner-actions .button,
  .panel-actions .button,
  .cart-footer .button,
  .partner-form .button,
  .project-request-form button[type="submit"] {
    width:100%;
  }
}

/* Consent block on the dark partner form */
.partner-form .form-consents {
  margin-top:20px;
}

.partner-form .form-consent,
.partner-form .form-consent span {
  color:rgba(255,255,255,.88);
}

.partner-form .form-consent a {
  color:#b9c8ff;
  text-decoration-color:rgba(185,200,255,.62);
}

.partner-form .form-consent input {
  border:1px solid rgba(255,255,255,.7);
  background:#fff;
}

.partner-form .button[data-consent-submit]:disabled,
.partner-form .button[data-consent-submit]:disabled:hover,
.partner-form .button[data-consent-submit]:disabled:focus-visible {
  border-color:rgba(185,200,255,.72) !important;
  background-color:rgba(111,141,234,.34) !important;
  color:#fff !important;
  opacity:1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}

.partner-form .button[data-consent-submit]:not(:disabled) {
  border-color:#6f8dea !important;
  background-color:#6f8dea !important;
  color:#fff !important;
}

/* Legal notices, consents and cookie preferences */
.footer-grid {
  grid-template-columns:minmax(300px,1.35fr) repeat(3,minmax(150px,.7fr));
}

.form-consents {
  display:grid;
  gap:10px;
  margin:18px 0 4px;
}

.form-consent {
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  cursor:pointer;
}

.form-consent input {
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin:1px 0 0;
  accent-color:var(--blue);
}

.form-consent a {
  color:var(--blue);
  text-decoration:underline;
  text-decoration-color:rgba(43,69,148,.35);
  text-underline-offset:2px;
}

.project-legal-consents {
  margin:20px clamp(22px,5vw,48px) 0;
}

.project-legal-consents.has-error .form-consent {
  color:#9f2f47;
}

.cookie-banner {
  position:fixed;
  z-index:900;
  right:20px;
  bottom:20px;
  left:20px;
  display:flex;
  max-width:1080px;
  margin:auto;
  gap:28px;
  align-items:center;
  justify-content:space-between;
  padding:20px 22px;
  border:1px solid rgba(25,37,90,.14);
  border-radius:18px;
  background:rgba(255,255,255,.97);
  box-shadow:0 22px 70px rgba(7,14,33,.22);
  backdrop-filter:blur(14px);
}

.cookie-banner[hidden] { display:none; }
.cookie-banner strong { display:block; margin-bottom:5px; color:var(--ink); font-size:16px; }
.cookie-banner p { max-width:700px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.cookie-banner a { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.cookie-banner-actions { display:flex; flex:0 0 auto; gap:10px; }

.map-box {
  position:relative;
}

.map-cookie-placeholder {
  display:grid;
  min-height:560px;
  place-content:center;
  justify-items:start;
  gap:12px;
  padding:clamp(28px,6vw,70px);
  color:var(--ink);
  background:linear-gradient(135deg,#edf0f5,#d9dee8);
}

.map-cookie-placeholder strong { font-size:24px; }
.map-cookie-placeholder p { max-width:520px; color:var(--muted); }
.map-box iframe:not([src]) { display:none; }

.legal-page {
  background:#f6f7fa;
}

.legal-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:42px;
  align-items:start;
}

.legal-document {
  padding:clamp(28px,5vw,64px);
  border:1px solid rgba(25,37,90,.1);
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 65px rgba(25,37,90,.08);
}

.legal-document h2 { margin:36px 0 14px; font-size:clamp(24px,3vw,34px); }
.legal-document h3 { margin:25px 0 10px; font-size:19px; }
.legal-document p,.legal-document li { color:#45506d; font-size:15px; line-height:1.75; }
.legal-document ul,.legal-document ol { padding-left:22px; }
.legal-meta { margin:0 0 28px; color:var(--muted); font-size:13px; }
.legal-note { padding:18px 20px; border-left:3px solid var(--blue); border-radius:0 12px 12px 0; background:#f1f4fb; }
.legal-nav { position:sticky; top:100px; padding:22px; border:1px solid rgba(25,37,90,.1); border-radius:16px; background:#fff; }
.legal-nav strong { display:block; margin-bottom:12px; color:var(--ink); }
.legal-nav a { display:block; padding:7px 0; color:var(--blue); font-size:13px; }

@media (max-width:980px) {
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .legal-layout { grid-template-columns:1fr; }
  .legal-nav { position:static; order:-1; }
}

@media (max-width:640px) {
  .footer-grid { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
  .cookie-banner { right:10px; bottom:10px; left:10px; display:grid; gap:16px; padding:18px; }
  .cookie-banner-actions { display:grid; grid-template-columns:1fr 1fr; }
  .cookie-banner-actions .button { width:100%; padding-inline:12px; }
  .map-cookie-placeholder { min-height:400px; }
  .legal-document { padding:25px 20px; }
}

/* Internal hero atmosphere, unified footer and project request scale */
.page-hero {
  isolation:isolate;
  background:#19255a;
}

.page-hero::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:-55% -20%;
  display:block;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 18% 46%,rgba(118,139,224,.58) 0,rgba(77,101,194,.26) 23%,transparent 48%),
    radial-gradient(ellipse at 72% 22%,rgba(255,255,255,.18) 0,rgba(114,137,224,.18) 20%,transparent 44%),
    radial-gradient(ellipse at 82% 78%,rgba(62,86,181,.72) 0,rgba(62,86,181,.12) 27%,transparent 52%);
  filter:blur(46px);
  opacity:.82;
  transform:translate3d(-3%,-2%,0) scale(1.04);
  animation:page-hero-morph-a 16s ease-in-out infinite alternate;
  will-change:transform,border-radius;
}

.page-hero::after,
.page-hero--konoshima::after,
.projects-page-hero::after {
  content:"";
  position:absolute;
  z-index:0;
  top:-42%;
  right:-7%;
  bottom:auto;
  width:clamp(380px,48vw,780px);
  height:clamp(380px,48vw,780px);
  pointer-events:none;
  border-radius:58% 42% 63% 37% / 42% 58% 42% 58%;
  background:
    radial-gradient(circle at 38% 38%,rgba(165,180,239,.42),rgba(81,105,199,.28) 33%,transparent 67%);
  filter:blur(62px);
  opacity:.74;
  transform:translate3d(4%,3%,0) rotate(-8deg);
  animation:page-hero-morph-b 19s ease-in-out infinite alternate;
  will-change:transform,border-radius;
}

.page-hero .container {
  position:relative;
  z-index:2;
}

@keyframes page-hero-morph-a {
  0% {
    border-radius:44% 56% 38% 62% / 55% 41% 59% 45%;
    transform:translate3d(-4%,-3%,0) scale(1.02) rotate(-2deg);
  }
  50% {
    border-radius:61% 39% 57% 43% / 38% 62% 42% 58%;
    transform:translate3d(4%,4%,0) scale(1.11) rotate(4deg);
  }
  100% {
    border-radius:38% 62% 45% 55% / 63% 37% 57% 43%;
    transform:translate3d(8%,-2%,0) scale(1.05) rotate(-1deg);
  }
}

@keyframes page-hero-morph-b {
  0% {
    border-radius:58% 42% 63% 37% / 42% 58% 42% 58%;
    transform:translate3d(4%,3%,0) rotate(-8deg) scale(.96);
  }
  50% {
    border-radius:39% 61% 44% 56% / 61% 39% 57% 43%;
    transform:translate3d(-8%,9%,0) rotate(8deg) scale(1.12);
  }
  100% {
    border-radius:65% 35% 52% 48% / 36% 64% 41% 59%;
    transform:translate3d(-2%,-4%,0) rotate(1deg) scale(1.02);
  }
}

.map-box iframe {
  filter:none;
}

.site-footer {
  background:#11183f;
}

.footer-brand img {
  width:clamp(218px,16vw,300px);
  max-width:100%;
}

.project-request-section {
  padding:clamp(110px,9vw,150px) 0;
}

.project-request-layout {
  grid-template-columns:minmax(340px,.78fr) minmax(0,1.22fr);
  gap:clamp(58px,7vw,100px);
}

.project-request-aside > p {
  max-width:560px;
  color:rgba(255,255,255,.78);
  font-size:clamp(18px,1.35vw,21px);
  font-weight:300;
  line-height:1.5;
}

.project-source-list {
  gap:18px;
  margin-top:46px;
  padding-top:30px;
}

.project-source-list > strong {
  margin-bottom:3px;
  font-size:18px;
  font-weight:600;
}

.project-source-list span {
  gap:16px;
  color:rgba(255,255,255,.78);
  font-size:clamp(15px,1.05vw,17px);
  font-weight:300;
  line-height:1.4;
}

.project-source-list i {
  width:50px;
  height:34px;
  border-radius:9px;
  background:rgba(255,255,255,.12);
  font-size:10px;
  font-weight:600;
}

.project-request-note {
  margin-top:46px;
  padding:28px 0 0;
  border:0;
  border-top:1px solid rgba(255,255,255,.2);
  border-radius:0;
  background:transparent;
}

.project-request-note strong {
  margin-bottom:10px;
  font-size:14px;
  font-weight:600;
}

.project-request-note p {
  max-width:570px;
  color:rgba(255,255,255,.7);
  font-size:clamp(15px,1vw,17px);
  font-weight:300;
  line-height:1.5;
}

.project-form-section {
  padding:48px clamp(28px,4vw,54px) 50px;
}

.project-form-section legend {
  font-size:clamp(23px,1.8vw,28px);
  font-weight:600;
  line-height:1.2;
}

.project-form-section legend span {
  width:38px;
  height:38px;
  margin-right:14px;
  font-size:11px;
}

.project-request-types {
  gap:14px;
  margin-top:34px;
}

.project-request-types label > span {
  min-height:168px;
  justify-content:center;
  padding:28px 24px;
}

.project-request-types b {
  margin-bottom:11px;
  font-size:15px;
  line-height:1.25;
}

.project-request-types small {
  font-size:12px;
  line-height:1.5;
}

.project-form-grid {
  gap:20px;
  margin-top:32px;
}

.project-field {
  gap:9px;
  font-size:12px;
}

.project-field input,
.project-field select,
.project-field textarea {
  min-height:56px;
  padding:15px 17px;
  font:500 14px/1.45 "Inter Tight",Arial,sans-serif;
}

.project-field textarea {
  min-height:155px;
}

.project-field-error,
.project-consent,
.project-form-submit span {
  font-size:12px;
}

.project-file-drop {
  min-height:210px;
  padding:30px;
}

.project-file-drop strong {
  font-size:15px;
}

.project-file-drop small {
  font-size:12px;
}

.project-consent {
  margin-top:34px;
}

.project-form-submit {
  padding-top:32px;
  padding-bottom:40px;
}

@media (max-width:950px) {
  .project-request-layout {
    grid-template-columns:1fr;
    gap:52px;
  }
}

@media (max-width:700px) {
  .page-hero::before {
    inset:-35% -55%;
    filter:blur(36px);
  }

  .page-hero::after,
  .page-hero--konoshima::after,
  .projects-page-hero::after {
    top:-10%;
    right:-52%;
    filter:blur(45px);
  }

  .footer-brand img {
    width:192px;
  }

  .project-request-section {
    padding:82px 0;
  }

  .project-request-layout {
    gap:42px;
  }

  .project-request-aside > p {
    font-size:18px;
  }

  .project-source-list > strong {
    font-size:17px;
  }

  .project-source-list span,
  .project-request-note p {
    font-size:15px;
  }

  .project-form-section {
    padding:34px 22px 38px;
  }

  .project-form-section legend {
    font-size:22px;
  }

  .project-request-types {
    margin-top:28px;
  }

  .project-request-types label > span {
    min-height:132px;
    padding:24px 21px;
  }

  .project-request-types b {
    font-size:14px;
  }

  .project-request-types small {
    font-size:12px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .page-hero::before,
  .page-hero::after,
  .page-hero--konoshima::after,
  .projects-page-hero::after {
    animation:none;
  }
}

/* Stable translucent button states */
.button,
.button--light,
.button--outline {
  border-color:rgba(25,37,90,.26) !important;
  background-color:rgba(25,37,90,.78) !important;
  background-image:none !important;
  color:#fff !important;
  box-shadow:none !important;
}

.button:hover,
.button:focus-visible,
.button:active,
.button--light:hover,
.button--light:focus-visible,
.button--light:active,
.button--outline:hover,
.button--outline:focus-visible,
.button--outline:active {
  border-color:#19255a !important;
  background-color:#19255a !important;
  background-image:none !important;
  color:#fff !important;
  box-shadow:none !important;
}

.button--outline {
  border-color:rgba(25,37,90,.38) !important;
  background-color:rgba(25,37,90,.07) !important;
  color:#19255a !important;
}

.home-hero .button,
.page-hero .button,
.services-hero .button,
.catalog-showroom-cta .button,
.service-path--talk .button,
.partner-form .button,
.doc-card--catalog .button,
.showroom-section .button {
  border-color:rgba(255,255,255,.52) !important;
  background-color:rgba(255,255,255,.76) !important;
  background-image:none !important;
  color:#19255a !important;
  backdrop-filter:blur(10px);
}

.home-hero .button--outline,
.page-hero .button--outline,
.services-hero .button--outline,
.catalog-showroom-cta .button--outline,
.service-path--talk .button--outline,
.partner-form .button--outline,
.doc-card--catalog .button--outline,
.showroom-section .button--outline {
  border-color:rgba(255,255,255,.58) !important;
  background-color:rgba(255,255,255,.11) !important;
  color:#fff !important;
}

.home-hero .button:hover,
.home-hero .button:focus-visible,
.home-hero .button:active,
.page-hero .button:hover,
.page-hero .button:focus-visible,
.page-hero .button:active,
.services-hero .button:hover,
.services-hero .button:focus-visible,
.services-hero .button:active,
.catalog-showroom-cta .button:hover,
.catalog-showroom-cta .button:focus-visible,
.catalog-showroom-cta .button:active,
.service-path--talk .button:hover,
.service-path--talk .button:focus-visible,
.service-path--talk .button:active,
.partner-form .button:hover,
.partner-form .button:focus-visible,
.partner-form .button:active,
.doc-card--catalog .button:hover,
.doc-card--catalog .button:focus-visible,
.doc-card--catalog .button:active,
.showroom-section .button:hover,
.showroom-section .button:focus-visible,
.showroom-section .button:active {
  border-color:#fff !important;
  background-color:#fff !important;
  background-image:none !important;
  color:#19255a !important;
}

.button:disabled,
.button:disabled:hover,
.button:disabled:focus-visible,
.button:disabled:active {
  border-color:rgba(25,37,90,.14) !important;
  background-color:rgba(25,37,90,.34) !important;
  color:rgba(255,255,255,.82) !important;
  transform:none;
}

/* Rebuilt project questionnaire spacing */
.project-request-layout {
  grid-template-columns:minmax(360px,.72fr) minmax(0,1.28fr);
}

.project-request-form {
  border-color:rgba(255,255,255,.22);
  box-shadow:none;
}

.project-form-section {
  display:block;
  padding:54px clamp(30px,4.4vw,60px) 56px;
}

.project-form-title {
  display:flex;
  align-items:center;
  gap:16px;
  margin:0 0 38px;
  color:#19255a;
  font-size:clamp(24px,1.9vw,30px);
  font-weight:600;
  line-height:1.15;
  text-transform:uppercase;
}

.project-form-title span {
  display:inline-grid;
  width:42px;
  height:42px;
  flex:0 0 42px;
  place-items:center;
  border-radius:10px;
  background:#edf1fb;
  color:#19255a;
  font-size:12px;
  font-weight:600;
}

.project-request-types,
.project-form-grid {
  margin-top:0;
}

.project-request-types {
  gap:16px;
}

.project-request-types label > span {
  min-height:180px;
  justify-content:center;
  padding:30px 26px;
}

.project-request-types b {
  font-size:16px;
}

.project-request-types small {
  font-size:13px;
}

.project-form-section > .project-file-drop {
  margin-top:0;
}

@media (max-width:1180px) {
  .project-request-layout {
    grid-template-columns:1fr;
    gap:58px;
  }

  .project-request-aside {
    position:static;
    max-width:820px;
  }
}

@media (max-width:700px) {
  .project-form-section {
    padding:38px 22px 42px;
  }

  .project-form-title {
    align-items:flex-start;
    gap:13px;
    margin-bottom:30px;
    font-size:22px;
  }

  .project-form-title span {
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .project-request-types label > span {
    min-height:142px;
    padding:26px 22px;
  }

  .project-request-types b {
    font-size:15px;
  }

  .project-request-types small {
    font-size:13px;
  }
}

/* Cropped continent map, single sweep line and interactive mesh */
.partners-map-stage {
  position:relative;
  width:100%;
  max-width:1340px;
  height:clamp(470px,54vw,720px);
  margin-inline:auto;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  isolation:isolate;
}

.partners-map-canvas {
  position:absolute;
  top:50%;
  left:50%;
  width:136%;
  aspect-ratio:5064.5082 / 2718;
  transform:translate(-50%,-50%);
}

.partners-map-image {
  position:absolute;
  z-index:1;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:1;
  filter:grayscale(1) brightness(.82) contrast(1.9);
  mix-blend-mode:multiply;
}

.partners-map-marker {
  z-index:3;
  width:44px;
  height:44px;
}

.partners-map-marker i {
  width:18px;
  height:18px;
  border:0;
  background:#19255a;
  box-shadow:none;
}

.partners-map-marker i::after {
  display:none;
}

.partners-map-marker:hover i,
.partners-map-marker:focus-visible i,
.partners-map-marker.is-active i {
  background:#6c85e5;
  box-shadow:none;
  transform:translate(-50%,-50%) scale(1.18);
}

.button {
  position:relative;
  overflow:hidden;
}

.button::before {
  content:none !important;
}

.button::after {
  content:none;
}

.product-card::after,
.info-card::after,
.main-nav a::after,
.catalog-trigger::after,
.footer-links a::after {
  height:1px;
}

.product-card:hover,
.product-card:focus-within,
.info-card:hover,
.info-card:focus-within {
  border-bottom-color:transparent;
}

.page-hero,
.home-hero {
  --mesh-pointer-x:0px;
  --mesh-pointer-y:0px;
}

.home-hero::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:-48% -18%;
  display:block;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 14% 42%,rgba(97,126,230,.56) 0,rgba(57,84,187,.22) 27%,transparent 50%),
    radial-gradient(ellipse at 62% 18%,rgba(177,198,255,.24) 0,rgba(94,122,218,.16) 23%,transparent 46%),
    radial-gradient(ellipse at 86% 74%,rgba(42,72,179,.62) 0,rgba(42,72,179,.12) 28%,transparent 52%);
  filter:blur(56px);
  opacity:.68;
  animation:page-hero-morph-a 16s ease-in-out infinite alternate;
  will-change:transform,border-radius;
}

.home-hero::after {
  z-index:0;
  top:-32%;
  right:-8%;
  bottom:auto;
  width:clamp(420px,52vw,860px);
  height:clamp(420px,52vw,860px);
  border-radius:58% 42% 63% 37% / 42% 58% 42% 58%;
  background:radial-gradient(circle at 38% 38%,rgba(157,181,255,.35),rgba(64,94,203,.22) 35%,transparent 68%);
  filter:blur(68px);
  opacity:.68;
  animation:page-hero-morph-b 19s ease-in-out infinite alternate;
  will-change:transform,border-radius;
}

@keyframes page-hero-morph-a {
  0% {
    border-radius:44% 56% 38% 62% / 55% 41% 59% 45%;
    transform:translate3d(calc(-4% + var(--mesh-pointer-x)),calc(-3% + var(--mesh-pointer-y)),0) scale(1.02) rotate(-2deg);
  }
  50% {
    border-radius:61% 39% 57% 43% / 38% 62% 42% 58%;
    transform:translate3d(calc(4% + var(--mesh-pointer-x)),calc(4% + var(--mesh-pointer-y)),0) scale(1.11) rotate(4deg);
  }
  100% {
    border-radius:38% 62% 45% 55% / 63% 37% 57% 43%;
    transform:translate3d(calc(8% + var(--mesh-pointer-x)),calc(-2% + var(--mesh-pointer-y)),0) scale(1.05) rotate(-1deg);
  }
}

@keyframes page-hero-morph-b {
  0% {
    border-radius:58% 42% 63% 37% / 42% 58% 42% 58%;
    transform:translate3d(calc(4% + var(--mesh-pointer-x)),calc(3% + var(--mesh-pointer-y)),0) rotate(-8deg) scale(.96);
  }
  50% {
    border-radius:39% 61% 44% 56% / 61% 39% 57% 43%;
    transform:translate3d(calc(-8% + var(--mesh-pointer-x)),calc(9% + var(--mesh-pointer-y)),0) rotate(8deg) scale(1.12);
  }
  100% {
    border-radius:65% 35% 52% 48% / 36% 64% 41% 59%;
    transform:translate3d(calc(-2% + var(--mesh-pointer-x)),calc(-4% + var(--mesh-pointer-y)),0) rotate(1deg) scale(1.02);
  }
}

@media (max-width:700px) {
  .partners-map-stage {
    height:260px;
    overflow:hidden;
  }

  .partners-map-canvas {
    width:142%;
  }

  .partners-map-marker {
    width:34px;
    height:34px;
  }

  .partners-map-marker i {
    width:13px;
    height:13px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .home-hero::before,
  .home-hero::after {
    animation:none;
  }

  .button::after {
    transition:none;
  }
}

/* Scroll performance: preserve the visual system while avoiding continuous repaints */
.site-header {
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

.catalog-showroom-cta,
.services-hero-summary,
.expertise-card > span,
.partners-map-marker span {
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

.partners-map-image {
  filter:none;
  mix-blend-mode:normal;
}

.page-hero,
.home-hero {
  contain:paint;
}

.page-hero::before,
.page-hero::after,
.page-hero--konoshima::after,
.projects-page-hero::after,
.home-hero::before,
.home-hero::after {
  border-radius:0;
  filter:none;
  animation-play-state:paused;
  will-change:auto;
}

.page-hero.mesh-is-active::before,
.page-hero.mesh-is-active::after,
.home-hero.mesh-is-active::before,
.home-hero.mesh-is-active::after {
  animation-play-state:running;
  will-change:transform;
}

.page-hero::after,
.page-hero--konoshima::after,
.projects-page-hero::after {
  inset:-65% -25%;
  width:auto;
  height:auto;
  background:
    radial-gradient(ellipse at 76% 30%,rgba(165,180,239,.38) 0,rgba(81,105,199,.22) 24%,rgba(81,105,199,.08) 39%,transparent 57%);
}

.home-hero::after {
  inset:-58% -22%;
  width:auto;
  height:auto;
  background:
    radial-gradient(ellipse at 80% 32%,rgba(157,181,255,.32) 0,rgba(64,94,203,.18) 25%,rgba(64,94,203,.06) 41%,transparent 58%);
}

@keyframes page-hero-morph-a {
  0% {
    transform:translate3d(calc(-4% + var(--mesh-pointer-x)),calc(-3% + var(--mesh-pointer-y)),0) scale(1.02);
  }
  50% {
    transform:translate3d(calc(4% + var(--mesh-pointer-x)),calc(4% + var(--mesh-pointer-y)),0) scale(1.1);
  }
  100% {
    transform:translate3d(calc(8% + var(--mesh-pointer-x)),calc(-2% + var(--mesh-pointer-y)),0) scale(1.05);
  }
}

@keyframes page-hero-morph-b {
  0% {
    transform:translate3d(calc(4% + var(--mesh-pointer-x)),calc(3% + var(--mesh-pointer-y)),0) scale(.97);
  }
  50% {
    transform:translate3d(calc(-8% + var(--mesh-pointer-x)),calc(9% + var(--mesh-pointer-y)),0) scale(1.11);
  }
  100% {
    transform:translate3d(calc(-2% + var(--mesh-pointer-x)),calc(-4% + var(--mesh-pointer-y)),0) scale(1.02);
  }
}

.reveal-enabled [data-reveal] {
  transition:
    opacity 720ms ease var(--reveal-delay,0ms),
    transform 860ms var(--premium-ease) var(--reveal-delay,0ms);
  will-change:auto;
}

.reveal-enabled [data-reveal="media"] {
  clip-path:none;
}

.reveal-enabled [data-reveal].reveal-active {
  will-change:opacity,transform;
}

.reveal-enabled [data-reveal].reveal-complete {
  clip-path:none;
  will-change:auto;
}

main > section:not(.home-hero):not(.page-hero) {
  content-visibility:auto;
  contain-intrinsic-size:auto 780px;
}

.partners-section {
  contain-intrinsic-size:auto 1120px;
}

.site-footer {
  content-visibility:auto;
  contain-intrinsic-size:auto 480px;
}

.products-grid .product-card {
  content-visibility:auto;
  contain-intrinsic-size:auto 500px;
}

@media (hover:none), (pointer:coarse) {
  .page-hero::before,
  .page-hero::after,
  .page-hero--konoshima::after,
  .projects-page-hero::after,
  .home-hero::before,
  .home-hero::after {
    animation:none;
    will-change:auto;
  }
}

/* 2026 catalog typography and unified brand controls */
.catalog-intro,
.catalog-intro h2,
.catalog-intro .eyebrow,
.fact-card,
.fact-card strong,
.fact-card span,
.dpk-palette-section,
.dpk-palette-heading,
.dpk-color-card,
.dpk-color-card strong,
.dpk-color-card small,
.dpk-color-filters .filter-label {
  font-family:"Inter Tight",Arial,sans-serif;
  letter-spacing:0;
}

.catalog-intro .eyebrow,
.dpk-palette-heading .eyebrow {
  color:var(--brand);
  font-size:clamp(14px,.9vw,16px);
  line-height:1.25;
  letter-spacing:0;
}

.catalog-intro h2 {
  color:var(--brand);
  font-size:clamp(40px,4.4vw,68px);
  line-height:1;
  letter-spacing:0;
}

.fact-card {
  color:var(--brand);
}

.fact-card strong {
  color:var(--brand);
  font-size:clamp(46px,4.2vw,68px);
  font-weight:600;
  line-height:.95;
  letter-spacing:0;
}

.fact-card span {
  display:block;
  margin-top:14px;
  color:rgba(var(--brand-rgb),.76);
  font-size:clamp(17px,1.2vw,21px);
  font-weight:300;
  line-height:1.42;
  letter-spacing:0;
}

.dpk-palette-heading h2 {
  color:var(--brand);
  font-size:clamp(34px,3.4vw,50px);
  line-height:1;
  letter-spacing:0;
}

.dpk-palette-heading > p {
  color:rgba(var(--brand-rgb),.72);
  font-family:"Inter Tight",Arial,sans-serif;
  font-size:clamp(15px,1.05vw,18px);
  line-height:1.45;
  letter-spacing:0;
}

.dpk-color-card {
  gap:15px;
  padding:16px;
  color:var(--brand);
}

.dpk-color-card > i {
  width:56px;
  height:56px;
  border-radius:14px;
}

.dpk-color-card strong {
  color:var(--brand);
  font-size:clamp(14px,1vw,17px);
  font-weight:600;
  line-height:1.25;
  letter-spacing:0;
}

.dpk-color-card small {
  margin-top:5px;
  color:rgba(var(--brand-rgb),.68);
  font-size:clamp(11px,.78vw,13px);
  font-weight:300;
  line-height:1.3;
  letter-spacing:0;
}

.dpk-palette-note {
  color:rgba(var(--brand-rgb),.68);
  font-family:"Inter Tight",Arial,sans-serif;
  font-size:clamp(12px,.85vw,14px);
  line-height:1.45;
  letter-spacing:0;
}

.dpk-color-filters .filter-label {
  color:rgba(var(--brand-rgb),.76);
  font-size:14px;
}

.dpk-color-filters .filter-label > i {
  width:22px;
  height:22px;
}

.dpk-color-filters .filter-label small {
  color:rgba(var(--brand-rgb),.62);
  font-size:11px;
  letter-spacing:0;
}

.button,
.button--light,
.button--outline {
  border-color:rgba(var(--brand-rgb),.26) !important;
  background-color:rgba(var(--brand-rgb),.78) !important;
  background-image:none !important;
  color:#fff !important;
}

.button--outline {
  border-color:rgba(var(--brand-rgb),.38) !important;
  background-color:rgba(var(--brand-rgb),.07) !important;
  color:var(--brand) !important;
}

.button:hover,
.button:focus-visible,
.button:active,
.button--light:hover,
.button--light:focus-visible,
.button--light:active,
.button--outline:hover,
.button--outline:focus-visible,
.button--outline:active {
  border-color:var(--brand) !important;
  background-color:var(--brand) !important;
  color:#fff !important;
}

.home-hero .button,
.page-hero .button,
.services-hero .button,
.catalog-showroom-cta .button,
.service-path--talk .button,
.partner-form .button,
.doc-card--catalog .button,
.showroom-section .button {
  border-color:rgba(var(--brand-rgb),.52) !important;
  background-color:rgba(var(--brand-rgb),.76) !important;
  color:#fff !important;
}

.home-hero .button--outline,
.page-hero .button--outline,
.services-hero .button--outline,
.catalog-showroom-cta .button--outline,
.service-path--talk .button--outline,
.partner-form .button--outline,
.doc-card--catalog .button--outline,
.showroom-section .button--outline {
  border-color:rgba(var(--brand-rgb),.58) !important;
  background-color:rgba(var(--brand-rgb),.11) !important;
  color:#fff !important;
}

.home-hero .button:hover,
.home-hero .button:focus-visible,
.home-hero .button:active,
.page-hero .button:hover,
.page-hero .button:focus-visible,
.page-hero .button:active,
.services-hero .button:hover,
.services-hero .button:focus-visible,
.services-hero .button:active,
.catalog-showroom-cta .button:hover,
.catalog-showroom-cta .button:focus-visible,
.catalog-showroom-cta .button:active,
.service-path--talk .button:hover,
.service-path--talk .button:focus-visible,
.service-path--talk .button:active,
.partner-form .button:hover,
.partner-form .button:focus-visible,
.partner-form .button:active,
.doc-card--catalog .button:hover,
.doc-card--catalog .button:focus-visible,
.doc-card--catalog .button:active,
.showroom-section .button:hover,
.showroom-section .button:focus-visible,
.showroom-section .button:active {
  border-color:var(--brand) !important;
  background-color:var(--brand) !important;
  color:#fff !important;
}

.menu-toggle,
.catalog-choice-close,
.close-btn,
.qty-btn,
.remove-btn,
.filter-reset,
.project-file-item button {
  border-color:rgba(var(--brand-rgb),.2) !important;
  background-color:rgba(var(--brand-rgb),.08) !important;
  color:var(--brand) !important;
}

.menu-toggle:hover,
.catalog-choice-close:hover,
.close-btn:hover,
.qty-btn:hover,
.remove-btn:hover,
.filter-reset:hover,
.project-file-item button:hover {
  border-color:var(--brand) !important;
  background-color:var(--brand) !important;
  color:#fff !important;
}

@media (max-width:540px) {
  .catalog-intro h2 {
    font-size:clamp(36px,10vw,44px);
  }

  .fact-card strong {
    font-size:clamp(44px,14vw,58px);
  }

  .dpk-color-card > i {
    width:52px;
    height:52px;
  }
}

/* 2026 complete catalog typography unification */
.catalog-choice-card span,
.catalog-choice-card strong,
.catalog-choice-card i,
body[data-page="catalog"] .section-head .eyebrow,
body[data-page="catalog"] .section-head h2,
.sealant-feature-content .eyebrow,
.sealant-feature-content h2,
.sealant-feature-content p,
.sealant-palette span,
body[data-page="catalog"] .product-title,
body[data-page="catalog"] .product-meta,
body[data-page="catalog"] .product-price,
body[data-page="catalog"] .product-price small {
  font-family:"Inter Tight",Arial,sans-serif;
  letter-spacing:0;
}

.catalog-choice-card span {
  margin-bottom:10px;
  color:rgba(255,255,255,.86);
  font-size:clamp(13px,.9vw,16px);
  font-weight:500;
  line-height:1.25;
  letter-spacing:0;
}

.catalog-choice-card strong,
.catalog-choice-card--compact strong {
  max-width:100%;
  color:#fff;
  font-size:clamp(28px,2.2vw,38px);
  font-weight:600;
  line-height:1.05;
  letter-spacing:0;
}

.catalog-choice-card i {
  margin-top:22px;
  color:rgba(255,255,255,.9);
  font-size:clamp(12px,.8vw,14px);
  font-weight:500;
  line-height:1.25;
  letter-spacing:0;
}

@media (min-width:801px) {
  .catalog-choice-card--components strong {
    font-size:clamp(23px,1.75vw,30px);
    line-height:1.04;
    text-wrap:balance;
  }

  .catalog-choice-card--components i {
    margin-top:14px;
  }
}

body[data-page="catalog"] .section-head .eyebrow,
.sealant-feature-content .eyebrow {
  color:var(--brand);
  font-size:clamp(14px,.9vw,16px);
  font-weight:600;
  line-height:1.25;
  letter-spacing:0;
}

body[data-page="catalog"] .section-head h2 {
  color:var(--brand);
  font-size:clamp(40px,4.4vw,68px);
  font-weight:300;
  line-height:1;
  letter-spacing:0;
}

.sealant-feature-content h2 {
  margin:12px 0 18px;
  color:var(--brand);
  font-size:clamp(40px,4vw,62px);
  font-weight:300;
  line-height:1;
  letter-spacing:0;
}

.sealant-feature-content p {
  color:rgba(var(--brand-rgb),.76);
  font-size:clamp(17px,1.2vw,21px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:0;
}

.sealant-palette {
  gap:10px;
  margin:28px 0;
}

.sealant-palette i {
  width:40px;
  height:40px;
}

.sealant-palette span {
  color:var(--brand);
  font-size:clamp(13px,.9vw,16px);
  font-weight:600;
  line-height:1.3;
  letter-spacing:0;
}

body[data-page="catalog"] .product-title {
  color:var(--brand);
  font-size:clamp(22px,1.45vw,26px);
  font-weight:500;
  line-height:1.12;
  letter-spacing:0;
}

body[data-page="catalog"] .product-meta {
  color:rgba(var(--brand-rgb),.72);
  font-size:clamp(15px,1vw,17px);
  font-weight:300;
  line-height:1.5;
  letter-spacing:0;
}

body[data-page="catalog"] .product-price {
  color:var(--brand);
  font-size:clamp(23px,1.55vw,28px);
  font-weight:600;
  line-height:1.15;
  letter-spacing:0;
}

body[data-page="catalog"] .product-price small {
  color:rgba(var(--brand-rgb),.68);
  font-size:clamp(12px,.85vw,14px);
  font-weight:300;
  line-height:1.4;
  letter-spacing:0;
}

.home-hero .hero-actions .button,
.home-hero .hero-actions .button--outline {
  border-color:rgba(var(--brand-rgb),.52) !important;
  background-color:rgba(var(--brand-rgb),.76) !important;
  color:#fff !important;
}

.home-hero .hero-actions .button:hover,
.home-hero .hero-actions .button:focus-visible,
.home-hero .hero-actions .button:active,
.home-hero .hero-actions .button--outline:hover,
.home-hero .hero-actions .button--outline:focus-visible,
.home-hero .hero-actions .button--outline:active {
  border-color:var(--brand) !important;
  background-color:var(--brand) !important;
  color:#fff !important;
}

@media (max-width:800px) {
  .catalog-choice-card strong,
  .catalog-choice-card--compact strong {
    font-size:clamp(27px,5vw,35px);
  }

  .sealant-feature-content h2 {
    font-size:clamp(38px,8vw,52px);
  }
}

@media (max-width:540px) {
  body[data-page="catalog"] .section-head h2,
  .sealant-feature-content h2 {
    font-size:clamp(36px,10vw,44px);
  }

  .sealant-feature-content p {
    font-size:17px;
  }

  .sealant-palette i {
    width:36px;
    height:36px;
  }

  body[data-page="catalog"] .product-title {
    font-size:22px;
  }

  body[data-page="catalog"] .product-meta {
    font-size:15px;
  }
}

/* Full-width partner map with readable hover labels */
.partners-section {
  overflow:hidden;
}

@media (max-width:1180px) {
  .expertise-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

.partners-map-area {
  width:min(calc(100% - 64px),1500px);
  padding-bottom:clamp(76px,7vw,118px);
}

.partners-map-intro {
  max-width:760px;
  margin-bottom:clamp(34px,4vw,58px);
}

.partners-map-stage {
  position:relative;
  left:auto;
  width:100%;
  max-width:1440px;
  height:auto;
  aspect-ratio:5064.5082 / 2718;
  margin-inline:auto;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transform:none;
  isolation:isolate;
}

.partners-map-canvas {
  position:relative;
  top:auto;
  left:auto;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  transform:none;
}

.partners-map-image {
  position:absolute;
  z-index:1;
  inset:0;
  display:block;
  width:100%;
  max-width:none;
  height:100%;
  object-fit:contain;
  opacity:1;
  filter:none;
  mix-blend-mode:normal;
  transform:none;
}

.partners-map-marker {
  z-index:3;
  width:52px;
  height:52px;
  outline:none;
}

.partners-map-marker i {
  width:16px;
  height:16px;
  border:3px solid #fff;
  background:#19255a;
  box-shadow:0 0 0 2px #19255a,0 8px 24px rgba(25,37,90,.3);
}

.partners-map-marker i::after {
  display:block;
  inset:-11px;
  border-color:rgba(25,37,90,.28);
}

/* Primorye cities share almost the same point at the country scale.
   Geographic anchors stay exact; leader lines separate the clickable pins. */
.partners-map-marker--artem,
.partners-map-marker--vladivostok {
  pointer-events:none;
}

.partners-map-marker--artem::before,
.partners-map-marker--vladivostok::before {
  content:"";
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  width:24px;
  height:1px;
  background:rgba(25,37,90,.48);
  transform-origin:left center;
  pointer-events:none;
}

.partners-map-marker--artem::after,
.partners-map-marker--vladivostok::after {
  content:"";
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  width:5px;
  height:5px;
  border:1px solid #fff;
  border-radius:50%;
  background:#19255a;
  box-shadow:0 0 0 1px rgba(25,37,90,.35);
  transform:translate(-50%,-50%);
  pointer-events:none;
}

.partners-map-marker--artem::before {
  width:36px;
  transform:rotate(-33.69deg);
}

.partners-map-marker--vladivostok::before {
  width:31px;
  transform:rotate(-172.4deg);
}

.partners-map-marker--artem i,
.partners-map-marker--vladivostok i {
  z-index:4;
  pointer-events:auto;
}

.partners-map-marker--artem i {
  left:calc(50% + 30px);
  top:calc(50% - 20px);
}

.partners-map-marker--vladivostok i {
  left:calc(50% - 30px);
  top:calc(50% - 4px);
}

.partners-map-marker span {
  z-index:5;
  bottom:42px;
  left:50%;
  right:auto;
  display:grid;
  min-width:clamp(150px,13vw,220px);
  max-width:240px;
  padding:11px 13px 10px;
  border:0;
  border-radius:9px;
  background:rgba(255,255,255,.96);
  color:#19255a;
  box-shadow:0 12px 32px rgba(25,37,90,.16);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  text-align:left;
  white-space:normal;
  transform:translateX(-50%);
  transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .25s ease;
}

.partners-map-marker span strong {
  color:#19255a;
  font-size:clamp(13px,1vw,16px);
  font-weight:600;
  line-height:1.15;
  letter-spacing:0;
  text-transform:none;
}

.partners-map-marker span small {
  margin-top:5px;
  color:rgba(25,37,90,.62);
  font-size:clamp(11px,.8vw,13px);
  font-weight:300;
  line-height:1.2;
}

.partners-map-marker--moscow span {
  right:auto;
  bottom:-54px;
  left:32px;
  transform:none;
}

.partners-map-marker--khabarovsk span,
.partners-map-marker--artem span,
.partners-map-marker--vladivostok span {
  right:34px;
  left:auto;
  transform:none;
}

.partners-map-marker--khabarovsk span {
  bottom:26px;
}

.partners-map-marker--artem span {
  right:auto;
  bottom:42px;
  left:58px;
}

.partners-map-marker--vladivostok span {
  right:58px;
  bottom:26px;
}

.partners-map-credit {
  max-width:1440px;
  margin:14px auto 0;
  color:rgba(25,37,90,.48);
  font-size:10px;
  line-height:1.4;
  text-align:right;
}

.partners-map-credit a {
  color:inherit;
  text-decoration:underline;
  text-decoration-color:rgba(25,37,90,.22);
  text-underline-offset:2px;
}

.partners-map-marker:hover i,
.partners-map-marker:focus-visible i,
.partners-map-marker.is-active i {
  background:#6c85e5;
  box-shadow:0 0 0 3px #6c85e5,0 10px 28px rgba(25,37,90,.32);
  transform:translate(-50%,-50%) scale(1.2);
}

.partners-map-marker:hover span,
.partners-map-marker:focus-visible span,
.partners-map-marker.is-active span {
  background:#19255a;
  color:#fff;
  opacity:1;
  visibility:visible;
  box-shadow:0 16px 38px rgba(25,37,90,.24);
  transform:translate(-50%,-4px);
}

.partners-map-marker--moscow:hover span,
.partners-map-marker--moscow:focus-visible span,
.partners-map-marker--moscow.is-active span,
.partners-map-marker--khabarovsk:hover span,
.partners-map-marker--khabarovsk:focus-visible span,
.partners-map-marker--khabarovsk.is-active span,
.partners-map-marker--artem:hover span,
.partners-map-marker--artem:focus-visible span,
.partners-map-marker--artem.is-active span,
.partners-map-marker--vladivostok:hover span,
.partners-map-marker--vladivostok:focus-visible span,
.partners-map-marker--vladivostok.is-active span {
  transform:translateY(-4px);
}

.partners-map-marker:hover span strong,
.partners-map-marker:focus-visible span strong,
.partners-map-marker.is-active span strong {
  color:#fff;
}

.partners-map-marker:hover span small,
.partners-map-marker:focus-visible span small,
.partners-map-marker.is-active span small {
  color:rgba(255,255,255,.7);
}

@media (max-width:700px) {
  .partners-map-area {
    width:calc(100% - 28px);
    padding-bottom:68px;
  }

  .partners-map-intro {
    margin-bottom:28px;
  }

  .partners-map-stage {
    width:100%;
    height:auto;
    aspect-ratio:5064.5082 / 2718;
    overflow:visible;
    border-radius:0;
  }

  .partners-map-canvas {
    width:100%;
    height:100%;
  }

  .partners-map-marker {
    width:34px;
    height:34px;
  }

  .partners-map-marker i {
    width:11px;
    height:11px;
    border-width:2px;
  }

  .partners-map-marker span {
    bottom:32px;
    min-width:170px;
    max-width:210px;
    padding:12px 13px;
    opacity:0;
    visibility:hidden;
    transform:translate(-50%,6px);
  }

  .partners-map-marker span strong {
    font-size:14px;
  }

  .partners-map-marker span small {
    font-size:12px;
  }

  .partners-map-marker--moscow span,
  .partners-map-marker--khabarovsk span,
  .partners-map-marker--artem span,
  .partners-map-marker--vladivostok span {
    right:auto;
    bottom:32px;
    left:50%;
    transform:translate(-50%,6px);
  }

  .partners-map-marker--moscow span {
    left:0;
    transform:translateY(6px);
  }

  .partners-map-credit {
    margin-top:10px;
    font-size:9px;
    text-align:left;
  }

  .partners-map-marker:hover span,
  .partners-map-marker:focus-visible span,
  .partners-map-marker.is-active span,
  .partners-map-marker--moscow:hover span,
  .partners-map-marker--moscow:focus-visible span,
  .partners-map-marker--moscow.is-active span,
  .partners-map-marker--khabarovsk:hover span,
  .partners-map-marker--khabarovsk:focus-visible span,
  .partners-map-marker--khabarovsk.is-active span,
  .partners-map-marker--artem:hover span,
  .partners-map-marker--artem:focus-visible span,
  .partners-map-marker--artem.is-active span,
  .partners-map-marker--vladivostok:hover span,
  .partners-map-marker--vladivostok:focus-visible span,
  .partners-map-marker--vladivostok.is-active span {
    transform:translate(-50%,0);
  }

  .partners-map-marker--moscow:hover span,
  .partners-map-marker--moscow:focus-visible span,
  .partners-map-marker--moscow.is-active span {
    transform:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .page-hero::before,
  .page-hero::after,
  .page-hero--konoshima::after,
  .projects-page-hero::after,
  .home-hero::before,
  .home-hero::after {
    animation:none;
    will-change:auto;
  }

  .reveal-enabled [data-reveal] {
    transition:none;
    will-change:auto;
  }
}

/* Final narrow-screen overrides kept last so later feature styles cannot undo them. */
@media (max-width:430px) {
  .cookie-banner-actions {
    grid-template-columns:1fr;
  }
}
