/* Shared controls for the standalone catalogue and order form. */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font-family: inherit; }
h1, h2, h3, h4 { overflow-wrap: break-word; text-wrap: balance; }
p, label { overflow-wrap: break-word; }
:focus-visible { outline: 3px solid #9a702d; outline-offset: 3px; }
.navbar .navbar-toggler { min-width: 44px; min-height: 44px; }
.navbar .nav-link { min-height: 44px; display: flex; align-items: center; }
.navbar .dropdown-item { white-space: normal; min-height: 44px; }
.navbar-brand { min-width: 0; }
.tools-bar .budget-wrap { flex: 1 1 280px; max-width: none; min-width: 0; }
.tools-bar .budget-input { min-height: 44px; font-size: .875rem !important; }
.tools-bar .tool-btn, .cur-toggle button, .filter-btn { min-height: 44px; }
.tools-bar .tool-btn { font-size: .8125rem; justify-content: center; }
.tools-bar .btn-quick { background: #166b40; color: #fff; }
.cur-toggle button { font-size: .8125rem; }
.product-info .product-name { -webkit-line-clamp: 3; line-height: 1.4 !important; }
.product-price { font-size: 1rem; }
.product-tagline { font-size: .8125rem; color: #665e54; }
.product-code { font-size: .6875rem; }
.card-actions .gift-btn { min-height: 44px; font-size: .8125rem; padding-inline: 8px; }
.card-actions .share-btn { width: 44px; min-height: 44px; }
.catalog-grid .pick-btn { width: 44px !important; height: 44px !important; }
.hero-tagline { font-size: clamp(1.2rem, 3vw, 1.7rem); line-height: 1.35; }
.hero-section h1 { display: block; }
.hero-subtitle { font-weight: 400; color: #efe5df; }
.filter-btn { font-size: .8125rem; padding: 11px 16px; }
.code-badge { font-size: .75rem; }
.gallery-sub, .why-card p { font-size: .9375rem; line-height: 1.7; font-weight: 400; }
.why-card p { color: #e2d8d3; }
.why-card h3 { font-size: 1.125rem; }
.gallery-shuffle-btn, .gal-overlay-close, .gal-overlay-nav { min-height: 44px; min-width: 44px; }
.faq-q { width: 100%; border: 0; background: transparent; }
.hero-trust-row .hero-trust-pill { font-size: .75rem; line-height: 1.4; }
.hero-trust-row { flex-wrap: wrap; }
.hero-section .hero-pause { width: 32px; height: 32px; }
.hero-section .hero-dot { padding: 0; border: 8px solid transparent; background-clip: padding-box; box-sizing: content-box; }
.hero-section .hero-dots { bottom: 6px; }
.hero-content { padding-bottom: 48px; }
.catalog-bigbanner { box-shadow: 0 4px 16px rgba(83,19,38,.12); }
.catalog-bigbanner .cbb-btn { box-shadow: none; }
.faq-q { line-height: 1.5; font-size: .9375rem; gap: 12px; text-align: left; min-height: 52px; }
.faq-q i { flex-shrink: 0; }
.faq-item.open .faq-a { max-height: none; }
.faq-a { font-size: .9375rem; font-weight: 400; }
.guarantee-section .guarantee-text { font-size: 1rem; font-weight: 400; }
.guarantee-stat .stat-label, .confidence-item { font-size: .8125rem; }
.catalog-footer { font-size: .875rem; padding-bottom: 96px; }
.modal-name, .modal-desc, .pick-total { overflow-wrap: anywhere; }
.modal-overlay .modal-card { max-height: calc(100dvh - 32px); }
.modal-overlay { z-index: 11000; }
.modal-overlay .modal-close { width: 44px; height: 44px; }
.pick-bar .pick-wa { background: #166b40; min-height: 44px; }
.pick-bar .pick-clear { width: 44px; height: 44px; }
.pick-bar {
  bottom: 0;
  transform: translateY(110%);
  visibility: hidden;
  transition: transform .25s ease, visibility .25s;
}
.pick-bar.show { transform: none; visibility: visible; }
.wa-float-cat { bottom: max(24px, env(safe-area-inset-bottom)) !important; background: #166b40 !important; }
body.pick-bar-active .wa-float-cat { bottom: calc(100px + env(safe-area-inset-bottom)) !important; }
body.pick-bar-active #backToTop { bottom: calc(168px + env(safe-area-inset-bottom)); }

/* The order review is intentionally narrow and easy to read on every screen. */
body.order-page { background: #fcf9f4; color: #35262a; --red: #7e0315; --gold: #c9a94e; --gold-dark: #9a702d; }
.order-title { font-size: clamp(1.4rem, 4vw, 1.75rem); line-height: 1.35; font-weight: 700; color: #531326; margin: 8px 0 12px; }
.order-intro { font-size: .9375rem; line-height: 1.7; color: #65584e; margin-bottom: 24px; }
.order-page .page-header { background: #531326; box-shadow: 0 2px 12px #35101a20; }
.order-page .section-head { background: #f5eee3; color: #531326; flex-wrap: wrap; gap: 8px; font-size: 1rem; line-height: 1.45; }
.order-page .section-head i { color: #7e0315; }
.order-page .section-card { border: 1px solid #e8ddd1; box-shadow: 0 3px 12px #35101a08; }
.order-page .form-label { font-size: .875rem; color: #433338; line-height: 1.5; }
.order-page .optional-tag, .order-page .footer-note { color: #71635a; }
.order-page .form-control, .order-page .form-select { min-height: 48px; }
.order-page .btn-add-phone, .order-page .addon-chip { min-height: 44px; }
.order-page .review-value { min-width: 0; overflow-wrap: anywhere; }
.order-page .review-panel { max-height: calc(100dvh - 32px); }
.order-page .review-row { font-size: .9375rem; }
.order-page .review-send { background: #166b40; }
.order-page .review-header { background: #531326; }
.order-page .form-text { font-size: .8125rem; line-height: 1.6; color: #71635a; }
.order-page .cm-ai-toggle { text-align: left; line-height: 1.5; }

@media (max-width: 991px) {
  .navbar-collapse { max-height: calc(100dvh - 72px); overflow-y: auto; padding-bottom: 12px; }
}
@media (max-width: 600px) {
  .tools-bar { gap: 10px; padding: 16px; }
  .tools-bar .budget-wrap { flex: 1 1 100%; }
  .tools-bar #occasionFilter, .tools-bar #budgetBand, .tools-bar #sortDropdown {
    min-width: 0 !important; width: auto !important; flex: 1 1 140px !important;
  }
  .tools-bar #sortDropdown { flex-basis: 100% !important; }
  .tools-bar .budget-input { font-size: 1rem !important; }
  .tools-bar .cur-toggle { margin-right: auto; }
  .hero-section .hero-content { padding: 20px 16px 46px; }
  .hero-section .hero-tagline { font-size: 1.25rem; }
  .hero-section .hero-trust-row { gap: 6px; margin-top: 10px; }
  .catalog-bigbanner { flex-direction: column; align-items: stretch; }
  .catalog-bigbanner .cbb-title { line-height: 1.4; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 14px; }
  .card-actions { flex-wrap: wrap; gap: 6px; }
  .product-info .product-name { font-size: .9375rem !important; }
  .catalog-grid .product-info { padding: 12px !important; }
  .modal-overlay > .modal-nav { top: 42%; width: 44px; height: 44px; }
  .order-page .form-wrap { padding: 20px 16px 60px; }
  .order-page input:not([type=checkbox]):not([type=radio]), .order-page textarea,
  .order-page select { font-size: 1rem; }
  .order-page .review-row { gap: 12px; }
  .order-page .review-label { flex: 0 0 90px; }
  .order-page .section-body { padding: 18px 16px; }
}
@media (max-width: 359px) {
  .navbar .nav-brand-label { font-size: .6875rem !important; letter-spacing: 1px !important; }
  .card-actions .gift-btn { flex-basis: 100%; }
  .card-actions .share-btn { margin-left: auto; }
  .hero-section .hero-trust-row { flex-direction: column; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}