/* WooCommerce pages in the look of the site: cart, checkout, order received, my account.
   Loaded only on those pages (inc/shop.php). Uses the design tokens of site.css. */
.shop { padding-top: clamp(20px, 3vw, 40px); }
.shop .woocommerce, .shop .wp-block-woocommerce-cart, .shop .wp-block-woocommerce-checkout { max-width: none; margin: 0; }
.shop :is(h2, h3, .wc-block-components-title) { font-family: var(--serif); font-weight: 400; letter-spacing: -.01em; color: var(--ink); }
.shop a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.shop a:hover { color: var(--terra-deep); }
.shop-main-title { margin: 0 0 28px; }

/* two columns: form and summary */
.shop .wc-block-components-sidebar-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: clamp(28px, 4vw, 64px); align-items: start; }
.shop .wc-block-components-sidebar-layout > .wc-block-components-main, .shop .wc-block-components-main { width: auto; padding: 0; }
.shop .wc-block-components-sidebar { width: auto; padding: 0; position: sticky; top: calc(var(--header-h, 76px) + 20px); }
@media (max-width: 900px) { .shop .wc-block-components-sidebar-layout { grid-template-columns: minmax(0, 1fr); } .shop .wc-block-components-sidebar { position: static; } }

/* checkout steps are numbered, so a person always knows where they are (Selo: Transacao 1.3) */
.shop .wc-block-checkout__form { counter-reset: shopstep; }
.shop .wc-block-components-checkout-step__title { display: flex; align-items: center; gap: 14px; font-size: clamp(24px, 2.4vw, 32px); }
.shop .wc-block-components-checkout-step__title::before { counter-increment: shopstep; content: counter(shopstep); flex: none; display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--line-strong); border-radius: 50%; font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--ink); }
.shop .wc-block-components-checkout-step { border: 0; padding: 0 0 8px; margin: 0 0 30px; }
.shop .wc-block-components-checkout-step__description { color: var(--muted); font-size: 16px; }

/* fields */
.shop .wc-block-components-text-input input, .shop .wc-block-components-text-input textarea, .shop .wc-blocks-components-select .wc-blocks-components-select__select, .shop .wc-block-components-country-input select, .shop .wc-block-components-state-input select, .shop textarea.wc-block-components-textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { background: #fff; border: 1px solid rgba(45, 49, 54, .32); border-radius: 10px; min-height: 56px; padding: 22px 16px 8px; font: inherit; font-size: 16px; color: var(--ink); box-shadow: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select { padding: 14px 16px; min-height: 52px; }
.shop .wc-block-components-text-input label, .shop .wc-blocks-components-select__label { color: var(--muted); font-size: 16px; }
.shop .wc-block-components-text-input.is-active label { font-size: 13.5px; }
.shop input:focus, .shop select:focus, .shop textarea:focus, .woocommerce form .form-row input.input-text:focus { outline: 2px solid var(--terra-deep); outline-offset: 1px; border-color: var(--terra-deep); box-shadow: none; }
.shop .has-error input, .shop .has-error select, .shop .has-error textarea { border: 2px solid #9b2c22; }
.shop .wc-block-components-validation-error { color: #9b2c22; font-size: 14.5px; font-weight: 500; display: flex; gap: 8px; }
.shop .wc-block-components-validation-error::before { content: '⚠'; }
.shop .wc-block-components-checkbox { min-height: 44px; display: flex; align-items: center; }
.shop .wc-block-components-checkbox input[type=checkbox] { min-width: 24px; min-height: 24px; border: 1.5px solid var(--ink); border-radius: 5px; background: #fff; }
.shop .wc-block-components-checkbox__label, .shop .wc-block-components-radio-control__label { font-size: 16px; }

/* payment methods */
.shop .wc-block-components-radio-control__option { border: 1px solid var(--line-strong); border-radius: 12px; padding: 16px 18px 16px 52px; margin: 0 0 10px; background: #fff; box-shadow: none; min-height: 56px; }
.shop .wc-block-components-radio-control__option-checked { border: 2px solid var(--ink); }
.shop .wc-block-components-radio-control__input { border: 1.5px solid var(--ink); }
.shop .wc-block-components-radio-control__description, .shop .wc-block-components-radio-control-accordion-content { color: var(--ink-soft); font-size: 16px; }

/* buttons */
.shop .wc-block-components-button:not(.is-link), .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce .woocommerce-button { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); border-radius: 999px; min-height: 52px; padding: 12px 28px; font-family: var(--sans); font-size: 15.5px; font-weight: 500; letter-spacing: .005em; text-decoration: none; box-shadow: none; transition: background .3s, border-color .3s; }
.shop .wc-block-components-button:not(.is-link):hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--terra-deep); border-color: var(--terra-deep); color: #fff; }
.shop .wc-block-components-button.outlined, .shop .wc-block-components-button.wc-block-components-button--secondary { background: transparent; color: var(--ink); }
.shop .wc-block-components-button.is-link, .shop .wc-block-components-panel__button { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; min-height: 44px; }

/* order summary */
.shop .wc-block-components-sidebar, .shop .wc-block-checkout__sidebar { background: var(--paper-2); border-radius: 18px; padding: 24px 24px 12px; }
.shop .wc-block-components-order-summary-item__image img, .shop .wc-block-cart-item__image img { border-radius: 8px; }
.shop .wc-block-components-totals-item__label, .shop .wc-block-components-product-name, .shop .wc-block-components-order-summary-item__description { font-size: 16px; }
.shop .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--serif); font-size: 30px; }
.shop .wc-block-components-totals-wrapper { border-color: var(--line-strong); }
.shop .wc-block-cart-items__header, .shop .wc-block-cart-items th { font-family: var(--sans); font-size: 13.5px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--ink); }
.shop .wc-block-cart-items { border-top: 1px solid var(--line-strong); }
.shop .wc-block-cart-items__row { border-bottom: 1px solid var(--line); }
.shop .wc-block-components-quantity-selector { border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; }
.shop .wc-block-components-quantity-selector__button { min-width: 44px; min-height: 44px; }
.shop .wc-block-components-quantity-selector__input { min-height: 44px; border: 0; }
.shop .wc-block-cart-item__remove-link { min-height: 44px; display: inline-flex; align-items: center; }

/* notices: never colour alone */
.shop .wc-block-components-notice-banner, .woocommerce-message, .woocommerce-error, .woocommerce-info { border: 1px solid var(--line-strong); border-radius: 12px; padding: 16px 20px; background: #fff; color: var(--ink); font-size: 16px; display: flex; gap: 12px; align-items: flex-start; list-style: none; margin: 0 0 24px; }
.shop .wc-block-components-notice-banner.is-error, .woocommerce-error { border: 2px solid #9b2c22; background: #fbefed; color: #5c1810; }
.shop .wc-block-components-notice-banner.is-success, .woocommerce-message { border-color: #566640; background: #eef1e6; color: #2f3d1f; }
.shop .wc-block-components-notice-banner.is-info, .woocommerce-info { border-color: var(--line-strong); background: var(--paper-2); }
.woocommerce-message::before, .woocommerce-error::before, .woocommerce-info::before { content: none; }
.woocommerce-message .button, .woocommerce-info .button { margin-left: auto; min-height: 44px; }

/* order received */
.shop-thanks .wc-block-order-confirmation-status { font-family: var(--serif); font-size: clamp(30px, 3.4vw, 46px); margin: 0 0 20px; }
.shop-thanks .wc-block-order-confirmation-summary ul { list-style: none; margin: 0 0 32px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; }
.shop-thanks .wc-block-order-confirmation-summary li { background: var(--paper-2); border-radius: 12px; padding: 14px 16px; font-size: 14.5px; color: var(--muted); }
.shop-thanks .wc-block-order-confirmation-summary li strong, .shop-thanks .wc-block-order-confirmation-summary li span { color: var(--ink); font-size: 17px; display: block; }
/* Multibanco and Payshop references (ifthenpay): a card that can be read and copied */
.shop-thanks table, .woocommerce-order table, .woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin: 0 0 28px; }
.shop-thanks :is(th, td), .woocommerce-order :is(th, td), .woocommerce table.shop_table :is(th, td) { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--line); font-size: 16px; vertical-align: top; }
.shop-thanks th, .woocommerce-order th, .woocommerce table.shop_table th { font-size: 13.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.shop-thanks [class*="multibanco"], .shop-thanks [class*="ifthenpay"], .woocommerce-order [class*="multibanco"], .woocommerce-order [class*="ifthenpay"] { background: #fff; border: 1px solid var(--line-strong); border-radius: 14px; padding: 20px 24px; margin: 0 0 28px; font-size: 17px; }

/* my account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.woocommerce-MyAccount-navigation ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; padding: 0; }
.woocommerce-MyAccount-navigation li a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--line-strong); border-radius: 999px; text-decoration: none; font-size: 15px; background: transparent; }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.woocommerce-MyAccount-content { max-width: 880px; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-EditAccountForm, .woocommerce-address-fields { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: clamp(22px, 3vw, 36px); max-width: 560px; }
.woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label { display: block; font-size: 14px; font-weight: 600; letter-spacing: .01em; margin: 0 0 8px; }
.woocommerce form .form-row .required { color: #9b2c22; text-decoration: none; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); }
.woocommerce .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-weight: 400; }
.woocommerce-LostPassword a { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 640px) { .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; } }

/* refinements from the first pass */
.shop .wc-block-components-sidebar .wc-block-components-order-summary, .shop .wp-block-woocommerce-checkout-order-summary-block, .shop .wc-block-checkout__sidebar > * { border: 0; background: transparent; box-shadow: none; }
.shop .wc-block-components-product-name, .shop .wc-block-components-order-summary-item__description .wc-block-components-product-name { font-family: var(--sans); font-size: 16px; font-weight: 500; letter-spacing: 0; text-decoration: none; }
.shop .wc-block-components-order-summary-item__total-price, .shop .wc-block-components-product-price { font-size: 16px; }
.shop .wc-block-components-radio-control-accordion-option { border: 1px solid var(--line-strong); border-radius: 12px; margin: 0 0 10px; background: #fff; overflow: hidden; }
.shop .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option { border: 0; margin: 0; border-radius: 0; }
.shop .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option-checked { border: 0; }
.shop .wc-block-components-radio-control-accordion-option:has(input:checked) { border: 2px solid var(--ink); }
.shop .wc-block-components-radio-control-accordion-content { background: var(--paper-2); padding: 16px 18px 16px 52px; border: 0; }
.shop .wc-block-components-checkout-order-summary__title-text { font-family: var(--serif); font-size: 26px; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
.shop .woocommerce-MyAccount-navigation li a { text-decoration: none; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-content table.shop_table { background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button { min-height: 44px; padding: 8px 18px; }
.woocommerce-MyAccount-navigation ul { align-items: center; }
.shop .woocommerce-MyAccount-navigation li a { text-decoration: none !important; }
.woocommerce fieldset { border: 1px solid var(--line-strong); border-radius: 14px; padding: 18px 20px 4px; margin: 8px 0 22px; }
.woocommerce fieldset legend { padding: 0 8px; font-family: var(--serif); font-size: 22px; }
.woocommerce form .show-password-input { min-width: 44px; min-height: 44px; }

/* targets of 44 px and body text of 16 px in the remaining WooCommerce pieces (selo: tamanho dos alvos, tamanho do texto) */
.shop .wc-block-grid__product-title, .shop .wc-block-grid__product-price, .shop .wc-block-grid__product-price .woocommerce-Price-amount { font-size: 16px; }
.shop .wp-block-button__link, .shop .wc-block-grid__product .wp-block-button__link { min-height: 44px; padding: 10px 22px; display: inline-flex; align-items: center; font-size: 16px; }
.woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.woocommerce input#rememberme { appearance: none; -webkit-appearance: none; position: relative; width: 44px; height: 44px; margin: 0 0 0 -10px; border: 0; background: transparent; flex: none; cursor: pointer; }
.woocommerce input#rememberme::before { content: ""; position: absolute; inset: 10px; border: 1.5px solid var(--ink); border-radius: 5px; background: #fff; }
.woocommerce input#rememberme:checked::before { background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat; }
.woocommerce input#rememberme:focus-visible { outline: 3px solid var(--terra); outline-offset: -2px; border-radius: 8px; }
.woocommerce .woocommerce-Price-amount, .shop .woocommerce-Price-amount { white-space: nowrap; }
