/* Shared entry points for the standalone CNC configurator. */
.cnc-entry-kicker { display:block; color:#427392; font-size:.7rem; font-weight:700; letter-spacing:.12em; line-height:1.6; text-transform:uppercase; }
.cnc-spotlight { padding:64px 0; border-block:3px solid #0088ff; background:radial-gradient(ellipse 65% 115% at var(--cnc-glow-x,28%) var(--cnc-glow-y,46%),#0088ff24 0%,#31a6ff12 38%,#ffffff00 75%),linear-gradient(115deg,#fff 12%,#f2f8ff 100%); }
.cnc-spotlight-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:50px; align-items:center; }
.cnc-spotlight-copy h2 { margin:17px 0; color:#222d34; font-family:var(--font-family-heading,'Montserrat',sans-serif); font-size:clamp(2rem,3.9vw,3.4rem); line-height:1.1; letter-spacing:-.035em; }
.cnc-spotlight-copy p { max-width:480px; margin:0; color:#476377; font-size:1rem; line-height:1.8; }
.cnc-spotlight-cta { display:inline-flex; align-items:center; gap:24px; margin-top:26px; border-radius:0; }
.cnc-spotlight-cta svg { flex:none; }
.cnc-spotlight-note { display:block; margin-top:16px; color:#567083; font-size:.75rem; line-height:1.7; }
.cnc-spotlight-image { min-width:0; margin:0; }
.cnc-spotlight-image img { display:block; width:100%; height:auto; mix-blend-mode:multiply; }
.cnc-spotlight-image figcaption { color:#6b8294; font-size:.68rem; line-height:1.6; text-align:center; }

.cnc-choice-open { overflow:hidden !important; scrollbar-gutter:stable; }
.cnc-choice-dialog { width:min(940px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; padding:0; overflow:auto; overscroll-behavior:contain; border:0; border-top:3px solid #0088ff; border-radius:0; background:#f1f5f8; color:#222d34; box-shadow:0 26px 90px #06121b59; }
.cnc-choice-dialog:not([open]) { display:none; }
.cnc-choice-dialog::backdrop { background:#07121bd6; backdrop-filter:blur(4px); }
.cnc-choice-inner { position:relative; padding:36px; }
.cnc-choice-heading { padding-right:48px; margin-bottom:28px; }
.cnc-choice-heading h2 { margin:12px 0; color:#222d34; font-size:clamp(1.5rem,3vw,2.35rem); line-height:1.15; letter-spacing:-.03em; }
.cnc-choice-heading p { max-width:660px; margin:0; color:#4d687b; font-size:.9rem; line-height:1.7; }
.cnc-choice-close { position:absolute; top:20px; right:20px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #cad8e2; border-radius:0; background:transparent; color:#234052; cursor:pointer; }
.cnc-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.cnc-choice-card { position:relative; display:flex; flex-direction:column; min-width:0; border:1px solid #dce5eb; background:#fff; text-decoration:none; transition:border-color 180ms ease,box-shadow 180ms ease; }
.cnc-choice-card::before { content:''; position:absolute; inset:-1px -1px auto; height:3px; background:#0088ff; transform:scaleX(0); transform-origin:left; transition:transform 180ms ease; }
.cnc-choice-card > img { display:block; width:100%; height:190px; object-fit:contain; background:#fff; }
.cnc-choice-card > div { flex:1; display:flex; flex-direction:column; padding:23px; border-top:1px solid #edf1f4; }
.cnc-choice-card h3 { margin:9px 0; color:#172e3c; font-size:1.3rem; line-height:1.3; letter-spacing:-.025em; }
.cnc-choice-card p { margin:0 0 24px; color:#557083; font-size:.84rem; line-height:1.7; }
.cnc-choice-card strong { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:auto; color:#006fcf; font-size:.78rem; font-weight:750; line-height:1.5; text-transform:uppercase; letter-spacing:.015em; }
.cnc-choice-card strong svg { flex:none; }
.cnc-choice-dialog :is(h2,h3,p,strong), .cnc-spotlight-copy { overflow-wrap:anywhere; }
.cnc-choice-dialog :focus-visible, .cnc-spotlight :focus-visible, .cnc-stock-crosslink :focus-visible { outline:3px solid #0088ff; outline-offset:4px; }
@media (hover:hover) {
 .cnc-choice-card:hover { border-color:#0088ff; box-shadow:0 5px 22px #103b5614; }
 .cnc-choice-card:hover::before { transform:scaleX(1); }
 .cnc-choice-close:hover { border-color:#0088ff; color:#006fcf; background:#e6f2fc; }
}
.cnc-choice-card:focus-visible::before { transform:scaleX(1); }

.cnc-configurator-page .shop-section { padding-top:28px; }
.cnc-page-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0 0 40px; color:#a2bccd; font-size:.75rem; line-height:1.7; }
.cnc-page-breadcrumb a { color:#c1d9e9; text-underline-offset:4px; }
.cnc-page-breadcrumb a:hover { text-decoration:underline; }
.cnc-configurator-page .shop-intro h1 { margin:0; color:#fff; font-family:var(--shop-heading,'Montserrat',sans-serif); font-size:clamp(2rem,4.15vw,3.35rem); letter-spacing:-.035em; line-height:1.12; }
.cnc-configurator-page .shop-intro h1 span { display:block; color:#a8cdeb; }
.cnc-configurator-page .shop-intro-copy > span { display:block; margin-top:14px; color:#abc6d8; font-size:.76rem; line-height:1.8; }
.cnc-config-shortcuts { display:flex; flex-wrap:wrap; align-items:center; gap:20px 30px; padding-top:24px; padding-bottom:12px; }
.cnc-config-shortcuts .shop-primary { display:inline-flex; align-items:center; gap:20px; width:auto; margin-top:0; text-decoration:none; }
.cnc-stock-link { display:inline-flex; align-items:center; gap:12px; color:#b7d4e8; font-size:.82rem; line-height:1.5; text-decoration:none; }
.cnc-stock-link svg { width:18px; height:18px; }
.cnc-stock-link:hover { color:white !important; text-decoration:underline; text-underline-offset:5px; }
.cnc-configurator-page #cnc-advisor { scroll-margin-top:110px; }
.cnc-stock-crosslink { padding:54px 0; background:#222d34; color:#deebf3; scroll-margin-top:110px; }
.cnc-stock-crosslink > .container { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.cnc-stock-crosslink span { display:block; margin-bottom:12px; color:#a8cdeb; font-size:.7rem; letter-spacing:.11em; text-transform:uppercase; }
.cnc-stock-crosslink h2 { color:#fff; font-size:clamp(1.5rem,2.4vw,2rem); letter-spacing:-.03em; margin:0 0 12px; }
.cnc-stock-crosslink p { max-width:650px; margin:0; color:#b8cedd; line-height:1.8; }
.cnc-stock-crosslink .btn { display:inline-flex; flex:none; align-items:center; gap:22px; border-radius:0; }
@media (max-width:992px) {
 .desktop-nav:not(.active) { visibility:hidden; pointer-events:none; }
 .desktop-nav:not(.active) * { pointer-events:none !important; }
}
@media (max-width:900px) {
 .cnc-spotlight-grid { gap:24px; }
 .cnc-spotlight-copy h2 { font-size:2.4rem; }
 .cnc-spotlight-copy p { font-size:.9rem; }
 .cnc-stock-crosslink > .container { flex-direction:column; align-items:flex-start; gap:26px; }
}
@media (max-width:600px) {
 .cnc-spotlight { padding:34px 0 38px; }
 .cnc-spotlight-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
 .cnc-spotlight-image { grid-row:1; max-width:330px; justify-self:center; }
 .cnc-spotlight-image img { max-height:210px; object-fit:contain; }
 .cnc-spotlight-copy h2 { font-size:2.2rem; }
 .cnc-spotlight-cta { display:flex; justify-content:space-between; width:100%; padding:15px 18px; font-size:.78rem; gap:16px; }
 .cnc-spotlight-note { font-size:.69rem; }
 .cnc-choice-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); }
 .cnc-choice-inner { padding:24px 16px 16px; }
 .cnc-choice-heading { padding-right:36px; margin-bottom:22px; }
 .cnc-choice-heading h2 { font-size:1.65rem; }
 .cnc-choice-heading p { font-size:.8rem; }
 .cnc-choice-close { top:10px; right:8px; width:44px; height:44px; }
 .cnc-choice-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .cnc-choice-card { display:grid; grid-template-columns:92px minmax(0,1fr); }
 .cnc-choice-card > img { align-self:center; height:110px; }
 .cnc-choice-card > div { min-width:0; padding:16px 13px; border-top:0; }
 .cnc-choice-card h3 { font-size:1rem; margin:7px 0; }
 .cnc-choice-card .cnc-entry-kicker { font-size:.58rem; letter-spacing:.055em; }
 .cnc-choice-card p { margin-bottom:14px; font-size:.74rem; line-height:1.65; }
 .cnc-choice-card strong { font-size:.65rem; gap:8px; }
 .cnc-choice-card strong svg { width:18px; height:18px; }
 .cnc-configurator-page .shop-section { padding-top:22px; }
 .cnc-page-breadcrumb { margin-bottom:28px; font-size:.68rem; }
 .cnc-configurator-page .shop-intro h1 { font-size:2.25rem; }
 .cnc-config-shortcuts { align-items:flex-start; gap:20px; }
 .cnc-config-shortcuts .shop-primary { width:100%; justify-content:space-between; }
 .cnc-stock-crosslink { padding:38px 0; }
 .cnc-stock-crosslink .btn { width:100%; justify-content:space-between; padding:15px 18px; font-size:.77rem; }
}
@media (max-width:359px) {
 .cnc-choice-card { grid-template-columns:70px minmax(0,1fr); }
 .cnc-choice-card > div { padding:14px 10px; }
 .cnc-choice-heading h2 { font-size:1.45rem; }
}
@media (prefers-reduced-motion:reduce) {
 .cnc-choice-card, .cnc-choice-card::before, .cnc-choice-close { transition:none; }
}

/* Preis als Artikelpreis: Auf der Lagerseite steht die Zahl direkt unter der
   Ueberschrift, auf dem Handy noch vor dem Maschinenfoto. Der SEO-Fliesstext
   bleibt unveraendert darunter stehen. */
.product-hero-priced { grid-template-areas:"eyebrow ." "title media" "price media" "body media"; grid-template-rows:auto auto auto 1fr; }
.product-hero-priced > .product-price-block { grid-area:price; }
.product-price-block { margin:0 0 clamp(1.15rem,2vw,1.6rem); padding:clamp(.85rem,1.5vw,1.1rem) clamp(1rem,1.8vw,1.35rem); border:1px solid #d7e3eb; border-left:4px solid #0088ff; background:#fff; }
.product-price-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 14px; margin:0; }
.product-price-value { color:#16232b; font-family:var(--font-family-heading,'Montserrat',sans-serif); font-size:clamp(1.95rem,4vw,2.55rem); font-weight:700; letter-spacing:-.03em; line-height:1.1; }
.product-price-vat { color:#4d687b; font-size:.82rem; font-weight:600; line-height:1.5; }
.product-price-meta { margin:9px 0 0; color:#5a7383; font-size:.77rem; line-height:1.6; }

/* Preis in der Einstiegskarte: gleiche Rolle wie in einer Artikelliste,
   deshalb oberhalb des Beschreibungstextes. */
.cnc-choice-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 9px; margin:3px 0 11px; }
.cnc-choice-price b { color:#16232b; font-family:var(--font-family-heading,'Montserrat',sans-serif); font-size:1.45rem; font-weight:700; letter-spacing:-.025em; line-height:1.2; }
.cnc-choice-price small { color:#5d7889; font-size:.72rem; line-height:1.5; }

@media (max-width:992px) {
 .product-hero-priced { grid-template-areas:"eyebrow" "title" "price" "media" "body"; grid-template-rows:auto; }
}
@media (max-width:600px) {
 .product-price-block { padding:15px 16px; }
 .product-price-meta { margin-top:11px; font-size:.73rem; }
 .cnc-choice-price { margin:2px 0 9px; gap:2px 7px; }
 .cnc-choice-price b { font-size:1.15rem; }
 .cnc-choice-price small { font-size:.65rem; }
}
