/* Commerce follows the open, editorial composition of the selected Atelier view. */
.catalogue-page .breadcrumbs,
.product-page .breadcrumbs { font-size: 14px; color: var(--muted); }
.catalog-topline { margin-bottom: 30px; align-items: center; }
.catalog-title { color: var(--ink); font-weight: 400; font-size: clamp(32px, 3.4vw, 48px); letter-spacing: -.035em; }
.product-counter { font-size: 14px; }
.catalog-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 44px; }
.catalog-controls { margin-left: 254px; margin-bottom: 24px; align-items: center; }
.filters-sidebar { padding: 0 24px 0 0; border-radius: 0; background: transparent; border-right: 1px solid var(--line); }
.filter-heading { padding-bottom: 18px; }
.filter-heading strong { font-size: 18px; font-weight: 500; color: var(--ink); }
.filter-heading button { font-size: 13px; }
.filter-group { padding: 18px 0; }
.filter-group summary { font-weight: 500; color: var(--ink); font-size: 15px; }
.filter-group summary::after { border-color: var(--muted); }
.filter-options { gap: 10px; margin-top: 16px; }
.filter-option { font-size: 14px; min-height: 28px; gap: 10px; color: var(--muted); }
.filter-option:has(input:checked) { color: var(--ink); }
.filter-option input { width: 18px; height: 18px; accent-color: var(--wine); }
.catalog-controls .filter-chip { background: #f2eeed; color: var(--wine); font-size: 13px; padding: 9px 12px; transition: background 160ms ease; }
.catalog-controls .filter-chip:hover { transform: none; }
.catalog-results .product-grid { gap: 42px 26px; }
.catalog-results .product-card { display: flex; flex-direction: column; border: 0; border-radius: 0; background: transparent; }
.catalog-results .product-media { aspect-ratio: .9; background: white; border-radius: 12px; box-shadow: none; }
.catalog-results .product-card:hover .product-media { box-shadow: none; }
.catalog-results .product-body { display: flex; flex-direction: column; flex: 1; padding: 16px 0 0; }
.catalog-results .product-name { min-height: 2.8em; font-size: 16px; font-weight: 500; color: var(--ink); }
.catalog-results .product-benefit { font-size: 14px; line-height: 1.5; min-height: 3em; }
.catalog-results .product-volume { font-size: 13px; margin: 4px 0 9px; }
.catalog-results .product-stock { font-size: 13px; margin-bottom: 9px; }
.catalog-results .review-line { margin-bottom: 12px; }
.catalog-results .product-price { margin-top: auto; padding-top: 4px; margin-bottom: 14px; color: var(--ink); }
.catalog-results .product-rating-value { font-size: 13px; }
.price-range-values { font-size: 13px; line-height: 1.5; color: var(--muted); flex-wrap: wrap; gap: 8px; }
.price-range-values strong { font-weight: 500; color: var(--ink); }
.price-range-hint { font-size: 12px; color: var(--muted); line-height: 1.5; }
.empty-state { background: transparent; border-style: solid; border-color: var(--line); border-radius: 14px; }
.empty-state h2,
.empty-state h3 { font-weight: 400; color: var(--ink); }
.empty-state p { font-size: 15px; line-height: 1.6; }

/* Product information uses a few large areas rather than nested decorative panels. */
.product-page-hero { gap: clamp(32px, 5vw, 80px); align-items: start; }
.product-page-gallery { border: 0; border-radius: 14px; background: #fff; }
.product-line-label { border: 0; border-radius: 6px; padding: 7px 11px; font-size: 13px; background: #f0f3ef; }
.product-gallery-caption { font-size: 11px; letter-spacing: 1px; color: var(--muted); }
.product-page-info { padding-top: 22px; }
.product-page-info h1 { color: var(--ink); font-weight: 400; font-size: clamp(32px, 3.3vw, 48px); line-height: 1.15; letter-spacing: -.035em; }
.product-page-benefit { font-size: 18px; line-height: 1.55; margin-bottom: 22px; }
.product-page-meta .product-stock,
.product-review-jump { font-size: 14px; }
.product-page-description { font-size: 16px; line-height: 1.75; color: var(--muted); }
.product-page-advantages { gap: 10px 18px; margin-bottom: 28px; }
.product-page-advantages li { background: transparent; border-radius: 0; padding: 0; font-size: 14px; color: var(--sage-dark); }
.product-page-advantages .icon { width: 16px; height: 16px; }
.product-volume-choice { font-size: 14px; }
.product-volume-choice strong { font-weight: 400; border-color: #d9cece; border-radius: 8px; background: white; color: var(--ink); padding: 10px 16px; }
.product-page-price strong { font-size: 32px; color: var(--ink); font-weight: 500; }
.product-page-price span { font-size: 14px; }
.product-page-quantity { background: white; border-color: #ded6d6; }
.product-page-add { font-size: 15px; }
.product-page-favorite { border-color: #ded6d6; }
.product-page-delivery { margin-top: 25px; }
.product-page-delivery strong { font-size: 14px; font-weight: 500; }
.product-page-delivery span { font-size: 14px; line-height: 1.65; color: var(--muted); }
.product-page-details { gap: 44px; margin-top: 64px; padding-top: 38px; border-top: 1px solid var(--line); }
.product-specification { padding: 0; background: transparent; border: 0; border-radius: 0; }
.product-page-details h2 { font-size: 30px; color: var(--ink); font-weight: 400; letter-spacing: -.025em; }
.product-specification dl > div { font-size: 15px; padding: 13px 0; border-color: var(--line); }
.product-specification dd { color: var(--ink); }
.product-ritual-note { padding: 30px 32px; background: #f0f3ef; border: 0; border-radius: 12px; }
.product-ritual-note h2 { font-size: 30px; color: var(--sage-dark); }
.product-ritual-note > p:not(.eyebrow) { font-size: 16px; line-height: 1.75; }
.product-ritual-note .product-usage-guidance { font-size: 14px !important; }
.product-ritual-icon { display: none; }
.product-page-reviews,
.product-page-related { margin-top: 64px; }
.product-page-reviews .section-heading .secondary-button { min-height: 44px; font-size: 14px; font-weight: 400; }
.product-reviews-empty { padding: 36px 24px; border: 1px solid var(--line); border-radius: 12px; background: transparent; }
.product-reviews-empty h3 { color: var(--ink); font-size: 20px; font-weight: 400; }
.product-reviews-empty p { font-size: 15px; }
.product-review-form { padding: 28px; background: #faf8f6; border: 0; border-radius: 12px; }
.product-review-form h3 { color: var(--ink); font-size: 23px; font-weight: 400; }
.product-review-form label,
.review-rating-field legend { font-size: 14px; }
.product-review-form input,
.product-review-form textarea { font-size: 16px; border-color: #d9d0cf; border-radius: 9px; background: white; color: var(--ink); }
.product-review-form .primary-button { font-size: 14px; }
.review-rating-caption,
.product-review-status { font-size: 13px; }
.product-customer-review { padding: 24px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.product-customer-review > div { font-size: 15px; }
.product-customer-review > div > span { font-size: 13px; }
.product-customer-review > p { font-size: 16px; color: var(--muted); line-height: 1.7; }

/* Checkout: quiet sections, one active accent, and a persistent order summary. */
.checkout-page { max-width: 1180px; }
.checkout-header h1 { color: var(--ink); font-weight: 400; font-size: clamp(32px, 3.5vw, 46px); letter-spacing: -.035em; }
.checkout-intro { font-size: 16px; }
.checkout-progress { background: transparent; border: 0; border-radius: 0; padding: 0; gap: 16px; max-width: 680px; margin-bottom: 30px; }
.checkout-progress button { border-radius: 0; border-bottom: 1px solid var(--line); padding: 12px 0; gap: 9px; font-size: 15px; box-shadow: none; transition: border-color 180ms ease, color 180ms ease; }
.checkout-progress button.is-current { background: transparent; border-color: var(--wine); box-shadow: none; font-weight: 500; }
.progress-number { font-size: 12px; }
.checkout-layout { grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; }
.checkout-form { gap: 24px; }
.checkout-section { padding: 28px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; transition: background 220ms ease, border-color 220ms ease; }
.checkout-section.is-current { background: #f6f8f4; border-color: #b5c6b9; box-shadow: none; }
.checkout-section.is-completed { border-color: #d7dfd7; background: white; }
.checkout-section-title { color: var(--ink); font-weight: 500; font-size: 22px; letter-spacing: -.02em; }
.checkout-section .step-number { background: #f2eded; color: var(--wine); font-size: 12px; }
.checkout-section.is-current .step-number,
.checkout-section.is-completed .step-number { background: #e3ebe2; }
.checkout-step-description { font-size: 14px; line-height: 1.6; color: var(--muted); margin-top: 5px; }
.checkout-step-badge { font-size: 12px; padding: 5px 9px; }
.checkout-step-next { font-size: 14px; font-weight: 500; }
.checkout-field,
.demo-login-form label { font-size: 14px; }
.checkout-field > span { font-weight: 400; }
.checkout-field input,
.checkout-field select,
.demo-login-form input { min-height: 48px; border-color: #d9d0cf; border-radius: 9px; background: white; font-size: 16px; color: var(--ink); padding: 12px 14px; }
.checkout-field input::placeholder,
.demo-login-form input::placeholder { color: #8b8185; }
.checkout-field input[readonly],
.demo-login-form input[readonly] { background: #f6f4f2; }
.checkout-options { gap: 10px; }
.delivery-choice,
.payment-choice { min-height: 80px; border: 1px solid #d9d0cf; border-radius: 9px; background: white; padding: 16px 12px; gap: 10px; box-shadow: none; transition: border-color 160ms ease, background 160ms ease; }
.delivery-choice:has(input:checked),
.payment-choice:has(input:checked) { background: #eef2ed; border-color: #91a797; box-shadow: none; }
.delivery-choice > input,
.payment-choice > input { width: 17px; height: 17px; }
.choice-copy strong { font-size: 14px; font-weight: 500; color: var(--ink); }
.choice-copy small { font-size: 12px; line-height: 1.5; }
.checkout-small-note,
.checkout-payment-note { font-size: 13px; color: var(--muted); line-height: 1.65; }
.checkout-summary { padding: 28px; background: #faf8f6; border: 0; border-radius: 12px; top: 112px; }
.checkout-summary > h2 { color: var(--ink); font-size: 27px; font-weight: 400; letter-spacing: -.025em; }
.checkout-item { grid-template-columns: 64px minmax(0, 1fr); gap: 6px 14px; border-color: var(--line); }
.checkout-item-photo { width: 64px; height: 83px; border-radius: 6px; }
.checkout-item-copy strong,
.checkout-item-copy h3 { font-size: 14px; font-weight: 500; color: var(--ink); }
.checkout-item-copy p,
.checkout-item-copy span,
.checkout-item-copy small { font-size: 13px; }
.checkout-item-price { font-size: 15px; color: var(--ink); font-weight: 500; }
.checkout-edit-cart { font-size: 14px; }
.checkout-totals > div { font-size: 15px; }
.checkout-totals strong { font-weight: 500; }
.checkout-total > strong { font-size: 28px; color: var(--ink); font-weight: 500; }
.checkout-submit { min-height: 50px; font-size: 15px; margin-top: 24px; }
.checkout-recap span { font-size: 13px; }
.checkout-recap strong { font-size: 14px; font-weight: 400; }
.checkout-status { font-size: 14px; }
.checkout-success { background: #eef3eb; border-radius: 9px; font-size: 15px; }
.checkout-empty { background: #faf8f6; border-radius: 12px; }
.checkout-empty h1 { font-weight: 400; color: var(--ink); }
.checkout-empty p { font-size: 16px; }
.wallet-button { min-height: 50px; box-shadow: none; transition: background 160ms ease, transform 120ms ease; }
.apple-wallet:hover,
.google-wallet:hover { transform: none; box-shadow: none; }

/* Menus and dialogs retain rounded corners without oversized ornamental shells. */
.rounded-select-button { border-radius: 9px; border-color: #d9d0cf; background: white; color: var(--ink); font-size: 16px; }
.sort-control .rounded-select-button { min-height: 44px; font-size: 14px; border-radius: 9px; }
.rounded-select-popover { border-color: #ddd4d1; border-radius: 12px; color: var(--ink); box-shadow: 0 8px 24px #30262b10; }
.rounded-select-option { border-radius: 7px; font-size: 15px; }
.rounded-select-option:hover,
.rounded-select-option.is-active { background: #f4efed; }
.rounded-select-option[aria-selected="true"] { background: #edf2ec; }
.city-search-empty { color: var(--muted); }
.modal { border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.modal-inner,
.quiz-content { padding: 38px; }
.modal-inner h2,
.quiz-content h2,
.modal-heading { font-size: 32px; font-weight: 400; color: var(--ink); line-height: 1.2; letter-spacing: -.03em; }
.modal-text { font-size: 16px; line-height: 1.7; }
.modal-close { background: #f3efed; }
.modal-kicker { font-size: 11px; letter-spacing: 1.5px; }
.quiz-option { border-color: #ddd2d0; border-radius: 9px; background: white; padding: 17px; }
.quiz-option strong { font-weight: 500; font-size: 16px; color: var(--ink); }
.quiz-option span { font-size: 14px; }
.quiz-option.selected { border-color: #a47180; background: #f6eeee; }
.login-register,
.login-forgot,
.password-field button,
.login-status,
.login-feedback { font-size: 14px; }
.password-field button { height: 48px; }
.cart-dialog { background: var(--paper); border-radius: 0; }
.cart-header { padding: 28px; }
.cart-header h2 { color: var(--ink); font-weight: 400; font-size: 29px; }
.cart-body { padding-inline: 28px; }
.cart-item-photo { background: white; border-radius: 8px; }
.cart-item-info h3 { font-size: 16px; color: var(--ink); font-weight: 500; }
.cart-item-info > p { font-size: 14px; }
.cart-item-info > strong { color: var(--ink); font-size: 18px; font-weight: 500; }
.cart-footer { background: #faf8f6; padding: 26px 28px; }
.cart-total strong { color: var(--ink); font-weight: 500; font-size: 27px; }
.cart-footer .cart-disclaimer { font-size: 13px; line-height: 1.6; }
.cart-footer > .text-link { font-size: 14px; }
.cart-dialog[open] { animation-duration: 260ms; }
.site-footer { background: transparent; border-top: 1px solid var(--line); }
.footer-inner { padding-block: 38px; }
.footer-inner button,
.footer-inner p { font-size: 14px; color: var(--muted); }
.footer-inner p span { font-size: 13px; }

@media (max-width: 1100px) {
  .catalog-layout { grid-template-columns: 190px minmax(0, 1fr); gap: 28px; }
  .catalog-controls { margin-left: 218px; }
  .filters-sidebar { padding-right: 18px; }
  .catalog-results .product-grid { gap: 34px 18px; }
  .checkout-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; }
  .checkout-options { grid-template-columns: 1fr; }
  .choice-copy { grid-template-columns: minmax(0, 1fr) auto; width: 100%; align-items: center; gap: 8px; }
  .choice-copy small { text-align: right; }
  .delivery-choice,
  .payment-choice { min-height: 58px; padding: 15px; }
}
@media (max-width: 900px) {
  .catalog-results .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-page-info { padding-top: 0; }
  .product-page-info h1 { font-size: 34px; }
  .checkout-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 22px; }
  .checkout-section,
  .checkout-summary { padding: 24px; }
  .checkout-summary { position: static; }
}
@media (max-width: 740px) {
  .checkout-layout { grid-template-columns: 1fr; }
  .checkout-summary { padding: 28px; }
  .product-page-details { gap: 28px; }
}
@media (max-width: 640px) {
  .catalogue-page .breadcrumbs { margin-bottom: 22px; font-size: 13px; }
  .catalog-title { font-size: 32px; line-height: 1.17; }
  .catalog-topline { gap: 12px; margin-bottom: 20px; }
  .catalog-controls { margin-left: 0; margin-bottom: 22px; gap: 12px; }
  .catalog-controls .mobile-filter-toggle { min-height: 44px; font-size: 14px; padding-inline: 15px; }
  .sort-control .rounded-select { min-width: 150px; }
  .sort-control .rounded-select-button { font-size: 14px; }
  .filters-sidebar { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: #faf8f6; }
  .filter-options { gap: 8px 10px; }
  .filter-option { font-size: 14px; min-height: 32px; }
  .catalog-results .product-grid { gap: 32px 14px; }
  .catalog-results .product-media { aspect-ratio: .85; border-radius: 9px; }
  .catalog-results .product-body { padding-top: 13px; }
  .catalog-results .product-name { font-size: 15px; min-height: 2.8em; }
  .catalog-results .product-benefit { font-size: 13px; }
  .catalog-results .product-volume,
  .catalog-results .product-stock { font-size: 12px; }
  .catalog-results .product-price { font-size: 22px; margin-bottom: 12px; }
  .catalog-results .add-button { font-size: 13px; padding-inline: 9px; }
  .product-breadcrumbs { font-size: 13px; }
  .product-page-info h1 { font-size: 34px; }
  .product-page-benefit { font-size: 17px; }
  .product-page-description { font-size: 16px; }
  .product-page-advantages li { font-size: 14px; }
  .product-line-label { font-size: 12px; }
  .product-gallery-caption { font-size: 10px; }
  .product-page-quantity button { width: 32px; }
  .product-page-add { font-size: 14px; padding-inline: 12px; }
  .product-page-details { margin-top: 38px; padding-top: 28px; }
  .product-ritual-note { padding: 26px 23px; }
  .product-page-details h2 { font-size: 28px; }
  .product-page-reviews,
  .product-page-related { margin-top: 42px; }
  .product-page-related .section-heading > .text-link { font-size: 13px; padding-top: 24px; }
  .product-page-related .product-name { font-size: 15px; }
  .product-review-form { padding: 24px 20px; }
  .product-review-form > div { flex-wrap: wrap; gap: 14px; }
  .product-review-form .primary-button { font-size: 14px; }
  .checkout-header h1 { font-size: 32px; }
  .checkout-intro { font-size: 15px; max-width: none; }
  .checkout-progress { gap: 12px; margin-bottom: 24px; }
  .checkout-progress button { font-size: 14px; gap: 6px; padding-block: 12px; }
  .progress-number { font-size: 11px; }
  .checkout-section { padding: 23px 20px; }
  .checkout-section-title { font-size: 21px; }
  .checkout-step-description { font-size: 14px; padding-left: 39px; }
  .checkout-step-badge { font-size: 11px; }
  .checkout-fields,
  .checkout-delivery-fields { gap: 18px; }
  .choice-copy strong { font-size: 15px; }
  .choice-copy small { font-size: 12px; }
  .checkout-summary { padding: 26px 22px; }
  .checkout-item-copy strong { font-size: 15px; }
  .checkout-item-copy span { font-size: 13px; }
  .checkout-item-price { font-size: 16px; }
  .modal-inner,
  .quiz-content { padding: 32px 24px; }
  .modal-inner h2,
  .quiz-content h2 { font-size: 29px; margin-right: 24px; }
  .modal-text { font-size: 16px; }
  .cart-header { padding: 24px; }
  .cart-body { padding-inline: 24px; }
  .cart-footer { padding: 24px; }
  .footer-inner { gap: 24px; padding-block: 30px; }
  .footer-inner button { min-height: 40px; font-size: 14px; }
  .footer-inner p { font-size: 14px; border-color: var(--line); }
  .footer-inner p span { font-size: 13px; }
}
@media (max-width: 360px) {
  .catalog-results .product-grid { column-gap: 11px; }
  .catalog-results .product-name { font-size: 14px; }
  .catalog-results .add-button { font-size: 12px; gap: 5px; }
  .sort-control .rounded-select { min-width: 142px; }
  .product-buy-row { flex-wrap: wrap; }
  .product-page-favorite { margin-left: auto; }
  .product-page-add { order: 3; flex-basis: 100%; }
  .checkout-progress { gap: 8px; }
  .checkout-progress button { font-size: 13px; }
  .checkout-section { padding: 22px 17px; }
  .choice-copy { grid-template-columns: 1fr; gap: 4px; }
  .choice-copy small { text-align: left; }
}
@media (hover: none), (pointer: coarse) {
  .product-media:hover .product-photo,
  .product-page-quantity button:hover:not(:disabled),
  .review-rating-options label:hover .icon { transform: none; }
  .product-page-quantity button:hover:not(:disabled) { background: transparent; }
  .delivery-choice:hover,
  .payment-choice:hover { background: white; }
  .delivery-choice:has(input:checked):hover,
  .payment-choice:has(input:checked):hover { background: #eef2ed; }
  .apple-wallet:hover { background: #191617; }
  .google-wallet:hover { background: white; }
}
@media (prefers-reduced-motion: reduce) {
  .checkout-section,
  .checkout-progress button,
  .wallet-button { transition: background 150ms ease, color 150ms ease; }
  .cart-dialog[open],
  .modal[open] { animation: none; }
}
