/* Sprint 2 composition. All colors and font families reuse main.css tokens. */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.aw-hero-grid, .aw-story-grid { display: grid; gap: var(--aw-space-4); align-items: center; }
.aw-hero-grid { padding-block: var(--aw-space-3) var(--aw-space-5); }
.aw-hero-copy h1 { margin-block: 1rem 1.5rem; max-width: 15ch; }
.aw-lead { font-size: clamp(1.05rem, 1.7vw, 1.3rem); max-width: 44ch; color: var(--aw-muted); }
.aw-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.aw-outline { background: transparent; color: var(--aw-olive); }
.aw-photo { overflow: hidden; background: var(--aw-sand); aspect-ratio: 4 / 3; border-radius: var(--aw-radius); }
.aw-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.aw-hero-grid > .aw-photo { aspect-ratio: 5 / 4; }
.aw-usp-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; list-style: none; padding: 1.5rem 0; margin: 0; border-block: 1px solid var(--aw-line); font-size: .9rem; }
.aw-usp-list li { display: flex; gap: .6rem; align-items: baseline; }
.aw-usp-list span { color: var(--aw-terra); }
.aw-section > h2 { margin-top: .5rem; }
.aw-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.aw-section-heading h2 { max-width: 26ch; margin-block: .5rem; }
.aw-section-heading a { min-height: 44px; display: inline-flex; align-items: center; }
.aw-discover-callout { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1.5rem, 4vw, 3rem); background: var(--aw-sand); border: 1px solid var(--aw-line); border-left: 4px solid var(--aw-terra); }
.aw-discover-callout h2 { margin-block: .4rem .75rem; }
.aw-discover-callout p:last-child { margin-bottom: 0; }
.aw-card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.aw-tax-card { min-width: 0; background: var(--aw-white); border: 1px solid var(--aw-sand); border-radius: var(--aw-radius); overflow: hidden; }
.aw-tax-card > a { display: block; height: 100%; text-decoration: none; color: var(--aw-ink); }
.aw-tax-card > a:focus-visible { outline-offset: -4px; }
.aw-tax-card > a:hover h3 { text-decoration: underline; text-underline-offset: .2em; }
.aw-tax-card .aw-photo { border: 0; border-radius: 0; }
.aw-card-copy { padding: 1.25rem; }
.aw-card-copy h3 { margin: 0 0 .6rem; }
.aw-card-copy p { color: var(--aw-muted); font-size: .9rem; }
.aw-card-hint { font-size: .85rem; color: var(--aw-olive); }
.aw-card-count { display: block; margin-block: .5rem; color: var(--aw-muted); font-size: .85rem; }
.aw-card-origin { color: var(--aw-terra) !important; font-weight: 600; }
.aw-card-grid-six .aw-photo { aspect-ratio: 1 / 1; }
.aw-card-grid-six .aw-brand-art { min-height: 12rem; }
.aw-empty { border: 1px solid var(--aw-line); border-radius: var(--aw-radius); background: var(--aw-sand); padding: clamp(1.25rem, 4vw, 3rem); color: var(--aw-muted); }
.aw-empty p { margin: 0; max-width: 62ch; }
.aw-multiline { white-space: pre-line; }
.aw-tasting-teaser { margin-top: var(--aw-space-5); padding: clamp(1.5rem, 5vw, 4rem); background: var(--aw-olive); color: var(--aw-cream); border-radius: var(--aw-radius); }
.aw-tasting-teaser h2 { max-width: 26ch; }
.aw-tasting-teaser .aw-kicker { color: var(--aw-sand); }
.aw-tasting-teaser .button { background: var(--aw-cream); color: var(--aw-olive); }
.aw-tasting-teaser :focus-visible, .site-footer :focus-visible { outline-color: var(--aw-cream); }
.aw-teaser-formulas { display: flex; flex-wrap: wrap; gap: 1rem 3rem; }
.aw-small { font-size: .875rem; }
.aw-newsletter { display: grid; gap: 2rem; padding-block: var(--aw-space-5) 0; }
.aw-newsletter h2 { margin-top: .5rem; }
.aw-newsletter-form { display: grid; gap: .75rem; align-content: center; }
.aw-newsletter-form input, .aw-newsletter-form button { width: 100%; min-height: 48px; }
.aw-page-intro { max-width: 54rem; padding-block: 2rem 3rem; }
.aw-page-intro h1 { margin-top: .5rem; }
.aw-formula-grid, .aw-business-grid { display: grid; gap: 1.5rem; }
.aw-formula-card, .aw-business-card { min-width: 0; background: var(--aw-white); border: 1px solid var(--aw-line); padding: clamp(1.5rem, 3vw, 3rem); border-radius: var(--aw-radius); }
.aw-formula-card h2, .aw-business-card h2 { margin-top: 0; }
.aw-formula-card h3 { color: var(--aw-olive); }
.aw-formula-price { color: var(--aw-olive); font: 2rem/1.3 var(--aw-serif); }
.aw-business-card { scroll-margin-top: 2rem; }
.aw-tasting-details { display: grid; gap: 2rem; }
.aw-tasting-details h2 { margin-top: 0; color: var(--aw-olive); }
.aw-tasting-cta { margin-block: var(--aw-space-5); padding: clamp(1.5rem, 4vw, 3.5rem); background: var(--aw-sand); border: 1px solid var(--aw-line); border-left: 4px solid var(--aw-terra); }
.aw-tasting-cta h2 { margin-block: .5rem 1rem; }
.aw-contact-grid { display: grid; gap: 1rem; }
.aw-contact-card { min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); background: var(--aw-white); border: 1px solid var(--aw-line); border-top: 3px solid var(--aw-terra); }
.aw-contact-card h2 { margin-top: 0; font-size: 1.55rem; color: var(--aw-olive); }
.aw-contact-email { font: 1.15rem var(--aw-serif); overflow-wrap: anywhere; }
.aw-whatsapp-float { position: fixed; z-index: 40; right: max(1rem, env(safe-area-inset-right)); bottom: max(1.25rem, env(safe-area-inset-bottom)); display: inline-flex; align-items: center; justify-content: center; gap: .65rem; max-width: calc(100vw - 2rem); min-height: 52px; padding: .75rem 1.1rem; border: 1px solid #253428; border-radius: 999px; background: var(--aw-olive); color: var(--aw-white); box-shadow: 0 5px 18px #282c2933; font-size: .9rem; font-weight: 650; line-height: 1.3; text-decoration: none; }
.aw-whatsapp-float:hover { background: #253428; color: var(--aw-white); text-decoration: none; }
.aw-whatsapp-float:focus-visible { outline: 3px solid var(--aw-terra); outline-offset: 4px; }
.aw-whatsapp-float svg { flex: 0 0 24px; }
.aw-quick-links { display: flex; flex-wrap: wrap; gap: .5rem; padding-bottom: 1.5rem; }
.aw-quick-links a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--aw-line); border-radius: 2rem; text-decoration: none; }
.aw-quick-links a:hover { background: var(--aw-sand); }
.aw-filter-slot { display: flex; flex-wrap: wrap; gap: 1.5rem; border-block: 1px solid var(--aw-line); padding-block: 1.5rem; margin-bottom: 2rem; }
.aw-filter-widget { flex: 1 1 12rem; min-width: 0; }
.aw-filter-widget h2 { font-size: 1.2rem; }
.aw-product-badge { display: inline-block; color: var(--aw-white); background: var(--aw-olive); font-size: .8rem; line-height: 1.5; padding: .3rem .6rem; border-radius: var(--aw-radius); }
.woocommerce ul.products li.product { position: relative; display: flex; flex-direction: column; }
.woocommerce ul.products li.product .woocommerce-loop-product__link { display: block; }
.woocommerce ul.products li.product .aw-product-badge { position: absolute; top: .6rem; left: .6rem; z-index: 1; }
.woocommerce ul.products li.product .button { align-self: flex-start; margin-top: auto; }
.woocommerce ul.products li.product .price { font-size: 1rem; margin-bottom: 1rem; }
.woocommerce div.product .product_title { font-size: clamp(2rem, 4vw, 3.2rem); }
.woocommerce div.product .summary { min-width: 0; }
.woocommerce div.product .woocommerce-tabs { padding-top: 2rem; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 62rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .5rem; padding: .5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; border-radius: var(--aw-radius); background: var(--aw-sand); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.aw-pairings { display: flex; flex-wrap: wrap; gap: .75rem; list-style: none; padding: 0; }
.aw-pairings li { padding: .5rem 1rem; background: var(--aw-sand); border-radius: var(--aw-radius); }
.woocommerce table.shop_table { border-color: var(--aw-line); background: var(--aw-white); border-radius: var(--aw-radius); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 1rem; }
.woocommerce .woocommerce-cart-form { margin-bottom: 2rem; }
.woocommerce .cart-collaterals .cart_totals { background: var(--aw-sand); padding: 1.5rem; border-radius: var(--aw-radius); }
.woocommerce form .form-row label { display: block; margin-bottom: .3rem; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { min-height: 48px; }
.woocommerce-checkout #payment { background: var(--aw-sand); border-radius: var(--aw-radius); }
.woocommerce-checkout #payment div.payment_box { background: var(--aw-white); color: var(--aw-ink); }
.woocommerce .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border: 1px solid var(--aw-line); }
.woocommerce .woocommerce-MyAccount-navigation a { display: block; min-height: 44px; padding: .8rem 1rem; }
.woocommerce .woocommerce-MyAccount-navigation .is-active a { background: var(--aw-olive); color: var(--aw-white); }
.woocommerce-error, .woocommerce-info, .woocommerce-message { background: var(--aw-white); color: var(--aw-ink); border-top-color: var(--aw-olive); }
.woocommerce a.remove { min-height: 44px; min-width: 44px; display: inline-grid; place-items: center; }
.woocommerce .coupon { display: flex; flex-wrap: wrap; gap: .5rem; }
.woocommerce table.cart td.actions .input-text { width: 10rem; }
.wc-block-cart, .wc-block-checkout { color: var(--aw-ink); font-family: var(--aw-sans); }
.wc-block-components-button:not(.is-link) { background: var(--aw-olive); color: var(--aw-white); border-radius: var(--aw-radius); min-height: 48px; }
@media (min-width: 36rem) {
    .aw-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 48rem) {
    .aw-hero-grid, .aw-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
    .aw-formula-grid, .aw-business-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aw-contact-grid, .aw-tasting-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aw-newsletter { grid-template-columns: 1.2fr 1fr; gap: 4rem; }
    .aw-usp-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .woocommerce div.product div.images { width: 48%; }
    .woocommerce div.product div.summary { width: 46%; }
}
@media (min-width: 64rem) {
    .aw-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .aw-card-grid-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .aw-card-grid-six .aw-card-copy { padding: 1rem .8rem; }
    .aw-card-grid-six h3 { font-size: 1.25rem; }
}
@media (min-width: 80rem) { .aw-card-grid-six { grid-template-columns: repeat(var(--aw-type-columns, 6), minmax(0, 1fr)); } }
@media (max-width: 47.99rem) {
    .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
    .woocommerce .woocommerce-ordering, .woocommerce .woocommerce-result-count { float: none; }
    .woocommerce .woocommerce-ordering select { width: 100%; }
    .woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .75rem; }
    .woocommerce .woocommerce-MyAccount-navigation, .woocommerce .woocommerce-MyAccount-content { float: none; width: 100%; }
    .aw-whatsapp-float { position: static; width: fit-content; margin: 1rem 0 1.5rem auto; min-height: 52px; padding: .7rem .9rem; }
}

/* Sprint 10 visual finish: an intentional, asset-free Portuguese wine composition. */
.aw-brand-art { position: relative; isolation: isolate; min-height: 18rem; background: linear-gradient(150deg, #f5efe1 0%, #e5d8c3 100%); }
.aw-brand-art::before { content: ""; position: absolute; inset: 8% 8% auto auto; width: 28%; aspect-ratio: 1; border-radius: 50%; background: #b66c4c; opacity: .8; }
.aw-art-sun { position: absolute; top: 18%; right: 18%; width: 16%; aspect-ratio: 1; border: 1px solid #934d3670; border-radius: 50%; }
.aw-art-hill { position: absolute; z-index: -1; right: -5%; bottom: -16%; width: 115%; height: 57%; border-radius: 50% 50% 0 0 / 35% 35% 0 0; transform: rotate(-8deg); }
.aw-art-hill-back { bottom: -9%; background: #b9a88e; transform: rotate(8deg); }
.aw-art-hill-front { background: #66715a; }
.aw-art-bottle { position: absolute; left: 50%; bottom: 13%; width: clamp(3.6rem, 18%, 7rem); height: 55%; transform: translateX(-50%); border-radius: 22% 22% 12% 12% / 8% 8% 5% 5%; background: linear-gradient(90deg, #263b32 0 18%, #3c5143 18% 78%, #283b33 78%); box-shadow: 0 .8rem 1.5rem #282c2930; }
.aw-art-bottle::before { content: ""; position: absolute; left: 33%; top: -23%; width: 34%; height: 28%; border-radius: 25% 25% 0 0; background: #344637; }
.aw-art-bottle::after { content: ""; position: absolute; left: 20%; right: 20%; top: 45%; height: 18%; background: #eae2d3; border-block: 1px solid #b4ae9f; }
.aw-hero-grid > .aw-brand-art { min-height: clamp(18rem, 34vw, 31rem); aspect-ratio: 5 / 4; }
.aw-home-business, .aw-home-contact { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; }
.aw-home-business { background: var(--aw-sand); padding-inline: clamp(1.25rem, 4vw, 3rem); }
.aw-home-contact { background: var(--aw-olive); color: var(--aw-cream); padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--aw-radius); }
.aw-home-contact h2, .aw-home-contact .aw-kicker { color: var(--aw-cream); }
.aw-home-contact .aw-actions { margin-top: 0; }
.aw-home-contact .button { background: var(--aw-cream); color: var(--aw-olive); border-color: var(--aw-cream); }
.aw-home-contact .button.aw-outline { background: transparent; color: var(--aw-cream); border-color: #f8f5ed80; }
.aw-contact-whatsapp { background: var(--aw-sand); }
@media (max-width: 47.99rem) {
    .aw-brand-art { min-height: 16rem; }
    .aw-home-business > *, .aw-home-contact > * { width: 100%; }
    .aw-home-business .button, .aw-home-contact .button { justify-content: center; text-align: center; }
}
