﻿@font-face { font-family: "Bricolage"; src: url("../fonts/bricolage-grotesque.woff2") format("woff2-variations"), url("../fonts/bricolage-grotesque.woff2") format("woff2"); font-weight: 200 800; font-stretch: 75% 100%; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
:root {
    color-scheme: light;
    --ink: #1b2530;
    --muted: #74817b;
    --green: #15609f;
    --green-soft: #e4eef8;
    --orange: #dcb854;
    --line: #e5e8ea;
    --paper: #fbfaf7;
    --display: "Bricolage", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 1rem; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #dabb65; outline-offset: 3px; }
.container { width: min(100% - 2.5rem, 1200px); margin-inline: auto; }
.skip-link { position: absolute; z-index: 20; top: -5rem; left: 1rem; padding: .75rem 1rem; background: white; color: var(--green); }
.skip-link:focus { top: 1rem; }
.announcement { position: relative; overflow: hidden; padding: .7rem 0; background: linear-gradient(90deg, #0f1f2f, var(--green) 50%, #0f1f2f); color: #f8f6f1; font-size: 1rem; letter-spacing: .02em; }
.announcement::before, .announcement::after { content: ""; position: absolute; z-index: 1; top: 0; bottom: 0; width: 4rem; pointer-events: none; }
.announcement::before { left: 0; background: linear-gradient(90deg, #0f1f2f, transparent); }
.announcement::after { right: 0; background: linear-gradient(270deg, #0f1f2f, transparent); }
.announcement-track { display: flex; width: max-content; animation: announcement-scroll 28s linear infinite; }
.announcement:hover .announcement-track { animation-play-state: paused; }
.announcement-items { display: flex; flex: none; min-width: 100vw; justify-content: space-around; margin: 0; padding: 0; list-style: none; }
.announcement-items li { position: relative; display: inline-flex; align-items: center; gap: .55rem; padding: 0 2.5rem; white-space: nowrap; }
.announcement-items li::after { content: ""; position: absolute; top: 50%; right: -.21rem; width: .42rem; height: .42rem; margin-top: -.21rem; border-radius: 50%; background: var(--orange); }
.announcement-items strong { color: #f3d88f; font-weight: 700; }
.announcement-items svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: var(--orange); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@keyframes announcement-scroll { to { transform: translateX(-50%); } }
.site-header { background: #fff; }
.header-main { display: grid; grid-template-columns: auto minmax(200px, 1fr) auto; align-items: center; gap: clamp(1rem, 4vw, 3.75rem); min-height: 88px; }
.brand { display: inline-flex; align-items: center; gap: .62rem; color: var(--green); font-weight: 800; font-size: 1.55rem; letter-spacing: -.07em; white-space: nowrap; }
.brand-mark { display: grid; width: 2.3rem; height: 2.3rem; place-items: center; border-radius: .78rem .78rem .78rem .25rem; background: var(--green); color: #fff; font-size: 1.32rem; letter-spacing: -.03em; }
.brand-light { color: #808b95; font-weight: 500; }
.search-form { display: flex; max-width: 580px; height: 46px; border: 1px solid var(--line); border-radius: 999px; background: #f8f9fa; }
.search-form input { width: 100%; min-width: 0; padding: 0 1.15rem; border: 0; outline: 0; background: transparent; color: var(--ink); }
.search-form button { width: 48px; border: 0; border-radius: 50%; background: transparent; color: var(--green); font-size: 1.8rem; cursor: pointer; }
.search-form:focus-within { border-color: #8695a4; box-shadow: 0 0 0 3px #e4eef8; }
.header-actions { display: flex; align-items: center; gap: 1.25rem; }
.header-actions form { margin: 0; }
.header-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--ink); font-size: .9rem; white-space: nowrap; }
.header-link:hover, .category-nav-inner > a:hover { color: var(--orange); }
.link-button { padding: 0; border: 0; background: none; cursor: pointer; }
.cart-link { position: relative; display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; font-size: .92rem; font-weight: 650; white-space: nowrap; }
.cart-link > span:first-child { color: var(--green); font-size: 1.5rem; }
.cart-count { display: grid; min-width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; background: var(--orange); color: #fff; font-size: .72rem; }
.category-nav { border-top: 1px solid #edeff1; }
.category-nav-inner { display: flex; min-height: 48px; align-items: center; gap: clamp(1.3rem, 4vw, 3.1rem); overflow-x: auto; }
.category-nav-inner > a { flex: 0 0 auto; color: #424a52; font-size: .87rem; }
.category-nav .admin-nav-link { margin-left: auto; color: var(--green); font-weight: 700; }
.page-content { min-height: 55vh; padding-top: 1.7rem; padding-bottom: 5rem; }
.alert { margin: 0 0 1.25rem; padding: .85rem 1rem; border-radius: .75rem; }
.alert-success { border: 1px solid #c6d3e0; background: #eff3f8; color: #243c55; }
.alert-warning { border: 1px solid #f0ddaa; background: #fff9e8; color: #735c1b; }

.hero { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; min-height: 430px; overflow: hidden; border-radius: 1.25rem; background: #21364c; color: #fff; }
.hero-copy { position: relative; z-index: 2; align-self: center; padding: clamp(2rem, 6vw, 5rem); }
.eyebrow { display: block; color: #9baab9; font-size: .7rem; font-weight: 750; letter-spacing: .17em; }
.hero h1 { margin: .9rem 0 1rem; font-size: clamp(2.7rem, 5.2vw, 4.55rem); font-weight: 580; line-height: 1.03; letter-spacing: -.06em; }
.hero-copy > p { max-width: 430px; color: #d0d6dd; font-size: 1rem; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 1.2rem; padding: .74rem 1.25rem; border: 1px solid transparent; border-radius: .45rem; font-weight: 700; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.button:hover { transform: translateY(-1px); }
.button-light { background: #fff; color: var(--green); }
.button-light:hover { background: #edf0f3; color: var(--green); }
.button-dark { background: var(--green); color: #fff; }
.button-dark:hover { background: #233b54; color: #fff; }
.button-outline { border-color: #dce0e4; color: var(--green); }
.button-small { min-height: 44px; padding: .5rem .9rem; font-size: .82rem; }
.button-full { width: 100%; }
.hero-note { display: flex; align-items: center; gap: .5rem; margin-top: 2.3rem; color: #c5ced7; font-size: .82rem; }
.hero-sparkle { color: #eccf7f; font-size: 1.1rem; }
.hero-art { position: relative; min-height: 350px; overflow: hidden; background: radial-gradient(ellipse at 55% 48%, #59728b 0, #31465c 38%, #21364c 68%); }
.hero-orbit { position: absolute; top: 50%; left: 50%; width: 370px; height: 370px; border: 1px solid #a8b6c455; border-radius: 50%; transform: translate(-50%, -50%); }
.orbit-two { width: 280px; height: 280px; border-color: #e4ce9366; }
.hero-object { position: absolute; top: 50%; left: 51%; display: grid; width: clamp(150px, 18vw, 220px); aspect-ratio: 1; place-items: center; border: 1px solid #ffffff40; border-radius: 34% 66% 51% 49% / 43% 41% 59% 57%; background: linear-gradient(140deg, #f7f1e1, #ccb472); box-shadow: 16px 28px 50px #101b2770; color: #253b51; font-size: 3rem; font-weight: 800; letter-spacing: -.1em; transform: translate(-50%, -50%) rotate(-12deg); }
.hero-object span { transform: rotate(12deg); }
.hero-sticker { position: absolute; top: 19%; right: 14%; display: grid; width: 96px; height: 96px; place-content: center; border-radius: 50%; background: #e8c566; color: #2a3642; font-size: .76rem; line-height: 1.2; text-align: center; transform: rotate(9deg); }
.hero-sticker strong { font-size: .98rem; }
.benefits { display: grid; grid-template-columns: repeat(3, 1fr); margin: 1.25rem 0 4.3rem; border: 1px solid var(--line); border-radius: .8rem; background: #fff; }
.benefits > div { display: flex; align-items: center; gap: .9rem; padding: 1.2rem 1.5rem; }
.benefits > div + div { border-left: 1px solid var(--line); }
.benefits > div > span { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #edf0f4; color: #35506b; font-size: 1.25rem; }
.benefits p { display: grid; margin: 0; }
.benefits strong { font-size: .87rem; }
.benefits small { color: var(--muted); font-size: .75rem; }
.catalog-section { padding-bottom: 3.2rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.section-heading .eyebrow, .page-heading .eyebrow, .admin-heading .eyebrow, .policy-page .eyebrow { color: #828c95; }
.section-heading h2, .service-banner h2 { margin: .28rem 0 0; font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 650; letter-spacing: -.045em; }
.result-count { color: var(--muted); font-size: .85rem; }
.category-pills { display: flex; gap: .55rem; margin: 1.2rem 0 1.55rem; overflow-x: auto; }
.category-pills a { min-height: 44px; flex: 0 0 auto; padding: .62rem 1rem; border: 1px solid #e3e6e9; border-radius: 999px; background: white; color: #59665f; font-size: .84rem; }
.category-pills a.selected, .category-pills a:hover { border-color: var(--green); background: var(--green); color: white; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.product-card { overflow: hidden; border: 1px solid var(--line); border-radius: .85rem; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.product-card:hover { box-shadow: 0 12px 30px #24303d12; transform: translateY(-3px); }
.product-image-link { position: relative; display: block; overflow: hidden; background: #edf0f3; aspect-ratio: 1 / .92; }
.product-image { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.product-card:hover .product-image { transform: scale(1.035); }
.product-badge, .product-stock-label { position: absolute; top: .8rem; left: .8rem; padding: .36rem .62rem; border-radius: 999px; background: #fff; color: var(--green); font-size: .7rem; font-weight: 700; }
.product-stock-label { left: auto; right: .8rem; background: #424a52; color: white; }
.product-info { padding: .95rem 1rem 1.05rem; }
.product-category { color: #849187; font-size: .71rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.product-info h3 { min-height: 2.7rem; margin: .28rem 0 .75rem; font-size: .98rem; font-weight: 600; line-height: 1.35; }
.product-info h3 a:hover { color: #566c82; }
.product-card-bottom { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.product-price { font-size: 1rem; }
.quick-add { display: grid; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: 1.4rem; cursor: pointer; }
.quick-add:hover { background: var(--green); color: white; }
.product-availability { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 .7rem; font-size: .78rem; font-weight: 650; }
.product-availability::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.product-availability.is-in { color: #2e557d; }
.product-availability.is-low { color: #b58d1e; }
.product-availability.is-out { color: #8a8f8b; }
.faq { max-width: 790px; margin: 1.5rem auto 0; }
.faq details { margin-bottom: .7rem; border: 1px solid var(--line); border-radius: .6rem; background: #fff; }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; color: var(--ink); font-weight: 650; list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--green); font-size: 1.5rem; line-height: 1; }
.faq details[open] summary { border-bottom: 1px solid var(--line); }
.faq details[open] summary::after { content: "\2013"; }
.faq .faq-answer { padding: .9rem 1.15rem 1.15rem; color: #58665e; line-height: 1.8; }
.faq .faq-answer p { margin: 0 0 .6rem; }
.faq .faq-answer p:last-child { margin-bottom: 0; }
.about-lead { font-size: 1.08rem; color: #3d444a; line-height: 1.75; }
.about-cta { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.4rem 0 .5rem; }
.policy-note { margin-top: 1.5rem; }
.product-brand { margin: 0 0 .15rem; color: #828c95; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.product-specs { max-width: 980px; margin: 2rem auto 0; }
.product-specs h2 { margin: 0 0 1rem; font-size: 1.2rem; }
.product-specs dl { margin: 0; border-top: 1px solid var(--line); }
.product-specs .spec-row { display: grid; grid-template-columns: minmax(8rem, 14rem) 1fr; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.product-specs dt { margin: 0; color: #58665e; font-weight: 650; }
.product-specs dd { margin: 0; color: var(--ink); }
.product-specs .spec-note { grid-column: 1 / -1; color: #58665e; }
@media (max-width: 560px) { .product-specs .spec-row { grid-template-columns: 1fr; gap: .15rem; } }
.quick-add form { margin: 0; }
.service-banner { display: flex; align-items: center; gap: 1.5rem; margin: 2rem 0 .5rem; padding: 2rem clamp(1.25rem, 4vw, 3rem); border-radius: .9rem; background: #21364c; color: white; }
.service-banner .eyebrow { color: #adb9c5; }
.service-banner h2 { max-width: 540px; font-size: clamp(1.25rem, 3vw, 1.8rem); }
.service-icon { color: #e9ca73; font-size: 2rem; }
.service-banner .button { margin-left: auto; white-space: nowrap; }
.empty-state { padding: 4rem 1.5rem; text-align: center; }
.empty-state > span { color: #8795a3; font-size: 3rem; }
.empty-state h2, .empty-state h3 { margin: .7rem 0 .4rem; font-size: 1.45rem; }
.empty-state p { margin: 0 0 1.25rem; color: var(--muted); }

.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin: .25rem 0 1.4rem; color: var(--muted); font-size: .83rem; }
.breadcrumbs a:hover { color: var(--green); }
.product-detail { display: grid; grid-template-columns: minmax(0, .7fr) minmax(320px, 1fr); gap: clamp(2rem, 7vw, 5.5rem); align-items: center; }
.product-detail-image { overflow: hidden; border-radius: 1rem; background: #ecf0f3; }
.product-detail-image img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
/* Imagens enviadas no backoffice: aparecem sempre inteiras, centradas e com margem, seja qual for o formato.
   As ilustrações de exemplo (/images/...) continuam a preencher o espaço. */
.product-image[src^="/media/"], .product-detail-image img[src^="/media/"] { object-fit: contain; padding: 7%; background: #fff; }
.cart-item > a img[src^="/media/"], .checkout-item img[src^="/media/"], .admin-mini-product img[src^="/media/"], .admin-product-cell img[src^="/media/"], .admin-image-field img[src^="/media/"] { object-fit: contain; padding: 3px; background: #fff; }
.product-detail-info { padding-block: 1.5rem; }
.product-detail-info h1 { margin: .6rem 0 .3rem; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 620; line-height: 1.12; letter-spacing: -.055em; }
.sku { margin: 0; color: var(--muted); font-size: .83rem; }
.detail-price { margin: 1.4rem 0; font-size: 1.7rem; font-weight: 750; }
.detail-description { max-width: 540px; color: #5f6c64; line-height: 1.75; }
.availability { margin: 1.5rem 0 .8rem; color: #3d5976; font-size: .88rem; }
.availability span { margin-right: .3rem; font-size: .62rem; }
.detail-add-form { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; }
.detail-add-form label { width: 100%; margin-bottom: -.45rem; font-size: .82rem; font-weight: 650; }
.detail-add-form input { width: 80px; height: 48px; padding: .55rem; border: 1px solid #d8dcdf; border-radius: .45rem; background: white; }
.out-of-stock { margin-top: 1.5rem; color: #8d5547; }
.detail-assurance { display: flex; gap: .8rem; margin-top: 2rem; padding: 1rem; border: 1px solid var(--line); border-radius: .65rem; color: #69776e; font-size: .83rem; }
.detail-assurance > span:first-child { color: #637689; font-size: 1.3rem; }

.page-heading { margin: .7rem 0 2rem; }
.page-heading h1, .admin-heading h1, .policy-page h1 { margin: .4rem 0 .25rem; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 650; letter-spacing: -.05em; }
.page-heading p, .admin-heading p { margin: 0; color: var(--muted); }
.cart-layout, .checkout-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr); align-items: start; gap: 2rem; }
.cart-items { border-top: 1px solid var(--line); }
.cart-item { display: grid; grid-template-columns: 94px minmax(140px, 1fr) 105px auto; align-items: center; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.cart-item > a img { display: block; width: 94px; height: 94px; border-radius: .55rem; background: #ebeef2; object-fit: cover; }
.cart-item-main h2 { margin: .2rem 0 .35rem; font-size: .97rem; font-weight: 620; }
.cart-item-main > strong { font-size: .85rem; }
.cart-quantity-form { display: grid; justify-items: center; gap: .2rem; }
.cart-quantity-form input { width: 66px; height: 44px; padding: .4rem; border: 1px solid #dcdfe2; border-radius: .35rem; text-align: center; }
.text-button { min-height: 44px; padding: .55rem; border: 0; background: transparent; color: #395470; font-size: .76rem; text-decoration: underline; cursor: pointer; }
.cart-line-total { white-space: nowrap; font-size: .88rem; }
.continue-link { display: inline-block; margin-top: 1.3rem; color: #586a7d; font-size: .86rem; }
.order-summary { position: sticky; top: 1rem; padding: 1.3rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; }
.order-summary h2 { display: flex; justify-content: space-between; margin: 0 0 1.2rem; font-size: 1.1rem; }
.order-summary h2 > span { display: grid; min-width: 1.5rem; height: 1.5rem; place-items: center; border-radius: 50%; background: #edf0f2; font-size: .75rem; }
.summary-row, .summary-total { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .65rem 0; color: #66736b; font-size: .86rem; }
.summary-total { margin-top: .4rem; padding: 1rem 0; border-top: 1px solid var(--line); color: var(--ink); font-size: .93rem; }
.summary-total strong { font-size: 1.1rem; }
.summary-note { margin: .15rem 0 1rem; color: #859087; font-size: .75rem; line-height: 1.45; }
.secure-note { margin-top: 1rem; color: #728178; font-size: .76rem; text-align: center; }
.secure-note span { color: #526a82; }
.cart-empty { padding-block: 5rem; }

.checkout-heading { margin-bottom: 1.8rem; }
.checkout-form { min-width: 0; }
.form-section { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.step-number { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #e8ecf0; color: var(--green); font-size: .82rem; font-weight: 750; }
.form-section-content h2 { margin: .15rem 0 .25rem; font-size: 1.12rem; }
.form-section-content > p { margin: 0 0 1.2rem; color: var(--muted); font-size: .83rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1rem; }
.form-field { display: grid; align-content: start; gap: .34rem; }
.form-field-wide { grid-column: 1 / -1; }
.form-field label { color: #434b53; font-size: .81rem; font-weight: 650; }
.form-field label span { color: #909a92; font-weight: 400; }
.form-field input, .form-field textarea, .form-field select { width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1px solid #dbdee1; border-radius: .4rem; background: #fff; color: var(--ink); }
.form-field textarea { resize: vertical; }
.form-field span[data-valmsg-for], .field-validation-error { color: #a53232; font-size: .75rem; }
.payment-options { display: grid; gap: .7rem; margin-top: .8rem; }
.payment-option { display: flex; align-items: start; gap: .75rem; padding: .9rem; border: 1px solid #dfe2e5; border-radius: .6rem; background: white; cursor: pointer; }
.payment-option:has(input:checked) { border-color: #6e8296; background: #f2f4f7; }
.payment-option input { width: 18px; height: 18px; margin-top: .15rem; accent-color: var(--green); }
.payment-option span { display: grid; gap: .2rem; }
.payment-option strong { font-size: .84rem; }
.payment-option small { color: var(--muted); font-size: .76rem; }
.checkout-submit { margin-top: .8rem; }
.checkout-legal { margin-top: .7rem; color: var(--muted); font-size: .75rem; text-align: center; }
.checkout-legal a { color: #41566c; text-decoration: underline; }
.validation-summary { margin: .5rem 0; color: #9d3333; font-size: .82rem; }
.checkout-summary { top: 1rem; }
.checkout-item-list { display: grid; gap: .8rem; margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.checkout-item { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: .65rem; }
.checkout-item img { width: 52px; height: 52px; border-radius: .35rem; background: #edf0f2; object-fit: cover; }
.checkout-item > span { display: grid; gap: .15rem; }
.checkout-item strong { overflow: hidden; font-size: .77rem; text-overflow: ellipsis; white-space: nowrap; }
.checkout-item small { color: var(--muted); font-size: .7rem; }
.checkout-item b { font-size: .74rem; white-space: nowrap; }
.changed-price { display: block; color: #8a6e22; font-size: .7rem; font-weight: 500; }
.price-change-alert { display: grid; gap: .45rem; margin-bottom: 1rem; padding: 1rem; border: 1px solid #ebd69e; border-radius: .6rem; background: #fff9e8; color: #695622; font-size: .83rem; }
.price-change-alert > span { color: #776944; }
.price-change-alert label { display: flex; align-items: center; gap: .5rem; font-weight: 650; }
.price-change-alert input { width: 18px; height: 18px; accent-color: var(--green); }
.confirmation-card { max-width: 680px; margin: 1rem auto 3rem; padding: clamp(1.5rem, 5vw, 3.4rem); border: 1px solid var(--line); border-radius: 1rem; background: white; text-align: center; }
.confirmation-check { display: grid; width: 60px; height: 60px; margin: 0 auto 1.2rem; place-items: center; border-radius: 50%; background: #e7ecf2; color: #3c5e81; font-size: 1.8rem; }
.confirmation-card .eyebrow { color: #839487; }
.confirmation-card h1 { margin: .6rem 0; font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: -.05em; }
.confirmation-card > p { color: var(--muted); }
.confirmation-number, .confirmation-status { display: flex; justify-content: space-between; padding: .85rem 0; border-bottom: 1px solid var(--line); text-align: left; font-size: .87rem; }
.confirmation-number span, .confirmation-status span { color: var(--muted); }
.confirmation-items { margin-top: 1rem; }
.confirmation-items > div { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; text-align: left; font-size: .83rem; }
.confirmation-items small { color: var(--muted); }
.confirmation-payment { margin: 1.2rem 0 1.5rem; padding: 1rem; border-radius: .6rem; background: #f1f3f6; text-align: left; }
.confirmation-payment p { margin: .35rem 0; font-size: .84rem; }
.confirmation-payment small { color: var(--muted); font-size: .75rem; }
.confirmation-card .button { min-width: 190px; }
.policy-page { max-width: 790px; margin: 1rem auto 3rem; }
.policy-page h1 { margin-bottom: 1.7rem; }
.policy-page h2 { margin: 1.8rem 0 .5rem; font-size: 1.15rem; }
.policy-page p { color: #58665e; line-height: 1.8; }

.site-footer { padding: 3rem 0 1.1rem; background: #15609f; color: #eaedf0; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2rem; }
.footer-brand { color: white; }
.footer-brand .brand-mark { background: #f2ab1e; color: var(--green); }
.footer-grid > div > p { margin-top: .85rem; color: #b1bbc4; font-size: .82rem; }
.footer-grid h2 { margin: 0 0 .8rem; color: #a9b5c1; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid > div > a:not(.brand) { display: block; margin: .4rem 0; color: #e0e4e9; font-size: .82rem; }
.footer-grid a:hover { color: #e7c873; }
.footer-bottom { margin-top: 2.3rem; padding-top: 1rem; border-top: 1px solid #ffffff24; color: #a8b2bc; font-size: .74rem; }

.admin-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .7rem 0 1.6rem; }
.admin-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: .7rem; background: white; }
.admin-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.admin-table th, .admin-table td { padding: .85rem 1rem; border-bottom: 1px solid var(--line); text-align: left; font-size: .82rem; }
.admin-table th { background: #f2f4f6; color: #525a62; font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-actions { display: flex; gap: .5rem; }
.admin-actions form { margin: 0; }
.text-danger { color: #a33232; }
.status-pill { display: inline-block; padding: .3rem .58rem; border-radius: 999px; background: #edf0f3; color: #42586e; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.status-muted, .status-cancelled, .status-expired { background: #f1f1ef; color: #6c716d; }
.status-awaitingpayment { background: #fff6dc; color: #876918; }
.status-paid, .status-completed { background: #e6edf4; color: #284766; }
.status-preparing { background: #e9effc; color: #3f5b8e; }
.status-shipped { background: #e7edf3; color: #284a6c; }
.admin-order-list { display: grid; gap: .9rem; }
.admin-order-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: .7rem; background: white; }
.admin-order-top, .admin-order-bottom { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.admin-order-top { padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.admin-order-top h2 { margin: .2rem 0; font-size: 1.05rem; }
.admin-order-top p { margin: 0; color: var(--muted); font-size: .78rem; }
.admin-order-meta { display: grid; justify-items: end; gap: .45rem; }
.admin-order-meta time { color: var(--muted); font-size: .75rem; }
.admin-order-bottom { align-items: center; padding-top: .8rem; }
.admin-order-lines { display: grid; gap: .24rem; color: #58665e; font-size: .78rem; }
.admin-order-lines strong { color: var(--ink); font-size: .95rem; }
.admin-order-lines small { color: var(--muted); }
.admin-status-form { display: flex; align-items: center; gap: .5rem; }
.admin-status-form select { min-height: 44px; max-width: 220px; padding: .45rem; border: 1px solid #dbdee1; border-radius: .4rem; background: white; font-size: .78rem; }
.admin-edit-form { display: grid; max-width: 730px; gap: 1rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: .75rem; background: white; }
.checkbox-field { display: flex; align-items: center; gap: .6rem; font-size: .85rem; }
.checkbox-field input { width: 18px; height: 18px; accent-color: var(--green); }
.form-actions { display: flex; align-items: center; gap: 1rem; }

/* Acompanhamento de encomendas (cliente) */
.category-nav .utility-nav-link { margin-left: auto; color: var(--green); font-weight: 650; }
.category-nav .utility-nav-link + .admin-nav-link { margin-left: 0; }
.status-accepted { background: #e4ebf1; color: #1f4061; }
.inline-link { color: #395470; text-decoration: underline; }
.confirmation-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.confirmation-tip { margin: 1.1rem 0 0; color: var(--muted); font-size: .8rem; }
.confirmation-tip a { color: #395470; text-decoration: underline; }
.lookup-card { max-width: 520px; margin: 1rem auto 3rem; padding: clamp(1.5rem, 5vw, 2.8rem); border: 1px solid var(--line); border-radius: 1rem; background: white; }
.lookup-card .eyebrow { color: #839487; }
.lookup-card h1 { margin: .5rem 0 .3rem; font-size: clamp(1.7rem, 4vw, 2.3rem); letter-spacing: -.05em; }
.lookup-card > p { margin: 0 0 1.4rem; color: var(--muted); }
.lookup-form { display: grid; gap: 1rem; }
.lookup-hint { margin: 1.2rem 0 0; color: var(--muted); font-size: .82rem; text-align: center; }
.lookup-hint a { color: #395470; text-decoration: underline; }
.customer-order-list { display: grid; border-top: 1px solid var(--line); }
.customer-order-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 1rem; min-height: 72px; padding: .9rem .4rem; border-bottom: 1px solid var(--line); }
.customer-order-row:hover { background: #f4f6f8; }
.customer-order-main { display: grid; gap: .15rem; }
.customer-order-main small { color: var(--muted); font-size: .78rem; }
.customer-order-total { font-size: .92rem; white-space: nowrap; }
.customer-order-arrow { color: #8a95a1; }
.tracking-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; }
.tracking-heading .eyebrow { color: #828c95; }
.tracking-heading h1 { margin: .35rem 0 .25rem; font-size: clamp(1.9rem, 4vw, 2.6rem); font-weight: 650; letter-spacing: -.05em; }
.tracking-heading p { margin: 0; color: var(--muted); }
.tracking-closed { margin-bottom: 1.5rem; padding: 1rem 1.1rem; border: 1px solid #e3e3df; border-radius: .7rem; background: #f6f5f3; font-size: .86rem; }
.tracking-closed p { margin: .3rem 0 0; color: #5d655f; }
.tracking-steps { display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; margin: 0 0 2rem; padding: 1.3rem 1rem; border: 1px solid var(--line); border-radius: .85rem; background: white; list-style: none; }
.tracking-step { position: relative; display: grid; justify-items: center; align-content: start; gap: .55rem; padding: 0 .35rem; text-align: center; }
.tracking-step + .tracking-step::before { content: ""; position: absolute; top: 15px; right: 50%; left: -50%; height: 2px; background: var(--line); }
.tracking-step.is-done + .tracking-step::before { background: #6c839a; }
.tracking-dot { position: relative; z-index: 1; display: grid; width: 32px; height: 32px; place-items: center; border: 2px solid #d8dcdf; border-radius: 50%; background: white; color: white; font-size: .8rem; font-weight: 800; }
.is-done .tracking-dot { border-color: #3c5e81; background: #3c5e81; }
.is-current .tracking-dot { border-color: var(--orange); box-shadow: 0 0 0 5px #fbf2d8; }
.tracking-step-label { display: grid; gap: .1rem; }
.tracking-step-label strong { font-size: .8rem; font-weight: 650; line-height: 1.3; }
.tracking-step-label small { color: var(--muted); font-size: .7rem; }
.is-upcoming .tracking-step-label strong { color: #95a097; font-weight: 500; }
.tracking-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr); align-items: start; gap: 2rem; }
.tracking-panel, .admin-panel { padding: 1.3rem; border: 1px solid var(--line); border-radius: .75rem; background: white; }
.tracking-panel h2, .admin-panel h2 { margin: 0 0 1rem; font-size: 1.05rem; }
.tracking-history { display: grid; margin: 0; padding: 0; list-style: none; }
.tracking-history li { position: relative; padding: 0 0 1rem 1.4rem; border-left: 2px solid var(--line); font-size: .85rem; }
.tracking-history li:last-child { padding-bottom: 0; border-left-color: transparent; }
.tracking-history li::before { content: ""; position: absolute; top: .35rem; left: -6px; width: 10px; height: 10px; border-radius: 50%; background: #6c839a; }
.tracking-history time { display: block; color: var(--muted); font-size: .74rem; }
.tracking-history small { color: var(--muted); }
.tracking-history p { margin: .25rem 0 0; color: #58665e; }
.tracking-code { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; padding: .85rem 1rem; border-radius: .6rem; background: #f1f3f6; font-size: .86rem; }
.tracking-code span { color: var(--muted); }
.tracking-meta { display: grid; gap: .75rem; margin: 1rem 0 0; font-size: .83rem; }
.tracking-meta dt { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.tracking-meta dd { margin: .1rem 0 0; overflow-wrap: anywhere; }

/* Backoffice */
.admin-nav { display: flex; gap: .4rem; width: fit-content; max-width: 100%; margin: .2rem 0 1.2rem; padding: .3rem; overflow-x: auto; border: 1px solid var(--line); border-radius: 999px; background: white; }
.admin-nav a { display: inline-flex; min-height: 40px; align-items: center; padding: .45rem 1rem; border-radius: 999px; color: #4c545b; font-size: .84rem; font-weight: 650; white-space: nowrap; }
.admin-nav a:hover { background: #f0f2f5; color: var(--green); }
.admin-nav a[aria-current="page"] { background: var(--green); color: white; }
.admin-tabs { display: flex; gap: .3rem; margin-bottom: 1.1rem; overflow-x: auto; border-bottom: 1px solid var(--line); }
.admin-tabs a { display: inline-flex; min-height: 44px; flex: 0 0 auto; align-items: center; gap: .45rem; padding: .5rem .85rem; border-bottom: 2px solid transparent; color: #5b6961; font-size: .85rem; font-weight: 600; }
.admin-tabs a:hover { color: var(--green); }
.admin-tabs a[aria-current="page"] { border-bottom-color: var(--green); color: var(--green); }
.admin-tab-count { display: inline-grid; min-width: 1.4rem; height: 1.4rem; padding: 0 .35rem; place-items: center; border-radius: 999px; background: #edf0f2; color: #4b535b; font-size: .7rem; }
.admin-tab-count.is-alert { background: var(--orange); color: white; }
.admin-search { display: flex; gap: .5rem; width: min(100%, 420px); }
.admin-search input { width: 100%; min-width: 0; min-height: 44px; padding: .5rem .8rem; border: 1px solid #dbdee1; border-radius: .4rem; background: white; }
.admin-filter-bar { display: flex; flex-wrap: wrap; align-items: end; gap: .8rem; margin-bottom: 1.1rem; }
.admin-filter-bar .form-field { min-width: 200px; }
.admin-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.4rem; color: var(--muted); font-size: .82rem; }
.admin-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .9rem; margin-bottom: 1.5rem; }
.admin-kpi { display: grid; gap: .15rem; padding: 1.1rem 1.2rem; border: 1px solid var(--line); border-radius: .75rem; background: white; }
a.admin-kpi:hover { border-color: #b9c2cb; box-shadow: 0 8px 22px #24303d0f; }
.admin-kpi span { color: var(--muted); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.admin-kpi strong { font-size: 1.9rem; font-weight: 700; letter-spacing: -.04em; }
.admin-kpi small { color: var(--muted); font-size: .78rem; }
.admin-kpi-alert { border-color: #efda9f; background: #fffbf1; }
.admin-kpi-alert strong { color: #9a7614; }
.admin-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.2rem; }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; }
.admin-panel-heading h2 { margin: 0; }
.admin-panel-empty { margin: 0; color: var(--muted); font-size: .86rem; }
.admin-panel-note { display: block; margin: 0 0 1rem; color: var(--muted); font-size: .8rem; }
.admin-mini-list { margin: 0; padding: 0; list-style: none; }
.admin-mini-list li + li { border-top: 1px solid var(--line); }
.admin-mini-list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: .6rem .2rem; }
.admin-mini-list a:hover { background: #f5f7f9; }
.admin-mini-list a > span:first-child { display: grid; min-width: 0; }
.admin-mini-list small { color: var(--muted); font-size: .74rem; }
.admin-mini-list strong { font-size: .86rem; }
.admin-mini-meta { display: grid; justify-items: end; text-align: right; }
.admin-mini-list a > .admin-mini-product { display: flex; align-items: center; gap: .65rem; }
.admin-mini-product > span { display: grid; min-width: 0; }
.admin-mini-product img, .admin-product-cell img { flex: 0 0 auto; border-radius: .35rem; background: #edf0f2; object-fit: cover; }
.admin-order-number { color: #6d7985; text-decoration: underline; }
.admin-expiry { color: #93741f; font-size: .72rem; }
.admin-order-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: .5rem; }
.admin-order-actions form { margin: 0; }
.admin-detail-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .75fr); align-items: start; gap: 1.4rem; }
.admin-detail-main, .admin-detail-side { display: grid; gap: 1.2rem; min-width: 0; }
.admin-action-form { display: grid; gap: .7rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.admin-panel > h2 + .admin-action-form, .admin-panel-note + .admin-action-form { padding-top: 0; border-top: 0; }
.admin-action-form .button { justify-self: start; }
.admin-totals { max-width: 340px; margin: .8rem 0 0 auto; }
.admin-copy-field { width: 100%; min-height: 44px; padding: .5rem .7rem; border: 1px solid #dbdee1; border-radius: .4rem; background: #f6f8f9; color: var(--ink); font-size: .78rem; }
.admin-product-cell { display: flex; align-items: center; gap: .7rem; }
.admin-product-cell > span { display: grid; }
.admin-featured { color: #b08e2f; font-size: .7rem; font-weight: 700; }
.admin-stock-low { color: #9a7614; font-weight: 700; }
.admin-image-field { display: flex; flex-wrap: wrap; align-items: start; gap: 1rem; margin: 0; padding: 1rem; border: 1px dashed #d3d7db; border-radius: .6rem; }
.admin-image-field legend { padding: 0 .4rem; color: #434b53; font-size: .81rem; font-weight: 650; }
.admin-image-field img { border-radius: .5rem; background: #edf0f2; object-fit: cover; }
.admin-image-field .form-field { flex: 1; min-width: 220px; }
.admin-image-field input[type="file"] { min-height: auto; padding: .55rem; }
.admin-profile-form { display: grid; gap: 1rem; }
.admin-profile-form input[readonly] { background: #f4f6f7; color: #5d6b63; }
.admin-role-list { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .8rem; padding: 0; list-style: none; }
.admin-warning { margin: .8rem 0; padding: .7rem .8rem; border: 1px solid #f0ddaa; border-radius: .5rem; background: #fff9e8; color: #735c1b; font-size: .8rem; }
.admin-link-list { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }

.admin-team-card .admin-panel-heading { align-items: start; }
.admin-team-card .admin-panel-note { margin: .2rem 0 0; }
.admin-team-flags { display: flex; flex-wrap: wrap; justify-content: end; gap: .35rem; }
.admin-role-form { display: grid; gap: .8rem; }
.admin-role-form fieldset, .admin-role-picker { display: grid; gap: .55rem; margin: 0; padding: 0; border: 0; }
.admin-role-picker legend { margin-bottom: .4rem; color: #434b53; font-size: .81rem; font-weight: 650; }
.admin-role-form .checkbox-field { align-items: start; }
.admin-role-form .checkbox-field small { display: block; color: var(--muted); font-size: .76rem; }
.admin-role-form .button { justify-self: start; }

/* Páginas de conta (Identity) no layout da loja */
.account-page { max-width: 960px; margin: 0 auto; }
.account-page h1 { margin: .4rem 0 1rem; font-size: clamp(1.7rem, 4vw, 2.3rem); font-weight: 650; letter-spacing: -.04em; }
.account-page .form-control { min-height: 46px; border-color: #dbdee1; }
.account-page .btn-primary { border-color: var(--green); background: var(--green); }
.account-form { display: grid; gap: .9rem; max-width: 480px; }
.account-form .button { justify-self: start; }
.account-form p { margin: 0; font-size: .88rem; }

/* Modal de registo */
.account-modal { width: min(480px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; border: 0; border-radius: .8rem; background: #fff; color: var(--ink); box-shadow: 0 24px 60px rgba(16, 36, 60, .25); }
.account-modal::backdrop { background: rgba(15, 31, 52, .55); }
.account-modal-body { padding: 1.4rem 1.5rem 1.6rem; }
.account-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.account-modal-header h2 { margin: 0; font-size: 1.45rem; font-weight: 650; letter-spacing: -.03em; }
.account-modal-close { display: grid; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.account-modal-close:hover { background: #edf0f3; }
.account-modal-tabs { display: flex; gap: .3rem; padding: .25rem; border-radius: .55rem; background: #edf0f3; }
.account-modal-tabs button { min-height: 40px; padding: .4rem 1rem; border: 0; border-radius: .4rem; background: transparent; color: #5b6a62; font-weight: 650; cursor: pointer; }
.account-modal-tabs button[aria-selected="true"] { background: #fff; color: var(--green); box-shadow: 0 1px 3px rgba(16, 36, 60, .12); }
.account-modal-tabs button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.account-modal-intro { margin: 1rem 0 1.1rem; color: #5b6a62; font-size: .9rem; }
.account-modal .account-form { max-width: none; }
.account-modal .account-form .button { justify-self: stretch; }

/* Modais de cadastro e actualização do backoffice */
.form-modal { width: min(520px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; border: 0; border-radius: .8rem; background: #fff; color: var(--ink); box-shadow: 0 24px 60px rgba(16, 36, 60, .25); }
.form-modal::backdrop { background: rgba(15, 31, 52, .55); }
.form-modal-body { padding: 1.4rem 1.5rem 1.6rem; }
.form-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.form-modal-header h2 { margin: 0; font-size: 1.35rem; font-weight: 650; letter-spacing: -.03em; }
.form-modal-close { display: grid; flex: none; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.form-modal-close:hover { background: #edf0f3; }
.form-modal-intro { margin: -.4rem 0 1rem; color: #5b6a62; font-size: .88rem; }
.admin-profile-summary { display: grid; gap: .7rem; margin: 0 0 1rem; }
.admin-profile-summary div { display: grid; gap: .1rem; }
.admin-profile-summary dt { color: var(--muted); font-size: .78rem; }
.admin-profile-summary dd { margin: 0; font-weight: 600; }
.access-denied h1 { margin-top: .5rem; }
.access-steps { display: grid; gap: .55rem; margin: 0 0 1.4rem; padding-left: 1.2rem; color: #4c545b; font-size: .88rem; }

.mfa-setup { max-width: 620px; }
.mfa-qr { width: fit-content; margin: .8rem 0; padding: .6rem; border: 1px solid var(--line); border-radius: .6rem; background: white; }
.mfa-qr img { display: block; image-rendering: pixelated; }
.mfa-key-hint { margin: .4rem 0 .3rem; color: var(--muted); font-size: .8rem; }
.mfa-key { display: inline-block; padding: .45rem .7rem; border-radius: .4rem; background: var(--green); color: white; font-size: .95rem; letter-spacing: .06em; overflow-wrap: anywhere; }
.mfa-form { display: grid; gap: .7rem; max-width: 280px; margin-top: .7rem; }
.mfa-form .button { justify-self: start; }

.footer-grid h2.footer-subheading { margin-top: 1rem; }
.footer-grid > div > p.footer-hours { margin: .25rem 0 0; color: #e0e4e9; font-size: .82rem; }
.footer-hours-status { margin: .6rem 0 0; font-size: .78rem; }
.footer-hours-status.is-open { color: #9fbbd8; }
.footer-hours-status.is-closed { color: #f0d68f; }
.confirmation-hours { padding: .55rem .7rem; border-radius: .45rem; background: #fff9e8; color: #735c1b; }

.contact-links { display: grid; gap: .45rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.contact-link { display: inline-flex; min-height: 40px; align-items: center; gap: .55rem; font-size: .84rem; }
.contact-link span { display: grid; line-height: 1.25; }
.contact-link strong { font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; opacity: .75; }
.contact-link:hover { text-decoration: underline; }
.site-footer .contact-link { color: #e0e4e9; }
.site-footer .contact-link:hover { color: #e7c873; }
.site-footer .contact-whatsapp svg { color: #6fa1d3; }
.confirmation-contact, .tracking-help { margin: 1rem 0; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: .6rem; text-align: left; font-size: .86rem; }
.confirmation-contact .contact-link, .tracking-help .contact-link, .tracking-closed .contact-link { color: #2f475f; }
.contact-whatsapp svg { color: #1f5e9d; }

/* ---- Melhorias de design (ícones SVG, cabeçalho fixo, cartões) ---- */
h1, h2, .brand { font-family: var(--display); }
.icon { width: 1.25em; height: 1.25em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.search-form button { display: grid; place-items: center; font-size: 1.15rem; }
.search-form button:hover { color: var(--orange); }
.cart-link .cart-icon { color: var(--green); font-size: 1.35rem; }
.cart-link:hover, .cart-link:hover .cart-icon { color: var(--orange); }
.benefits > div > span .icon { font-size: 1.15rem; }
.quick-add { transition: background .15s ease, color .15s ease, transform .15s ease; }
.quick-add .icon { font-size: 1.15rem; stroke-width: 2.2; }
.quick-add:hover { transform: scale(1.06); }
.quick-add:active { transform: scale(.94); }
.product-stock-low { background: #fff8e6; color: #a37e18; }
.product-price { color: var(--green); font-weight: 750; letter-spacing: -.01em; }
@media (min-width: 681px) {
    .site-header { position: sticky; top: 0; z-index: 30; box-shadow: 0 1px 0 var(--line), 0 8px 24px #15609f08; }
}

/* ---- Logótipo: etiqueta de preço com o "C" ---- */
.brand { gap: .8rem; color: var(--green); letter-spacing: normal; }
.brand:hover { color: var(--green); }
.brand .brand-mark { position: relative; display: grid; width: 2.55rem; height: 2.95rem; padding-top: .5rem; place-items: center; border-radius: .35rem .35rem .65rem .65rem; background: #f2ab1e; color: #15609f; clip-path: polygon(24% 0, 76% 0, 100% 20%, 100% 100%, 0 100%, 0 20%); filter: drop-shadow(0 6px 10px #15609f33); font-family: var(--display); font-size: 1.6rem; font-stretch: 80%; font-weight: 800; letter-spacing: 0; transform: rotate(-9deg); transform-origin: 50% 0; transition: transform .6s cubic-bezier(.3, .6, .3, 1); }
.brand .brand-mark::before { content: ""; position: absolute; top: .38rem; left: 50%; width: .42rem; height: .42rem; border-radius: 50%; background: var(--brand-hole, #fff); transform: translateX(-50%); }
.brand:hover .brand-mark, .brand:focus-visible .brand-mark { transform: rotate(7deg); }
.brand-text { display: grid; }
.brand-name { font-family: var(--display); font-size: 1.85rem; font-stretch: 78%; font-weight: 800; line-height: .88; letter-spacing: -.01em; }
.brand-tagline { margin-top: .28rem; color: #6f8178; font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; font-size: .7rem; font-weight: 600; line-height: 1; }
.footer-brand { --brand-hole: #15609f; color: #f7f2e6; }
.footer-brand:hover { color: #f7f2e6; }
@media (max-width: 680px) {
    .brand .brand-mark { width: 2.15rem; height: 2.5rem; padding-top: .42rem; font-size: 1.35rem; }
    .brand-name { font-size: 1.5rem; }
    .brand-tagline { display: none; }
}

/* ---- Banner principal: a montra ---- */
.hero { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); min-height: 540px; border-radius: 1.5rem; background: radial-gradient(120% 90% at 0% 100%, #0d1926 0, transparent 60%), #15609f; color: #f7f2e6; }
.hero-text { position: relative; z-index: 2; align-self: center; padding: clamp(2rem, 5.5vw, 4.5rem); }
.hero .hero-title { margin: 0; font-family: var(--display); font-size: clamp(3.2rem, 7.4vw, 6.6rem); font-stretch: 75%; font-weight: 800; line-height: .86; letter-spacing: -.02em; }
.hero-title span { display: block; }
.hero-lede { max-width: 30rem; margin: 1.6rem 0 0; color: #c9d2da; font-size: 1.05rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.button-accent { background: #f2ab1e; color: #161c23; }
.button-accent:hover { background: #f2c752; color: #161c23; }
.button-ghost { border-color: #f7f2e64d; color: #f7f2e6; }
.button-ghost:hover { background: #f7f2e614; color: #f7f2e6; }
.hero-stage { position: relative; min-height: 460px; }
.stage-disc { position: absolute; top: 52%; left: 50%; width: min(86%, 470px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 34% 28%, #e6ecf3 0, #cfdbe6 52%, #b5c5d6 100%); box-shadow: inset 0 -20px 44px #94aabf66, 0 34px 80px #060e1780; transform: translate(-50%, -50%); }
.stage-disc::after { content: ""; position: absolute; inset: -24px; border: 1px solid #cfdbe633; border-radius: 50%; }
.stage-slide { position: absolute; inset: 0; display: grid; margin: 0; place-items: center; padding-top: 4%; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
.stage-slide.is-active { opacity: 1; visibility: visible; transition: opacity .6s ease; }
.stage-product { width: min(58%, 330px); aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; transform: translateY(14px) scale(.94); transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.is-active .stage-product { transform: none; }
.price-tag { position: absolute; top: 84px; right: 7%; display: grid; gap: .15rem; width: 12.5rem; padding: 1.55rem 1.1rem 1rem; border-radius: .6rem; background: #f2ab1e; color: #161c23; box-shadow: 0 16px 32px #060e175c; transform: rotate(-7deg); transform-origin: 50% -84px; }
.price-tag::before { content: ""; position: absolute; bottom: 100%; left: 50%; width: 2px; height: 84px; background: linear-gradient(#f7f2e600, #f7f2e6cc); transform: translateX(-50%); }
.price-tag::after { content: ""; position: absolute; top: .55rem; left: 50%; width: .62rem; height: .62rem; border-radius: 50%; background: #15609f; box-shadow: inset 0 1px 2px #000a; transform: translateX(-50%); }
.price-tag:hover { color: #161c23; background: #f2c752; }
.is-active .price-tag { animation: tag-swing 1.6s cubic-bezier(.3, .6, .3, 1) both; }
@keyframes tag-swing { 0% { transform: rotate(16deg); } 35% { transform: rotate(-13deg); } 65% { transform: rotate(-3deg); } 100% { transform: rotate(-7deg); } }
.price-tag-name { display: -webkit-box; overflow: hidden; font-size: .82rem; font-weight: 600; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.price-tag-price { font-family: var(--display); font-size: 1.75rem; font-stretch: 80%; font-weight: 800; line-height: 1.05; letter-spacing: -.01em; }
.price-tag-cta { margin-top: .3rem; font-size: .76rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.stage-controls { position: absolute; z-index: 3; right: 7%; bottom: 6%; display: flex; align-items: center; gap: .6rem; color: #c9d2da; font-size: .85rem; }
.stage-controls button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #f7f2e64d; border-radius: 50%; background: #15609fb3; color: #f7f2e6; cursor: pointer; }
.stage-controls button:hover { border-color: #f2ab1e; color: #f2ab1e; }
@media (max-width: 680px) {
    .hero .hero-title { font-size: clamp(2.9rem, 14vw, 4rem); }
    .hero-text { padding: 2.2rem 1.35rem .5rem; }
    .hero-lede { font-size: .95rem; }
    .hero-actions .button { flex: 1 1 auto; }
    .hero-stage { min-height: 380px; }
    .stage-disc { width: min(80%, 320px); }
    .stage-product { width: min(52%, 220px); }
    .price-tag { top: 56px; right: 4%; width: 10.5rem; padding: 1.35rem .9rem .85rem; transform-origin: 50% -56px; }
    .price-tag::before { height: 56px; }
    .price-tag-price { font-size: 1.4rem; }
    .stage-controls { right: 50%; bottom: 3%; transform: translateX(50%); }
}
@media (prefers-reduced-motion: reduce) {
    .is-active .price-tag { animation: none; }
}

@media (max-width: 900px) {
    .header-main { grid-template-columns: auto 1fr auto; gap: 1.1rem; }
    .search-form { grid-column: 1 / -1; grid-row: 2; max-width: none; margin-bottom: .85rem; }
    .header-main { padding-top: .8rem; }
    .header-actions { justify-self: end; gap: .8rem; }
    .hero { min-height: 370px; }
    .hero-copy { padding: 2.5rem; }
    .hero-art { min-height: 300px; }
    .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cart-layout, .checkout-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 1.2rem; }
    .tracking-layout, .admin-detail-layout { grid-template-columns: 1fr; }
    .cart-item { grid-template-columns: 76px minmax(100px, 1fr) 80px auto; gap: .7rem; }
    .cart-item > a img { width: 76px; height: 76px; }
}
@media (max-width: 680px) {
    .container { width: min(100% - 1.3rem, 1200px); }
    .announcement { padding: .55rem 0; font-size: .9rem; }
    .announcement-items li { padding: 0 1.6rem; }
    .header-main { grid-template-columns: 1fr auto; row-gap: .55rem; min-height: auto; }
    .brand { font-size: 1.38rem; }
    .header-actions { grid-column: 2; grid-row: 1; }
    .header-link { display: none; }
    .cart-label { display: none; }
    .search-form { grid-row: 2; margin-bottom: .75rem; }
    .category-nav-inner { gap: 1.25rem; }
    .category-nav .admin-nav-link { margin-left: 0; }
    .page-content { padding-top: 1.1rem; padding-bottom: 3rem; }
    .hero { grid-template-columns: 1fr; min-height: 0; }
    .hero-copy { padding: 2rem 1.35rem 1.25rem; }
    .hero h1 { font-size: clamp(2.6rem, 12vw, 3.8rem); }
    .hero-copy > p { font-size: .9rem; }
    .hero-note { margin-top: 1.2rem; }
    .hero-art { min-height: 205px; }
    .hero-orbit { width: 210px; height: 210px; }
    .orbit-two { width: 155px; height: 155px; }
    .hero-object { width: 118px; font-size: 2rem; }
    .hero-sticker { top: 13%; right: 13%; width: 72px; height: 72px; font-size: .62rem; }
    .hero-sticker strong { font-size: .78rem; }
    .benefits { grid-template-columns: 1fr; margin: .8rem 0 2.5rem; }
    .benefits > div { padding: .8rem 1rem; }
    .benefits > div + div { border-top: 1px solid var(--line); border-left: 0; }
    .benefits > div > span { width: 36px; height: 36px; }
    .section-heading { align-items: start; }
    .section-heading h2 { font-size: 1.55rem; }
    .result-count { padding-top: .5rem; font-size: .72rem; white-space: nowrap; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
    .product-card { border-radius: .6rem; }
    .product-info { padding: .7rem; }
    .product-info h3 { min-height: 2.5rem; font-size: .85rem; }
    .product-price { font-size: .86rem; }
    .product-badge, .product-stock-label { top: .5rem; left: .5rem; padding: .28rem .45rem; font-size: .62rem; }
    .product-stock-label { right: .5rem; left: auto; }
    .quick-add { width: 44px; height: 44px; }
    .service-banner { flex-wrap: wrap; gap: .7rem; margin-top: .2rem; padding: 1.25rem; }
    .service-banner h2 { font-size: 1.25rem; }
    .service-icon { font-size: 1.5rem; }
    .service-banner .button { width: 100%; margin: .35rem 0 0; }
    .product-detail { grid-template-columns: 1fr; gap: .6rem; }
    .product-detail-image img { max-height: 430px; }
    .product-detail-info { padding: .4rem 0; }
    .product-detail-info h1 { font-size: 2rem; }
    .detail-price { margin: .8rem 0; font-size: 1.45rem; }
    .cart-layout, .checkout-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .cart-item { grid-template-columns: 66px minmax(90px, 1fr) auto; gap: .6rem; }
    .cart-item > a img { width: 66px; height: 66px; }
    .cart-item-main h2 { font-size: .83rem; }
    .cart-item-main .product-category { font-size: .6rem; }
    .cart-item-main > strong, .cart-line-total { font-size: .75rem; }
    .cart-quantity-form { grid-column: 2; grid-row: 2; display: flex; justify-self: start; }
    .cart-quantity-form input { width: 56px; height: 44px; }
    .cart-line-total { grid-column: 3; grid-row: 1; }
    .order-summary { position: static; }
    .form-section { grid-template-columns: 30px minmax(0, 1fr); gap: .7rem; }
    .step-number { width: 29px; height: 29px; font-size: .73rem; }
    .form-grid { grid-template-columns: 1fr; }
    .form-field-wide { grid-column: auto; }
    .checkout-summary { grid-row: 1; }
    .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 1.3rem; }
    .footer-grid > div:first-child { grid-column: 1 / -1; }
    .site-footer { padding-top: 2rem; }
    .admin-heading { align-items: start; flex-direction: column; }
    .admin-order-top, .admin-order-bottom { flex-direction: column; }
    .admin-order-meta { justify-items: start; }
    .admin-status-form { width: 100%; }
    .admin-status-form select { flex: 1; max-width: none; }
    .admin-edit-form { padding: 1rem; }
    .category-nav .utility-nav-link { margin-left: 0; }
    .admin-search { width: 100%; }
    .admin-order-actions { justify-content: start; }
    .admin-totals { max-width: none; }
    .tracking-heading { flex-direction: column; }
    .tracking-steps { grid-auto-flow: row; padding: 1rem; }
    .tracking-step { grid-template-columns: 32px minmax(0, 1fr); justify-items: start; align-items: center; gap: .8rem; padding: 0 0 1rem; text-align: left; }
    .tracking-step:last-child { padding-bottom: 0; }
    .tracking-step + .tracking-step::before { top: -1rem; right: auto; left: 15px; width: 2px; height: 1rem; }
    .customer-order-row { grid-template-columns: minmax(0, 1fr) auto; row-gap: .4rem; }
    .customer-order-arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    /* Sem animação: a faixa fica parada e centrada, só com a primeira cópia. */
    .announcement-track { width: auto; animation: none; }
    .announcement-items { min-width: 0; flex-wrap: wrap; justify-content: center; gap: .3rem 0; width: 100%; }
    .announcement-items[aria-hidden] { display: none; }
    .announcement-items li:last-child::after { display: none; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* ---- Rodapé premium ---- */
.site-footer { position: relative; display: flow-root; margin-top: 7rem; padding: 0; background:
    radial-gradient(38rem 24rem at 92% 8%, #f2ab1e2e, transparent 70%),
    radial-gradient(34rem 26rem at 4% 96%, #6fa1d322, transparent 70%),
    radial-gradient(#f7f2e60d 1px, transparent 1.2px) 0 0 / 22px 22px,
    linear-gradient(160deg, #182f46 0%, #15609f 45%, #0d1b2a 100%); color: #dbe0e6; overflow: visible; }
.site-footer > .container { position: relative; }

/* Cartão de contacto que "flutua" entre a página e o rodapé */
.footer-contact { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .95fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.2fr); align-items: center; gap: .75rem; margin-top: -4.6rem; padding: 1rem; border-radius: 1.6rem; background: #fffdf8; color: #15609f; box-shadow: 0 30px 70px #060e174d, 0 2px 0 #f2ab1e inset; }
.footer-contact-intro { padding: .6rem 1rem; }
.footer-contact-title { margin: 0; font-family: var(--display); font-size: 1.65rem; font-stretch: 80%; font-weight: 800; line-height: 1.05; }
.footer-contact-status { display: flex; align-items: center; gap: .5rem; margin: .45rem 0 0; font-size: .85rem; font-weight: 600; }
.footer-contact-status.is-open { color: #1f4c7a; }
.footer-contact-status.is-closed { color: #b48b1b; }
.footer-pulse { position: relative; width: .62rem; height: .62rem; flex: none; border-radius: 50%; background: currentColor; }
.footer-pulse::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: currentColor; animation: footer-pulse 1.8s ease-out infinite; }
@keyframes footer-pulse { from { opacity: .6; transform: scale(1); } to { opacity: 0; transform: scale(3); } }
.footer-contact-item { display: flex; align-items: center; gap: .85rem; min-width: 0; padding: .95rem 1rem; border-radius: 1.1rem; background: #f3f0e6; color: #15609f; text-decoration: none; transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease; }
.footer-contact-item:hover, .footer-contact-item:focus-visible { background: #fff; color: #15609f; box-shadow: 0 14px 30px #15609f24; transform: translateY(-3px); }
.footer-contact-icon { display: grid; width: 2.9rem; height: 2.9rem; flex: none; place-items: center; border-radius: .9rem; background: #15609f; color: #f7f2e6; font-size: 1.15rem; }
.footer-contact-item.is-whatsapp .footer-contact-icon { background: #1f5e9d; color: #fff; }
.footer-contact-item > span:last-child { display: grid; min-width: 0; line-height: 1.25; }
.footer-contact-item small { color: #5d6670; font-size: .75rem; font-weight: 600; }
.footer-contact-item strong { overflow: hidden; font-size: .95rem; text-overflow: ellipsis; white-space: nowrap; }

/* Colunas */
.footer-columns { display: grid; grid-template-columns: 1.5fr 1fr 1.15fr 1.15fr 1.1fr; gap: 2.4rem; padding: 4rem 0 3rem; }
.footer-about p { max-width: 20rem; margin: 1.1rem 0 0; color: #b8c1ca; font-size: .92rem; line-height: 1.6; }
.site-footer .footer-brand .brand-name { font-size: 2.1rem; }
.site-footer .footer-brand .brand-tagline { color: #f2ab1e; }
.footer-columns h2 { margin: 0 0 1.1rem; color: #f7f2e6; font-family: var(--display); font-size: 1.15rem; font-stretch: 85%; font-weight: 700; }
.footer-columns > div > a:not(.brand) { display: block; width: fit-content; margin: .55rem 0; color: #c3cbd3; font-size: .92rem; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.footer-columns > div > a:not(.brand):hover { color: #f2ab1e; transform: translateX(4px); }
.footer-schedule { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; font-size: .9rem; }
.footer-schedule li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .5rem; border-bottom: 1px dashed #f7f2e626; }
.footer-schedule li span:first-child { color: #c3cbd3; }
.footer-schedule li span:last-child { color: #f7f2e6; font-weight: 600; }

/* Garantias */
.footer-badges { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 1.6rem 0; border-block: 1px solid #f7f2e61f; list-style: none; }
.footer-badges li { display: flex; align-items: center; gap: .85rem; }
.footer-badges .icon { width: 2.8rem; height: 2.8rem; flex: none; padding: .65rem; border: 1px solid #f2ab1e66; border-radius: 50%; color: #f2ab1e; stroke-width: 1.6; }
.footer-badges span { display: grid; color: #a8b2bc; font-size: .8rem; line-height: 1.35; }
.footer-badges strong { color: #f7f2e6; font-size: .9rem; }

.site-footer .footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: 1.4rem 0 1.8rem; border: 0; color: #939eaa; font-size: .8rem; }
.site-footer .footer-bottom p { margin: 0; }
.footer-top { display: grid; width: 2.9rem; height: 2.9rem; flex: none; place-items: center; border-radius: 50%; background: #f2ab1e; color: #15609f; font-size: 1.1rem; transition: transform .25s ease, background-color .25s ease; }
.footer-top:hover { background: #f2c752; color: #15609f; transform: translateY(-3px); }
.footer-top .icon { stroke-width: 2.4; }
@media (prefers-reduced-motion: reduce) {
    .footer-pulse::after { animation: none; }
    .footer-contact-item, .footer-top, .footer-columns a { transition: none; }
}
@media (max-width: 1100px) {
    .footer-contact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer-contact-intro { grid-column: 1 / -1; }
    .footer-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer-about { grid-column: 1 / -1; }
    .footer-badges { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .site-footer { margin-top: 8rem; }
    .footer-contact { grid-template-columns: 1fr; margin-top: -5.5rem; border-radius: 1.3rem; }
    .footer-contact-intro { padding: .5rem .6rem; }
    .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.2rem; padding-top: 3rem; }
    .footer-columns > div:last-child { grid-column: 1 / -1; }
    .footer-badges { grid-template-columns: 1fr; }
    .site-footer .footer-bottom { align-items: flex-end; }
}

/* ---- Ordenar produtos ---- */
.sort-bar { display: flex; align-items: center; gap: .9rem; margin: 1.2rem 0 1.6rem; }
.sort-label { display: inline-flex; flex: none; align-items: center; gap: .45rem; color: #5d6670; font-size: .88rem; font-weight: 600; }
.sort-label .icon { color: #f2ab1e; font-size: 1.05rem; }
.sort-options { display: flex; max-width: 100%; gap: .25rem; padding: .3rem; overflow-x: auto; border-radius: 999px; background: #efece4; scrollbar-width: none; }
.sort-options::-webkit-scrollbar { display: none; }
.sort-options a { flex: none; padding: .5rem 1.05rem; border-radius: 999px; color: #424a52; font-size: .88rem; font-weight: 600; text-decoration: none; transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.sort-options a:hover { background: #ffffffa6; color: #15609f; }
.sort-options a:focus-visible { outline: 2px solid #f2ab1e; outline-offset: 2px; }
.sort-options a.is-active { background: #fff; color: #15609f; box-shadow: 0 2px 10px #15609f24; }
@media (prefers-reduced-motion: reduce) { .sort-options a { transition: none; } }
@media (max-width: 680px) {
    .sort-bar { flex-direction: column; align-items: flex-start; gap: .6rem; }
}

/* ---- Menu principal (barra de departamentos) ---- */
.header-link-strong { color: var(--green); font-weight: 700; }
.category-nav { position: relative; z-index: 25; border-top: 1px solid #eaedf0; border-bottom: 1px solid #eaedf0; background: #fff; }
.category-nav-inner { gap: .15rem; min-height: 62px; padding-top: .6rem; padding-bottom: .6rem; scrollbar-width: none; }
.category-nav-inner::-webkit-scrollbar { display: none; }
.mega-all { display: inline-flex; flex: none; align-items: center; gap: .55rem; margin-right: .7rem; padding: .6rem 1.1rem; border: 0; border-radius: 999px; background: #15609f; color: #f7f2e6; font-size: .92rem; font-weight: 700; cursor: pointer; box-shadow: 0 6px 16px #15609f33; }
.mega-all .icon { color: #f2ab1e; font-size: 1.1rem; }
.mega-all .mega-caret { color: #f7f2e6; font-size: .95rem; transition: transform .25s ease; }
.mega-all[aria-expanded="true"] .mega-caret { transform: rotate(180deg); }
.mega-all:hover { background: #0f1f2f; }
.mega-all:focus-visible { outline: 2px solid #f2ab1e; outline-offset: 2px; }
.category-nav-inner > .mega-link { position: relative; flex: none; padding: .6rem .95rem; border-radius: 999px; color: #2f3740; font-size: .92rem; font-weight: 600; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.category-nav-inner > .mega-link:hover, .category-nav-inner > .mega-link[aria-expanded="true"] { background: #eef1f4; color: #15609f; }
.category-nav-inner > .mega-link.is-active { background: #15609f; color: #f7f2e6; }
.category-nav-inner > .mega-link:focus-visible { outline: 2px solid #f2ab1e; outline-offset: 2px; }

.category-nav-inner > .mega-track { display: inline-flex; flex: none; align-items: center; gap: .5rem; margin-left: auto; padding: .55rem 1.05rem; border: 1.5px solid #f2ab1e; border-radius: 999px; color: #15609f; font-size: .92rem; font-weight: 700; text-decoration: none; transition: background-color .2s ease; }
.category-nav-inner > .mega-track .icon { color: #f2ab1e; font-size: 1.1rem; transition: transform .25s ease, color .2s ease; }
.category-nav-inner > .mega-track:hover { background: #f2ab1e; color: #15609f; }
.category-nav-inner > .mega-track:hover .icon { color: #15609f; transform: translateX(3px); }
.category-nav-inner > .mega-track:focus-visible { outline: 2px solid #15609f; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    .category-nav-inner > .mega-link, .category-nav-inner > .mega-track, .category-nav-inner > .mega-track .icon { transition: none; }
}
@media (max-width: 1200px) {
    .category-nav-inner { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
}
@media (max-width: 680px) {
    .category-nav-inner { min-height: 56px; }
    .category-nav-inner > .mega-link { padding: .5rem .8rem; font-size: .88rem; }
}

/* ---- Cabeçalho: conta, encomendas e sair ---- */
.header-actions { gap: .6rem; }
.hdr-pill { display: inline-flex; min-height: 44px; align-items: center; gap: .5rem; padding: .5rem 1rem; border-radius: 999px; background: #f3f0e6; color: #15609f; font-size: .88rem; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.hdr-pill .icon { color: #f2ab1e; font-size: 1.1rem; transition: transform .3s ease; }
.hdr-pill:hover { background: #15609f; color: #f7f2e6; transform: translateY(-1px); }
.hdr-pill:hover .icon { transform: rotate(-10deg); }
.hdr-pill-dark { background: #15609f; color: #f7f2e6; box-shadow: 0 6px 14px #15609f33; }
.hdr-pill-dark:hover { background: #0f1f2f; }
.hdr-account { display: inline-flex; min-height: 48px; align-items: center; gap: .65rem; padding: .3rem 1rem .3rem .3rem; border: 1.5px solid #e5e8ea; border-radius: 999px; background: #fff; color: #15609f; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.hdr-account:hover { border-color: #f2ab1e; color: #15609f; box-shadow: 0 8px 20px #f2ab1e2e; }
.hdr-avatar { position: relative; display: grid; width: 2.4rem; height: 2.4rem; flex: none; place-items: center; border-radius: 50%; background: linear-gradient(140deg, #f2cc65, #f2ab1e 55%, #d9ab2b); color: #15609f; font-family: var(--display); font-size: 1.15rem; font-weight: 800; box-shadow: inset 0 -2px 4px #00000026; }
.hdr-avatar .icon { font-size: 1.2rem; stroke-width: 2; }
.hdr-avatar.is-online::after { content: ""; position: absolute; right: -1px; bottom: -1px; width: .7rem; height: .7rem; border: 2px solid #fff; border-radius: 50%; background: #2b6fb3; }
.hdr-account-text { display: grid; line-height: 1.15; white-space: nowrap; }
.hdr-account-text small { color: #6a7a72; font-size: .72rem; font-weight: 600; }
.hdr-account-text strong { font-size: .92rem; }
.header-actions form { display: flex; }
.hdr-logout { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1.5px solid #e5e8ea; border-radius: 50%; background: #fff; color: #6a7a72; font-size: 1.1rem; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.hdr-logout:hover { border-color: #f0dda8; background: #fdf7e8; color: #b48b1b; }
.hdr-pill:focus-visible, .hdr-account:focus-visible, .hdr-logout:focus-visible { outline: 2px solid #f2ab1e; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    .hdr-pill, .hdr-pill .icon, .hdr-account, .hdr-logout { transition: none; }
}
@media (max-width: 1440px) {
    .hdr-pill { width: 44px; justify-content: center; padding: 0; }
    .hdr-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 680px) {
    .hdr-pill, .header-actions form { display: none; }
    .hdr-account { min-height: 44px; padding: .2rem; border: 0; }
    .hdr-account-text { display: none; }
}

/* ---- A minha conta (gestão de conta) ---- */
.account-page:has(.manage-shell) { max-width: 1100px; }
.manage-shell { display: grid; gap: 1.6rem; padding-top: .6rem; }
.manage-hero { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.6rem; overflow: hidden; padding: 2rem 2.2rem; border-radius: 1.6rem; background:
    radial-gradient(22rem 14rem at 95% 0%, #f2ab1e47, transparent 70%),
    radial-gradient(#f7f2e612 1px, transparent 1.2px) 0 0 / 20px 20px,
    linear-gradient(155deg, #1d334a, #15609f 55%, #0e1d2c); color: #dbe0e6; }
.manage-avatar { position: relative; display: grid; width: 4.6rem; height: 4.6rem; flex: none; place-items: center; border-radius: 50%; background: linear-gradient(140deg, #f2cc65, #f2ab1e 55%, #d9ab2b); color: #15609f; font-family: var(--display); font-size: 2.2rem; font-weight: 800; box-shadow: 0 0 0 5px #f7f2e61f, 0 14px 30px #060e174d; }
.manage-avatar::after { content: ""; position: absolute; right: 2px; bottom: 2px; width: 1rem; height: 1rem; border: 3px solid #15609f; border-radius: 50%; background: #2b6fb3; }
.manage-hero-kicker { margin: 0; color: #f2ab1e; font-size: .85rem; font-weight: 700; }
.account-page .manage-hero h1 { margin: .15rem 0 .25rem; color: #f7f2e6; font-family: var(--display); font-size: clamp(1.8rem, 3.6vw, 2.6rem); font-stretch: 82%; font-weight: 800; letter-spacing: -.01em; line-height: 1; }
.manage-hero-email { margin: 0; color: #b8c1ca; font-size: .95rem; overflow-wrap: anywhere; }
.manage-hero-link { display: inline-flex; align-items: center; gap: .55rem; margin-left: auto; padding: .7rem 1.2rem; border-radius: 999px; background: #f7f2e6; color: #15609f; font-size: .9rem; font-weight: 700; text-decoration: none; transition: transform .2s ease, background-color .2s ease; }
.manage-hero-link .icon { color: #f2ab1e; font-size: 1.1rem; }
.manage-hero-link:hover { background: #fff; color: #15609f; transform: translateY(-2px); }

.manage-grid { display: grid; grid-template-columns: 290px minmax(0, 1fr); align-items: start; gap: 1.6rem; }
.manage-nav { position: sticky; top: 9rem; display: grid; gap: .35rem; padding: .6rem; border: 1px solid #eaedf0; border-radius: 1.3rem; background: #fff; }
.manage-nav-link { display: flex; align-items: center; gap: .85rem; padding: .75rem .8rem; border-radius: .95rem; color: #15609f; text-decoration: none; transition: background-color .2s ease; }
.manage-nav-link:hover { background: #f3f5f7; color: #15609f; }
.manage-nav-icon { display: grid; width: 2.5rem; height: 2.5rem; flex: none; place-items: center; border-radius: .8rem; background: #f3f0e6; color: #15609f; font-size: 1.15rem; transition: background-color .2s ease, color .2s ease; }
.manage-nav-link > span:last-child { display: grid; min-width: 0; line-height: 1.25; }
.manage-nav-link strong { font-size: .92rem; }
.manage-nav-link small { color: #6a7a72; font-size: .76rem; }
.manage-nav-link.is-active { background: #15609f; color: #f7f2e6; box-shadow: 0 10px 22px #15609f33; }
.manage-nav-link.is-active small { color: #b8c1ca; }
.manage-nav-link.is-active .manage-nav-icon { background: #f2ab1e; color: #15609f; }
.manage-nav-link:focus-visible { outline: 2px solid #f2ab1e; outline-offset: 2px; }

.manage-card { min-width: 0; padding: 2rem 2.2rem 2.2rem; border: 1px solid #eaedf0; border-radius: 1.4rem; background: #fff; box-shadow: 0 24px 50px -30px #15609f33; }
.manage-card > h3 { margin: 0 0 1rem; font-family: var(--display); font-size: 1.6rem; font-stretch: 85%; font-weight: 800; }
.manage-section-head { margin-bottom: 1.6rem; padding-bottom: 1.2rem; border-bottom: 1px solid #f1eee6; }
.manage-section-head h2 { margin: 0; color: #15609f; font-family: var(--display); font-size: 1.9rem; font-stretch: 85%; font-weight: 800; }
.manage-section-head p { margin: .35rem 0 0; color: #6a7a72; font-size: .92rem; }
.manage-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.4rem; max-width: 520px; }
.manage-field { display: grid; min-width: 0; gap: .45rem; }
.manage-field > label { color: #15609f; font-size: .88rem; font-weight: 700; }
.manage-field > small { color: #6a7a72; font-size: .8rem; }
.manage-input { display: flex; align-items: center; gap: .7rem; min-height: 54px; padding: 0 1rem; border: 1.5px solid #dee1e4; border-radius: 1rem; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.manage-input > .icon { flex: none; color: #f2ab1e; font-size: 1.15rem; }
.manage-input input { width: 100%; min-width: 0; flex: 1; height: 52px; padding: 0; border: 0; outline: 0; background: transparent; color: #15609f; font-size: 1rem; }
.manage-input:focus-within { border-color: #15609f; box-shadow: 0 0 0 4px #15609f1a; }
.manage-input.is-locked { border-style: dashed; background: #f7f5ef; }
.manage-input.is-locked input { color: #4a525a; }
.manage-lock { display: inline-flex; flex: none; align-items: center; gap: .3rem; padding: .25rem .6rem; border-radius: 999px; background: #e9ecef; color: #4a525a; font-size: .74rem; font-weight: 700; }
.manage-lock .icon { font-size: .85rem; }
.manage-save { justify-self: start; min-height: 52px; padding: .8rem 1.5rem; border-radius: 999px; box-shadow: 0 12px 24px #f2ab1e40; }
.manage-save .icon { font-size: 1.15rem; stroke-width: 2.4; }
.manage-save:hover { background: #f2c752; color: #161c23; }
.manage-card .alert { border-radius: .9rem; }
@media (prefers-reduced-motion: reduce) {
    .manage-hero-link, .manage-nav-link, .manage-nav-icon, .manage-input { transition: none; }
}
@media (max-width: 900px) {
    .manage-grid { grid-template-columns: 1fr; }
    .manage-nav { position: static; grid-auto-flow: column; grid-auto-columns: minmax(200px, 1fr); overflow-x: auto; scrollbar-width: none; }
    .manage-nav-link small { display: none; }
}
@media (max-width: 680px) {
    .manage-hero { padding: 1.5rem; border-radius: 1.2rem; }
    .manage-hero-link { margin-left: 0; }
    .manage-avatar { width: 3.6rem; height: 3.6rem; font-size: 1.7rem; }
    .manage-card { padding: 1.4rem 1.2rem 1.6rem; border-radius: 1.1rem; }
    .manage-save { justify-self: stretch; justify-content: center; }
}

/* ---- Backoffice: tabela de dados de produtos ---- */
.dt-card { overflow: hidden; border: 1px solid #e6e8eb; border-radius: 1.3rem; background: #fff; box-shadow: 0 24px 50px -32px #15609f40; }
.dt-tabs { display: flex; gap: .3rem; padding: .7rem .8rem 0; overflow-x: auto; border-bottom: 1px solid #eaedf0; background: #fbfaf7; scrollbar-width: none; }
.dt-tabs a { display: inline-flex; flex: none; align-items: center; gap: .5rem; padding: .7rem 1rem; border-bottom: 2.5px solid transparent; color: #5b6961; font-size: .9rem; font-weight: 650; text-decoration: none; }
.dt-tabs a:hover { color: #15609f; }
.dt-tabs a.is-active { border-bottom-color: #f2ab1e; color: #15609f; }
.dt-tab-count { min-width: 1.6rem; padding: .1rem .45rem; border-radius: 999px; background: #eaedf0; color: #4a525a; font-size: .74rem; font-weight: 700; text-align: center; }
.dt-tabs a.is-active .dt-tab-count { background: #15609f; color: #f7f2e6; }

.dt-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; padding: 1.1rem 1.2rem; border-bottom: 1px solid #eaedf0; }
.dt-search { display: flex; min-width: min(100%, 320px); flex: 1 1 320px; align-items: center; gap: .6rem; padding: 0 .9rem; border: 1.5px solid #dee1e4; border-radius: 999px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.dt-search .icon { flex: none; color: #f2ab1e; font-size: 1.1rem; }
.dt-search input { width: 100%; min-width: 0; height: 46px; padding: 0; border: 0; outline: 0; background: transparent; color: #15609f; font-size: .95rem; }
.dt-search kbd { padding: .1rem .45rem; border: 1px solid #dee1e4; border-radius: .35rem; background: #f7f5ef; color: #6a7a72; font-size: .75rem; box-shadow: none; }
.dt-search:focus-within { border-color: #15609f; box-shadow: 0 0 0 4px #15609f1a; }
.dt-select { display: inline-flex; align-items: center; gap: .55rem; color: #6a7a72; font-size: .82rem; font-weight: 600; }
.dt-select select { height: 46px; padding: 0 2.2rem 0 .95rem; border: 1.5px solid #dee1e4; border-radius: 999px; background: #fff; color: #15609f; font-size: .9rem; font-weight: 600; cursor: pointer; }
.dt-select select:focus { border-color: #15609f; outline: 0; box-shadow: 0 0 0 4px #15609f1a; }
.dt-submit { height: 46px; padding: 0 1.2rem; border: 0; border-radius: 999px; background: #15609f; color: #f7f2e6; font-weight: 700; cursor: pointer; }
.dt-clear { color: #b48b1b; font-size: .85rem; font-weight: 650; }

.dt-scroll { overflow-x: auto; }
.dt-table { width: 100%; border-collapse: separate; border-spacing: 0; white-space: nowrap; }
.dt-table th { position: sticky; top: 0; z-index: 1; padding: .85rem 1.1rem; border-bottom: 1px solid #eaedf0; background: #fff; color: #6a7a72; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.dt-table td { padding: .9rem 1.1rem; border-bottom: 1px solid #eff1f3; color: #2f3740; font-size: .9rem; vertical-align: middle; }
.dt-table tbody tr { transition: background-color .15s ease; }
.dt-table tbody tr:hover { background: #f7f8fa; }
.dt-table tbody tr:last-child td { border-bottom: 0; }
.dt-table tr.is-archived td { color: #8a968f; }
.dt-table tr.is-archived img { filter: grayscale(1); opacity: .6; }
.dt-num { text-align: right; }
.dt-table th.dt-num .dt-sort { justify-content: flex-end; }
.dt-sort { display: inline-flex; width: 100%; align-items: center; gap: .35rem; color: inherit; text-decoration: none; }
.dt-sort:hover { color: #15609f; }
.dt-sort-icon { width: 1rem; height: 1rem; flex: none; fill: none; stroke: #c3cbc5; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.dt-sort.is-sorted { color: #15609f; }
th[aria-sort="ascending"] .dt-up, th[aria-sort="descending"] .dt-down { stroke: #f2ab1e; }
th[aria-sort="ascending"] .dt-down, th[aria-sort="descending"] .dt-up { stroke: #e3e7e3; }

.dt-product { display: flex; align-items: center; gap: .85rem; }
.dt-product img { width: 48px; height: 48px; flex: none; padding: 3px; border: 1px solid #eaedf0; border-radius: .8rem; background: #fff; object-fit: contain; }
.dt-product > span { display: grid; gap: .15rem; }
.dt-product strong { color: #15609f; font-size: .95rem; }
.dt-featured { color: #c89c22; font-size: .75rem; font-weight: 700; }
.dt-table mark { padding: 0 .1rem; border-radius: .2rem; background: #fdf1cf; color: inherit; }
.dt-sku { padding: .2rem .5rem; border-radius: .4rem; background: #f2f3f5; color: #4a525a; font-size: .8rem; }
.dt-category { display: inline-flex; padding: .3rem .7rem; border-radius: 999px; background: #eef1f4; color: #2f475f; font-size: .8rem; font-weight: 600; }
.dt-price { color: #15609f; font-weight: 700; }
.dt-stock { display: inline-grid; justify-items: end; line-height: 1.15; }
.dt-stock strong { font-size: 1rem; }
.dt-stock small { font-size: .72rem; font-weight: 600; }
.dt-stock.is-ok small { color: #2b5a8a; }
.dt-stock.is-low strong, .dt-stock.is-low small { color: #c89c22; }
.dt-stock.is-out strong, .dt-stock.is-out small { color: #b23b3b; }
.dt-stock.is-muted small { color: #9aa49e; }
.dt-status { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border-radius: 999px; font-size: .78rem; font-weight: 700; }
.dt-status::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.dt-status.is-active { background: #e6edf4; color: #1f4c7a; }
.dt-status.is-archived { background: #eef0f1; color: #7b867f; }
.dt-actions { width: 1%; text-align: right; }
.dt-actions > a, .dt-actions > form { display: inline-flex; margin: 0 0 0 .4rem; vertical-align: middle; }
.dt-action { display: grid; flex: none; width: 38px; height: 38px; place-items: center; padding: 0; border: 1.5px solid #e2e4e7; border-radius: .75rem; background: #fff; color: #15609f; font-size: 1.05rem; cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.dt-action:hover { border-color: #15609f; background: #15609f; color: #f7f2e6; }
.dt-action.is-danger { color: #b48b1b; }
.dt-action.is-danger:hover { border-color: #b48b1b; background: #b48b1b; color: #fff; }
.dt-action:focus-visible, .dt-sort:focus-visible, .dt-page:focus-visible, .dt-tabs a:focus-visible { outline: 2px solid #f2ab1e; outline-offset: 2px; }

.dt-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.2rem; padding: 1rem 1.2rem; border-top: 1px solid #eaedf0; background: #fbfaf7; }
.dt-footer p { margin: 0; color: #6a7a72; font-size: .88rem; }
.dt-footer strong { color: #15609f; }
.dt-pages { display: flex; align-items: center; gap: .3rem; }
.dt-page { display: grid; min-width: 38px; height: 38px; place-items: center; padding: 0 .6rem; border: 1.5px solid #e2e4e7; border-radius: .75rem; background: #fff; color: #15609f; font-size: .88rem; font-weight: 700; text-decoration: none; }
.dt-page:hover { border-color: #15609f; color: #15609f; }
.dt-page.is-current { border-color: #15609f; background: #15609f; color: #f7f2e6; }
.dt-page.is-disabled { pointer-events: none; opacity: .4; }
.dt-gap { padding: 0 .2rem; color: #9aa49e; }
.dt-empty { display: grid; justify-items: center; gap: .5rem; padding: 3.5rem 1rem; text-align: center; }
.dt-empty .icon { width: 3rem; height: 3rem; padding: .7rem; border-radius: 1rem; background: #f3f0e6; color: #f2ab1e; }
.dt-empty h2 { margin: .4rem 0 0; color: #15609f; font-size: 1.3rem; }
.dt-empty p { margin: 0 0 .6rem; color: #6a7a72; }
@media (prefers-reduced-motion: reduce) {
    .dt-table tbody tr, .dt-action, .dt-search { transition: none; }
}
@media (max-width: 680px) {
    .dt-toolbar { padding: .9rem; }
    .dt-select { flex: 1 1 140px; }
    .dt-select > span { display: none; }
    .dt-select select { width: 100%; }
    .dt-search kbd { display: none; }
    .dt-footer { justify-content: center; text-align: center; }
}

/* ---- Menu: cascata leve (grupos → subcategorias ao lado) ---- */
.category-nav-inner > .mega-link { display: inline-flex; align-items: center; gap: .25rem; }
.category-nav-inner > .mega-link .mega-caret { width: 1rem; height: 1rem; color: #8a968f; transition: transform .25s ease, color .2s ease; }
.category-nav-inner > .mega-link[aria-expanded="true"] { background: #eef1f4; color: #15609f; }
.category-nav-inner > .mega-link[aria-expanded="true"] .mega-caret { color: #f2ab1e; transform: rotate(180deg); }
.mega-all[aria-expanded="true"] { background: #0f1f2f; }
.cm-host { position: absolute; top: 100%; right: 0; left: 0; height: 0; }
.cm-drop { position: absolute; z-index: 30; top: 8px; left: var(--x, 0); width: 264px; padding: .45rem; border: 1px solid #e2e4e7; border-radius: .9rem; background: #fff; box-shadow: 0 18px 40px -16px #0f1f2f40, 0 4px 12px -6px #0f1f2f1f; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .16s ease, transform .2s ease, visibility 0s linear .2s; }
.cm-drop::before { content: ""; position: absolute; top: -10px; right: 0; left: 0; height: 10px; }
.cm-drop.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.cm-list { display: grid; gap: 1px; margin: 0; padding: 0; list-style: none; }
.cm-link { display: flex; align-items: center; gap: .65rem; min-height: 40px; padding: .45rem .7rem; border-radius: .6rem; color: #2f3740; font-size: .9rem; font-weight: 500; line-height: 1.3; text-decoration: none; transition: background-color .12s ease, color .12s ease; }
.cm-link > span:not(.cm-icon) { flex: 1; min-width: 0; }
.cm-link small { color: #8a968f; font-size: .75rem; font-weight: 600; }
.cm-link:hover, .cm-item.is-open > .cm-link { background: #f2f4f6; color: #15609f; }
.cm-item.is-open > .cm-link { font-weight: 650; }
.cm-chev { width: .95rem; height: .95rem; color: #b3bbb5; transition: transform .15s ease, color .15s ease; }
.cm-item.is-open > .cm-link .cm-chev { color: #f2ab1e; transform: translateX(2px); }
.cm-icon { display: grid; width: 1.9rem; height: 1.9rem; flex: none; place-items: center; border-radius: .55rem; background: #fdf7e6; color: #c89c22; font-size: .95rem; }
.cm-title { margin: .35rem .7rem .4rem; color: #8a968f; font-size: .7rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.cm-foot { display: flex; align-items: center; gap: .4rem; margin-top: .35rem; padding: .65rem .7rem .45rem; border-top: 1px solid #eaedf0; color: #15609f; font-size: .85rem; font-weight: 700; text-decoration: none; }
.cm-foot .icon { color: #f2ab1e; font-size: 1rem; transition: transform .2s ease; }
.cm-foot:hover { color: #c89c22; }
.cm-foot:hover .icon { transform: translateX(3px); }
/* Nível seguinte: abre ao lado, alinhado com o topo do menu */
.cm-item { position: static; }
.cm-sub { position: absolute; top: -1px; left: calc(100% + 6px); width: 264px; min-height: calc(100% + 2px); padding: .45rem; border: 1px solid #e2e4e7; border-radius: .9rem; background: #fff; box-shadow: 0 18px 40px -16px #0f1f2f40; opacity: 0; visibility: hidden; transform: translateX(-4px); transition: opacity .14s ease, transform .18s ease, visibility 0s linear .18s; }
.cm-sub::before { content: ""; position: absolute; top: 0; bottom: 0; left: -8px; width: 8px; }
.cm-item.is-open > .cm-sub { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.cm-flip .cm-sub { right: calc(100% + 6px); left: auto; transform: translateX(4px); }
.cm-flip .cm-sub::before { right: -8px; left: auto; }
.cm-link:focus-visible, .cm-foot:focus-visible { outline: 2px solid #f2ab1e; outline-offset: -2px; }

/* Atalhos de subcategorias na página da categoria */
.sub-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: -.4rem 0 1.4rem; }
.sub-chips a { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .9rem; border: 1px solid #e2e4e7; border-radius: 999px; background: #fff; color: #2f3740; font-size: .86rem; font-weight: 600; text-decoration: none; transition: border-color .18s ease, background-color .18s ease; }
.sub-chips a small { color: #8a968f; font-size: .75rem; font-weight: 700; }
.sub-chips a:hover { border-color: #f2ab1e; }
.sub-chips a.is-active { border-color: #15609f; background: #15609f; color: #f7f2e6; }
.sub-chips a.is-active small { color: #f1cb63; }
.dt-subcategory { display: block; margin-top: .3rem; color: #7b867f; font-size: .76rem; }
.form-hint { display: block; margin-top: .35rem; color: #8a968f; font-size: .8rem; }

@media (prefers-reduced-motion: reduce) {
    .cm-drop, .cm-sub, .cm-link, .cm-chev, .cm-foot .icon, .category-nav-inner > .mega-link .mega-caret { transition: none; }
}
/* Ecrãs tácteis e pequenos: o menu ocupa a largura e os níveis abrem por baixo (acordeão) */
@media (max-width: 900px), (hover: none) {
    .cm-drop { right: 0; left: 0; width: auto; max-height: 72vh; overflow-y: auto; overscroll-behavior: contain; }
    .cm-sub { position: static; display: none; width: auto; min-height: 0; margin: .15rem 0 .35rem .9rem; padding: 0 0 0 .5rem; border: 0; border-left: 2px solid #f1e5c3; border-radius: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
    .cm-sub::before { display: none; }
    .cm-item.is-open > .cm-sub { display: block; }
    .cm-item.is-open > .cm-link .cm-chev { transform: rotate(90deg); }
    .cm-sub .cm-title { display: none; }
}

/* ---- Verificação anti-robô (Turnstile) ---- */
.turnstile { min-height: 65px; margin: .4rem 0 1rem; }

/* ---- Identificação legal e preços com IVA ---- */
.site-footer .footer-legal { display: grid; gap: .3rem; }
.site-footer .footer-legal p { margin: 0; }
.site-footer .footer-legal p + p { color: #b3bcc4; font-size: .78rem; }
.site-footer .footer-bottom { color: #c3cbd3; }
.footer-follow { display: grid; justify-items: end; gap: .55rem; }
.footer-visit-title { display: inline-flex; align-items: center; gap: .4rem; color: #f7f2e6; font-size: .86rem; font-weight: 700; text-decoration: none; }
.footer-visit-title .icon { width: 1.1rem; height: 1.1rem; color: #f2ab1e; }
.footer-visit-title:hover, .footer-visit-title:focus-visible { color: #f2ab1e; }
.footer-bottom-actions { display: flex; flex: none; align-items: center; gap: 1.4rem; }
.footer-social { display: flex; gap: .6rem; }
.footer-social a { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid #f7f2e633; border-radius: 50%; color: #f7f2e6; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.footer-social a:hover, .footer-social a:focus-visible { border-color: #f2ab1e; background: #f2ab1e; color: #15609f; }
.detail-price-tax { margin-left: .35rem; color: #74817b; font-size: .8rem; font-weight: 500; letter-spacing: 0; }
.policy-updated { color: #74817b; font-size: .85rem; }
.policy-page ul { padding-left: 1.2rem; }
.policy-page li { margin: .35rem 0; }

/* ---- Páginas de erro (404 / 500) ---- */
.status-page { max-width: 36rem; margin: 3rem auto 4rem; padding: 0 1rem; text-align: center; }
.status-code { margin: 0; color: #f2ab1e; font-family: var(--display); font-size: clamp(4rem, 14vw, 7rem); font-weight: 800; line-height: 1; }
.status-page h1 { margin: .6rem 0 .8rem; color: var(--green); font-size: clamp(1.5rem, 4vw, 2rem); }
.status-page > p { color: #5d6670; }
.status-search { display: flex; gap: .5rem; margin: 1.6rem 0 1rem; }
.status-search input { flex: 1; min-width: 0; min-height: 48px; padding: 0 1rem; border: 1px solid #dce0e4; border-radius: .45rem; }
.status-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.status-ref { margin-top: 1.4rem; font-size: .8rem; }

/* ---- SKU com botão "Gerar" (Backoffice) ---- */
.sku-field { display: flex; gap: .5rem; }
.sku-field input { flex: 1; min-width: 0; }
.sku-field .button { flex: none; }
.form-optional { color: #8a968f; font-weight: 400; }

/* ---- Checkout: aceitar termos; carrinho: remover artigo ---- */
.checkout-terms { margin: 1.2rem 0 .8rem; padding: .9rem 1rem; border: 1px solid #dce0e4; border-radius: .6rem; background: #f6f8fa; font-size: .86rem; line-height: 1.5; }
.checkout-terms label { display: flex; align-items: flex-start; gap: .65rem; cursor: pointer; }
.checkout-terms input { width: 1.15rem; height: 1.15rem; flex: none; margin-top: .15rem; accent-color: var(--green); }
.checkout-terms a { color: #41566c; text-decoration: underline; }
.cart-remove-form { margin-top: .45rem; }
.cart-remove { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; padding: .2rem 0; border: 0; background: none; color: #a24a2a; font-size: .82rem; font-weight: 600; cursor: pointer; }
.cart-remove .icon { width: 1rem; height: 1rem; }
.cart-remove:hover, .cart-remove:focus-visible { text-decoration: underline; }

/* ---- Política de troca/garantia na página do produto ---- */
.detail-policy { display: flex; align-items: flex-start; gap: .6rem; margin: 1rem 0 0; padding: .75rem .9rem; border: 1px solid #dce0e4; border-radius: .6rem; background: #f6f8fa; color: #3f4851; font-size: .85rem; line-height: 1.45; }
.detail-policy .icon { width: 1.2rem; height: 1.2rem; flex: none; margin-top: .1rem; color: var(--green); }
.detail-policy strong { color: var(--green); }
.detail-policy a { color: #41566c; text-decoration: underline; }

/* ---- Backoffice: zonas de entrega ---- */
.admin-detail-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.5rem; align-items: start; }
.admin-table-actions { display: flex; gap: .5rem; justify-content: flex-end; white-space: nowrap; }
.admin-table-actions form { display: inline; }
.admin-form-actions { display: flex; gap: .7rem; margin-top: 1.2rem; }
.button-danger { background: #fff; border: 1px solid #e0b4a4; color: #a24a2a; }
.button-danger:hover, .button-danger:focus-visible { background: #a24a2a; border-color: #a24a2a; color: #fff; }
@media (max-width: 860px) { .admin-detail-grid { grid-template-columns: 1fr; } }

/* ===== Página de produto ===== */
.product-detail { align-items: start; gap: clamp(2rem, 5vw, 4rem); }
.product-detail-image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 1.25rem;
    background: #f0f2f5;
    box-shadow: 0 36px 72px -34px rgba(21, 96, 159, .5), 0 0 64px -14px rgba(52, 116, 184, .22), inset 0 0 0 1px rgba(21, 96, 159, .06);
}
.product-detail-image img { width: 100%; height: 100%; aspect-ratio: auto; transition: transform .55s cubic-bezier(.2, .7, .2, 1); }
.product-detail-image:hover img { transform: scale(1.06); }
.product-detail-image img[src^="/media/"] { padding: 0; background: transparent; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .product-detail-image img { transition: none; } .product-detail-image:hover img { transform: none; } }
.product-detail-info { padding-block: .3rem; }
.product-detail-info h1 { margin: .45rem 0 .3rem; }
.detail-price { margin: 1.1rem 0 .45rem; font-size: clamp(2rem, 4.5vw, 2.7rem); font-weight: 780; letter-spacing: -.035em; color: var(--green); }
.detail-price-tax { margin-left: .5rem; font-size: .82rem; font-weight: 500; letter-spacing: 0; color: #74817b; }
.availability { display: inline-flex; align-items: center; gap: .45rem; margin: .2rem 0 1.4rem; color: #24476a; font-size: .9rem; font-weight: 650; }
.availability span { margin: 0; font-size: .7rem; color: #2f649a; }
.detail-description { margin: 0 0 1.4rem; max-width: 560px; font-size: 1.02rem; line-height: 1.75; color: #566259; }
.detail-add-form { gap: .8rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.detail-add-form label { margin-bottom: -.35rem; font-size: .8rem; font-weight: 650; color: #5f6c64; }
.detail-add-form input { width: 88px; height: 54px; border-radius: .55rem; font-size: 1.05rem; font-weight: 600; text-align: center; }
.detail-add-form .button-dark {
    flex: 1 1 230px; min-height: 54px; padding-inline: 1.5rem;
    border-radius: .55rem; font-size: 1.04rem; font-weight: 700;
    box-shadow: 0 12px 26px -12px rgba(21, 96, 159, .5);
    transition: transform .14s ease, box-shadow .14s ease;
}
.detail-add-form .button-dark:hover { transform: translateY(-2px); box-shadow: 0 18px 32px -12px rgba(21, 96, 159, .55); }
.detail-add-form .button-dark span { transition: transform .14s ease; }
.detail-add-form .button-dark:hover span { transform: translateX(3px); }
/* Ficha técnica — cartão claro e legível */
.product-specs {
    margin-top: 2.4rem; padding: clamp(1.4rem, 3.5vw, 2.1rem);
    border: 1px solid var(--line); border-radius: 1rem; background: #fff;
}
.product-specs h2 { margin: 0 0 1.1rem; font-size: 1.25rem; color: var(--green); }
.product-specs dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--line); }
.product-specs .spec-row { display: flex; flex-direction: column; gap: .2rem; padding: .95rem 1.1rem; border-bottom: 1px solid var(--line); }
.product-specs dt { margin: 0; color: #849187; font-size: .74rem; font-weight: 700; letter-spacing: .04em; }
.product-specs dd, .product-specs .spec-note { margin: 0; color: var(--ink); font-size: 1.05rem; font-weight: 650; }
@media (prefers-reduced-motion: reduce) { .detail-add-form .button-dark, .detail-add-form .button-dark span { transition: none; } }

/* Caixa de compra (página de produto) */
.buy-box {
    margin-top: 1.6rem;
    padding: 1.4rem 1.5rem 1.5rem;
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: linear-gradient(180deg, #ffffff, #f5f8fa);
    box-shadow: 0 18px 44px -30px rgba(21, 96, 159, .32);
}
.buy-box .detail-price { margin: 0 0 .55rem; }
.buy-box .availability { margin: 0 0 1.1rem; }
.buy-box .detail-add-form { margin: 0; padding-top: 1.2rem; }
.buy-box .out-of-stock { margin: 0; }

/* Ficha técnica — visual leve e discreto */
.product-specs { margin-top: 2rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.product-specs h2 { margin: 0 0 .8rem; font-family: inherit; font-size: 1.12rem; font-stretch: normal; font-weight: 700; letter-spacing: 0; color: var(--ink); }
.product-specs dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0 2rem; margin: 0; border-top: 1px solid var(--line); }
.product-specs .spec-row { position: static; display: flex; flex-direction: column; justify-content: flex-start; gap: .1rem; min-height: 0; padding: .6rem 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; overflow: visible; transition: none; }
.product-specs .spec-row:hover { transform: none; box-shadow: none; }
.product-specs .spec-row::before { content: none; }
.product-specs dt { margin: 0; color: var(--muted); font-size: .72rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; }
.product-specs dd, .product-specs .spec-note { margin: 0; color: var(--ink); font-family: inherit; font-size: .98rem; font-stretch: normal; font-weight: 600; letter-spacing: 0; line-height: 1.3; }

/* Dupla borda fina (verde + amarelo) no painel do produto */
.product-detail-image { background: #f0f2f5; box-shadow: 0 0 0 2px #15609f, 0 0 0 4px #f2ab1e, 0 30px 64px -34px rgba(21, 96, 159, .45), 0 0 50px -16px rgba(52, 116, 184, .18); }
.product-detail-image img[src^="/media/"] { padding: 7%; object-fit: contain; background: transparent; }

/* Total ao vivo (por quantidade) na página de produto */
.buy-total { margin: -.1rem 0 1.1rem; color: #566259; font-size: .95rem; font-weight: 600; }
.buy-total strong { color: var(--green); font-family: var(--display); font-size: 1.15rem; font-stretch: 85%; font-weight: 800; letter-spacing: -.01em; }


/* ===== Galeria / carrossel do produto ===== */
.product-gallery { display: flex; flex-direction: column; gap: .9rem; }
.product-gallery-stage { position: relative; }
.product-gallery .gallery-slide { width: 100%; height: 100%; }
.product-gallery .gallery-nav { display: none; }
.product-gallery.is-ready .gallery-nav {
    display: grid; place-items: center;
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; padding: 0;
    border: 1px solid var(--line); border-radius: 50%;
    background: rgba(255, 255, 255, .9); color: var(--green);
    box-shadow: 0 8px 20px -10px rgba(21, 96, 159, .5); cursor: pointer;
    transition: transform .14s ease, background .14s ease; z-index: 2;
}
.product-gallery.is-ready .gallery-prev { left: .7rem; }
.product-gallery.is-ready .gallery-next { right: .7rem; }
.product-gallery .gallery-nav:hover { background: #fff; transform: translateY(-50%) scale(1.07); }
.product-gallery .gallery-nav .icon { width: 20px; height: 20px; }
.gallery-thumbs { display: none; }
.product-gallery.is-ready .gallery-thumbs { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.gallery-thumb {
    display: block; padding: 0; width: 64px; height: 64px; overflow: hidden;
    border: 1px solid var(--line); border-radius: .6rem; background: #fff; cursor: pointer;
    transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-thumb:hover { transform: translateY(-2px); }
.gallery-thumb[aria-current="true"] { border-color: var(--green); box-shadow: 0 0 0 2px var(--green), 0 10px 22px -14px rgba(21, 96, 159, .6); }
@media (prefers-reduced-motion: reduce) { .product-gallery .gallery-nav, .gallery-thumb { transition: none; } }

/* Backoffice — galeria de imagens do produto */
.admin-gallery { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.admin-gallery-item { display: flex; flex-direction: column; gap: .4rem; width: 132px; padding: .6rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; }
.admin-gallery-item img { width: 100%; height: 96px; object-fit: contain; border-radius: .4rem; background: #f4f6f9; }
.admin-gallery-pos { display: flex; flex-direction: column; gap: .2rem; font-size: .72rem; font-weight: 650; color: #5f6c64; }
.admin-gallery-pos input { width: 100%; height: 36px; text-align: center; }
.admin-gallery-remove { font-size: .8rem; }
.admin-gallery-empty { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; color: var(--muted); }
.admin-gallery-empty img { border: 1px solid var(--line); border-radius: .4rem; background: #f4f6f9; padding: .2rem; }
