/* =========================================================
   HER LITTLE RITUALS: INNER PAGES (shop, product, cart, checkout)
   Loaded last on those pages so it refines their own CSS.
========================================================= */

/* Page bands */
.shop-hero, .cart-hero, .checkout-hero { background: linear-gradient(180deg, var(--petal) 0%, var(--blush) 100%); }
.shop-hero h1, .cart-hero h1, .checkout-hero h1 { font-size: clamp(40px, 5vw, 64px); }
.shop-hero h1 em, .cart-hero h1 em, .checkout-hero h1 em { font-family: var(--font-script); font-style: normal; font-weight: 400; color: var(--rose); font-size: 1.15em; }
.product-breadcrumb, .shop-breadcrumb, .cart-breadcrumb, .checkout-breadcrumb { font-size: 14px; color: var(--muted); }
.product-breadcrumb a:hover, .shop-breadcrumb a:hover, .cart-breadcrumb a:hover, .checkout-breadcrumb a:hover { color: var(--rose-dark); }

/* Cards and panels */
.checkout-card, .checkout-summary-inner, .cart-summary, .cart-item { background: var(--white); border: 1px solid var(--border); border-radius: 22px; box-shadow: var(--shadow-soft); }
.step-number { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--petal); color: var(--rose-dark); font-family: var(--font-heading); font-size: 18px; font-weight: 600; }
.summary-total strong, .summary-total span:last-child { color: var(--rose-dark); font-family: var(--font-heading); font-weight: 600; }
.delivery-option, .payment-option { border-radius: 16px; border: 1.5px solid var(--border); background: var(--white); transition: border-color 0.2s ease, background-color 0.2s ease; }
.delivery-option:hover, .payment-option:hover { border-color: var(--ribbon); }
.delivery-option:has(input:checked), .payment-option:has(input:checked) { border-color: var(--rose-dark); background: var(--blush); }
input[type="radio"], input[type="checkbox"] { accent-color: var(--rose-dark); }
.payment-method-details { margin: 14px 0; padding: 22px 24px; border-radius: 16px; background: var(--blush); border: 1px solid var(--border); }
.payment-method-details h3, .payment-method-details h4 { font-family: var(--font-heading); font-size: 24px; margin-bottom: 6px; }
.payment-method-details ol { padding-left: 22px; display: grid; gap: 6px; margin: 10px 0 16px; }
.payment-method-details strong { color: var(--brown); }
.payment-notice, .checkout-message { border-radius: 14px; }
.place-order-button, .checkout-button { border-radius: 999px; }

/* Shop controls */
.filter-button { border-radius: 999px; font-size: 14px; letter-spacing: 0; text-transform: none; font-weight: 500; }
.filter-button.active, .filter-button[aria-pressed="true"] { background: var(--rose-dark); border-color: var(--rose-dark); color: var(--white); }
.shop-search input, .shop-sort select { border-radius: 999px; }

/* Product page */
.product-main-image { border-radius: 240px 240px 18px 18px; overflow: hidden; background: radial-gradient(circle at 50% 30%, var(--pink-light), var(--petal)); }
.product-main-image img { width: 100%; height: 100%; object-fit: cover; }
.product-thumbnails button, .product-thumbnails img { border-radius: 14px; }
.product-detail-price { font-family: var(--font-heading); font-size: 42px; font-weight: 600; color: var(--rose-dark); }
.product-detail-section h1 { font-size: clamp(40px, 4.6vw, 62px); line-height: 1.02; }
.product-highlights span, .product-highlights li { border-radius: 999px; background: var(--blush); border: 1px solid var(--border); color: var(--brown); font-size: 14px; }
.quantity-selector { border-radius: 999px; overflow: hidden; border: 1.5px solid var(--border); }
.product-add-button { border-radius: 999px; }
.whats-inside-section { background: var(--blush); }
.inside-items-grid > * { background: var(--white); border: 1px solid var(--border); border-radius: 20px; padding: 26px 16px 20px; box-shadow: none; transition: border-color 0.25s ease, transform 0.25s ease; }
.inside-items-grid > *:hover { border-color: var(--ribbon); transform: translateY(-3px); }
.inside-items-grid > * [class*="icon"], .inside-items-grid > * span:first-child { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--petal); font-size: 34px; }
.product-story-image { border-radius: 260px 260px 18px 18px; overflow: hidden; background: radial-gradient(circle at 50% 30%, var(--pink-light), var(--petal)); }
.product-story-image img { width: 100%; height: 100%; object-fit: cover; }
.story-qualities span { border-radius: 999px; }
.continue-shopping-section h2 { font-size: clamp(34px, 4vw, 48px); }

/* Mobile menu on inner pages follows the main header rules */
.header-simple { margin-left: auto; }

/* Title bands: the highlighted phrase is the logo's script; split words must not inherit it */
.shop-hero h1 .word, .cart-hero h1 .word, .checkout-hero h1 .word { font-family: inherit; font-style: inherit; font-weight: inherit; color: inherit; font-size: inherit; }
.shop-hero h1 > span:not(.word), .cart-hero h1 > span:not(.word), .checkout-hero h1 > span:not(.word) { font-family: var(--font-script); font-style: normal; font-weight: 400; color: var(--rose); font-size: 1.15em; }

/* Badge sits inside the arch instead of being clipped by it */
.product-image-label { top: auto; bottom: 20px; left: 50%; right: auto; transform: translateX(-50%); white-space: nowrap; text-transform: none; letter-spacing: 0.01em; font-size: 13px; font-weight: 500; border-radius: 999px; }

/* Policy pages */
.policy-hero { background: linear-gradient(180deg, var(--petal) 0%, var(--blush) 100%); padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 64px); text-align: center; }
.policy-hero h1 { font-size: clamp(40px, 5vw, 64px); }
.policy-hero h1 .word { font-family: inherit; font-style: inherit; font-weight: inherit; color: inherit; font-size: inherit; }
.policy-hero h1 > span:not(.word) { font-family: var(--font-script); font-style: normal; font-weight: 400; color: var(--rose); font-size: 1.15em; }
.policy-hero p { max-width: 52ch; margin: 14px auto 0; color: var(--muted); font-size: 18px; }
.policy-hero .policy-updated { font-size: 14px; margin-top: 18px; }
.policy-content { max-width: 760px; padding: clamp(40px, 6vw, 72px) 24px clamp(64px, 9vw, 112px); }
.policy-content h2 { font-size: 30px; margin: 44px 0 12px; }
.policy-content h2:first-child { margin-top: 0; }
.policy-content p, .policy-content li { font-size: 17px; color: var(--muted); line-height: 1.75; }
.policy-content p { margin: 0 0 14px; }
.policy-content ul { margin: 0 0 14px; padding-left: 22px; display: grid; gap: 8px; list-style: disc; }
.policy-content li::marker { color: var(--rose); }
.policy-content strong { color: var(--brown); font-weight: 600; }
.policy-content a { color: var(--rose-dark); border-bottom: 1px solid var(--rose); }
.policy-content a:hover { color: var(--brown); border-color: var(--brown); }
