/* Shared Portuguese palette, CSS-only decoration; no photography or external assets. */
.header-inner { min-height: 6rem; gap: 1rem 1.5rem; }
.brand { min-width: 10rem; }
.brand .custom-logo { max-height: 4rem; object-fit: contain; }
.header-tools a, .header-tools summary { gap: .4rem; font-size: .9rem; }
.aw-tool-icon { width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; }
.aw-photo-placeholder, .aw-empty-illustration, .aw-age-backdrop {
    background-color: var(--aw-sand);
    background-image: linear-gradient(45deg, transparent 46%, #3446370d 46%, #3446370d 54%, transparent 54%), linear-gradient(-45deg, transparent 46%, #3446370d 46%, #3446370d 54%, transparent 54%);
    background-size: 4rem 4rem;
}
.aw-photo-placeholder { border: 1px solid var(--aw-line); position: relative; overflow: hidden; }
.aw-photo-placeholder > span:last-child { position: relative; padding: 1.5rem; background: var(--aw-cream); border: 1px solid var(--aw-line); color: var(--aw-olive); }
.aw-tile-mark { color: var(--aw-terra); }
.aw-empty-illustration { display: flex; justify-content: center; align-items: end; gap: .7rem; width: 12rem; height: 9rem; margin: 0 auto 2rem; padding: 1.5rem; border-radius: 50% 50% 8% 8%; }
.aw-empty-illustration span { display: block; width: 1.7rem; height: 3.6rem; border: 2px solid var(--aw-olive); border-radius: .6rem .6rem .2rem .2rem; position: relative; }
.aw-empty-illustration span::before { content: ''; position: absolute; width: .6rem; height: 1rem; left: .4rem; top: -1rem; border: 2px solid var(--aw-olive); border-bottom: 0; }
.aw-empty-illustration span:nth-child(2) { height: 4.5rem; border-color: var(--aw-terra); }
.woocommerce div.product div.images { padding: clamp(1rem, 3vw, 3rem); background: var(--aw-white); border: 1px solid var(--aw-sand); border-radius: .75rem; }
.woocommerce div.product .summary p.price { font-size: 2rem; margin-block: 1.25rem .6rem; }
.woocommerce div.product .summary .stock { display: inline-block; padding: .4rem .7rem; border: 1px solid var(--aw-line); border-radius: 2rem; }
.woocommerce div.product .summary form.cart { padding-block: 1.5rem; border-block: 1px solid var(--aw-line); }
.product-origin a { text-decoration: underline; text-underline-offset: .2em; }
.wine-passport { background: var(--aw-white); padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--aw-line); border-top: 3px solid var(--aw-terra); border-radius: .5rem; }
.aw-pairings { padding: 1.5rem; background: var(--aw-sand); border-radius: .5rem; }
.aw-pairings li { border: 1px solid var(--aw-line); background: var(--aw-cream); }
.aw-checkout-intro { margin-block: 1rem 2rem; }
.aw-checkout-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; list-style: none; padding: 0 0 1.5rem; border-bottom: 1px solid var(--aw-line); }
.aw-checkout-progress li { display: flex; gap: .6rem; align-items: center; font-size: .9rem; }
.aw-checkout-progress span { display: grid; place-items: center; min-width: 2rem; height: 2rem; border: 1px solid var(--aw-terra); border-radius: 50%; color: var(--aw-terra); }
.aw-delivery-card { display: grid; gap: 1.25rem; background: var(--aw-sand); border: 1px solid var(--aw-line); border-left: 3px solid var(--aw-terra); border-radius: .5rem; padding: 1.25rem; }
.aw-delivery-card h2 { font-size: 1.2rem; margin: 0 0 .6rem; }
.aw-delivery-card p { font-size: .9rem; margin: 0; }
.aw-age-confirmation { margin-block: 1rem; padding: 1rem; border: 1px solid var(--aw-line); background: var(--aw-cream); border-radius: .4rem; }
.aw-age-confirmation label { display: flex; align-items: start; gap: .6rem; cursor: pointer; font-weight: 600; }
.aw-age-confirmation input { flex: 0 0 1.15rem; margin-top: .25rem; }
.aw-age-confirmation p { font-size: .9rem; margin: .7rem 0 0; }
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review, .wc-block-components-sidebar { border: 1px solid var(--aw-line); border-radius: .75rem; }
.woocommerce-checkout #customer_details { padding: clamp(1rem, 3vw, 2rem); background: var(--aw-white); }
.woocommerce-checkout #customer_details.col2-set { display: block; }
.woocommerce-checkout #customer_details.col2-set .col-1, .woocommerce-checkout #customer_details.col2-set .col-2 { width: 100%; float: none; }
.woocommerce-checkout #customer_details h3:first-child { margin-top: 0; }
.woocommerce-checkout #order_review { background: var(--aw-sand); }
.aw-review-product { display: inline-flex; gap: .6rem; align-items: center; vertical-align: middle; max-width: 100%; }
.aw-review-product .aw-review-thumbnail { width: 2.8rem; height: 4rem; flex: 0 0 2.8rem; object-fit: contain; background: var(--aw-white); }
.aw-review-product > span { overflow-wrap: anywhere; }
.woocommerce-cart table.cart img { width: 5.5rem; height: 7.5rem; }
.woocommerce-cart .cart-collaterals .cart_totals { border: 1px solid var(--aw-line); border-top: 3px solid var(--aw-terra); border-radius: .75rem; padding: 1.5rem; }
.woocommerce-cart .quantity input.qty { border-radius: .4rem; text-align: center; background: var(--aw-cream); }
.woocommerce-cart .woocommerce a.remove { color: var(--aw-olive) !important; border: 1px solid var(--aw-line); border-radius: 50%; }
.woocommerce-cart .woocommerce a.remove:hover { background: var(--aw-olive); color: var(--aw-white) !important; }
.woocommerce-cart table.cart td.actions { background: var(--aw-cream); }
.woocommerce-cart table.cart .coupon .button { background: transparent; color: var(--aw-olive); }
.site-footer { background: var(--aw-olive); color: var(--aw-cream); padding-block: clamp(2.5rem, 5vw, 5rem); }
.site-footer a, .site-footer h2 { color: var(--aw-cream); }
.site-footer :focus-visible { outline-color: var(--aw-cream); }
.footer-brand { font-family: var(--aw-serif); font-size: 2rem; text-decoration: none; }
.aw-footer-intro { max-width: 36rem; margin-bottom: 2rem; }
.aw-footer-columns { display: grid; gap: 2rem; margin-block: 2rem; padding-block: 2rem; border-block: 1px solid #f8f5ed66; }
.aw-footer-columns h2 { font-size: 1.35rem; margin-top: 0; }
.site-footer .aw-footer-columns ul { display: block; }
.site-footer li a { display: inline-flex; align-items: center; min-height: 44px; }
.aw-age-page { min-height: 100vh; }
.aw-age-backdrop { position: fixed; inset: 0; display: grid; place-items: start center; padding-top: 8vh; color: var(--aw-olive); font: clamp(2rem, 6vw, 5rem)/1.3 var(--aw-serif); }
.aw-age-backdrop::after { content: ''; position: absolute; inset: 0; background: #282c2966; }
#aw-age-dialog { position: fixed; inset: 0; margin: auto; width: min(36rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow: auto; padding: clamp(1.25rem, 4vw, 3rem); background: var(--aw-cream); color: var(--aw-ink); border: 1px solid var(--aw-line); border-top: 4px solid var(--aw-terra); border-radius: .8rem; box-shadow: 0 1.5rem 5rem #282c2933; }
#aw-age-dialog::backdrop { background: #282c2922; }
#aw-age-dialog h1 { font-size: clamp(2rem, 5vw, 3rem); margin-block: 1rem; }
#aw-age-dialog h2 { font-size: 1.35rem; color: var(--aw-olive); }
#aw-age-dialog form { display: grid; gap: .8rem; margin-block: 1.5rem; }
#aw-age-dialog button { width: 100%; min-height: 48px; }
#aw-age-dialog .aw-age-secondary { background: transparent; color: var(--aw-olive); }
.aw-age-footer { font-size: .85rem; border-top: 1px solid var(--aw-line); padding-top: 1rem; margin-bottom: 0; }
@media (min-width: 48rem) {
    .aw-checkout-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .aw-delivery-card, .aw-footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 64rem) {
    .woocommerce-checkout .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: start; gap: 1rem 2rem; }
    .woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
    .woocommerce-checkout #order_review_heading { grid-column: 2; margin: 0; }
    .woocommerce-checkout #order_review { grid-column: 2; position: sticky; top: 1rem; }
    .aw-footer-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Very tall summaries remain normal flow so payment fields never become trapped. */
@media (max-height: 44rem) { .woocommerce-checkout #order_review { position: static; } }
@media (max-width: 47.99rem) {
    .woocommerce-checkout #order_review { position: static; }
    .header-tools { gap: .5rem 1rem; }
    .aw-review-product { display: flex; }
}
