/* Storefront shares the existing iDudek palette. */
[hidden] { display: none !important; }
.shop-eyebrow { color: var(--cyan); font: 500 1.2rem/1.5 "JetBrains Mono", monospace; letter-spacing: .15em; margin-bottom: 1.6rem; }
.shop-kicker { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 3rem; margin: -1.5rem 0 3.5rem; color: var(--text-dim); font-size: 1.3rem; }
.shop-kicker span::before { content: "✓"; color: var(--cyan); margin-right: .8rem; }
.shop-packages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem; align-items: stretch; }
.package-card { display: flex; flex-direction: column; overflow: hidden; background: linear-gradient(145deg, #101f35, #0c1525); border: 1px solid var(--card-border); border-radius: 1.6rem; transition: border-color .2s, transform .2s; }
.package-card:hover { border-color: #3176a2; transform: translateY(-4px); }
.package-card.featured { border-color: #3176a2; }
.package-visual { position: relative; height: 19rem; overflow: hidden; background: var(--bg-3); }
.package-visual img { width: 100%; height: 100%; object-fit: cover; opacity: .76; }
.package-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #0f1c30, transparent 75%); }
.package-badge { position: absolute; z-index: 1; top: 1.6rem; left: 1.6rem; color: #d9f4ff; background: #0b1424e8; border: 1px solid #397395; border-radius: .6rem; padding: .55rem 1rem; font-size: 1.1rem; letter-spacing: .04em; }
.package-content { padding: 1rem 2.5rem 2.6rem; display: flex; flex: 1; flex-direction: column; }
.package-category { color: var(--cyan); font-size: 1.15rem; margin-bottom: .8rem; }
.package-card h2 { color: var(--heading); font-size: clamp(2rem, 1.6vw, 2.5rem); line-height: 1.35; margin-bottom: 1.2rem; }
.package-description { font-size: 1.35rem; line-height: 1.8; color: var(--text-dim); min-height: 7.2rem; }
.package-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0; }
.package-price strong { color: var(--heading); font-size: 3.5rem; line-height: 1.2; letter-spacing: -.04em; }
.package-price span { color: var(--text-dim); font-size: 1.2rem; }
.package-features { list-style: none; padding: 0; display: grid; gap: .9rem; font-size: 1.25rem; line-height: 1.65; }
.package-features li { position: relative; padding-left: 2rem; }
.package-features li::before { content: "✓"; position: absolute; left: 0; color: var(--cyan); }
.package-meta { display: grid; gap: .6rem; color: var(--text-dim); font-size: 1.15rem; padding: 1.6rem 0; margin-top: auto; }
.package-meta span:first-child { color: #c3d8eb; }
.package-details { color: var(--text-dim); font-size: 1.2rem; line-height: 1.8; margin: 1.6rem 0; }
.package-details summary { color: var(--cyan); cursor: pointer; padding: .4rem 0; }
.package-details p { margin-top: 1rem; }
.package-card .btn { justify-content: center; font-size: 1.3rem; padding: 1.3rem; width: 100%; }
.shop-order-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; padding: 3rem 0; margin: 2rem 0; border-bottom: 1px solid var(--card-border); }
.shop-order-steps li { display: flex; align-items: flex-start; gap: 1.4rem; }
.step-number { color: var(--cyan); font: 500 1.5rem "JetBrains Mono", monospace; flex-shrink: 0; }
.shop-order-steps h3 { font-size: 1.4rem; margin: 0 0 .5rem; color: var(--heading); }
.shop-order-steps p { font-size: 1.2rem; color: var(--text-dim); line-height: 1.7; }
.shop-sales-note { font-size: 1.3rem; line-height: 1.9; color: var(--text-dim); margin: 2rem 0; }
.shop-sales-note a, .shop-legal-links a, .shop-text-link { color: var(--cyan); text-decoration: underline; text-underline-offset: .3rem; }
.shop-seller-strip { font-size: 1.2rem; color: var(--text-dim); line-height: 1.8; margin-top: 3rem; padding: 2rem; border: 1px solid var(--card-border); border-radius: 1rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem 3rem; }
.shop-seller-strip strong { color: var(--text); }
.shop-legal-links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 2rem 0; font-size: 1.25rem; }
.footer-box .footer-company { font-size: 1.25rem; line-height: 1.9; margin-top: 2rem; }
.services-order-link { margin-top: 3rem; text-align: center; font-size: 1.5rem; }
.storefront-intro { margin-bottom: 3.5rem; }
.storefront-intro .shop-kicker { justify-content: flex-start; margin: 0; }
.storefront-process { margin-top: 4rem; }
.storefront-process > h2 { color: var(--heading); font-size: 2.3rem; }
.storefront-process .shop-order-steps { margin-top: 0; }
/* Dedicated storefront, checkout and legal pages avoid remote scripts, fonts and icons. */
.shop-page { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 1.6rem; line-height: 1.7; }
.shop-header { max-width: 124rem; margin: auto; padding: 2rem 3rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--card-border); }
.shop-brand { font-size: 2.5rem; color: var(--cyan); font-weight: 800; letter-spacing: -.07em; }
.shop-brand span:first-child { color: var(--text); }
.shop-header nav { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; font-size: 1.4rem; }
.shop-header nav a:hover { color: var(--cyan); }
.shop-main { max-width: 124rem; padding: 5rem 3rem 7rem; margin: auto; }
.shop-main h1 { color: var(--heading); font-size: clamp(3.1rem, 4vw, 5rem); line-height: 1.15; letter-spacing: -.035em; margin-bottom: 2rem; }
.shop-main .shop-lead { max-width: 65rem; color: var(--text-dim); margin-bottom: 3.5rem; }
.shop-back { display: inline-block; color: var(--text-dim); font-size: 1.3rem; margin-bottom: 3.5rem; }
.checkout-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 3rem; align-items: start; }
.checkout-fields { min-width: 0; grid-column: 1; grid-row: 1; }
.checkout-panel { background: var(--bg-2); border: 1px solid var(--card-border); border-radius: 1.4rem; padding: 2.8rem; margin-bottom: 2rem; }
.checkout-panel h2 { font-size: 2rem; margin-bottom: 2rem; color: var(--heading); line-height: 1.4; }
.checkout-panel h2 .step-number { margin-right: .8rem; }
.shop-label, .shop-field label { display: block; margin-bottom: .6rem; font-size: 1.4rem; color: var(--text); }
.shop-field label span { font-size: 1.2rem; color: var(--text-dim); font-weight: 400; }
.shop-field { margin-bottom: 1.8rem; }
.shop-input { appearance: auto; width: 100%; min-width: 0; font: inherit; font-size: 1.5rem; line-height: 1.5; color: var(--heading); background: var(--bg); border: 1px solid #34445b; border-radius: .7rem; padding: 1.1rem 1.2rem; }
.shop-input::placeholder { color: #8b9cb0; }
textarea.shop-input { resize: vertical; }
.shop-input:focus { border-color: var(--cyan); }
.shop-form-row { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1.6rem; }
.shop-small { font-size: 1.25rem; line-height: 1.8; color: var(--text-dim); margin: 1.2rem 0; }
.shop-check { display: flex; align-items: flex-start; gap: 1.2rem; margin: 2rem 0; font-size: 1.35rem; line-height: 1.75; cursor: pointer; }
.shop-check input { width: 1.9rem; height: 1.9rem; margin-top: .35rem; flex-shrink: 0; accent-color: var(--cyan); }
.shop-check a, .shop-small a { color: var(--cyan); text-decoration: underline; text-underline-offset: .3rem; }
.invoice-fields { border: 1px solid var(--card-border); padding: 1.5rem; border-radius: .7rem; min-width: 0; }
.invoice-fields legend { padding: 0 .5rem; font-size: 1.2rem; color: var(--text-dim); }
.payment-method { background: #101f33; padding: 1.8rem; border-radius: .8rem; border-left: 2px solid var(--cyan); font-size: 1.3rem; }
.payment-method strong { display: block; color: var(--heading); font-size: 1.6rem; }
.payment-method span { color: var(--cyan); }
.payment-method p { color: var(--text-dim); margin-top: .7rem; }
.order-submit { width: 100%; justify-content: center; font-size: 1.5rem; white-space: normal; text-align: center; padding: 1.5rem; }
.order-submit:disabled { opacity: .6; cursor: wait; }
.order-summary { grid-column: 2; grid-row: 1; min-width: 0; position: sticky; top: 2rem; font-size: 1.3rem; line-height: 1.8; }
.order-summary > img { width: 100%; height: 17rem; object-fit: cover; border-radius: .8rem; margin-bottom: 1.5rem; }
.order-summary h2 { margin: 0; }
.order-summary h3 { color: var(--text); font-size: 1.4rem; margin-top: 1.8rem; }
.order-summary p { color: var(--text-dim); }
.order-summary .shop-eyebrow { color: var(--cyan); }
.order-summary .package-features { margin: 1.8rem 0; }
.order-totals { border-top: 1px solid var(--card-border); border-bottom: 1px solid var(--card-border); padding: 1.5rem 0; margin: 2rem 0; }
.order-totals > div { display: flex; justify-content: space-between; gap: 1rem; margin: .6rem 0; }
.order-totals dd { white-space: nowrap; }
.order-totals .total { color: var(--heading); font-size: 1.8rem; font-weight: 700; margin-top: 1.2rem; }
.summary-seller { border-top: 1px solid var(--card-border); margin-top: 2rem; overflow-wrap: anywhere; }
.summary-seller a { color: var(--cyan); }
.shop-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.shop-error, .shop-notice { background: #2b1b20; color: #ffd2d2; border: 1px solid #9e4c5d; padding: 2rem; border-radius: .8rem; margin-bottom: 2.5rem; }
.shop-error h2 { font-size: 1.8rem; }.shop-error ul { list-style: disc; padding-left: 2rem; }
.order-success { max-width: 76rem; margin: 4rem auto; }.order-success > p { margin: 2rem 0; }.order-success .btn { margin: 1rem 1rem 1rem 0; }
.shop-footer { border-top: 1px solid var(--card-border); background: var(--bg-2); padding: 3rem max(3rem, calc((100% - 118rem)/2)); display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem 4rem; font-size: 1.3rem; }
.shop-footer .muted { color: var(--text-dim); margin-top: 1rem; }.shop-footer nav { display: grid; align-content: start; gap: .6rem; }.shop-footer a { color: var(--cyan); }.shop-copyright { color: var(--text-dim); grid-column: 1 / -1; font-size: 1.2rem; }
.legal-document { max-width: 86rem; margin: auto; }.legal-document h2 { font-size: 2.2rem; color: var(--heading); margin: 3rem 0 1rem; }.legal-document p { margin-bottom: 1.4rem; }.legal-document ul, .legal-document ol { padding-left: 2.3rem; list-style: disc; }.legal-document ol { list-style: decimal; }.legal-document li { padding-left: .5rem; margin-bottom: 1rem; }.legal-document a { color: var(--cyan); text-decoration: underline; text-underline-offset: .3rem; }.document-date { color: var(--text-dim); font-size: 1.3rem; }.withdrawal-template { border: 1px solid var(--card-border); border-radius: 1rem; background: var(--bg-2); padding: 3rem; margin: 2.5rem 0; overflow-wrap: anywhere; }
@media (min-width: 1101px) and (max-width: 1320px) { .navbar ul { gap: 1.6rem; } .nav-link { font-size: 1.3rem; } .header, .header.scrolled { padding-left: 4%; padding-right: 4%; } }
@media (max-width: 1050px) { .shop-packages { gap: 1.5rem; } .package-content { padding: 1rem 1.8rem 2rem; } .package-description { min-height: 9rem; } .checkout-grid { gap: 2rem; } .checkout-panel { padding: 2rem; } .shop-form-row { grid-template-columns: 1fr; gap: 0; } }
@media (max-width: 780px) { .shop-packages, .shop-order-steps { grid-template-columns: 1fr; } .package-card { max-width: 56rem; width: 100%; margin: auto; } .package-content { padding: 1rem 2.5rem 2.5rem; } .package-card h2 { font-size: 2.6rem; } .package-description { min-height: 0; } .package-visual { height: 21rem; } .shop-order-steps { gap: 2rem; } .checkout-grid { display: flex; flex-direction: column; } .order-summary { position: static; order: -1; width: 100%; } .checkout-fields { width: 100%; } .shop-main { padding: 3rem 2rem 5rem; } .shop-header { padding: 1.5rem 2rem; } .shop-header nav { gap: 1rem; font-size: 1.25rem; } .shop-footer { grid-template-columns: 1fr; padding: 3rem 2rem; } .withdrawal-template { padding: 2rem; } }
@media (prefers-reduced-motion: reduce) { .package-card { transition: none; }.package-card:hover { transform: none; } }
@media print { .shop-header, .shop-footer, .skip-link, .print-button { display: none; } .shop-page { background: #fff; color: #111; font-size: 11pt; } .shop-main { padding: 0; max-width: none; } .shop-main h1, .legal-document h2, .legal-document a, .gradient-text, .document-date { color: #111; -webkit-text-fill-color: #111; background: none; } .withdrawal-template { background: white; border-color: #aaa; break-inside: avoid; }.legal-document h2 { break-after: avoid; } }
