/* Cross-route layout corrections. Copy, prices and form endpoints stay upstream. */
.ritual-product h4 a { display:block; min-height:44px; }
main .btn { min-height:48px; padding:12px 18px; border-radius:12px; white-space:normal; line-height:1.45; }
main .btn-group>.btn { min-width:46px; }
main :is(.form-control,.form-select) { border-radius:12px; }
main :is(.form-control,.form-select):focus-visible { outline:2px solid #7e9bab; outline-offset:2px; }
.header-search .form-control { font-size:14.575375px; min-height:44px; }
.header-search .btn,.header-actions #cart>.dropdown>.btn { min-height:44px; }
.modal .btn-close { flex:0 0 44px; width:44px; height:44px; padding:0; background-size:16px; }
.alert .btn-close { width:44px; height:44px; padding:0; top:4px; right:4px; background-size:14px; }
.locale-options>div { border-radius:16px; padding:12px; }
.locale-options summary,.header-actions .icon-link { min-height:44px; }
.language-title { margin:3px 8px 8px; color:#697a86; font-size:12.00325px; }
.language-choices { display:grid; gap:5px; }
.language-choice.dropdown-item { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:46px; padding:11px 13px; border:0; border-radius:10px; background:transparent; color:#526c7c; font-size:14.575375px; text-align:left; }
.language-choice[aria-current=true],.language-choice:hover,.language-choice:focus-visible { background:#edf4e7; color:#435e70; }
.language-choice:focus-visible { outline:2px solid #7e9bab; outline-offset:0; }
#display-control { display:grid; grid-template-columns:minmax(200px,1fr) auto minmax(240px,1fr) minmax(140px,.6fr); gap:18px; align-items:end; margin:22px 0 28px; }
#display-control>div { width:auto; min-width:0; margin:0; padding:0; }
#display-control .mb-3 { margin-bottom:0!important; }
#display-control .input-group { display:flex; flex-direction:column; align-items:stretch; gap:7px; }
#display-control .input-group-text { display:block; border:0; padding:0; min-height:0; border-radius:0; background:transparent; color:#637584; font-size:12.860625px; text-align:left; }
#display-control .form-select { width:100%; min-width:0; min-height:50px; margin-left:0; padding:11px 36px 11px 13px; font-size:14.575375px; border-radius:12px!important; }
#display-control .btn { display:flex!important; align-items:center; justify-content:center; gap:9px; min-height:50px; }
#display-control #compare-total { text-align:center; }
#display-control #compare-total span { display:inline!important; }
#display-control .btn-group { display:flex; }
#display-control .btn-group>.btn { min-width:46px; padding:12px; }
#product-search #button-search { min-width:150px; }
#product-search #content>h2 { margin-top:28px; font-size:25.72125px; line-height:1.3; }
#product-search :is(#input-description,#input-sub-category) { width:20px; height:20px; margin-right:10px; }
#product-search .form-check { display:flex; align-items:center; gap:9px; min-height:44px; padding-left:0; }
#product-search .form-check-input { float:none; margin-left:0; flex:0 0 20px; }
#product-search .form-check-label { flex:1; min-height:44px; padding:9px 0; cursor:pointer; }
#product-search input[type=checkbox]:checked { background-color:#587482; border-color:#587482; }
#product-manufacturer #content>.row.mb-3 { row-gap:12px; }
#product-manufacturer #content>.row.mb-3>div { min-width:0; }
#product-manufacturer #content>.row.mb-3>div>a { display:flex; align-items:center; min-height:52px; height:100%; padding:12px 15px; border:1px solid #dce5d8; border-radius:12px; background:#fafbf7; color:#526c7c; overflow-wrap:anywhere; }
#product-manufacturer #content>p>a[href*="#"] { display:inline-flex; justify-content:center; align-items:center; min-width:44px; min-height:44px; margin:4px 0; padding:7px; border:1px solid #dce5d8; border-radius:10px; color:#526c7c; }
#product-manufacturer #content>h2[id] { scroll-margin-top:22px; }
#information-sitemap #content ul { padding-left:1.15em; }
#information-sitemap #content li { margin-bottom:7px; overflow-wrap:anywhere; }
#information-sitemap #content a { display:inline-block; padding:7px 0; line-height:1.6; }
.comparison-scroll { width:100%; max-width:100%; overflow:auto; border:1px solid #dce5d8; border-radius:18px; margin-bottom:24px; }
.comparison-scroll:focus-visible { outline:2px solid #7e9bab; outline-offset:4px; }
#product-compare .comparison-scroll table { width:100%; min-width:calc(150px + 260px * var(--compare-columns,2)); margin:0; table-layout:fixed; border:0; }
#product-compare .comparison-scroll tr>td:first-child:not([colspan]) { width:150px; }
#product-compare .comparison-scroll col:first-child { width:150px; }
#product-compare .comparison-scroll td { padding:18px; font-size:13.718px; line-height:1.65; vertical-align:top; overflow-wrap:anywhere; }
#product-compare .comparison-scroll thead td { background:#edf4e7; }
#product-compare .comparison-scroll img { max-height:230px; max-width:100%; object-fit:contain; border-radius:12px; }
#product-compare .comparison-scroll form { display:grid; gap:12px; }
#product-compare .comparison-scroll .btn { display:flex; align-items:center; justify-content:center; width:100%; }
#account-return #form-return .form-check-inline { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:8px 0; }
#account-return #form-return .form-check-inline input { float:none; margin:0; }
#account-address #address td:last-child { white-space:nowrap; }
@media(max-width:1199.98px) {
  #display-control { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  #display-control>div:nth-child(2) { justify-self:end; }
}
@media(max-width:575.98px) {
  .locale-options>div { left:50%; right:auto; transform:translateX(-50%); max-width:calc(100vw - 32px); }
  #display-control { grid-template-columns:minmax(0,1fr); gap:16px; }
  #display-control>div:nth-child(2) { display:none!important; }
  #product-search #button-search { width:100%; }
  #product-search #content>h2 { font-size:23.149125px; }
  #product-manufacturer #content>.row.mb-3>div>a { min-height:48px; }
  #product-list.product-list .ritual-product { display:block; }
  #product-list.product-list .ritual-product .image { width:100%; min-width:0; }
  #product-list.product-list .ritual-product .content { padding:20px 0; }
  #account-address #address :is(table,tbody) { display:block; width:100%; }
  #account-address #address tr { display:grid; grid-template-columns:minmax(0,1fr); border-bottom:1px solid #dce5d8; }
  #account-address #address tr:last-child { border-bottom:0; }
  #account-address #address td { display:block; width:auto; border:0; padding:12px 16px; }
  #account-address #address td:nth-child(2) strong { display:inline-block; padding:6px 10px; border-radius:8px; background:#edf4e7; }
  #account-address #address td:last-child { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; }
  #account-address #content>.row:last-of-type { row-gap:12px; }
  #account-address #content>.row:last-of-type>div { flex:0 0 100%; width:100%; }
  #account-address #content>.row:last-of-type .btn { display:flex; justify-content:center; width:100%; }
}

/* Mini cart: product text can wrap; monetary amounts always keep their own space. */
#cart .mini-cart-panel {
  width:min(480px,calc(100vw - 32px)); min-width:0; max-width:none;
  margin-top:12px; padding:20px; border:1px solid #dce5d8; border-radius:20px;
  background:#fff; color:#526673; box-shadow:0 18px 50px #344b5d26;
  max-height:min(70vh,680px); overflow-y:auto; overscroll-behavior:contain;
}
#cart .mini-cart-products { list-style:none; margin:0; padding:0; }
#cart .mini-cart-item {
  display:grid; grid-template-columns:80px minmax(0,1fr) 44px;
  align-items:start; gap:10px 14px; padding:0 0 18px;
}
#cart .mini-cart-item+.mini-cart-item { border-top:1px solid #e5ebdf; padding-top:18px; }
#cart .mini-cart-image { grid-row:1 / 3; padding:8px; background:#f3f7ee; border-radius:13px; }
#cart .mini-cart-image img { display:block; width:100%; height:64px; max-width:none; object-fit:contain; border-radius:7px; background:#fff; }
#cart .mini-cart-details { min-width:0; }
#cart .mini-cart-name { display:block; color:#435e70; font-size:14.575375px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
#cart .mini-cart-name:hover { color:#587847; text-decoration:underline; text-underline-offset:3px; }
#cart .mini-cart-meta { list-style:none; margin:7px 0 0; padding:0; color:#71808a; line-height:1.5; overflow-wrap:anywhere; }
#cart .mini-cart-meta small { font-size:12.00325px; }
#cart .mini-cart-remove { margin:0; }
#cart .mini-cart-remove button {
  display:grid; place-items:center; width:44px; height:44px; padding:0;
  border:1px solid #efdad6; border-radius:12px; color:#b66a60; background:#fbf4f1; font-size:16.290125px;
}
#cart .mini-cart-remove button:hover { background:#f5e4de; border-color:#dbb4ab; color:#9c4d43; }
#cart .mini-cart-line { grid-column:2 / -1; display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }
#cart .mini-cart-quantity { color:#71808a; font-size:12.860625px; white-space:nowrap; }
#cart .mini-cart-price { flex:none; color:#435e70; font-size:16.290125px; font-weight:600; white-space:nowrap; overflow-wrap:normal; font-variant-numeric:tabular-nums; }
#cart .mini-cart-totals { margin:0; padding:15px 0; border-top:1px solid #dce5d8; }
#cart .mini-cart-totals>div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
#cart .mini-cart-totals dt { font-size:15.43275px; font-weight:500; color:#526673; }
#cart .mini-cart-totals dd { margin:0; color:#435e70; font-size:18.004875px; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; }
#cart .mini-cart-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#cart .mini-cart-actions a { display:flex; align-items:center; justify-content:center; gap:9px; min-height:50px; padding:12px 10px; border-radius:12px; font-size:13.718px; font-weight:500; line-height:1.4; text-align:center; }
#cart .mini-cart-view { background:#f1f6ec; border:1px solid #d9e4d1; color:#526673; }
#cart .mini-cart-checkout { background:linear-gradient(135deg,#587482,#405c6d); border:1px solid #526b79; color:#fff; }
#cart .mini-cart-view:hover { background:#e5efdd; color:#435e70; }
#cart .mini-cart-checkout:hover { background:#354f60; color:#fff; }
#cart .mini-cart-empty { padding:22px 10px; text-align:center; font-size:14.575375px; color:#71808a; }
@media(max-width:575px) {
  .header-actions #cart,.header-actions #cart>.dropdown { position:static; }
  #cart .mini-cart-panel { position:absolute; top:100%; left:12px; right:12px; width:auto; margin-top:6px; padding:16px; max-height:calc(100dvh - 180px); border-radius:16px; transform:none; }
  #cart .mini-cart-item { grid-template-columns:64px minmax(0,1fr) 44px; column-gap:10px; }
  #cart .mini-cart-image { padding:6px; }
  #cart .mini-cart-image img { height:52px; }
  #cart .mini-cart-name { font-size:13.718px; }
  #cart .mini-cart-line { grid-column:1 / -1; padding-left:74px; }
  #cart .mini-cart-price { font-size:16.290125px; }
  #cart .mini-cart-actions { grid-template-columns:1fr; }
}

/* Header disclosures share readable labels and contained scrolling at every size. */
.locale-options>summary { min-width:44px; }
.locale-options>div { max-width:calc(100vw - 24px); max-height:calc(100dvh - 160px); overflow-y:auto; overscroll-behavior:contain; }
.language-choice { gap:12px; }
.language-choice>i { flex:none; }
.mega-intro,.mega-group { min-width:0; }
.mega-intro h2,.mega-no-subcategories h3,.mega-extra-heading h2 { overflow-wrap:anywhere; }
.mega-link-label>span:last-child,.mega-extra-grid strong { min-width:0; overflow-wrap:anywhere; }
.mega-link-label { gap:3px; }
.mega-grandchildren a { overflow-wrap:anywhere; line-height:1.5; }
.mega-extra-grid>a>span:last-child { flex:none; }
.mega-explore,.mega-group>ul>li>a,.mega-grandchildren a,.mega-brands a,.mega-panel-footer>a { min-height:44px; }
.mega-grandchildren a,.mega-brands a,.mega-panel-footer>a { display:flex; align-items:center; }
@media(min-width:1200px) {
  .mega-panel-body { grid-template-columns:190px minmax(0,1fr) 250px; }
}
@media(min-width:1200px) and (max-width:1399px) {
  .mega-panel-body { grid-template-columns:190px minmax(0,1fr) 190px; }
}
@media(max-width:1199px) {
  .mega-catalog { overflow-x:hidden; }
  .mega-mobile-heading { position:sticky; top:0; z-index:2; background:#fff; padding-top:12px; padding-bottom:12px; margin-top:-12px; }
  .mega-mobile-heading::before { content:""; position:absolute; left:0; right:0; bottom:100%; height:24px; background:#fff; }
  .mega-mobile-heading>img { flex:0 1 170px; max-width:calc(100% - 64px); min-width:0; }
  .mega-mobile-close { flex:none; width:44px; height:44px; }
  .mega-trigger { white-space:normal; }
  .mega-trigger>span:not(.category-emoji) { min-width:0; overflow-wrap:anywhere; }
  .mega-grandchildren a { font-size:13.718px; }
  .mega-brands a { font-size:12.860625px; }
  .mega-mobile-footer a { min-height:48px; overflow-wrap:anywhere; }
  .mega-extra-grid>a { min-width:0; }
}
@media(max-width:575.98px) {
  .announcement { display:flex; align-items:center; justify-content:center; gap:6px; }
  .announcement>span { flex:none; margin:0; }
}

/* Compact storefront header: retain the reading scale and usable controls. */
html { scroll-padding-top:120px; }
.shop-header .masthead { height:56px; gap:12px; }
.shop-header .masthead>.brand-logo { width:210px; }
.shop-header .header-search .form-control { height:44px; min-height:44px; padding-block:8px; }
.shop-header .locale-options>div { top:calc(100% + 4px); }
@media(min-width:1200px) {
  .shop-header .navigation-row,.shop-header .mega-catalog { min-height:44px; }
  .shop-header .mega-trigger { min-height:44px; padding-block:8px; }
  .shop-header .mega-all { min-height:40px; padding-block:6px; }
}
@media(max-width:1199px) {
  .shop-header .masthead { height:60px; }
  .shop-header .masthead>.brand-logo { width:180px; }
  .shop-header .navigation-row { min-height:52px; }
  .shop-header .masthead>.header-search { bottom:3px; }
  .shop-header .mega-mobile-toggle { min-height:44px; padding-block:10px; line-height:24px; }
}
@media(max-width:767px) {
  .shop-header .masthead>.brand-logo { width:145px; }
}
@media(max-width:360px) {
  .shop-header .masthead>.brand-logo { width:130px; }
}
