/** Shopify CDN: Minification failed

Line 8971:0 Unexpected "@media"

**/
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Barlow Condensed',Arial,sans-serif;font-size:18px;line-height:1.35}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.ridge-font-cal{font-family:'Cal Sans','Arial Black',sans-serif}.ridge-font-barlow{font-family:'Barlow Condensed',Arial,sans-serif}.ridge-font-times{font-family:'Times New Roman',Times,serif}.skip-link,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link:focus{clip:auto!important;width:auto!important;height:auto!important;margin:12px!important;padding:10px 16px!important;z-index:9999;background:#fff;color:#000}.ridge-section-inner{width:min(calc(100% - 48px),var(--content));margin-inline:auto}.announcement{height:22px;background:var(--announce-bg);color:var(--announce-color);display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;text-transform:uppercase;font-weight:700;letter-spacing:.02em;position:relative;z-index:80}.announcement a{display:flex;align-items:center;height:100%}

/* adaptive floating glass navigation */
.ridge-header{position:absolute;z-index:70;left:0;right:0;top:22px;pointer-events:none}.ridge-header[data-sticky=true]{position:fixed}.ridge-header__frame{width:min(calc(100% - 84px),var(--content));margin:12px auto 0;position:relative;pointer-events:auto}.ridge-nav{height:74px;padding:0 34px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-radius:22px;background:rgba(234,224,209,var(--nav-opacity,.18));border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(var(--nav-blur,18px)) saturate(135%) contrast(105%);-webkit-backdrop-filter:blur(var(--nav-blur,18px)) saturate(135%) contrast(105%);box-shadow:0 10px 32px rgba(0,0,0,.04);transition:color .25s ease,background .25s ease,border-radius .35s ease,box-shadow .25s ease;position:relative;overflow:hidden}.ridge-nav:before{content:"";position:absolute;inset:-35%;pointer-events:none;opacity:.18;background:repeating-radial-gradient(circle at 30% 20%,rgba(255,255,255,.18) 0 1px,transparent 2px 7px);filter:blur(7px);transform:rotate(-4deg) scale(1.08)}.ridge-header.is-light{color:#fff}.ridge-header.is-dark{color:var(--ink)}.ridge-header[data-contrast-mode=blend] .ridge-nav__links,.ridge-header[data-contrast-mode=blend] .ridge-nav__actions,.ridge-header[data-contrast-mode=blend] .ridge-logo{color:#fff;mix-blend-mode:difference}.ridge-logo{grid-column:1;justify-self:start;position:relative;z-index:2;display:flex;align-items:center;width:var(--nav-logo-width,120px)}.ridge-logo img{width:100%;max-height:56px;object-fit:contain}.ridge-logo__text{font-family:'Cal Sans',sans-serif;font-size:28px}.ridge-logo__light{display:none}.ridge-header.is-light .ridge-logo__light{display:block}.ridge-header.is-light .ridge-logo__dark{display:none}.ridge-header.is-dark .ridge-logo__dark{display:block}.ridge-header.is-dark .ridge-logo__light{display:none}.ridge-header.is-light .ridge-logo>img{filter:brightness(0) invert(1)}.ridge-header.is-dark .ridge-logo>img{filter:none}.ridge-nav__links{grid-column:2;display:flex;align-items:center;gap:52px;position:relative;z-index:2}.ridge-nav__link{appearance:none;border:0;background:none;padding:10px 0;font-family:'Cal Sans',sans-serif;font-size:15px;white-space:nowrap;cursor:pointer;color:inherit}.ridge-chevron{font-family:Arial,sans-serif;margin-left:7px;font-weight:400}.ridge-nav__actions{grid-column:3;justify-self:end;display:flex;gap:26px;align-items:center;position:relative;z-index:2}.ridge-icon-button{width:30px;height:38px;display:grid;place-items:center;position:relative}.ridge-icon-button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ridge-cart-count{position:absolute;top:1px;right:-4px;font-size:9px;min-width:14px;height:14px;display:grid;place-items:center;border-radius:50%;background:currentColor;color:var(--cream)}.ridge-mobile-toggle{display:none}.ridge-mega{position:absolute;left:0;right:0;top:74px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .24s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility .24s;pointer-events:none}.ridge-header.is-mega-open .ridge-nav{border-radius:22px 22px 0 0;background:rgba(234,224,209,.94);color:var(--ink);border-color:rgba(0,0,0,.05);box-shadow:0 24px 50px rgba(0,0,0,.13)}.ridge-header.is-mega-open .ridge-logo__dark{display:block}.ridge-header.is-mega-open .ridge-logo__light{display:none}.ridge-header.is-mega-open .ridge-logo>img{filter:none}.ridge-header.is-mega-open .ridge-mega{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.ridge-mega__inner{background:rgba(234,224,209,.98);color:var(--ink);border-radius:0 0 64px 64px;padding:10px 34px 36px;box-shadow:0 28px 50px rgba(0,0,0,.13);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.ridge-mega__panel{display:none;grid-template-columns:minmax(420px,1fr) 1fr;gap:70px;align-items:start;max-width:1120px;margin:0 auto}.ridge-mega__panel.is-active{display:grid}.ridge-mega__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.ridge-mega-card{display:block;font-family:'Cal Sans',sans-serif;font-size:15px}.ridge-mega-card__media{height:170px;border-radius:26px;background:#b7b0aa;overflow:hidden;margin-bottom:10px;display:flex;align-items:flex-end}.ridge-mega-card__media img{width:100%;height:100%;object-fit:cover}.ridge-mega__links{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:24px 50px;padding-top:4px}.ridge-mega__group{display:flex;flex-direction:column;gap:8px}.ridge-mega__group a{font-family:'Cal Sans',sans-serif;font-size:14px}.ridge-mega__group a:not(.ridge-mega__heading){font-family:'Barlow Condensed',sans-serif;font-size:17px}.ridge-mega__heading{font-weight:400}.ridge-mega__all{align-self:end;font-family:'Cal Sans',sans-serif;font-size:14px;margin-top:28px}.ridge-mega__all span{font-size:10px;margin-left:8px}.ridge-mobile-menu{display:none}

/* hero */
.ridge-hero{position:relative;margin:0 24px 44px;background:var(--hero-bg);color:var(--hero-text);height:var(--hero-height);border-radius:0 0 var(--hero-radius) var(--hero-radius);overflow:hidden}.ridge-hero__media{position:absolute;inset:0}.ridge-hero__media img{width:100%;height:100%;object-fit:cover}.ridge-hero__overlay{position:absolute;inset:0;background:rgba(0,0,0,var(--hero-overlay))}.ridge-hero__content{position:absolute;inset:0;display:flex;padding:120px 48px 54px}.ridge-hero__content--center{align-items:center;justify-content:center}.ridge-hero__content--top{align-items:flex-start;justify-content:center;padding-top:180px}.ridge-hero__content--bottom{align-items:flex-end;justify-content:center}.ridge-hero__copy{width:min(100%,var(--hero-copy-width));text-align:center}.ridge-eyebrow{font-family:'Cal Sans',sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.08em;margin-bottom:20px}.ridge-hero-heading{margin:0;padding:0;display:block}.ridge-hero-heading__line{display:block;width:100%;font-size:var(--line-size);font-weight:var(--line-weight);line-height:calc(var(--line-leading) * .01);letter-spacing:-.03em}.ridge-font-cal,.ridge-hero-heading__line.ridge-font-cal{font-family:'Cal Sans',sans-serif;font-weight:400!important}.ridge-hero-heading__line.ridge-font-barlow{font-family:'Barlow Condensed',sans-serif}.ridge-hero-heading__line.ridge-font-times{font-family:'Times New Roman',Times,serif}.is-italic{font-style:italic}.ridge-align-left{text-align:left}.ridge-align-center{text-align:center}.ridge-align-right{text-align:right}.ridge-hero__body{max-width:620px;margin:28px auto 0;font-size:20px;font-weight:300}.ridge-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 34px;border-radius:999px;margin-top:28px;font-family:'Cal Sans',sans-serif;font-size:16px}.ridge-button--dark{background:var(--charcoal);color:#fff}.ridge-button--light{background:#fff;color:var(--ink)}.ridge-button--outline{border:1px solid currentColor;color:inherit}

/* section/card system */
.ridge-feature-cards{background:var(--fc-bg);color:var(--fc-text);padding:34px 0 120px}.ridge-section-title,.ridge-simple-heading h2,.ridge-product-features__heading{font-size:58px;line-height:1;margin:0;text-align:center;font-weight:400}.ridge-feature-cards__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:82px;margin:80px auto 0;max-width:1160px}.ridge-feature-card__media,.ridge-product-feature__media{height:320px;background:#b9b0a9;border-radius:var(--radius-md);overflow:hidden;position:relative}.ridge-feature-card__media img,.ridge-product-feature__media img{width:100%;height:100%;object-fit:cover}.ridge-carousel-dots{position:absolute;left:0;right:0;bottom:18px;display:flex;align-items:center;justify-content:center;gap:6px;color:rgba(255,255,255,.75)}.ridge-carousel-dots i{width:8px;height:8px;background:currentColor;border-radius:50%;display:block}.ridge-carousel-dots span{font-size:18px}.ridge-feature-card__title{display:flex;align-items:flex-start;gap:8px;font-size:28px;line-height:1.05;margin-top:16px}.ridge-feature-card__title span{font-family:Arial,sans-serif;font-size:18px;margin-top:3px}.ridge-simple-heading{background:var(--sh-bg);color:var(--sh-text);padding:90px 0 52px}

/* feature detail */
.ridge-feature-detail{background:var(--fd-bg);color:var(--fd-text);padding:62px 0 120px;min-height:780px}.ridge-feature-detail__kicker{text-align:center;font-size:54px;margin-bottom:110px}.ridge-feature-detail__grid{display:grid;grid-template-columns:minmax(360px,480px) minmax(0,760px);gap:60px;align-items:center;max-width:1200px;margin:0 auto}.ridge-feature-gallery__stage{height:390px;border-radius:30px;background:#465154;overflow:hidden;position:relative}.ridge-feature-gallery__slide{position:absolute;inset:0;opacity:0;transition:opacity .35s}.ridge-feature-gallery__slide.is-active{opacity:1}.ridge-feature-gallery__slide img{width:100%;height:100%;object-fit:cover}.ridge-feature-gallery__placeholder{height:100%;background:#465154}.ridge-feature-gallery__controls{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:-40px;position:relative;z-index:2;color:rgba(255,255,255,.7)}.ridge-feature-gallery__controls button{border:0;background:none;color:inherit;cursor:pointer;padding:4px}.ridge-feature-gallery__dots{display:flex;gap:7px}.ridge-feature-gallery__dots button{width:10px;height:10px;padding:0;border-radius:50%;background:rgba(255,255,255,.6)}.ridge-feature-gallery__dots button.is-active{background:#fff}.ridge-feature-detail__copy h2{font-size:44px;line-height:1.05;margin:0 0 26px}.ridge-feature-detail__body{font-size:28px;line-height:1.08;font-weight:400}.ridge-feature-detail__body p{margin:0 0 24px}.ridge-feature-detail blockquote{font-size:25px;font-weight:500;margin:28px 0 0;font-style:normal}

/* editorial story */
.ridge-story{background:var(--story-bg);color:var(--story-text);min-height:760px;padding:120px 0 80px}.ridge-story__inner{max-width:820px}.ridge-story__headline{margin-bottom:80px}.ridge-story__title-top{font-size:58px;line-height:.95}.ridge-story__title-editorial{font-size:110px;line-height:.85;margin-top:8px}.ridge-story__subtitle{font-size:26px;font-weight:700;margin-top:34px}.ridge-story__body{font-size:26px;line-height:1.1;font-weight:300}.ridge-story__body p{margin:0 0 28px}.ridge-story__note{text-align:center;margin-top:100px;font-size:24px;font-style:italic;font-weight:500}.ridge-story--continuation{min-height:520px;padding-top:100px}.ridge-story--continuation .ridge-story__headline{display:none}.ridge-story--continuation .ridge-story__body{max-width:800px;margin:0 auto}.ridge-story--continuation .ridge-story__note{margin-top:0;margin-bottom:80px;order:-1}.ridge-story--continuation .ridge-story__inner{display:flex;flex-direction:column}

/* product */
.ridge-product{background:var(--product-bg);color:var(--product-text);padding:130px 0 100px;min-height:900px}.ridge-product__grid{display:grid;grid-template-columns:minmax(0,650px) minmax(380px,480px);justify-content:center;gap:70px;align-items:start}.ridge-product-gallery__stage{height:620px;border-radius:28px;background:#96918c;overflow:hidden;position:relative}.ridge-product-gallery__slide{position:absolute;inset:0;opacity:0;transition:opacity .28s}.ridge-product-gallery__slide.is-active{opacity:1}.ridge-product-gallery__slide img{width:100%;height:100%;object-fit:cover}.ridge-product-gallery__placeholder{height:100%;background:#96918c}.ridge-product-gallery__controls{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:-40px;position:relative;z-index:2;color:#fff}.ridge-product-gallery__controls button{border:0;background:none;color:inherit;cursor:pointer;padding:4px}.ridge-product-gallery__dots{display:flex;gap:6px}.ridge-product-gallery__dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55)}.ridge-product-gallery__dots button.is-active{background:#fff}.ridge-product-info h1{font-size:56px;line-height:1;margin:0 0 14px}.ridge-product-rating{font-size:21px;margin-bottom:34px}.ridge-product-rating span{letter-spacing:1px}.ridge-variant-select{position:absolute;opacity:0;pointer-events:none}.ridge-option-group{border:0;padding:0;margin:0 0 28px}.ridge-option-group legend,.ridge-quantity-label{font-size:34px;font-weight:600;text-transform:uppercase;margin-bottom:14px}.ridge-option-buttons{display:flex;flex-wrap:wrap;gap:12px}.ridge-option-button{border:1px solid currentColor;background:transparent;border-radius:8px;padding:8px 15px;font-size:20px;cursor:pointer}.ridge-option-button.is-selected{background:var(--ink);color:var(--cream);box-shadow:0 4px 8px rgba(0,0,0,.22)}.ridge-option-button[disabled]{opacity:.3;text-decoration:line-through;cursor:not-allowed}.ridge-size-toggle{display:inline-flex;align-items:center;gap:8px;margin-top:12px;border:0;background:none;padding:0;color:#4861ce;font-size:18px;cursor:pointer}.ridge-size-guide{margin-top:22px;max-width:650px}.ridge-size-guide img{width:100%;height:auto}.ridge-quantity-wrap{margin:22px 0 34px}.ridge-quantity{display:inline-grid;grid-template-columns:40px 48px 40px;border:1px solid currentColor;border-radius:8px;overflow:hidden}.ridge-quantity button,.ridge-quantity input{height:42px;border:0;background:transparent;text-align:center}.ridge-quantity input{width:48px;-moz-appearance:textfield}.ridge-quantity input::-webkit-inner-spin-button{display:none}.ridge-purchase-options{display:flex;gap:16px;margin-bottom:34px}.ridge-purchase-card{min-width:150px;border:1px solid currentColor;border-radius:10px;background:transparent;padding:12px 16px;cursor:pointer;display:flex;flex-direction:column;gap:3px}.ridge-purchase-card.is-selected{background:var(--ink);color:var(--cream);box-shadow:0 4px 8px rgba(0,0,0,.22)}.ridge-product-price{font-size:30px;margin:14px 0 22px}.ridge-add-button{border:0;background:var(--accent);color:#fff;border-radius:18px;min-height:58px;padding:0 34px;font-size:22px;cursor:pointer}.ridge-product-form>.ridge-add-button{width:100%}.ridge-add-button:disabled{opacity:.45}.ridge-product-description{font-size:20px;margin-top:30px}.ridge-product-features{background:var(--pf-bg);color:var(--pf-text);padding:100px 0 160px;position:relative}.ridge-product-features__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:84px;max-width:1160px;margin:76px auto 0}.ridge-product-feature__details summary{list-style:none;cursor:pointer;font-size:28px;line-height:1.05;margin-top:16px}.ridge-product-feature__details summary::-webkit-details-marker{display:none}.ridge-product-feature__details>div{font-size:20px;padding-top:12px}.ridge-sticky-cart{position:sticky;bottom:24px;z-index:30;width:min(560px,calc(100% - 32px));margin:100px auto -120px;padding:18px 24px;background:rgba(234,224,209,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:26px;box-shadow:0 10px 30px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:space-between;gap:20px}.ridge-sticky-cart strong{font-size:28px}.ridge-sticky-cart .ridge-add-button{min-height:54px;min-width:190px}

/* footer */
.ridge-footer{background:var(--footer-bg);color:var(--footer-text)}.ridge-footer__signup{text-align:center;padding:70px 24px 80px;border-radius:0 0 70px 70px;background:var(--footer-bg)}.ridge-footer__mark{width:100px;margin:0 auto 24px;opacity:.5}.ridge-footer__mark img{width:100%}.ridge-footer__mark span{font-size:36px}.ridge-footer__signup h2{font-size:24px;margin:0 0 6px}.ridge-footer__signup p{font-size:25px;margin:0 0 18px;font-weight:600}.ridge-newsletter{max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.ridge-newsletter input{height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.7);background:transparent;color:#fff;padding:0 18px}.ridge-newsletter button{height:50px;border-radius:999px;border:0;background:var(--accent);color:#fff;font-size:17px;cursor:pointer}.ridge-footer__main{padding:70px 0 50px}.ridge-footer__brand{width:140px;opacity:.55;margin-bottom:40px}.ridge-footer__brand img{width:100%}.ridge-footer__brand span{font-size:44px}.ridge-footer__columns{display:grid;grid-template-columns:repeat(4,1fr);gap:60px}.ridge-footer__column h3{font-size:27px;margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.28);width:max-content}.ridge-footer__column a{display:block;font-size:24px;line-height:1.35;margin-bottom:4px}.ridge-footer__bottom{border-top:1px solid rgba(255,255,255,.25);margin-top:70px;padding-top:24px;font-size:15px;opacity:.45}

/* generic old sections remain usable */
.section{padding:80px 0}.page-width{width:min(calc(100% - 48px),var(--content));margin-inline:auto}.button{display:inline-flex;padding:12px 24px;border-radius:999px;background:var(--charcoal);color:#fff}.footer{display:none}.cart-drawer{font-family:'Barlow Condensed',sans-serif}

@media(max-width:1000px){
  .ridge-header__frame{width:calc(100% - 32px);margin-top:8px}.ridge-nav{height:66px;padding:0 20px;grid-template-columns:1fr 1fr}.ridge-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--nav-mobile-logo-width,100px)}.ridge-nav__links{display:none}.ridge-nav__actions{grid-column:2}.ridge-mobile-toggle{display:flex;grid-column:1;justify-self:start;width:34px;height:34px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:5px;color:inherit;position:relative;z-index:3}.ridge-mobile-toggle span{display:block;width:18px;height:1.5px;background:currentColor}.ridge-nav__actions .ridge-icon-button:first-child{display:none}.ridge-mega{display:none}.ridge-mobile-menu{display:block;position:absolute;left:16px;right:16px;top:96px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s;pointer-events:none}.ridge-header.is-mobile-open .ridge-mobile-menu{opacity:1;visibility:visible;transform:none;pointer-events:auto}.ridge-mobile-menu__inner{background:rgba(234,224,209,.96);color:var(--ink);border-radius:28px;padding:24px;box-shadow:0 20px 50px rgba(0,0,0,.16);backdrop-filter:blur(20px)}.ridge-mobile-menu__item>a{font-family:'Cal Sans',sans-serif;font-size:24px;display:block;padding:9px 0}.ridge-mobile-menu__children{display:flex;flex-wrap:wrap;gap:10px 20px;padding:0 0 10px}.ridge-mobile-menu__children a{font-size:19px}.ridge-hero{margin:0 12px 28px;height:var(--hero-height-mobile);border-radius:0 0 28px 28px}.ridge-hero__content{padding:110px 22px 36px}.ridge-hero-heading__line{font-size:var(--line-size-mobile)}.ridge-feature-cards__grid,.ridge-product-features__grid{gap:26px}.ridge-feature-detail__grid{grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:38px}.ridge-feature-detail__body{font-size:23px}.ridge-product__grid{grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);gap:38px}.ridge-footer__columns{gap:32px}
}

@media(max-width:760px){
  body{font-size:17px}.ridge-section-inner{width:calc(100% - 32px)}.announcement{height:20px;font-size:8px}.ridge-header{top:20px}.ridge-header__frame{width:calc(100% - 24px)}.ridge-nav{border-radius:18px}.ridge-hero__copy{width:100%!important}.ridge-hero__body{font-size:18px}.ridge-section-title,.ridge-simple-heading h2,.ridge-product-features__heading{font-size:42px}.ridge-feature-cards{padding-bottom:70px}.ridge-feature-cards__grid,.ridge-product-features__grid{grid-template-columns:1fr;gap:44px;margin-top:48px}.ridge-feature-card__media,.ridge-product-feature__media{height:360px}.ridge-feature-detail{padding:46px 0 80px;min-height:auto}.ridge-feature-detail__kicker{font-size:40px;margin-bottom:52px}.ridge-feature-detail__grid{grid-template-columns:1fr;gap:42px}.ridge-feature-gallery__stage{height:350px}.ridge-feature-detail__copy h2{font-size:40px}.ridge-feature-detail__body{font-size:23px}.ridge-feature-detail blockquote{font-size:22px}.ridge-story{padding:100px 0 70px;min-height:auto}.ridge-story__title-top{font-size:48px}.ridge-story__title-editorial{font-size:88px}.ridge-story__subtitle{font-size:22px}.ridge-story__body{font-size:23px}.ridge-story__note{font-size:20px;margin-top:70px}.ridge-product{padding:115px 0 70px}.ridge-product__grid{grid-template-columns:1fr;gap:44px}.ridge-product-gallery__stage{height:460px}.ridge-product-info h1{font-size:46px}.ridge-option-group legend,.ridge-quantity-label{font-size:30px}.ridge-size-guide{overflow-x:auto}.ridge-product-features{padding:75px 0 120px}.ridge-sticky-cart{margin-top:70px;margin-bottom:-90px}.ridge-sticky-cart strong{font-size:22px}.ridge-sticky-cart .ridge-add-button{min-width:140px}.ridge-footer__signup{border-radius:0 0 44px 44px}.ridge-footer__columns{grid-template-columns:repeat(2,1fr);gap:42px 28px}.ridge-footer__column a{font-size:21px}.ridge-footer__main{padding-bottom:36px}
}

@media(max-width:460px){
  .ridge-icon-button{width:26px}.ridge-header__frame{width:calc(100% - 20px)}.ridge-nav{padding:0 14px}.ridge-hero{margin-inline:8px}.ridge-hero-heading__line{letter-spacing:-.04em}.ridge-feature-card__media,.ridge-product-feature__media{height:300px}.ridge-feature-detail__kicker{font-size:34px}.ridge-feature-gallery__stage{height:310px}.ridge-product-gallery__stage{height:390px}.ridge-purchase-options{flex-direction:column}.ridge-footer__columns{grid-template-columns:1fr}.ridge-sticky-cart{bottom:12px;padding:12px 14px;border-radius:20px}.ridge-sticky-cart strong{font-size:18px}.ridge-sticky-cart .ridge-add-button{min-width:125px;min-height:48px;font-size:18px}
}

/* cart + fallback Shopify pages */
.drawer{position:fixed;inset:0;z-index:120;opacity:0;visibility:hidden;transition:.25s}.drawer.is-open{opacity:1;visibility:visible}.drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.38);backdrop-filter:blur(4px)}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(430px,92vw);background:var(--cream);color:var(--ink);padding:30px;overflow:auto;transform:translateX(100%);transition:transform .3s}.drawer.is-open .drawer-panel{transform:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.drawer-head h2{font-family:'Cal Sans',sans-serif;font-size:32px}.drawer-close{border:0;background:none;font-size:36px;cursor:pointer}.cart-row{display:grid;grid-template-columns:90px 1fr auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.cart-row img{border-radius:12px}.cart-total{padding-top:24px;text-align:right}.muted{color:var(--muted)}.empty-state{text-align:center;padding:120px 0}.empty-state h1,.cart-page h1{font-family:'Cal Sans',sans-serif}.template-404 main,.template-cart main,.template-search main,.template-collection main,.template-page main{padding-top:115px}.template-page main:has(.ridge-feature-detail),.template-page main:has(.ridge-story){padding-top:0}


/* v2.1 mockup-spec refinements */
.ridge-button,.button,.ridge-add-button,.ridge-sticky-add button,[class*="checkout"] button{transition:background-color .22s ease,transform .22s ease,box-shadow .22s ease}
.ridge-button:hover,.button:hover,.ridge-add-button:hover,.ridge-sticky-add button:hover{background:var(--accent-hover)!important}
.ridge-nav__link{position:relative}
.ridge-nav__link:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform .22s ease}
.ridge-nav__link:hover:after,.ridge-nav__trigger[aria-expanded="true"]:after{transform:scaleX(1)}
.ridge-option-button{transition:background-color .18s ease,color .18s ease,transform .18s ease}
.ridge-option-button:hover{transform:translateY(-1px)}


/* ===== Ridge Master Rebuild 3.0 ===== */
.ridge-anchor-marker{position:absolute;transform:translateY(-110px)}
.ridge-mega__panel--visual .ridge-mega__visual-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:end}
.ridge-mega__text-links{display:flex;flex-direction:column;gap:14px;align-self:stretch;justify-content:center;font-family:'Cal Sans',sans-serif;font-size:20px}
.ridge-mega__shop-all{margin-top:auto;display:flex;align-items:center;gap:10px}.ridge-mega__shop-all:before{content:'◆';font-size:12px;opacity:.55}
.ridge-mega__panel--simple{padding:36px 12px}.ridge-mega__simple-links{display:flex;justify-content:center;gap:54px;font-family:'Cal Sans',sans-serif;font-size:24px}.ridge-mega__simple-links a{position:relative}.ridge-mega__simple-links a:after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;background:currentColor;transform:scaleX(0);transition:.2s}.ridge-mega__simple-links a:hover:after{transform:scaleX(1)}
.ridge-mobile-menu__parent{width:100%;border:0;background:none;text-align:left;display:flex;align-items:center;justify-content:space-between;font-family:'Cal Sans',sans-serif;font-size:24px;padding:10px 0;cursor:pointer}.ridge-mobile-menu__parent[aria-expanded=true] span{transform:rotate(180deg)}.ridge-mobile-menu__parent span{transition:transform .2s}.ridge-mobile-menu__utility{display:flex;gap:24px;border-top:1px solid var(--line);padding-top:18px;margin-top:10px}

.ridge-feature-detail{background:var(--fd-bg);color:var(--fd-text);min-height:920px;padding:68px 0 92px;position:relative;margin:0 42px;border-radius:40px;display:flex;align-items:center}.ridge-feature-detail+.ridge-feature-detail{margin-top:0}.ridge-feature-detail__kicker{text-align:center;font-size:60px;line-height:1;margin:0 0 110px}.ridge-feature-detail__grid{display:grid;grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:90px;align-items:center;max-width:1180px;margin:0 auto}.ridge-feature-detail__grid.is-reversed .ridge-feature-gallery{order:2}.ridge-feature-gallery__stage{height:400px;border-radius:26px;overflow:hidden;background:#4A5050;position:relative}.ridge-feature-gallery__slide{position:absolute;inset:0;opacity:0;transition:opacity .35s ease}.ridge-feature-gallery__slide.is-active{opacity:1}.ridge-feature-gallery__slide img{width:100%;height:100%;object-fit:cover}.ridge-feature-gallery__placeholder{width:100%;height:100%;background:#4A5050}.ridge-feature-gallery__controls{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:-42px;position:relative;z-index:2}.ridge-feature-gallery__controls button{border:0;background:transparent;color:#d8dede;font-size:24px;cursor:pointer}.ridge-feature-gallery__dots{display:flex;gap:7px}.ridge-feature-gallery__dots button{width:12px;height:12px;border-radius:50%;padding:0;background:#c7cdcd}.ridge-feature-gallery__dots button.is-active{background:#fff}.ridge-feature-detail__copy h2{font-size:48px;line-height:1.02;margin:0 0 28px}.ridge-feature-detail__body{font-size:27px;line-height:1.1}.ridge-feature-detail__body p{margin:0 0 28px}.ridge-feature-detail blockquote{font-size:25px;font-weight:600;margin:32px 0 0}

.ridge-all-feel{background:var(--af-bg);color:var(--af-text);margin-top:28px;border-radius:40px 40px 0 0;overflow:hidden}.ridge-all-feel__intro{min-height:900px;padding:110px 0 60px;display:flex;flex-direction:column;justify-content:center}.ridge-all-feel__headline{width:min(520px,100%);margin-left:170px}.ridge-all-feel__top{font-size:58px;line-height:.95}.ridge-all-feel__editorial{font-size:112px;font-style:italic;font-weight:700;line-height:.86;margin-top:20px}.ridge-all-feel__subtitle{font-size:25px;font-weight:700;margin-top:34px}.ridge-all-feel__body{width:min(660px,100%);font-size:26px;line-height:1.12;margin:110px 0 0 170px}.ridge-all-feel__question{font-style:italic;font-size:23px;text-align:center;margin-top:auto;padding-top:90px}.ridge-all-feel__continuation{min-height:620px;padding:60px 0 100px;display:flex;flex-direction:column;justify-content:center}.ridge-all-feel__continuation .ridge-all-feel__question{padding:0;margin:0 0 100px}.ridge-all-feel__continuation-body{width:min(760px,100%);font-size:25px;line-height:1.15;margin:0 auto}.ridge-all-feel__continuation-body p{margin:0 0 20px}

.ridge-home-signup{background:var(--signup-bg);color:var(--signup-text);padding:55px 0 65px;text-align:center}.ridge-home-signup__inner{width:min(500px,calc(100% - 32px));margin:0 auto}.ridge-home-signup__logo{width:120px;margin:0 auto 20px;opacity:.55}.ridge-home-signup__logo img{width:100%}.ridge-home-signup__logo span{font-size:42px}.ridge-home-signup h2{font-size:22px;margin:0 0 6px}.ridge-home-signup p{font-size:25px;font-weight:600;margin:0 0 18px}.ridge-home-signup__form{display:flex;flex-direction:column;gap:10px}.ridge-home-signup__form input{height:44px;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:transparent;color:#fff;padding:0 18px}.ridge-home-signup__form input::placeholder{color:rgba(255,255,255,.5)}.ridge-home-signup__or{font-size:12px}.ridge-home-signup__phone-row{display:grid;grid-template-columns:92px 1fr;gap:10px}.ridge-country-code{height:44px;border:1px solid rgba(255,255,255,.65);border-radius:999px;display:flex;align-items:center;justify-content:center}.ridge-home-signup__consent{text-align:left;font-size:11px;line-height:1.15;opacity:.7}.ridge-accent-button{height:48px;min-width:180px;align-self:center;border:0;border-radius:999px;background:#7487E5;color:#fff;font-family:'Cal Sans',sans-serif;font-size:18px;cursor:pointer;transition:.2s}.ridge-accent-button:hover{background:#3447A6}

.ridge-footer{background:var(--footer-bg);color:var(--footer-text)}.ridge-footer__main{padding:70px 0 55px}.ridge-footer__brand{width:145px;opacity:.5;margin-bottom:45px}.ridge-footer__columns{display:grid;grid-template-columns:repeat(4,1fr);gap:70px}.ridge-footer__column h3{font-size:26px;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.25);width:max-content}.ridge-footer__column a{display:block;font-size:23px;line-height:1.28;margin-bottom:4px}.ridge-footer__legal-links{display:flex;gap:24px;border-top:1px solid rgba(255,255,255,.25);padding-top:22px;margin-top:54px;opacity:.55;font-size:16px}.ridge-footer__bottom{border-top:0;margin-top:18px;padding-top:0;font-size:14px;opacity:.35}

.ridge-default-page{background:var(--cream);color:var(--ink);padding:155px 0 100px;min-height:70vh}.ridge-default-page__inner{width:min(1260px,calc(100% - 64px));margin:0 auto}.ridge-default-page h1{font-size:62px;line-height:1;margin:0 0 14px}.ridge-default-page__meta{font-size:16px;font-weight:600;margin-bottom:45px}.ridge-default-page__content{font-size:18px;line-height:1.18}.ridge-default-page__content h2,.ridge-default-page__content h3{font-family:'Barlow Condensed',sans-serif;font-size:28px;line-height:1;margin:34px 0 6px}.ridge-default-page__content p{margin:0 0 16px}.ridge-default-page__content a{color:#3447A6;text-decoration:underline}

.ridge-contact-page{background:var(--cream);color:var(--ink);padding:155px 0 170px;border-radius:0 0 220px 220px;position:relative;z-index:2}.ridge-contact-page__inner{max-width:1260px}.ridge-contact-page h1{font-size:60px;margin:0 0 90px}.ridge-contact-page__grid{display:grid;grid-template-columns:1fr 1.25fr;gap:120px}.ridge-contact-page__label{font-size:30px}.ridge-contact-page__body{font-size:31px;line-height:1.05}.ridge-contact-page__body p{margin:0 0 36px}.ridge-contact-page__body a{color:#3447A6}

.ridge-404{background:#8D9D9F;color:#fff;min-height:300px;margin:0;border-radius:0 0 170px 170px;padding:120px 24px 70px;text-align:center}.ridge-404 h1{font-size:72px;margin:0 0 8px}.ridge-404 p{font-size:30px;margin:0}.ridge-404 a{color:#3447A6;text-decoration:underline}

@media(max-width:1000px){.ridge-mega__panel--visual .ridge-mega__visual-grid{grid-template-columns:1fr 240px}.ridge-feature-detail{margin-inline:20px;min-height:760px}.ridge-feature-detail__kicker{font-size:48px;margin-bottom:70px}.ridge-feature-detail__grid{gap:45px;padding-inline:25px}.ridge-all-feel__headline,.ridge-all-feel__body{margin-left:60px}.ridge-contact-page__grid{gap:60px}}
@media(max-width:760px){.ridge-feature-detail{margin:0 10px;border-radius:28px;min-height:auto;padding:70px 0}.ridge-feature-detail__kicker{font-size:38px;margin-bottom:60px}.ridge-feature-detail__grid,.ridge-feature-detail__grid.is-reversed{grid-template-columns:1fr;padding:0 20px}.ridge-feature-detail__grid.is-reversed .ridge-feature-gallery{order:0}.ridge-feature-gallery__stage{height:340px}.ridge-feature-detail__copy h2{font-size:38px}.ridge-feature-detail__body{font-size:22px}.ridge-feature-detail blockquote{font-size:21px}.ridge-all-feel{border-radius:28px 28px 0 0}.ridge-all-feel__intro{min-height:auto;padding:100px 24px 70px}.ridge-all-feel__headline,.ridge-all-feel__body{margin-left:0}.ridge-all-feel__top{font-size:46px}.ridge-all-feel__editorial{font-size:86px}.ridge-all-feel__body{font-size:22px;margin-top:80px}.ridge-all-feel__continuation{min-height:auto;padding:70px 24px}.ridge-all-feel__continuation .ridge-all-feel__question{margin-bottom:70px}.ridge-all-feel__continuation-body{font-size:22px}.ridge-footer__columns{grid-template-columns:repeat(2,1fr);gap:40px 25px}.ridge-footer__legal-links{flex-wrap:wrap}.ridge-default-page{padding:130px 0 80px}.ridge-default-page__inner{width:calc(100% - 36px)}.ridge-default-page h1{font-size:46px}.ridge-contact-page{padding:130px 0 120px;border-radius:0 0 80px 80px}.ridge-contact-page h1{font-size:46px;margin-bottom:60px}.ridge-contact-page__grid{grid-template-columns:1fr;gap:30px}.ridge-contact-page__body{font-size:25px}.ridge-404{padding-top:120px;border-radius:0 0 80px 80px}}
@media(max-width:460px){.ridge-footer__columns{grid-template-columns:1fr}.ridge-contact-page__body{font-size:22px}.ridge-default-page__content{font-size:17px}}

.ridge-header:not(.is-scrolled) .ridge-nav{background:rgba(234,224,209,.08);box-shadow:none}.ridge-header.is-scrolled .ridge-nav{background:rgba(234,224,209,var(--nav-opacity,.18));box-shadow:0 12px 38px rgba(0,0,0,.10)}


/* Ridge 3.0.2 UI refinement overrides */
:root{--ridge-dark:#4E4E4E}
/* Top state is truly transparent; glass appears only after movement. */
.ridge-header:not(.is-scrolled):not(.is-mega-open) .ridge-nav{background:transparent!important;border-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important}
.ridge-header:not(.is-scrolled):not(.is-mega-open) .ridge-nav:before{opacity:0!important}
.ridge-header.is-scrolled .ridge-nav{background:rgba(234,224,209,var(--nav-opacity,.20))!important;border-color:rgba(255,255,255,.16)!important;backdrop-filter:blur(var(--nav-blur,18px)) saturate(135%) contrast(105%)!important;-webkit-backdrop-filter:blur(var(--nav-blur,18px)) saturate(135%) contrast(105%)!important;box-shadow:0 12px 38px rgba(0,0,0,.10)!important}
/* Open menu is one continuous surface, never two slightly different creams. */
.ridge-header.is-mega-open .ridge-nav,.ridge-header.is-mega-open .ridge-mega__inner{background:rgba(234,224,209,.965)!important;color:var(--ink)!important;border-color:rgba(0,0,0,.04)!important;backdrop-filter:blur(22px) saturate(130%)!important;-webkit-backdrop-filter:blur(22px) saturate(130%)!important}
.ridge-header.is-mega-open .ridge-nav{box-shadow:none!important}
.ridge-header.is-mega-open .ridge-mega__inner{box-shadow:0 28px 50px rgba(0,0,0,.11)!important}

/* SHOP thumbnail cards are square and preserve the whole product image. */
.ridge-mega-card__media{height:auto!important;aspect-ratio:1/1;border-radius:24px;display:grid;place-items:center;background:rgba(78,78,78,.12)!important}
.ridge-mega-card__media img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}

/* Product media: transparent container, square geometry, rounded clipping for opaque artwork. */
.ridge-product-gallery__stage{width:100%;height:auto!important;aspect-ratio:1/1;background:transparent!important;border-radius:32px;overflow:hidden}
.ridge-product-gallery__placeholder{background:rgba(78,78,78,.08)!important}
.ridge-product-gallery__slide{background:transparent}
.ridge-product-gallery__slide img{width:100%;height:100%;object-fit:contain!important;object-position:center;border-radius:32px}
.ridge-product-block{margin-bottom:28px}
.ridge-purchase-label{font-size:34px;font-weight:600;text-transform:uppercase;margin-bottom:14px}
.ridge-size-chevron{display:inline-block;transition:transform .2s ease;transform-origin:center}
.ridge-size-toggle[aria-expanded=true] .ridge-size-chevron{transform:rotate(180deg)}

/* Dark UI states are #4E4E4E, never black and never blue on hover. */
.ridge-button--dark,.button,.ridge-option-button.is-selected,.ridge-purchase-card.is-selected,.cart-total .button,.drawer .button{background:var(--ridge-dark)!important;color:#fff!important}
.ridge-button--dark:hover,.button:hover,.ridge-option-button.is-selected:hover,.ridge-purchase-card.is-selected:hover,.cart-total .button:hover,.drawer .button:hover{background:var(--ridge-dark)!important;color:#fff!important;transform:translateY(-2px) scale(1.015);box-shadow:0 9px 20px rgba(78,78,78,.22)}
.ridge-button--dark:active,.button:active,.ridge-option-button.is-selected:active,.ridge-purchase-card.is-selected:active,.cart-total .button:active,.drawer .button:active{transform:translateY(0) scale(.985);box-shadow:0 4px 10px rgba(78,78,78,.18)}
/* Blue primary buttons retain blue identity but use motion, not an outline. */
.ridge-add-button,.ridge-accent-button{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.ridge-add-button:hover,.ridge-accent-button:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 10px 22px rgba(52,71,166,.20)}
.ridge-add-button:active,.ridge-accent-button:active{transform:translateY(0) scale(.985)}
/* Remove browser pointer/click outlines; keyboard focus gets a soft non-outline halo. */
button:hover,a:hover,button:active,a:active,button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none!important;box-shadow:0 0 0 3px rgba(78,78,78,.18)}
.ridge-option-button,.ridge-purchase-card,.button,.ridge-button,.ridge-add-button{outline:none!important}

/* Bag/cart typography rules. */
.ridge-cart-product-title{font-family:'Cal Sans',sans-serif!important;font-size:24px;line-height:1.05}
.ridge-cart-variant,.ridge-cart-price,.ridge-cart-qty,.cart-total{font-family:'Barlow Condensed',Arial,sans-serif!important}
.ridge-cart-variant{font-size:20px;color:var(--muted)}
.ridge-cart-price{font-size:24px}
.ridge-cart-media img,.drawer .cart-row img{object-fit:contain;background:transparent}
.ridge-cart-qty{max-width:90px;margin-top:10px}

@media(max-width:760px){.ridge-product-gallery__stage{aspect-ratio:1/1}.ridge-mega-card__media{aspect-ratio:1/1}.ridge-cart-product-title{font-size:21px}}

/* Ridge 3.0.3 typography + collection integration */
/* Content/page/section headings always use Cal Sans. Supporting copy is Barlow Condensed. */
main h1,main h2,main h3,main h4,main h5,main h6,
.ridge-section-heading,.section-head h1,.section-head h2,.section-head h3,
.card-info .h3,.product-title,.ridge-product-title,
.ridge-default-page h1,.ridge-default-page__content h2,.ridge-default-page__content h3,
.ridge-contact-page h1,.ridge-contact-page__label,
.ridge-feature-detail__copy h2,.ridge-footer__column h3,
.cart-page h1,.drawer-head h2{
  font-family:'Cal Sans',Arial,sans-serif!important;
  font-weight:400!important;
}
main,main p,main li,main label,main input,main select,main textarea,
main button:not(.ridge-nav__link),main .eyebrow,main .muted,main .price,
main .compare,main .collection-toolbar,.card-info,
.ridge-default-page__meta,.ridge-default-page__content,
.ridge-contact-page__body,.ridge-cart-variant,.ridge-cart-price,.ridge-cart-qty{
  font-family:'Barlow Condensed',Arial,sans-serif;
}

/* Collection pages visually belong to Ridge: no stark white product-grid panel. */
.template-collection main,.template-collection .section,
.template-collection .page-width,.collection-toolbar,.product-grid{
  background:transparent!important;
}
.template-collection .section{padding-bottom:110px}
.collection-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin:0 0 28px;
  padding:0;
  border:0;
  font-size:21px;
}
.collection-toolbar form{display:flex;align-items:center;gap:8px}
.collection-toolbar .select,.collection-toolbar select{
  appearance:none;
  -webkit-appearance:none;
  min-height:44px;
  padding:8px 42px 8px 16px;
  border:1px solid rgba(78,78,78,.34);
  border-radius:999px;
  background-color:transparent!important;
  background-image:linear-gradient(45deg,transparent 50%,#4E4E4E 50%),linear-gradient(135deg,#4E4E4E 50%,transparent 50%);
  background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  color:var(--ink);
  outline:none;
}
.product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  width:100%;
}
.product-grid .card{
  background:transparent!important;
  border:0!important;
  border-radius:0;
  box-shadow:none!important;
  min-width:0;
}
.product-grid .card>a{display:block}
.product-grid .card-media{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:32px;
  background:rgba(78,78,78,.055)!important;
  display:grid;
  place-items:center;
}
.product-grid .card-media img,
.product-grid .card-media svg{
  width:100%;
  height:100%;
  object-fit:contain;
  background:transparent!important;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.product-grid .card:hover .card-media img{transform:scale(1.025)}
.product-grid .card-info{
  padding:16px 4px 4px;
  background:transparent!important;
}
.product-grid .card-info .h3{
  font-size:24px;
  line-height:1.05;
  margin-bottom:7px;
}
.product-grid .price,.product-grid .compare{
  font-size:21px;
  line-height:1.1;
}
.product-grid .compare{opacity:.55;text-decoration:line-through;margin-left:8px}
.product-grid .badge{
  position:absolute;
  top:16px;
  left:16px;
  padding:6px 12px;
  border-radius:999px;
  background:#4E4E4E;
  color:#fff;
  font-family:'Barlow Condensed',Arial,sans-serif;
}

@media(max-width:900px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  .product-grid{grid-template-columns:1fr;gap:34px}
  .collection-toolbar{align-items:flex-start;flex-direction:column}
  .product-grid .card-media{border-radius:24px}
}


/* Ridge 3.0.4 — Mockup #2 nav + cart/footer refinements */
:root{--ridge-dark:#4E4E4E}
/* navbar is visually absent at true top; glass only after movement */
.ridge-header__frame{transition:background .3s ease,box-shadow .3s ease,border-radius .35s ease}
.ridge-nav{background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.ridge-nav:before{display:none!important}
.ridge-header.is-scrolled:not(.is-mega-open) .ridge-nav{background:rgba(234,224,209,.52)!important;border:1px solid rgba(255,255,255,.28)!important;backdrop-filter:blur(var(--nav-blur,18px)) saturate(135%)!important;-webkit-backdrop-filter:blur(var(--nav-blur,18px)) saturate(135%)!important;box-shadow:0 12px 36px rgba(0,0,0,.07)!important;border-radius:24px!important}
/* Mockup #2: nav and open dropdown are one continuous cream surface */
.ridge-header.is-mega-open .ridge-header__frame{width:min(calc(100% - 48px),var(--content));background:var(--cream);border-radius:0 0 76px 76px;box-shadow:0 26px 54px rgba(35,35,35,.16);overflow:hidden}
.ridge-header.is-mega-open .ridge-nav{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:var(--ink)!important}
.ridge-header.is-mega-open .ridge-mega__inner{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0!important;padding:6px 58px 42px}
.ridge-mega{top:74px}
.ridge-mega__panel--visual.is-active{display:block;max-width:900px;margin:0 auto}
.ridge-mega__visual-grid{display:grid;grid-template-columns:180px 180px 260px;gap:48px;justify-content:center;align-items:start}
.ridge-mega__cards{display:contents}
.ridge-mega-card{width:180px;font-size:0}
.ridge-mega-card__media{position:relative;width:180px;height:180px;aspect-ratio:1/1;border-radius:28px;background:#B7B0AA;margin:0;overflow:hidden}
.ridge-mega-card__media img{width:100%;height:100%;object-fit:contain;background:transparent}
.ridge-mega-card__title{position:absolute;left:18px;right:12px;bottom:14px;color:#fff;font-family:'Cal Sans',sans-serif;font-size:15px;line-height:1.05;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.22)}
.ridge-mega__text-links{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding-top:0}
.ridge-mega__text-links>a{font-family:'Cal Sans',sans-serif;font-size:14px;line-height:1.25;text-transform:uppercase}
.ridge-mega__shop-all{margin-top:96px!important;position:relative;padding-left:34px}
.ridge-mega__shop-all:before{content:'◆';position:absolute;left:0;top:0;font-size:13px;color:#8f8f8f}
.ridge-mega__panel--simple.is-active{display:block;max-width:900px;margin:0 auto}
.ridge-mega__simple-links{display:flex;justify-content:center;gap:64px;padding:20px 0 34px}
.ridge-mega__simple-links a{font-family:'Cal Sans',sans-serif;font-size:15px;text-transform:uppercase}
.ridge-nav__link,.ridge-mega a{position:relative}
.ridge-nav__link:after,.ridge-mega a:not(.ridge-mega-card):after{content:'';position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.ridge-nav__link:hover:after,.ridge-nav__trigger[aria-expanded=true]:after,.ridge-mega a:not(.ridge-mega-card):hover:after{transform:scaleX(1)}

/* cart / bag typography and controls */
.ridge-cart-page{background:var(--cream);padding:160px 24px 150px}
.cart-page{width:min(calc(100% - 48px),1400px);margin:0 auto}
.ridge-cart-heading,.ridge-cart-product-title,.cart-total h3{font-family:'Cal Sans',sans-serif}
.ridge-cart-heading{font-size:clamp(54px,6vw,96px);font-weight:400;margin:0 0 88px}
.cart-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:28px;align-items:center;padding:28px 0;border-bottom:1px solid rgba(78,78,78,.18)}
.ridge-cart-media{width:110px;height:130px;display:grid;place-items:center;background:transparent;border:0;border-radius:0;overflow:visible}
.ridge-cart-media img{max-width:100%;max-height:100%;object-fit:contain;background:transparent}
.ridge-cart-product-title{font-size:30px;line-height:1.05;text-transform:uppercase}
.ridge-cart-variant,.ridge-cart-actions-inline,.ridge-cart-price,.cart-total{font-family:'Barlow Condensed',sans-serif}
.ridge-cart-variant{font-size:24px;color:var(--muted);margin-top:7px}
.ridge-cart-actions-inline{display:flex;gap:22px;align-items:center;margin-top:9px;font-size:18px}
.ridge-cart-qty-wrap{display:inline-flex;align-items:center;gap:7px}
.ridge-cart-qty{width:28px!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;text-align:center;-moz-appearance:textfield}
.ridge-cart-qty::-webkit-outer-spin-button,.ridge-cart-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ridge-cart-remove{text-decoration:underline;text-underline-offset:3px}
.ridge-cart-price{font-size:26px}
.cart-total{display:flex;flex-direction:column;align-items:flex-end;gap:18px;padding-top:60px}
.cart-total h3{font-size:28px;margin:0}
.ridge-cart-buttons{display:flex;gap:14px}
.button,.drawer-close,.ridge-icon-button,.ridge-option-button,.ridge-size-guide-toggle,.ridge-qty button{outline:none!important;box-shadow:none!important}
.button:focus,.button:focus-visible,.drawer-close:focus,.drawer-close:focus-visible,.ridge-icon-button:focus,.ridge-icon-button:focus-visible{outline:none!important;box-shadow:none!important}
.button{border:0!important;border-radius:999px;padding:16px 34px;transition:transform .2s ease,filter .2s ease,background .2s ease}
.button--dark{background:#4E4E4E!important;color:#fff!important}
.button--dark:hover{background:#4E4E4E!important;color:#fff!important;transform:translateY(-2px) scale(1.02);filter:brightness(1.06)}
.button--blue{background:#7487E5!important;color:#fff!important}
.button--blue:hover{background:#3447A6!important;transform:translateY(-2px)}
.drawer-panel{background:var(--cream)!important}
.drawer-head h2{font-size:54px;font-weight:400;margin:0}
.drawer-close{border:0!important;background:transparent!important;font-size:44px;line-height:1;cursor:pointer}
.drawer-cart-row{grid-template-columns:100px minmax(0,1fr) auto}
.drawer .ridge-cart-product-title{font-size:27px}
.drawer .ridge-cart-variant{font-size:21px}
.drawer .cart-total{padding-top:36px}

/* premium page-end overlap above footer, as Mockup #8 */
#MainContent{position:relative;z-index:2;background:transparent}
#MainContent>.shopify-section:last-child>section,#MainContent>.shopify-section:last-child>.ridge-page-end{position:relative;z-index:2;border-radius:0 0 96px 96px;overflow:hidden}
.ridge-footer{position:relative;z-index:1;margin-top:-96px;padding-top:176px!important}

@media(max-width:900px){
 .ridge-header.is-mega-open .ridge-header__frame{width:calc(100% - 24px);border-radius:0 0 42px 42px}
 .ridge-mega__visual-grid{grid-template-columns:1fr 1fr;gap:20px}.ridge-mega__text-links{grid-column:1/-1}.ridge-mega-card,.ridge-mega-card__media{width:100%;height:auto;aspect-ratio:1/1}
 .ridge-cart-page{padding:130px 18px 110px}.cart-page{width:100%}.ridge-cart-heading{margin-bottom:42px}.cart-row{grid-template-columns:78px 1fr;gap:16px}.ridge-cart-price{grid-column:2}.ridge-cart-media{width:72px;height:92px}.ridge-cart-product-title{font-size:24px}.ridge-cart-variant{font-size:20px}.ridge-cart-buttons{flex-direction:column;width:100%}.ridge-cart-buttons .button{width:100%}
 #MainContent>.shopify-section:last-child>section,#MainContent>.shopify-section:last-child>.ridge-page-end{border-radius:0 0 56px 56px}.ridge-footer{margin-top:-56px;padding-top:116px!important}
}

/* v3.0.5 — Mockup #22 review cart */
.ridge-review-cart{background:var(--cream);color:var(--ink);min-height:100vh;padding:150px 0 110px}
.ridge-review-cart__shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.9fr);gap:9vw;align-items:start}
.ridge-cart-back{display:inline-block;font-family:var(--font-condensed);font-size:18px;opacity:.72;margin-bottom:8px}
.ridge-cart-review-title,.ridge-order-summary>h2{font-family:var(--font-display);font-size:clamp(32px,3vw,48px);line-height:1;margin:0 0 34px;letter-spacing:-.04em}
.ridge-delivery-note,.ridge-review-line,.ridge-order-summary__card,.ridge-cart-rec{background:rgba(255,255,255,.72);border-radius:14px}
.ridge-delivery-note{display:flex;gap:18px;align-items:center;padding:22px 28px;margin-bottom:24px;font-family:var(--font-condensed);font-size:17px}
.ridge-delivery-note__icon{font-size:32px}.ridge-delivery-note span{opacity:.75}
.ridge-cart-lines{display:grid;gap:16px}.ridge-review-line{display:grid;grid-template-columns:130px 1fr auto;gap:22px;padding:18px;align-items:start}
.ridge-review-line__media{width:130px;aspect-ratio:1;background:#aaa;border-radius:8px;overflow:hidden}.ridge-review-line__media img{width:100%;height:100%;object-fit:cover}
.ridge-review-line__copy{font-family:var(--font-condensed);font-size:17px;line-height:1.4}.ridge-review-line__title{display:block;font-family:var(--font-display);font-size:28px;line-height:1.05;margin-bottom:10px}
.ridge-review-line__end{display:flex;flex-direction:column;align-items:flex-end;gap:18px;font-family:var(--font-condensed);font-size:18px}.ridge-cart-remove{text-decoration:underline;font-size:14px;opacity:.75}
.ridge-cart-qty-inline{display:flex;gap:8px;align-items:center;margin-top:8px}.ridge-cart-qty-inline input{width:54px;border:1px solid rgba(36,36,36,.25);border-radius:999px;background:transparent;padding:4px 8px}
.ridge-cart-fineprint{font-family:var(--font-condensed);font-size:14px;opacity:.65;margin:10px 0}.ridge-cart-update-link{border:0;background:transparent;text-decoration:underline;padding:0;font:inherit;cursor:pointer;opacity:.7}
.ridge-before-checkout{margin-top:120px}.ridge-before-checkout h2{font-family:var(--font-display);font-size:26px}.ridge-before-checkout__list{display:grid;gap:16px}.ridge-cart-rec{display:grid;grid-template-columns:74px 1fr;gap:14px;padding:16px;align-items:center}.ridge-cart-rec__media{width:74px;aspect-ratio:1;border-radius:6px;background:#aaa;overflow:hidden}.ridge-cart-rec__media img{width:100%;height:100%;object-fit:cover}.ridge-cart-rec strong{display:block;font-family:var(--font-display);font-size:20px}.ridge-cart-rec small{display:block;font-family:var(--font-condensed);margin-top:4px}
.ridge-order-summary{position:sticky;top:140px}.ridge-order-summary__card{padding:28px 32px;margin-bottom:36px;font-family:var(--font-condensed);font-size:18px}.ridge-summary-row{display:flex;justify-content:space-between;font-size:24px}.ridge-order-summary__card p{line-height:1.4;opacity:.78;margin:22px 0 0}.ridge-checkout-main{width:100%;min-height:54px;border-radius:999px;font-size:22px}.ridge-accelerated-checkout{margin-top:14px}.ridge-payment-caption{text-align:center;font-family:var(--font-condensed);font-size:13px;opacity:.55;margin-top:22px}
@media(max-width:900px){.ridge-review-cart{padding-top:115px}.ridge-review-cart__shell{grid-template-columns:1fr;gap:60px}.ridge-order-summary{position:static}.ridge-before-checkout{margin-top:70px}.ridge-review-line{grid-template-columns:92px 1fr}.ridge-review-line__media{width:92px}.ridge-review-line__end{grid-column:2;flex-direction:row;justify-content:space-between;align-items:center}}


/* Ridge 3.0.6 — consolidated UI/UX rules from master mockups */
:root{--ridge-dark:#4E4E4E;}
/* No visible browser outline rings on buttons/links; use motion/underline feedback instead. */
button:focus-visible,.button:focus-visible,.ridge-button:focus-visible,.ridge-add-button:focus-visible,.ridge-option-button:focus-visible,.ridge-purchase-card:focus-visible,.ridge-icon-button:focus-visible,.drawer-close:focus-visible{outline:none!important;box-shadow:none!important;transform:translateY(-1px)}
a:focus-visible{outline:none!important;box-shadow:none!important;text-decoration:underline;text-underline-offset:4px}
/* Inactive product choices stay outlined and unfilled; active choices fill #4E4E4E. */
.ridge-option-button,.ridge-purchase-card{background:transparent!important;color:inherit;border:1px solid currentColor!important;box-shadow:none!important}
.ridge-option-button.is-selected,.ridge-purchase-card.is-selected{background:#4E4E4E!important;color:#fff!important;border-color:#4E4E4E!important;box-shadow:none!important}
.ridge-option-button:not(.is-selected):hover,.ridge-purchase-card:not(.is-selected):hover{background:rgba(78,78,78,.06)!important;transform:translateY(-1px)}
/* Dark action buttons never shift blue. */
.ridge-button--dark,.button--dark,.drawer .button--dark{background:#4E4E4E!important;color:#fff!important;border:0!important}
.ridge-button--dark:hover,.button--dark:hover,.drawer .button--dark:hover{background:#4E4E4E!important;color:#fff!important;transform:translateY(-2px) scale(1.015);filter:brightness(1.04)}
/* Blue purchase/checkout actions use the approved blue system. */
.button--blue,.ridge-add-button,.ridge-accent-button{background:#7487E5!important;color:#fff!important;border:0!important}
.button--blue:hover,.ridge-add-button:hover,.ridge-accent-button:hover{background:#3447A6!important;color:#fff!important}
/* Product quantity control belongs to the option system rather than a white field. */
.ridge-quantity{background:transparent!important;border:1px solid rgba(78,78,78,.7)!important;box-shadow:none!important}
.ridge-quantity input,.ridge-quantity button{background:transparent!important;outline:none!important;box-shadow:none!important}
/* Cart quantity inputs are transparent and intentionally minimal. */
.ridge-cart-qty,.ridge-cart-qty-inline input{background:transparent!important;border:0!important;outline:none!important;box-shadow:none!important}
/* Expanded desktop navigation is one continuous Mockup #2 surface. */
@media(min-width:901px){
 .ridge-header.is-mega-open .ridge-header__frame{background:rgba(234,224,209,.98)!important;backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);border-radius:0 0 76px 76px!important;overflow:hidden!important}
 .ridge-header.is-mega-open .ridge-nav,.ridge-header.is-mega-open .ridge-mega__inner{background:transparent!important;border:0!important;box-shadow:none!important}
 .ridge-header.is-mega-open .ridge-mega__inner{padding-top:4px!important}
}
/* At original top position the nav itself has no frosted fill; frost appears only after movement/scroll. */
.ridge-header:not(.is-scrolled):not(.is-mega-open) .ridge-nav{background:transparent!important;border-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important}
/* Page endings float above the footer dark field. */
#MainContent>.shopify-section:last-child>section,#MainContent>.shopify-section:last-child>.ridge-page-end{position:relative;z-index:2;border-radius:0 0 96px 96px;overflow:hidden}
.ridge-footer{background:#242424;position:relative;z-index:1;margin-top:-96px;padding-top:176px!important}
@media(max-width:900px){#MainContent>.shopify-section:last-child>section,#MainContent>.shopify-section:last-child>.ridge-page-end{border-radius:0 0 56px 56px}.ridge-footer{margin-top:-56px;padding-top:116px!important}}


/* Ridge 3.0.7 — Mockup #8 footer / customer account routing */
.ridge-footer{background:var(--footer-bg,#242424);color:var(--footer-text,#fff)}
.ridge-footer__main{padding:72px 0 54px!important}
.ridge-footer__brand{width:150px;opacity:.52;margin:0 0 42px}
.ridge-footer__wordmark{font-size:44px;line-height:1}
.ridge-footer__columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:64px}
.ridge-footer__column h3{font-family:'Cal Sans',sans-serif;font-weight:400;font-size:26px;line-height:1.05;margin:0 0 24px;padding:0;border:0;width:auto;letter-spacing:0}
.ridge-footer__column a,.ridge-footer__column p{font-family:'Barlow Condensed',sans-serif;font-size:22px;line-height:1.34;margin:0 0 4px;color:inherit;text-decoration:none}
.ridge-footer__column a{display:block;opacity:.9;transition:opacity .22s ease,transform .22s ease}
.ridge-footer__column a:hover{opacity:1;transform:translateX(2px)}
.ridge-footer__menu-hint{opacity:.34;max-width:190px}
.ridge-footer__rule{height:1px;background:rgba(255,255,255,.24);margin:54px 0 18px}
.ridge-footer__utility{display:flex;flex-direction:column;gap:18px}
.ridge-footer__legal-links{display:flex;flex-wrap:wrap;gap:24px;margin:0;padding:0;border:0;font-family:'Barlow Condensed',sans-serif;font-size:16px;opacity:.48}
.ridge-footer__legal-links a{color:inherit;text-decoration:none}
.ridge-footer__bottom{margin:0!important;padding:0!important;border:0!important;font-family:'Barlow Condensed',sans-serif;font-size:14px;opacity:.34}
@media(max-width:900px){.ridge-footer__columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 34px}}
@media(max-width:560px){.ridge-footer__columns{grid-template-columns:1fr}.ridge-footer__brand{width:125px}.ridge-footer__legal-links{gap:14px 20px}}

/* Ridge 3.0.8 — revised global UI/UX rules + Oura-like motion */
:root{
  --font-display:'Cal Sans',Arial,sans-serif;
  --font-condensed:'Barlow Condensed',Arial,sans-serif;
}

/* Cal Sans should breathe like the supplied mockups — no compressed tracking. */
.ridge-font-cal,
main h1,main h2,main h3,main h4,main h5,main h6,
.card-info .h3,.ridge-product-title,.ridge-cart-product-title,.ridge-review-line__title,
.ridge-cart-review-title,.ridge-order-summary>h2,.ridge-before-checkout h2,.ridge-cart-rec strong,
.ridge-sticky-product-title,.ridge-footer__column h3,.drawer-head h2{
  font-family:'Cal Sans',Arial,sans-serif!important;
  font-weight:400!important;
  letter-spacing:.01em!important;
  font-kerning:normal;
  font-feature-settings:'kern' 1;
}
.ridge-hero-heading__line.ridge-font-cal{letter-spacing:.008em!important}
.ridge-product-title{letter-spacing:.012em!important}
.card-info .h3,.ridge-cart-product-title,.ridge-review-line__title{letter-spacing:.008em!important}

/* Product media: transparent artwork remains transparent; image itself supplies any non-transparent backdrop. */
.ridge-product-gallery__stage{
  height:auto!important;
  aspect-ratio:1/1;
  background:transparent!important;
  border-radius:30px!important;
  overflow:hidden;
}
.ridge-product-gallery__slide,.ridge-product-gallery__placeholder{background:transparent!important}
.ridge-product-gallery__slide img{width:100%;height:100%;object-fit:contain!important;background:transparent!important}

/* Continuous, stable navigation surface with Oura-like expansion motion. */
.ridge-header__frame{
  overflow:hidden;
  transition:background-color .36s cubic-bezier(.22,.61,.36,1),
             box-shadow .42s cubic-bezier(.22,.61,.36,1),
             border-radius .42s cubic-bezier(.22,.61,.36,1);
}
.ridge-nav{
  transition:color .28s ease,background-color .16s linear,border-color .22s ease,
             box-shadow .28s ease,border-radius .36s cubic-bezier(.22,.61,.36,1),
             backdrop-filter .08s linear,-webkit-backdrop-filter .08s linear!important;
}
.ridge-header.is-scrolled:not(.is-mega-open) .ridge-nav{
  background:rgba(234,224,209,var(--ridge-glass-alpha,0))!important;
  backdrop-filter:blur(var(--ridge-glass-blur,0px)) saturate(135%)!important;
  -webkit-backdrop-filter:blur(var(--ridge-glass-blur,0px)) saturate(135%)!important;
  border-color:rgba(255,255,255,var(--ridge-glass-border-alpha,0))!important;
  box-shadow:0 12px 36px rgba(0,0,0,var(--ridge-glass-shadow-alpha,0))!important;
}
.ridge-mega{
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  max-height:0;
  opacity:0;
  visibility:visible!important;
  overflow:hidden;
  transform:translateY(-12px) scaleY(.985);
  transform-origin:top center;
  pointer-events:none;
  transition:max-height .46s cubic-bezier(.22,.61,.36,1),
             opacity .20s ease,
             transform .46s cubic-bezier(.22,.61,.36,1)!important;
}
.ridge-header.is-mega-open .ridge-header__frame{
  background:rgba(234,224,209,.985)!important;
  backdrop-filter:blur(18px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(120%)!important;
  border-radius:0 0 76px 76px!important;
  box-shadow:0 28px 52px rgba(35,35,35,.14)!important;
}
.ridge-header.is-mega-open .ridge-nav{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-color:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.ridge-header.is-mega-open .ridge-mega{
  max-height:360px;
  opacity:1;
  transform:translateY(0) scaleY(1);
  pointer-events:auto;
}
.ridge-mega__inner{
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-radius:0!important;
  padding:8px 58px 40px!important;
}
.ridge-mega__panel.is-active{animation:ridgeMegaContentIn .28s .06s both cubic-bezier(.22,.61,.36,1)}
@keyframes ridgeMegaContentIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Smooth bag blur instead of a delayed jump. */
.drawer{
  opacity:1!important;
  visibility:hidden;
  pointer-events:none;
  transition:visibility 0s linear .46s!important;
}
.drawer.is-open{
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s!important;
}
.drawer-backdrop{
  opacity:0;
  background:rgba(48,43,38,0)!important;
  backdrop-filter:blur(0px) saturate(100%)!important;
  -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
  transition:opacity .34s ease,background-color .42s ease,
             backdrop-filter .42s cubic-bezier(.22,.61,.36,1),
             -webkit-backdrop-filter .42s cubic-bezier(.22,.61,.36,1)!important;
}
.drawer.is-open .drawer-backdrop{
  opacity:1;
  background:rgba(48,43,38,.30)!important;
  backdrop-filter:blur(12px) saturate(92%)!important;
  -webkit-backdrop-filter:blur(12px) saturate(92%)!important;
}
.drawer-panel{
  transform:translateX(104%) scale(.995)!important;
  transition:transform .46s cubic-bezier(.22,.61,.36,1)!important;
}
.drawer.is-open .drawer-panel{transform:translateX(0) scale(1)!important}

/* Floating product Add to Cart island: invisible while original CTA is in view,
   then shrinks down into its bottom position. */
.ridge-sticky-cart{
  position:fixed!important;
  left:50%;
  bottom:24px;
  z-index:65;
  margin:0!important;
  width:min(800px,calc(100% - 48px));
  padding:18px 22px 18px 30px;
  background:rgba(234,224,209,.92)!important;
  backdrop-filter:blur(18px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(120%)!important;
  border-radius:34px!important;
  box-shadow:0 18px 42px rgba(40,36,32,.18)!important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,36px) scale(1.12);
  transform-origin:center bottom;
  transition:opacity .24s ease,visibility 0s linear .38s,
             transform .46s cubic-bezier(.22,.61,.36,1)!important;
}
.ridge-sticky-cart.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0) scale(1);
  transition-delay:0s!important;
}
.ridge-sticky-product-title{font-size:30px!important;line-height:1.05}
.ridge-sticky-cart .ridge-add-button{min-width:280px;min-height:64px;border-radius:22px!important}

/* Collection and standard storefront pages keep the premium rounded page ending above footer. */
.template-collection #MainContent>.shopify-section:last-child>.ridge-page-end,
.template-search #MainContent>.shopify-section:last-child>section,
.template-page #MainContent>.shopify-section:last-child>section,
.template-cart #MainContent>.shopify-section:last-child>section{
  background:var(--cream)!important;
  border-radius:0 0 96px 96px!important;
  overflow:hidden!important;
  position:relative;
  z-index:2;
}
.template-collection .ridge-page-end{padding-bottom:150px!important}

/* Account and home links remain clickable above animated surfaces. */
.ridge-icon-button,[data-account-link],[data-ridge-home-link]{position:relative;z-index:8;pointer-events:auto!important}

@media(max-width:900px){
  .ridge-header.is-mega-open .ridge-header__frame{border-radius:0 0 42px 42px!important}
  .ridge-sticky-cart{bottom:12px;width:calc(100% - 24px);padding:12px 14px 12px 18px;border-radius:24px!important}
  .ridge-sticky-product-title{font-size:20px!important}
  .ridge-sticky-cart .ridge-add-button{min-width:150px;min-height:50px}
  .template-collection #MainContent>.shopify-section:last-child>.ridge-page-end,
  .template-search #MainContent>.shopify-section:last-child>section,
  .template-page #MainContent>.shopify-section:last-child>section,
  .template-cart #MainContent>.shopify-section:last-child>section{border-radius:0 0 56px 56px!important}
}


/* Ridge 3.0.10 — Oura-style directional floating navigation + cart polish */
.ridge-header{
  transition:transform .42s cubic-bezier(.22,.61,.36,1), opacity .28s ease!important;
  will-change:transform;
}
.ridge-header.is-at-top{
  transform:translateY(0)!important;
  opacity:1!important;
}
.ridge-header.is-nav-hidden:not(.is-mega-open){
  transform:translateY(calc(-100% - 28px))!important;
  opacity:0!important;
  pointer-events:none!important;
}
.ridge-header.is-returning{
  transform:translateY(0)!important;
  opacity:1!important;
}

/* At the true top the navigation is part of the page background — no glass tint. */
.ridge-header.is-at-top:not(.is-mega-open) .ridge-nav,
.ridge-header:not(.is-returning):not(.is-mega-open) .ridge-nav{
  background:transparent!important;
  border-color:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}

/* Frosted island appears only when the user scrolls back upward. */
.ridge-header.is-returning:not(.is-mega-open) .ridge-nav{
  background:rgba(234,224,209,.56)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  backdrop-filter:blur(18px) saturate(128%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(128%)!important;
  box-shadow:0 12px 34px rgba(35,35,35,.09)!important;
  border-radius:24px!important;
  overflow:hidden!important;
  isolation:isolate;
}
.ridge-header.is-returning:not(.is-mega-open) .ridge-nav:before{
  border-radius:inherit!important;
  opacity:.08!important;
}
.ridge-header.is-returning:not(.is-mega-open) .ridge-header__frame{
  background:transparent!important;
  box-shadow:none!important;
  border-radius:24px!important;
  overflow:visible!important;
}

/* Expanded menu remains one continuous Mockup #2 surface. */
.ridge-header.is-mega-open{
  transform:translateY(0)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.ridge-header.is-mega-open .ridge-header__frame{
  background:rgba(234,224,209,.985)!important;
  border-radius:0 0 76px 76px!important;
  overflow:hidden!important;
}

/* Review-cart quantity: + 1 − beneath Remove, no native spinner chrome. */
.ridge-review-line__end{min-width:116px;display:flex;flex-direction:column;align-items:flex-end}
.ridge-cart-stepper{
  display:grid!important;
  grid-template-columns:28px 34px 28px!important;
  align-items:center!important;
  justify-content:end!important;
  margin-top:12px!important;
  font-family:'Barlow Condensed',Arial,sans-serif!important;
  font-size:20px!important;
}
.ridge-cart-stepper button,.ridge-cart-stepper input{
  appearance:none!important;-webkit-appearance:none!important;
  border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;
  color:inherit!important;height:30px!important;padding:0!important;text-align:center!important;font:inherit!important;
}
.ridge-cart-stepper button{cursor:pointer!important;font-size:22px!important;line-height:1!important;transition:transform .16s ease,opacity .16s ease!important}
.ridge-cart-stepper button:hover{transform:scale(1.12)}
.ridge-cart-stepper button:active{transform:scale(.92)}
.ridge-cart-stepper input{width:34px!important;-moz-appearance:textfield!important}
.ridge-cart-stepper input::-webkit-outer-spin-button,.ridge-cart-stepper input::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}

@media(max-width:900px){
  .ridge-header.is-returning:not(.is-mega-open) .ridge-nav{border-radius:20px!important}
  .ridge-header.is-mega-open .ridge-header__frame{border-radius:0 0 42px 42px!important}
}
@media(max-width:760px){
  .ridge-review-line__end{min-width:88px}
  .ridge-cart-stepper{grid-template-columns:24px 30px 24px!important}
}


/* Ridge 3.0.11 legal/content alignment + homepage routing */
/* Default content/legal pages align horizontally with the nav's logo-to-bag span. */
.ridge-default-page{
  padding-top:132px!important;
  padding-bottom:150px!important;
  border-radius:0 0 170px 170px;
  position:relative;
  z-index:2;
}
.ridge-default-page__inner{
  width:min(calc(100% - 152px),calc(var(--content) - 68px))!important;
  max-width:none!important;
  margin-inline:auto!important;
}
.ridge-default-page__content{max-width:none!important;width:100%!important;}
.ridge-default-page__content>h1:first-child{display:none!important;}

/* Shopify-hosted policy pages: one title, below the nav, full Ridge content width. */
.shopify-policy__container{
  max-width:none!important;
  width:min(calc(100% - 152px),calc(var(--content) - 68px))!important;
  margin:0 auto!important;
  padding:132px 0 150px!important;
}
.shopify-policy__title{
  text-align:left!important;
  margin:0 0 42px!important;
}
.shopify-policy__title h1{
  font-family:'Cal Sans',Arial,sans-serif!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:1.02!important;
  font-size:clamp(42px,4vw,64px)!important;
  margin:0!important;
}
.shopify-policy__body{
  font-family:'Barlow Condensed',Arial,sans-serif!important;
  font-size:20px!important;
  line-height:1.28!important;
  max-width:none!important;
  width:100%!important;
}
.shopify-policy__body>h1:first-child{display:none!important;}
.shopify-policy__body h2,.shopify-policy__body h3,.shopify-policy__body h4{
  font-family:'Cal Sans',Arial,sans-serif!important;
  font-weight:400!important;
  letter-spacing:0!important;
}
.template-policy #MainContent{
  background:var(--cream);
  border-radius:0 0 170px 170px;
  position:relative;
  z-index:2;
}

/* Give headings natural Cal Sans spacing; never compress display type. */
.ridge-font-cal,main h1,main h2,main h3,main h4,main h5,main h6,
.ridge-product-title,.ridge-cart-product-title,.card-info .h3,.product-title,
.ridge-default-page h1,.shopify-policy__title h1{letter-spacing:0!important;font-kerning:normal!important;}

@media(max-width:760px){
  .ridge-default-page,.shopify-policy__container{padding-top:116px!important;padding-bottom:100px!important;}
  .ridge-default-page{border-radius:0 0 80px 80px;}
  .ridge-default-page__inner,.shopify-policy__container{width:calc(100% - 36px)!important;}
  .template-policy #MainContent{border-radius:0 0 80px 80px;}
  .shopify-policy__body{font-size:18px!important;}
}

/* Ridge 3.0.12 — authoritative nav motion, homepage anchors, and legal title cleanup */
/* Keep the header geometry stable; glass intensity morphs continuously through --ridge-glass. */
.ridge-header{
  --ridge-glass:0;
  transform:translate3d(0,var(--ridge-nav-y,0),0)!important;
  opacity:1!important;
  transition:transform .52s cubic-bezier(.22,.61,.36,1)!important;
  will-change:transform;
}
.ridge-header.is-nav-hidden:not(.is-mega-open){
  --ridge-nav-y:calc(-100% - 30px);
  pointer-events:none!important;
}
.ridge-header:not(.is-nav-hidden){--ridge-nav-y:0px;pointer-events:none}
.ridge-header .ridge-header__frame{pointer-events:auto}

/* At top it is the page background; on upward return it becomes glass gradually, not by class snap. */
.ridge-header:not(.is-mega-open) .ridge-nav{
  background:rgba(234,224,209,calc(var(--ridge-glass) * .58))!important;
  border:1px solid rgba(255,255,255,calc(var(--ridge-glass) * .32))!important;
  -webkit-backdrop-filter:blur(calc(var(--ridge-glass) * 18px)) saturate(calc(100% + var(--ridge-glass) * 28%))!important;
  backdrop-filter:blur(calc(var(--ridge-glass) * 18px)) saturate(calc(100% + var(--ridge-glass) * 28%))!important;
  box-shadow:0 calc(var(--ridge-glass) * 12px) calc(var(--ridge-glass) * 34px) rgba(35,35,35,calc(var(--ridge-glass) * .09))!important;
  border-radius:24px!important;
  overflow:hidden!important;
  isolation:isolate!important;
  transition:background-color .18s linear,border-color .18s linear,box-shadow .18s linear,
             backdrop-filter .18s linear,-webkit-backdrop-filter .18s linear!important;
}
.ridge-header:not(.is-mega-open) .ridge-nav:before{display:none!important}
.ridge-header:not(.is-mega-open) .ridge-header__frame{background:transparent!important;box-shadow:none!important;overflow:visible!important}

/* One continuous Mockup #2 menu surface. */
.ridge-header.is-mega-open .ridge-header__frame{
  background:rgba(234,224,209,.985)!important;
  border-radius:0 0 76px 76px!important;
  overflow:hidden!important;
  box-shadow:0 28px 56px rgba(35,35,35,.14)!important;
  transition:border-radius .36s cubic-bezier(.22,.61,.36,1),box-shadow .36s ease!important;
}
.ridge-header.is-mega-open .ridge-nav,
.ridge-header.is-mega-open .ridge-mega__inner{
  background:transparent!important;border:0!important;box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
.ridge-header.is-mega-open .ridge-mega{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  transform:translateY(0)!important;
  transition:opacity .24s ease,transform .38s cubic-bezier(.22,.61,.36,1),visibility 0s!important;
}

/* Default/legal pages: only one page title even when Shopify page content contains another H1. */
.ridge-default-page__content h1:first-of-type,
.shopify-policy__body .rte > h1:first-of-type,
.shopify-policy__body > h1:first-of-type{display:none!important}

/* Content begins below the nav and spans the visual logo-to-bag width on desktop. */
.ridge-default-page{padding-top:150px!important}
.ridge-default-page__inner,
.shopify-policy__container{width:min(calc(100% - 96px),var(--content))!important;max-width:none!important}
.ridge-default-page__content,.shopify-policy__body{width:100%!important;max-width:none!important}

@media(max-width:900px){
  .ridge-header.is-mega-open .ridge-header__frame{border-radius:0 0 42px 42px!important}
  .ridge-default-page__inner,.shopify-policy__container{width:calc(100% - 36px)!important}
}

/* v3.0.13 — canonical homepage flow */
.ridge-ubd-shell{background:var(--cream);position:relative;padding:0 0 46px}
.ridge-ubd-teaser{background:var(--cream);padding:0 0 34px;position:relative;z-index:2}
.ridge-ubd-teaser__title{height:118px;border-radius:26px;background:#7F8E8F;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;letter-spacing:.015em;transform-origin:center center;will-change:transform,opacity;transition:opacity .12s linear}
.ridge-ubd-panel{background:var(--ubd-bg);color:var(--ubd-text);margin:0 42px;border-radius:42px;overflow:hidden;position:relative}
.ridge-ubd-panel>.ridge-section-inner{padding:0 0 80px}
.ridge-ubd-panel__heading{text-align:center;font-size:62px;line-height:1;margin:0;padding:105px 0 45px;letter-spacing:.012em;transform-origin:center top;will-change:transform,opacity}
.ridge-ubd-blocks{display:flex;flex-direction:column}
.ridge-ubd-feature{min-height:880px;display:flex;align-items:center;padding:90px 0;scroll-margin-top:150px}
.ridge-ubd-feature__grid{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(350px,430px) minmax(0,1fr);gap:90px;align-items:center}
.ridge-ubd-feature__grid.is-reversed .ridge-ubd-feature__gallery{order:2}
.ridge-ubd-feature__copy h3{font-size:48px;line-height:1.02;margin:0 0 28px;letter-spacing:.012em}
.ridge-ubd-feature__body{font-size:27px;line-height:1.1}
.ridge-ubd-feature__body p{margin:0 0 28px}
.ridge-ubd-feature blockquote{font-size:25px;font-weight:600;margin:32px 0 0}
.ridge-ubd-feature:last-child{padding-bottom:135px}

/* One continuous charcoal editorial section; question appears only once. */
.ridge-all-feel{background:var(--af-bg);color:var(--af-text);margin:0 42px;border-radius:42px 42px 0 0;overflow:hidden;position:relative}
.ridge-all-feel__intro{min-height:1420px;padding:125px 0 130px;display:flex;flex-direction:column;justify-content:flex-start}
.ridge-all-feel__headline{width:min(560px,100%);margin-left:170px}
.ridge-all-feel__body{width:min(700px,100%);font-size:26px;line-height:1.12;margin:120px 0 0 170px}
.ridge-all-feel__question{font-style:italic;font-size:23px;text-align:center;margin:115px auto 0;padding:0;width:min(900px,90%)}
.ridge-all-feel__continuation-body{width:min(760px,100%);font-size:25px;line-height:1.15;margin:120px auto 0}

/* Homepage-only signup visually bridges editorial into the global footer. */
.ridge-home-signup{margin:0 42px;background:var(--signup-bg);color:var(--signup-text);padding:70px 0 95px;text-align:center;border-radius:0 0 72px 72px;position:relative;z-index:2}
.template-index .ridge-footer{margin-top:-72px;padding-top:72px}

@media(max-width:1000px){
  .ridge-ubd-panel,.ridge-all-feel,.ridge-home-signup{margin-inline:20px}
  .ridge-ubd-feature__grid{gap:48px;padding-inline:28px}
  .ridge-ubd-panel__heading{font-size:52px}
  .ridge-all-feel__headline,.ridge-all-feel__body{margin-left:60px}
}
@media(max-width:760px){
  .ridge-ubd-shell{padding-bottom:26px}
  .ridge-ubd-teaser{padding-bottom:22px}
  .ridge-ubd-teaser__title{height:88px;border-radius:22px;font-size:18px}
  .ridge-ubd-panel,.ridge-all-feel,.ridge-home-signup{margin-inline:10px}
  .ridge-ubd-panel{border-radius:28px}
  .ridge-ubd-panel>.ridge-section-inner{width:100%;padding-bottom:45px}
  .ridge-ubd-panel__heading{font-size:40px;padding:78px 20px 25px}
  .ridge-ubd-feature{min-height:auto;padding:70px 20px;scroll-margin-top:105px}
  .ridge-ubd-feature__grid,.ridge-ubd-feature__grid.is-reversed{grid-template-columns:1fr;gap:42px;padding:0}
  .ridge-ubd-feature__grid.is-reversed .ridge-ubd-feature__gallery{order:0}
  .ridge-ubd-feature__copy h3{font-size:38px}
  .ridge-ubd-feature__body{font-size:22px}
  .ridge-ubd-feature blockquote{font-size:21px}
  .ridge-all-feel{border-radius:28px 28px 0 0}
  .ridge-all-feel__intro{min-height:auto;padding:95px 24px 90px}
  .ridge-all-feel__headline,.ridge-all-feel__body{margin-left:0}
  .ridge-all-feel__body{margin-top:80px}
  .ridge-all-feel__question{margin-top:80px}
  .ridge-all-feel__continuation-body{margin-top:75px}
  .ridge-home-signup{border-radius:0 0 42px 42px;padding:55px 0 75px}
  .template-index .ridge-footer{margin-top:-42px;padding-top:42px}
}

/* ================================================================
   Ridge 3.0.14 — authoritative nav / chevron / homepage overrides
   ================================================================ */
.ridge-chevron,.ridge-mobile-chevron,.ridge-inline-chevron,.ridge-size-chevron,.ridge-country-chevron{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
.ridge-chevron-svg{width:11px;height:7px;display:block;overflow:visible;transition:transform .24s cubic-bezier(.22,.61,.36,1)}
.ridge-nav__trigger[aria-expanded="true"] .ridge-chevron-svg,
.ridge-mobile-menu__parent[aria-expanded="true"] .ridge-chevron-svg,
.ridge-size-toggle[aria-expanded="true"] .ridge-chevron-svg,
details[open] .ridge-inline-chevron .ridge-chevron-svg{transform:rotate(180deg)}
.ridge-size-toggle[aria-expanded=true] .ridge-size-chevron{transform:none!important}
.ridge-country-chevron .ridge-chevron-svg{width:9px;height:6px}

/* The navigation frame is borderless in every state. This prevents the transient dark ring
   that could appear after leaving an expanded menu. */
.ridge-header__frame,.ridge-nav,.ridge-mega,.ridge-mega__inner,
.ridge-header.is-mega-open .ridge-header__frame,.ridge-header.is-mega-closing .ridge-header__frame,
.ridge-header.is-mega-open .ridge-nav,.ridge-header.is-mega-closing .ridge-nav,
.ridge-header.is-mega-open .ridge-mega__inner,.ridge-header.is-mega-closing .ridge-mega__inner{
  border:0!important;outline:0!important;
}
.ridge-header__frame{transition:background-color .30s cubic-bezier(.22,.61,.36,1),border-radius .42s cubic-bezier(.22,.61,.36,1),box-shadow .34s ease!important}

/* At rest, nav is part of the section itself. */
.ridge-header:not(.is-mega-open):not(.is-mega-closing) .ridge-header__frame{background:transparent!important;box-shadow:none!important}
.ridge-header:not(.is-mega-open):not(.is-mega-closing) .ridge-nav{background:transparent!important;box-shadow:none!important;border:0!important}

/* Mockup #2: one continuous expanding surface. The mega area participates in the frame's
   height rather than sitting on a separate panel, so there is no two-tone seam. */
.ridge-header.is-mega-open .ridge-header__frame,
.ridge-header.is-mega-closing .ridge-header__frame{
  background:rgba(234,224,209,.975)!important;
  color:var(--ink)!important;
  border-radius:0 0 72px 72px!important;
  box-shadow:0 24px 52px rgba(40,40,40,.13)!important;
  overflow:hidden!important;
  backdrop-filter:blur(20px) saturate(118%)!important;
  -webkit-backdrop-filter:blur(20px) saturate(118%)!important;
}
.ridge-header.is-mega-open .ridge-nav,.ridge-header.is-mega-closing .ridge-nav{
  color:var(--ink)!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.ridge-mega{
  position:relative!important;top:auto!important;left:auto!important;right:auto!important;
  max-height:0!important;opacity:0!important;visibility:hidden!important;transform:none!important;
  overflow:hidden!important;pointer-events:none!important;
  transition:max-height .40s cubic-bezier(.22,.61,.36,1),opacity .22s ease,visibility 0s linear .40s!important;
}
.ridge-header.is-mega-open .ridge-mega{
  max-height:350px!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  transition:max-height .42s cubic-bezier(.22,.61,.36,1),opacity .24s .05s ease,visibility 0s!important;
}
.ridge-header.is-mega-closing .ridge-mega{
  max-height:0!important;opacity:0!important;visibility:visible!important;pointer-events:none!important;
  transition:max-height .32s cubic-bezier(.4,0,.6,1),opacity .18s ease!important;
}
.ridge-mega__inner{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0!important;padding:2px 58px 42px!important}
.ridge-header.is-mega-open .ridge-logo__dark,.ridge-header.is-mega-closing .ridge-logo__dark{display:block!important}
.ridge-header.is-mega-open .ridge-logo__light,.ridge-header.is-mega-closing .ridge-logo__light{display:none!important}
.ridge-header.is-mega-open .ridge-logo>img,.ridge-header.is-mega-closing .ridge-logo>img{filter:none!important}

/* No black focus/hover ring on the navigation after mouse interaction. */
.ridge-nav__trigger,.ridge-nav__link,.ridge-icon-button,.ridge-mega a{outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}
.ridge-nav__trigger:focus,.ridge-nav__trigger:focus-visible,.ridge-nav__link:focus,.ridge-nav__link:focus-visible,.ridge-mega a:focus,.ridge-mega a:focus-visible{outline:none!important;box-shadow:none!important}

/* Canonical homepage is one continuous visual flow. */
.template-index #MainContent{overflow:clip}

/* Native select controls use the same slender V-chevron language as the mockups. */
select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25 11 1.25' fill='none' stroke='%234e4e4e' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 15px center!important;background-size:12px 8px!important;padding-right:40px!important;
}
@media(max-width:760px){
  .ridge-header.is-mega-open .ridge-header__frame,.ridge-header.is-mega-closing .ridge-header__frame{border-radius:0 0 42px 42px!important}
  .ridge-mega__inner{padding:4px 20px 28px!important}
  .ridge-header.is-mega-open .ridge-mega{max-height:520px!important}
}

/* ================================================================
   Ridge 3.0.15 — canonical homepage + fully rounded expanded nav
   ================================================================ */
/* Mockup #2: the expanded navigation is one complete rounded rectangle. */
.ridge-header.is-mega-open .ridge-header__frame,
.ridge-header.is-mega-closing .ridge-header__frame{
  border-radius:42px!important;
  overflow:hidden!important;
}
.ridge-header.is-mega-open .ridge-nav,
.ridge-header.is-mega-closing .ridge-nav{
  border-radius:42px 42px 0 0!important;
}
.ridge-header.is-mega-open .ridge-mega,
.ridge-header.is-mega-closing .ridge-mega{
  border-radius:0 0 42px 42px!important;
}
/* Keep frame width stable while expanding so no half-rounded side appears. */
.ridge-header.is-mega-open .ridge-header__frame,
.ridge-header.is-mega-closing .ridge-header__frame{
  width:min(calc(100% - 84px),var(--content))!important;
}
/* Remove any transient focus/hover line around the expanded surface. */
.ridge-header__frame,.ridge-header__frame:hover,.ridge-header__frame:focus-within,
.ridge-nav,.ridge-nav:hover,.ridge-mega,.ridge-mega:hover{
  outline:none!important;border:none!important;
}

/* Homepage visual flow: one blue feature container followed by one charcoal editorial container. */
.template-index .ridge-ubd-shell{background:var(--cream)!important;padding-bottom:42px!important}
.template-index .ridge-ubd-panel{margin:0 42px!important;border-radius:42px!important;overflow:hidden!important}
.template-index .ridge-ubd-blocks{display:block!important}
.template-index .ridge-ubd-feature{border-radius:0!important;margin:0!important;background:transparent!important}
.template-index .ridge-ubd-feature + .ridge-ubd-feature{border-top:0!important}
.template-index .ridge-all-feel{display:block!important;margin:0 42px!important;border-radius:42px!important;background:var(--af-bg)!important}
.template-index .ridge-home-signup{display:block!important}
@media(max-width:760px){
  .ridge-header.is-mega-open .ridge-header__frame,.ridge-header.is-mega-closing .ridge-header__frame{border-radius:28px!important;width:calc(100% - 24px)!important}
  .ridge-header.is-mega-open .ridge-nav,.ridge-header.is-mega-closing .ridge-nav{border-radius:28px 28px 0 0!important}
  .ridge-header.is-mega-open .ridge-mega,.ridge-header.is-mega-closing .ridge-mega{border-radius:0 0 28px 28px!important}
  .template-index .ridge-ubd-panel,.template-index .ridge-all-feel{margin-inline:10px!important;border-radius:28px!important}
}


/* Ridge 3.0.16 — native homepage routing and canonical nav label */
html{scroll-behavior:smooth}
.ridge-nav__link[href*="#all-for-the-feel"],.ridge-mobile-menu__parent[href*="#all-for-the-feel"]{text-transform:uppercase;letter-spacing:.01em}
#all-for-the-feel{display:block!important;visibility:visible!important;opacity:1!important}


/* Ridge 3.0.17 — routing/account/cart correctness */
.ridge-ubd-shell--no-teaser{padding-top:0!important}
.ridge-ubd-shell--no-teaser .ridge-ubd-panel{margin-top:0!important}
.template-page-ugly-by-design .ridge-ubd-panel{margin-top:0!important}
.template-page-ugly-by-design .ridge-all-feel{margin-top:46px!important;border-radius:42px!important}
.ridge-cart-stepper button{outline:0!important;box-shadow:none!important}
.ridge-cart-stepper button:focus,.ridge-cart-stepper button:focus-visible{outline:0!important;box-shadow:none!important}

/* v3.0.18 homepage routing + unified teaser */
.ridge-home-ubd-teaser{background:var(--cream);padding:34px 0 42px;position:relative;z-index:2}
.ridge-home-ubd-teaser__title{display:block;width:max-content;margin:0 auto;text-decoration:none;color:var(--ink);font-size:clamp(18px,1.45vw,28px);letter-spacing:0;transition:transform .55s cubic-bezier(.2,.75,.2,1),opacity .4s ease}
.ridge-ubd-shell--no-teaser{background:var(--cream)}
.ridge-cart-stepper.is-loading{opacity:.55;pointer-events:none}

/* ================================================================
   Ridge 3.0.19 — homepage composition / UBD morph / editorial / footer
   ================================================================ */
/* All homepage story containers share the exact same horizontal frame. */
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.template-index .ridge-home-signup{
  margin-left:42px!important;
  margin-right:42px!important;
  width:auto!important;
}

/* Hero is intentionally shorter so the beginning of UGLY BY DESIGN is visible
   on a desktop viewport, as in Mockup #1. */
.template-index .ridge-hero{
  height:clamp(520px,65vh,660px)!important;
  margin-bottom:26px!important;
  border-radius:42px!important;
}

/* The UBD title is now a single title inside the actual blue panel. It begins
   visually small and smoothly resolves to full heading scale while approaching. */
.template-index .ridge-ubd-shell{padding-top:0!important;padding-bottom:42px!important}
.template-index .ridge-ubd-panel__heading{
  padding-top:54px!important;
  padding-bottom:18px!important;
  transform:translateY(22px) scale(.38);
  opacity:.48;
  transform-origin:center top;
  will-change:transform,opacity;
}
.template-index .ridge-home-ubd-teaser{display:none!important}

/* Roughly 30% less vertical air between the three feature blocks. */
.template-index .ridge-ubd-feature{
  min-height:616px!important;
  padding-top:63px!important;
  padding-bottom:63px!important;
}
.template-index .ridge-ubd-feature:last-child{padding-bottom:92px!important}

/* Cream remains visible around the rounded blue end before editorial begins. */
.template-index .ridge-all-feel--embedded{
  margin-top:42px!important;
  border-radius:42px!important;
  display:block!important;
}
.template-index .ridge-all-feel--embedded .ridge-all-feel__intro{
  min-height:1180px!important;
}

/* Signup uses the same horizontal frame as Hero / UBD / editorial. */
.template-index .ridge-home-signup{
  margin-top:28px!important;
  border-radius:42px!important;
}

/* Footer gradient provides separation from charcoal sections so their rounded
   lower corners remain readable. */
.ridge-footer{
  background:linear-gradient(180deg,#303030 0%,#252525 34%,#1f1f1f 100%)!important;
}

/* Hash targets should align cleanly after the floating nav has hidden. */
.ridge-ubd-feature{scroll-margin-top:28px!important}
#all-for-the-feel{scroll-margin-top:28px!important}

@media(max-width:1000px){
  .template-index .ridge-hero,.template-index .ridge-ubd-panel,.template-index .ridge-all-feel,.template-index .ridge-home-signup{margin-left:20px!important;margin-right:20px!important}
}
@media(max-width:760px){
  .template-index .ridge-hero,.template-index .ridge-ubd-panel,.template-index .ridge-all-feel,.template-index .ridge-home-signup{margin-left:10px!important;margin-right:10px!important}
  .template-index .ridge-hero{height:clamp(500px,72vh,620px)!important;border-radius:28px!important}
  .template-index .ridge-ubd-panel__heading{padding-top:42px!important;transform:translateY(14px) scale(.48)}
  .template-index .ridge-ubd-feature{padding-top:49px!important;padding-bottom:49px!important}
  .template-index .ridge-all-feel--embedded,.template-index .ridge-home-signup{border-radius:28px!important}
}

/* v3.0.20 — Global navigation typography
   Every navigation/menu label is uppercase Cal Sans, including dropdowns and mobile navigation. */
.ridge-nav__link,
.ridge-nav__trigger,
.ridge-mega-card,
.ridge-mega__group a,
.ridge-mega__group a:not(.ridge-mega__heading),
.ridge-mega__heading,
.ridge-mega__all,
.ridge-mobile-menu__item > a,
.ridge-mobile-menu__parent,
.ridge-mobile-menu__children a {
  font-family:'Cal Sans',sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.01em!important;
}

/* Ridge 3.0.21 — floating Add to Cart island scaled down 40% */
@media (min-width: 751px){
  .ridge-sticky-cart{
    width:min(480px,calc(100% - 48px))!important;
    padding:11px 13px 11px 18px!important;
    border-radius:24px!important;
    gap:12px!important;
  }
  .ridge-sticky-product-title{
    font-size:18px!important;
    line-height:1.08!important;
  }
  .ridge-sticky-cart .ridge-add-button{
    min-width:168px!important;
    min-height:42px!important;
    padding:0 20px!important;
    border-radius:15px!important;
    font-size:18px!important;
  }
}


/* ================================================================
   Ridge 3.0.22 — Cal Sans caps / hero top edge / editorial alignment /
   adaptive mega-card title contrast
   ================================================================ */
/* Global type rule: anything rendered in Cal Sans is uppercase. */
.ridge-font-cal,
.ridge-product-title,
.ridge-cart-product-title,
.ridge-sticky-product-title,
.ridge-mega-card__title,
.ridge-nav__link,
.ridge-nav__trigger,
.ridge-mobile-menu__parent,
.ridge-mobile-menu__item > a,
.ridge-mobile-menu__children a{
  text-transform:uppercase!important;
}

/* Homepage hero: square/flush top edge, rounded bottom only. */
.template-index .ridge-hero{
  border-radius:0 0 42px 42px!important;
}
@media(max-width:760px){
  .template-index .ridge-hero{border-radius:0 0 28px 28px!important}
}

/* ALL FOR THE FEEL: continuation copy aligns to the same left content rail. */
.ridge-all-feel__continuation-body{
  margin-left:170px!important;
  margin-right:0!important;
  text-align:left!important;
  width:min(760px,calc(100% - 340px))!important;
}
@media(max-width:1000px){
  .ridge-all-feel__continuation-body{
    margin-left:60px!important;
    width:min(760px,calc(100% - 120px))!important;
  }
}
@media(max-width:760px){
  .ridge-all-feel__continuation-body{
    margin-left:0!important;
    width:100%!important;
  }
}

/* SHOP visual cards: title automatically switches to dark on bright imagery. */
.ridge-mega-card__title{
  transition:color .22s ease,text-shadow .22s ease;
}
.ridge-mega-card.is-light-image .ridge-mega-card__title{
  color:#4E4E4E!important;
  text-shadow:none!important;
}
.ridge-mega-card:not(.is-light-image) .ridge-mega-card__title{
  color:#fff!important;
}


/* Ridge 3.0.23 — customer account routing + square-top expanded navigation */
.ridge-header.is-mega-open .ridge-header__frame{
  border-radius:0 0 76px 76px!important;
  overflow:hidden!important;
}
.ridge-header.is-mega-open .ridge-nav{
  border-radius:0!important;
}
.ridge-header.is-mega-open .ridge-mega__inner{
  border-radius:0 0 76px 76px!important;
}
@media(max-width:760px){
  .ridge-header.is-mega-open .ridge-header__frame,
  .ridge-header.is-mega-open .ridge-mega__inner{
    border-radius:0 0 42px 42px!important;
  }
}


/* Ridge 3.0.27 — stable bag opening + account editor handoff */
.ridge-header.is-cart-active{
  transform:translate3d(0,0,0)!important;
  transition:none!important;
}
.ridge-header.is-cart-active .ridge-header__frame{
  transition:none!important;
}
/* Opening the bag is independent of mega-nav geometry; never flash/expand the menu. */
.ridge-header.is-cart-active:not(.is-mega-open) .ridge-mega{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
body.ridge-cart-drawer-open .ridge-header{will-change:auto!important;}

/* v3.0.28 — cart-count badge uses the dark interaction blue */
.ridge-cart-count{
  background:#3447A6 !important;
  color:#fff !important;
}


/* v3.0.29 — bag drawer opens without changing header/nav state */
.ridge-header.is-cart-active{transform:none!important;}
body.ridge-cart-drawer-open .ridge-header__frame,
body.ridge-cart-drawer-open .ridge-nav{transition:none!important;}

/* v3.0.30 — Shopify-native account component + direct cart navigation */
.ridge-account-component{display:grid;place-items:center;width:30px;height:38px;position:relative;z-index:8;--shopify-account-signed-in-avatar-size:30px}
.ridge-account-component::part(signed-out-avatar){padding:0;width:30px;height:38px;display:grid;place-items:center;background:transparent;border:0;box-shadow:none}
.ridge-account-slot{display:grid;place-items:center;width:30px;height:38px;color:inherit}
.ridge-account-slot svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ridge-account-component:focus,.ridge-account-component:focus-visible,.ridge-account-slot:focus,.ridge-account-slot:focus-visible{outline:none!important;box-shadow:none!important}
@media(max-width:749px){.ridge-nav__actions .ridge-icon-button:first-child{display:grid!important}.ridge-account-component{width:26px;height:34px;--shopify-account-signed-in-avatar-size:26px}.ridge-account-slot{width:26px;height:34px}.ridge-account-slot svg{width:22px;height:22px}}

/* Ridge 3.0.31 — deliberate mega-menu hover intent */
.ridge-nav__links{pointer-events:none!important}
.ridge-nav__links>.ridge-nav__link{pointer-events:auto!important}
.ridge-nav__trigger{display:inline-flex!important;align-items:center!important;width:auto!important;min-width:0!important}

/* ================================================================
   Ridge 3.0.32 — mobile responsive system
   Oura-inspired mobile behavior: calm compact header, single-column
   storytelling, full-width touch targets, no squeezed desktop grids.
   ================================================================ */
@media (max-width: 760px) {
  :root { --mobile-gutter: 14px; }
  html, body { overflow-x: hidden; }
  body { font-size: 17px; }

  /* Mobile header: compact, stable, and intentionally separate from desktop mega-nav. */
  .ridge-header { top: 20px; }
  .ridge-header__frame {
    width: calc(100% - 20px)!important;
    margin: 8px auto 0!important;
    overflow: visible!important;
  }
  .ridge-nav {
    height: 62px!important;
    padding: 0 14px!important;
    display: flex!important;
    align-items: center!important;
    gap: 8px!important;
    border-radius: 18px!important;
  }
  .ridge-logo {
    position: static!important;
    transform: none!important;
    width: min(var(--nav-mobile-logo-width, 100px), 92px)!important;
    flex: 0 0 auto!important;
    order: 1!important;
  }
  .ridge-nav__links, .ridge-mega { display: none!important; }
  .ridge-mobile-toggle {
    display: flex!important;
    order: 2!important;
    margin-left: auto!important;
    width: 34px!important;
    height: 34px!important;
    padding: 0!important;
    align-items: center!important;
    justify-content: center!important;
    gap: 4px!important;
  }
  .ridge-mobile-toggle span {
    width: 18px!important;
    transform-origin: center;
    transition: transform .28s cubic-bezier(.22,.61,.36,1), opacity .18s ease;
  }
  .ridge-header.is-mobile-open .ridge-mobile-toggle span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
  .ridge-header.is-mobile-open .ridge-mobile-toggle span:nth-child(2){opacity:0}
  .ridge-header.is-mobile-open .ridge-mobile-toggle span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
  .ridge-nav__actions {
    display: flex!important;
    grid-column: auto!important;
    order: 3!important;
    justify-self: auto!important;
    margin-left: 2px!important;
    gap: 10px!important;
  }
  .ridge-account-component, .ridge-account-slot, .ridge-icon-button {
    width: 30px!important;
    height: 34px!important;
  }
  .ridge-account-slot svg, .ridge-icon-button svg { width: 22px!important; height: 22px!important; }
  .ridge-cart-count { top: -1px!important; right: -3px!important; }

  /* Mobile menu becomes one clean sheet below the nav, not a miniature desktop menu. */
  .ridge-mobile-menu {
    display: block!important;
    left: 0!important;
    right: 0!important;
    top: 70px!important;
    width: 100%!important;
    padding: 0!important;
    transform: translateY(-8px) scale(.99)!important;
    transform-origin: top center;
    transition: opacity .24s ease, transform .34s cubic-bezier(.22,.61,.36,1), visibility .24s!important;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu { transform: translateY(0) scale(1)!important; }
  .ridge-mobile-menu__inner {
    max-height: calc(100svh - 104px)!important;
    overflow-y: auto!important;
    padding: 24px 22px 28px!important;
    border-radius: 0 0 28px 28px!important;
    background: rgba(234,224,209,.97)!important;
    box-shadow: 0 22px 44px rgba(35,35,35,.14)!important;
    -webkit-overflow-scrolling: touch;
  }
  .ridge-mobile-menu__parent, .ridge-mobile-menu__item > a {
    font-size: 22px!important;
    line-height: 1.08!important;
    min-height: 50px!important;
    padding: 12px 0!important;
  }
  .ridge-mobile-menu__children {
    display: grid!important;
    grid-template-columns: 1fr!important;
    gap: 0!important;
    padding: 0 0 12px 16px!important;
  }
  .ridge-mobile-menu__children[hidden] { display: none!important; }
  .ridge-mobile-menu__children a {
    font-size: 18px!important;
    line-height: 1.15!important;
    padding: 9px 0!important;
  }

  /* Hero keeps visual impact without consuming the whole phone viewport. */
  .template-index .ridge-hero, .ridge-hero {
    margin-left: var(--mobile-gutter)!important;
    margin-right: var(--mobile-gutter)!important;
    height: min(68svh, 600px)!important;
    min-height: 470px!important;
    border-radius: 0 0 28px 28px!important;
  }
  .ridge-hero__content { padding: 94px 20px 32px!important; }
  .ridge-hero-heading__line { font-size: min(var(--line-size-mobile), 17vw)!important; letter-spacing: .005em!important; }
  .ridge-hero__body { max-width: 32rem!important; margin-top: 18px!important; font-size: 17px!important; line-height: 1.3!important; }

  /* One continuous UGLY BY DESIGN story, one column on phones. */
  .template-index .ridge-ubd-panel, .ridge-ubd-panel {
    margin-left: var(--mobile-gutter)!important;
    margin-right: var(--mobile-gutter)!important;
    border-radius: 28px!important;
  }
  .ridge-ubd-panel__heading, .template-index .ridge-ubd-panel__heading {
    font-size: clamp(34px, 10vw, 46px)!important;
    padding: 54px 18px 18px!important;
    line-height: 1!important;
  }
  .ridge-ubd-feature, .template-index .ridge-ubd-feature {
    min-height: 0!important;
    padding: 34px 18px 48px!important;
    scroll-margin-top: 18px!important;
  }
  .ridge-ubd-feature__grid, .ridge-ubd-feature__grid.is-reversed {
    display: grid!important;
    grid-template-columns: 1fr!important;
    gap: 28px!important;
    padding: 0!important;
  }
  .ridge-ubd-feature__grid.is-reversed .ridge-ubd-feature__gallery { order: 0!important; }
  .ridge-ubd-feature__gallery .ridge-feature-gallery__stage {
    width: 100%!important;
    height: auto!important;
    aspect-ratio: 1/1!important;
    border-radius: 24px!important;
  }
  .ridge-ubd-feature__copy h3 { font-size: clamp(30px, 9vw, 40px)!important; margin-bottom: 18px!important; }
  .ridge-ubd-feature__body { font-size: 19px!important; line-height: 1.22!important; }
  .ridge-ubd-feature__body p { margin-bottom: 18px!important; }
  .ridge-ubd-feature blockquote { font-size: 18px!important; line-height: 1.25!important; margin-top: 22px!important; }
  .ridge-ubd-feature:last-child { padding-bottom: 62px!important; }

  /* ALL FOR THE FEEL becomes a readable single editorial column. */
  .template-index .ridge-all-feel, .ridge-all-feel {
    margin-left: var(--mobile-gutter)!important;
    margin-right: var(--mobile-gutter)!important;
    border-radius: 28px!important;
  }
  .ridge-all-feel__intro {
    min-height: 0!important;
    display: block!important;
    padding: 70px 22px 74px!important;
  }
  .ridge-all-feel__headline, .ridge-all-feel__body,
  .ridge-all-feel__continuation-body {
    width: 100%!important;
    max-width: none!important;
    margin-left: 0!important;
    margin-right: 0!important;
    text-align: left!important;
  }
  .ridge-all-feel__top { font-size: 38px!important; line-height: 1!important; }
  .ridge-all-feel__editorial { font-size: clamp(68px, 23vw, 92px)!important; line-height: .9!important; margin-top: 12px!important; }
  .ridge-all-feel__subtitle { font-size: 20px!important; margin-top: 26px!important; }
  .ridge-all-feel__body { font-size: 19px!important; line-height: 1.25!important; margin-top: 54px!important; }
  .ridge-all-feel__question { font-size: 18px!important; line-height: 1.25!important; padding-top: 58px!important; margin: 0!important; }
  .ridge-all-feel__continuation-body { font-size: 19px!important; line-height: 1.25!important; margin-top: 58px!important; }

  /* Homepage signup keeps the same horizontal frame as the hero/story blocks. */
  .template-index .ridge-home-signup, .ridge-home-signup {
    margin-left: var(--mobile-gutter)!important;
    margin-right: var(--mobile-gutter)!important;
    border-radius: 28px!important;
    padding: 54px 18px 62px!important;
  }
  .ridge-home-signup__inner { width: 100%!important; max-width: 460px!important; }
  .ridge-home-signup h2 { font-size: 20px!important; line-height: 1.15!important; }
  .ridge-home-signup p { font-size: 21px!important; line-height: 1.18!important; }
  .ridge-home-signup__phone-row { grid-template-columns: 88px minmax(0,1fr)!important; }

  /* Collections: one comfortable product column on phone. */
  .template-collection main { padding-top: 96px!important; }
  .template-collection .page-width { width: calc(100% - 28px)!important; }
  .section-head h1 { font-size: clamp(42px, 14vw, 62px)!important; }
  .collection-toolbar { flex-direction: column!important; align-items: flex-start!important; gap: 12px!important; }
  .product-grid { grid-template-columns: 1fr!important; gap: 32px!important; }
  .product-grid .card-media { border-radius: 24px!important; }
  .product-grid .card-info .h3 { font-size: 23px!important; }

  /* Product page: media first, options second, touch-friendly controls. */
  .ridge-product { padding: 100px 0 64px!important; min-height: 0!important; }
  .ridge-product .ridge-section-inner { width: calc(100% - 28px)!important; }
  .ridge-product__grid { grid-template-columns: 1fr!important; gap: 34px!important; }
  .ridge-product-gallery__stage { width: 100%!important; height: auto!important; aspect-ratio: 1/1!important; border-radius: 24px!important; }
  .ridge-product-info h1 { font-size: clamp(38px, 12vw, 52px)!important; }
  .ridge-product-rating { font-size: 18px!important; margin-bottom: 26px!important; }
  .ridge-option-group legend, .ridge-quantity-label, .ridge-purchase-label { font-size: 27px!important; }
  .ridge-option-buttons { gap: 9px!important; }
  .ridge-option-button { min-height: 44px!important; padding: 9px 14px!important; font-size: 18px!important; }
  .ridge-purchase-options { flex-direction: column!important; gap: 10px!important; }
  .ridge-purchase-card { width: 100%!important; min-width: 0!important; }
  .ridge-add-button { min-height: 54px!important; font-size: 20px!important; }
  .ridge-sticky-cart {
    width: calc(100% - 28px)!important;
    bottom: 12px!important;
    padding: 9px 10px 9px 14px!important;
    border-radius: 21px!important;
    gap: 9px!important;
  }
  .ridge-sticky-product-title { font-size: 15px!important; line-height: 1.05!important; }
  .ridge-sticky-cart .ridge-add-button { min-width: 126px!important; min-height: 42px!important; font-size: 16px!important; padding: 0 14px!important; border-radius: 14px!important; }

  /* Review cart: single column with balanced line items and summary. */
  .ridge-review-cart { padding: 104px 0 84px!important; }
  .ridge-review-cart__shell { width: calc(100% - 28px)!important; grid-template-columns: 1fr!important; gap: 44px!important; }
  .ridge-cart-review-title, .ridge-order-summary > h2 { font-size: 40px!important; }
  .ridge-delivery-note { padding: 18px!important; }
  .ridge-review-line {
    grid-template-columns: 82px minmax(0,1fr) auto!important;
    gap: 14px!important;
    padding: 16px!important;
  }
  .ridge-review-line__media { width: 82px!important; height: 82px!important; }
  .ridge-review-line__title { font-size: 20px!important; }
  .ridge-review-line__end {
    grid-column: 3!important;
    min-width: 76px!important;
    flex-direction: column!important;
    align-items: flex-end!important;
    justify-content: flex-start!important;
  }
  .ridge-cart-stepper { margin-top: 10px!important; }
  .ridge-order-summary { position: static!important; }
  .ridge-order-summary__card { padding: 22px!important; }

  /* Text/contact pages stay within a readable phone measure. */
  .ridge-default-page, .shopify-policy__container { padding-top: 106px!important; padding-bottom: 84px!important; }
  .ridge-default-page__inner, .shopify-policy__container { width: calc(100% - 28px)!important; }
  .ridge-default-page h1, .shopify-policy__title h1 { font-size: clamp(40px, 13vw, 54px)!important; }
  .ridge-default-page__content, .shopify-policy__body { font-size: 17px!important; line-height: 1.35!important; }
  .ridge-contact-page { padding: 106px 0 104px!important; }
  .ridge-contact-page__inner { width: calc(100% - 28px)!important; }
  .ridge-contact-page__grid { grid-template-columns: 1fr!important; gap: 28px!important; }

  /* Footer deliberately becomes one column on phone. */
  .ridge-footer__main { padding-top: 88px!important; }
  .ridge-footer .ridge-section-inner { width: calc(100% - 36px)!important; }
  .ridge-footer__columns { grid-template-columns: 1fr!important; gap: 34px!important; }
  .ridge-footer__column h3 { font-size: 23px!important; margin-bottom: 14px!important; }
  .ridge-footer__column a, .ridge-footer__column p { font-size: 19px!important; }
  .ridge-footer__rule { margin: 38px 0 18px!important; }
  .ridge-footer__legal-links { gap: 12px 18px!important; font-size: 14px!important; }

  /* Drawer remains usable if invoked elsewhere. */
  .drawer-panel { width: min(100vw, 430px)!important; padding: 24px 18px!important; }
  .drawer-head h2 { font-size: 34px!important; }
}

@media (max-width: 420px) {
  .ridge-home-signup__phone-row { grid-template-columns: 1fr!important; }
  .ridge-country-code { justify-content: flex-start!important; padding: 0 16px!important; }
  .ridge-review-line { grid-template-columns: 72px minmax(0,1fr)!important; }
  .ridge-review-line__media { width: 72px!important; height: 72px!important; }
  .ridge-review-line__end { grid-column: 2!important; margin-top: 8px!important; width: 100%!important; min-width: 0!important; display: grid!important; grid-template-columns: 1fr auto!important; align-items: center!important; }
  .ridge-review-line__end > strong { justify-self: start!important; }
  .ridge-cart-remove { justify-self: end!important; }
  .ridge-cart-stepper { grid-column: 2!important; justify-self: end!important; }
  .ridge-sticky-product-title { max-width: 42%!important; }
}


/* ================================================================
   Ridge 3.0.33 — click-only mega activation + mobile header geometry
   ================================================================ */
/* Hover may underline/highlight the trigger, but it must never alter the
   nav surface geometry. Expansion is controlled exclusively by JS click/tap. */
.ridge-nav__trigger:hover,.ridge-nav__trigger:focus,.ridge-nav__trigger:focus-visible{
  background:transparent!important;
  box-shadow:none!important;
  outline:none!important;
}

/* Keep account and bag icons on a shared optical center line. */
.ridge-nav__actions{align-items:center!important}
.ridge-account-component,.ridge-account-slot,.ridge-icon-button{align-self:center!important;vertical-align:middle!important}
.ridge-account-slot svg,.ridge-icon-button svg{display:block!important}
.ridge-nav__actions .ridge-icon-button svg{transform:translateY(-1px)}

@media (max-width:760px){
  /* Mobile order: hamburger left / logo truly centered / account + bag right. */
  .ridge-nav{
    display:grid!important;
    grid-template-columns:1fr auto 1fr!important;
    align-items:center!important;
    column-gap:8px!important;
    position:relative!important;
  }
  .ridge-mobile-toggle{
    grid-column:1!important;
    grid-row:1!important;
    justify-self:start!important;
    order:initial!important;
    margin:0!important;
  }
  .ridge-logo{
    grid-column:2!important;
    grid-row:1!important;
    justify-self:center!important;
    position:static!important;
    transform:none!important;
    order:initial!important;
    margin:0!important;
    width:min(var(--nav-mobile-logo-width,100px),92px)!important;
  }
  .ridge-nav__actions{
    grid-column:3!important;
    grid-row:1!important;
    justify-self:end!important;
    order:initial!important;
    margin:0!important;
    gap:9px!important;
    height:36px!important;
    align-items:center!important;
  }
  .ridge-account-component,.ridge-account-slot,.ridge-icon-button{
    width:28px!important;
    height:36px!important;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    padding:0!important;
  }
  .ridge-account-slot svg,.ridge-icon-button svg{
    width:22px!important;
    height:22px!important;
    margin:0!important;
  }
  .ridge-nav__actions .ridge-icon-button svg{transform:translateY(-1px)!important}
  .ridge-cart-count{top:-2px!important;right:-4px!important}
}


/* ================================================================
   Ridge 3.0.34 — mobile edge-to-edge section system
   Mobile follows the full-bleed reference: major page sections touch the
   viewport edges. Section corner rounding is reserved for the final page
   surface immediately before the global footer.
   ================================================================ */
@media (max-width:760px){
  :root{--mobile-gutter:0px!important}

  /* Homepage major surfaces are full bleed on phone. */
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup,
  .ridge-hero,
  .ridge-ubd-panel,
  .ridge-all-feel{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    border-radius:0!important;
  }

  /* The signup is the final homepage page-surface before the footer, so only
     its bottom edge receives the premium page-to-footer rounding. */
  .template-index .ridge-home-signup{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    border-radius:0 0 42px 42px!important;
  }

  /* Full-bleed feature/story shells, while keeping comfortable text gutters. */
  .ridge-ubd-panel__inner,
  .ridge-all-feel__inner,
  .ridge-hero__content,
  .ridge-home-signup__inner{
    padding-left:20px!important;
    padding-right:20px!important;
  }

  /* Generic storefront page sections should meet the screen edge. Internal
     product cards, controls and media retain their own component radii. */
  .template-collection #MainContent,
  .template-product #MainContent,
  .template-page #MainContent,
  .template-search #MainContent,
  .template-cart #MainContent{
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Where a page body itself meets the global footer, preserve only the
     bottom-corner transition. */
  .template-collection #MainContent,
  .template-product #MainContent,
  .template-page #MainContent,
  .template-search #MainContent,
  .template-cart #MainContent{
    border-radius:0 0 42px 42px!important;
    overflow:hidden!important;
  }
}


/* ================================================================
   Ridge 3.0.35 — no phantom mega flash + mobile open-header polish
   ================================================================ */
/* Hovering/leaving an unopened desktop menu must never create a temporary
   cream surface. JS now guards this; these selectors make the idle state
   visually deterministic as an additional safeguard. */
.ridge-header:not(.is-mega-open):not(.is-mega-closing):not(.is-mobile-open) .ridge-header__frame{
  background:transparent!important;
  box-shadow:none!important;
}

@media (max-width:760px){
  /* When the mobile accordion is open, the top header becomes the same cream
     surface as the menu sheet so there is no blue/cream split. */
  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav{
    background:var(--cream)!important;
    color:var(--ink)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:none!important;
  }
  .ridge-header.is-mobile-open .ridge-logo__dark{display:block!important}
  .ridge-header.is-mobile-open .ridge-logo__light{display:none!important}
  .ridge-header.is-mobile-open .ridge-logo>img{filter:none!important}
  .ridge-header.is-mobile-open .ridge-mobile-toggle span{background:var(--ink)!important}

  /* Put the account and cart controls on the exact same box and optical axis. */
  .ridge-nav__actions{
    height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
    line-height:0!important;
  }
  .ridge-account-component,
  .ridge-account-slot,
  .ridge-icon-button{
    width:30px!important;
    height:38px!important;
    min-width:30px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    line-height:0!important;
    box-sizing:border-box!important;
  }
  .ridge-account-slot svg,
  .ridge-icon-button svg{
    width:22px!important;
    height:22px!important;
    margin:0!important;
    display:block!important;
  }
  /* The bag SVG's drawing sits slightly lower inside its viewBox. */
  .ridge-nav__actions .ridge-icon-button{transform:translateY(-2px)!important}
  .ridge-nav__actions .ridge-icon-button svg{transform:none!important}
  .ridge-account-component{transform:none!important}
}


/* ================================================================
   Ridge 3.0.36 — Oura-inspired tighter rails + 40% softer radii
   ================================================================ */
/* Desktop homepage surfaces sit closer to the viewport edges. */
@media (min-width:1001px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    margin-left:24px!important;
    margin-right:24px!important;
    width:auto!important;
    max-width:none!important;
  }
}
@media (min-width:761px) and (max-width:1000px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    margin-left:14px!important;
    margin-right:14px!important;
  }
}

/* Reduce the large architectural corner language by roughly 40%.
   Buttons/pills keep their existing radii; these selectors target image
   frames and large section surfaces only. */
.template-index .ridge-hero{border-radius:0 0 25px 25px!important}
.template-index .ridge-ubd-panel{border-radius:25px!important}
.template-index .ridge-all-feel{border-radius:25px!important}
.template-index .ridge-home-signup{border-radius:0 0 43px 43px!important}
.ridge-ubd-teaser__title{border-radius:16px!important}
.ridge-product-gallery__stage{border-radius:18px!important}
.ridge-feature-gallery__stage,
.product-grid .card-media,
.ridge-review-line__media{border-radius:14px!important}

/* Large page/footer transitions and expanded nav use the same calmer radius. */
.ridge-header.is-mega-open .ridge-header__frame,
.ridge-header.is-mega-closing .ridge-header__frame{border-radius:0 0 43px 43px!important}
#MainContent>.shopify-section:last-child>section,
#MainContent>.shopify-section:last-child>.ridge-page-end{border-radius:0 0 58px 58px!important}
.template-cart #MainContent>.shopify-section:last-child>section{border-radius:0 0 34px 34px!important}

@media (max-width:760px){
  /* Full-bleed mobile section surfaces stay square, matching the mobile
     reference. Only the final page-to-footer transition remains rounded. */
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .ridge-hero,
  .ridge-ubd-panel,
  .ridge-all-feel{
    margin-left:0!important;
    margin-right:0!important;
    border-radius:0!important;
  }
  .ridge-product .ridge-section-inner{width:100%!important}
  .ridge-product-gallery__stage{
    border-radius:14px!important;
    width:100%!important;
  }
  .ridge-ubd-feature__gallery .ridge-feature-gallery__stage,
  .product-grid .card-media{border-radius:14px!important}
  .template-index .ridge-home-signup{
    margin-left:0!important;
    margin-right:0!important;
    border-radius:0 0 25px 25px!important;
  }
  .template-collection #MainContent,
  .template-product #MainContent,
  .template-page #MainContent,
  .template-search #MainContent,
  .template-cart #MainContent{
    border-radius:0 0 25px 25px!important;
  }
  .ridge-header.is-mega-open .ridge-header__frame,
  .ridge-header.is-mega-closing .ridge-header__frame{
    border-radius:0 0 25px 25px!important;
  }
}


/* ================================================================
   Ridge 3.0.37 — adaptive page spacing + mobile menu/header alignment
   ================================================================ */
/* Default/legal pages should not receive both template top-padding and
   section top-padding. Keep one intentional offset below the header. */
.template-page main:has(.ridge-default-page){padding-top:0!important}
.ridge-default-page--no-title{padding-top:88px!important}

@media (max-width:760px){
  /* Bring legal/content titles closer to the mobile header. */
  .template-page main:has(.ridge-default-page){padding-top:0!important}
  .ridge-default-page{padding-top:84px!important}
  .ridge-default-page--no-title{padding-top:44px!important}
  .ridge-default-page h1{margin-top:0!important;margin-bottom:34px!important}

  /* The open mobile menu is one continuous cream surface from the very top
     of the Ridge header through the accordion sheet. */
  .ridge-header.is-mobile-open,
  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav,
  .ridge-header.is-mobile-open .ridge-mobile-menu,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    background-color:var(--cream)!important;
    background-image:none!important;
    color:var(--ink)!important;
  }
  .ridge-header.is-mobile-open .ridge-nav{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    border-color:transparent!important;
  }
  .ridge-header.is-mobile-open .ridge-nav::before{display:none!important}
  .ridge-header.is-mobile-open .ridge-header__frame{box-shadow:none!important}

  /* Optical alignment: account and bag share the same centerline. The cart
     badge is absolute and does not participate in layout, so it cannot push
     the bag icon down. */
  .ridge-nav__actions{align-items:center!important;height:38px!important}
  .ridge-account-component,
  .ridge-account-slot,
  .ridge-icon-button{height:38px!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .ridge-account-slot svg,
  .ridge-icon-button svg{display:block!important;margin:0!important}
  .ridge-nav__actions .ridge-icon-button{transform:translateY(-4px)!important}
  .ridge-cart-count{transform:none!important}
}

/* ================================================================
   Ridge 3.0.38 — mobile scale, menu continuity, icon alignment,
   adaptive announcement spacing
   ================================================================ */

/* Announcement-aware header offset. If the announcement is hidden, the
   floating header rises with it instead of leaving a dead strip. */
body:has(.announcement){--ridge-announcement-offset:22px}
body:not(:has(.announcement)){--ridge-announcement-offset:0px}
.ridge-header{top:var(--ridge-announcement-offset)!important}

/* Hidden page headings collapse their reserved top space. */
.ridge-default-page--no-title{padding-top:48px!important}

@media(max-width:760px){
  body:has(.announcement){--ridge-announcement-offset:20px}
  body:not(:has(.announcement)){--ridge-announcement-offset:0px}

  /* One continuous cream mobile navigation surface when expanded. This rule
     intentionally outranks the returning/frosted-nav state. */
  .ridge-header.is-mobile-open,
  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav,
  .ridge-header.is-mobile-open.is-returning:not(.is-mega-open) .ridge-nav,
  .ridge-header.is-mobile-open .ridge-mobile-menu,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    background:var(--cream)!important;
    background-color:var(--cream)!important;
    background-image:none!important;
    color:var(--ink)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:none!important;
  }
  .ridge-header.is-mobile-open .ridge-nav{
    border-color:transparent!important;
    border-radius:0!important;
  }
  .ridge-header.is-mobile-open .ridge-nav::before{display:none!important}
  .ridge-header.is-mobile-open .ridge-header__frame{
    overflow:visible!important;
    isolation:isolate!important;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    transform:translateY(0)!important;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    border-radius:0 0 22px 22px!important;
    overflow:hidden!important;
    clip-path:inset(0 round 0 0 22px 22px)!important;
  }

  /* Mobile expanded menu typography: 30% smaller than the prior pass. */
  .ridge-mobile-menu__parent,
  .ridge-mobile-menu__item>a{
    font-size:16px!important;
    line-height:1.12!important;
    min-height:38px!important;
    padding:8px 0!important;
  }
  .ridge-mobile-menu__children a{
    font-size:13px!important;
    line-height:1.18!important;
    padding:7px 0!important;
  }
  .ridge-mobile-menu__utility a{font-size:15px!important}
  .ridge-mobile-menu__inner{padding:20px 20px 24px!important}

  /* Exact optical icon line: hamburger, account, and bag all share one
     38px control box. The cart badge floats independently. */
  .ridge-mobile-toggle,
  .ridge-account-component,
  .ridge-account-slot,
  .ridge-icon-button{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    transform:none!important;
    line-height:0!important;
  }
  .ridge-account-slot svg,
  .ridge-icon-button svg{
    width:22px!important;
    height:22px!important;
    display:block!important;
    margin:0!important;
    transform:none!important;
  }
  .ridge-nav__actions .ridge-icon-button{transform:translateY(1px)!important}
  .ridge-cart-count{
    top:-2px!important;
    right:-2px!important;
    transform:none!important;
  }

  /* Tighter legal/content spacing. */
  .ridge-default-page{padding-top:58px!important}
  .ridge-default-page--no-title{padding-top:18px!important}
  .ridge-default-page h1{margin-bottom:24px!important}

  /* UGLY BY DESIGN: reduce heading/subtext scale ~30% while preserving
     readable body copy and a continuous one-column story. */
  .ridge-ubd-panel__heading,
  .template-index .ridge-ubd-panel__heading{
    font-size:clamp(24px,7vw,32px)!important;
    padding-top:38px!important;
    padding-bottom:14px!important;
  }
  .ridge-ubd-feature__copy h3{
    font-size:clamp(22px,6.5vw,28px)!important;
    margin-bottom:14px!important;
  }
  .ridge-ubd-feature__body{
    font-size:15px!important;
    line-height:1.28!important;
  }
  .ridge-ubd-feature blockquote{
    font-size:14px!important;
    line-height:1.28!important;
  }

  /* ALL FOR THE FEEL: same ~30% typography reduction. */
  .ridge-all-feel__top{font-size:27px!important}
  .ridge-all-feel__editorial{font-size:clamp(48px,16vw,64px)!important}
  .ridge-all-feel__subtitle{font-size:14px!important}
  .ridge-all-feel__body,
  .ridge-all-feel__continuation-body{font-size:14px!important;line-height:1.3!important}
  .ridge-all-feel__question{font-size:13px!important;line-height:1.3!important}

  /* Product page mobile redesign: ~50% smaller than the previous mobile pass,
     with proper side gutters so copy never touches the viewport edge. */
  .ridge-product{padding:72px 0 48px!important}
  .ridge-product .ridge-section-inner{
    width:100%!important;
    padding-left:20px!important;
    padding-right:20px!important;
  }
  .ridge-product__grid{gap:24px!important}
  .ridge-product-gallery{
    width:50%!important;
    max-width:260px!important;
    margin:0 auto!important;
  }
  .ridge-product-gallery__stage{
    width:100%!important;
    aspect-ratio:1/1!important;
    border-radius:12px!important;
  }
  .ridge-product-gallery__controls{font-size:12px!important;gap:5px!important}
  .ridge-product-gallery__dots button{width:6px!important;height:6px!important}
  .ridge-product-info{
    width:100%!important;
    padding-left:2px!important;
    padding-right:2px!important;
  }
  .ridge-product-info h1,
  .ridge-product-title{
    font-size:28px!important;
    line-height:1.02!important;
    margin-bottom:10px!important;
  }
  .ridge-product-rating{font-size:13px!important;margin-bottom:18px!important}
  .ridge-option-group{margin-bottom:16px!important}
  .ridge-option-group legend,
  .ridge-quantity-label,
  .ridge-purchase-label{
    font-size:17px!important;
    margin-bottom:9px!important;
  }
  .ridge-option-buttons{gap:7px!important}
  .ridge-option-button{
    min-height:34px!important;
    padding:6px 10px!important;
    font-size:14px!important;
    border-radius:7px!important;
  }
  .ridge-size-toggle,
  .ridge-size-guide-toggle{font-size:13px!important;margin-top:8px!important}
  .ridge-quantity-wrap{margin:14px 0 20px!important}
  .ridge-quantity{
    grid-template-columns:30px 36px 30px!important;
    border-radius:7px!important;
  }
  .ridge-quantity button,
  .ridge-quantity input{height:34px!important;font-size:14px!important}
  .ridge-purchase-options{gap:7px!important;margin-bottom:20px!important}
  .ridge-purchase-card{
    min-height:38px!important;
    padding:8px 10px!important;
    font-size:13px!important;
    border-radius:8px!important;
  }
  .ridge-product-price{font-size:18px!important;margin:10px 0 14px!important}
  .ridge-add-button{
    min-height:42px!important;
    padding:0 16px!important;
    font-size:15px!important;
    border-radius:12px!important;
  }
  .ridge-product-description{font-size:14px!important;line-height:1.3!important;margin-top:18px!important}

  /* Floating add-to-cart island follows the same smaller product scale. */
  .ridge-sticky-cart{
    width:calc(100% - 32px)!important;
    padding:8px 9px 8px 12px!important;
    gap:8px!important;
    border-radius:16px!important;
  }
  .ridge-sticky-product-title{font-size:13px!important;max-width:45%!important}
  .ridge-sticky-cart .ridge-add-button{
    min-width:112px!important;
    min-height:38px!important;
    font-size:13px!important;
    padding:0 12px!important;
    border-radius:11px!important;
  }
}


/* ================================================================
   Ridge 3.0.39 — empty-cart balance + compact footer + mobile menu cleanup
   ================================================================ */

/* Empty cart: keep the title/continue-shopping group close to the header,
   then center the empty-state content in the remaining viewport. */
.ridge-review-cart:has(.empty-state){
  min-height:calc(100vh - var(--ridge-announcement-offset,0px));
  padding-top:108px!important;
  padding-bottom:72px!important;
}
.ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
  grid-template-columns:1fr!important;
  gap:0!important;
  min-height:calc(100vh - var(--ridge-announcement-offset,0px) - 180px);
}
.ridge-review-cart:has(.empty-state) .ridge-review-cart__main{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.ridge-review-cart:has(.empty-state) .ridge-cart-back{margin-bottom:6px!important}
.ridge-review-cart:has(.empty-state) .ridge-cart-review-title{margin-bottom:0!important}
.ridge-review-cart:has(.empty-state) .empty-state{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:28px 0 10vh!important;
  text-align:center;
}
.ridge-review-cart:has(.empty-state) .empty-state p{margin:0 0 20px}

/* Footer: 40% tighter vertical rhythm and 40% smaller typography.
   Also shorten the gap between the last rounded page surface and the logo. */
.ridge-footer{padding-top:0!important}
.ridge-footer__main{padding:42px 0 32px!important}
.ridge-footer__brand{width:90px!important;margin-bottom:25px!important}
.ridge-footer__brand span,.ridge-footer__wordmark{font-size:26px!important}
.ridge-footer__columns{gap:38px!important}
.ridge-footer__column h3{font-size:16px!important;margin-bottom:12px!important}
.ridge-footer__column a,.ridge-footer__column p{font-size:13px!important;line-height:1.32!important;margin-bottom:2px!important}
.ridge-footer__menu-hint{max-width:150px!important}
.ridge-footer__rule{margin:32px 0 11px!important}
.ridge-footer__utility{gap:10px!important}
.ridge-footer__legal-links{font-size:10px!important;gap:14px!important}
.ridge-footer__bottom{font-size:9px!important}

/* Preserve the premium overlap, but reduce its depth by ~40%. */
#MainContent>.shopify-section:last-child>section,
#MainContent>.shopify-section:last-child>.ridge-page-end{
  position:relative;
  z-index:2;
}
.ridge-footer{margin-top:-34px!important;padding-top:34px!important}

@media(max-width:760px){
  /* The cart icon alignment from 3.0.38 is intentionally preserved. */

  /* Empty cart mobile: title starts much closer to the header and the
     empty-state remains visually centered without a huge dead zone. */
  .ridge-review-cart:has(.empty-state){
    padding-top:74px!important;
    padding-bottom:48px!important;
  }
  .ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
    width:calc(100% - 32px)!important;
    min-height:calc(100svh - var(--ridge-announcement-offset,0px) - 120px)!important;
  }
  .ridge-review-cart:has(.empty-state) .ridge-cart-back{font-size:15px!important;margin-bottom:5px!important}
  .ridge-review-cart:has(.empty-state) .ridge-cart-review-title{font-size:34px!important}
  .ridge-review-cart:has(.empty-state) .empty-state{
    padding:24px 0 7vh!important;
  }
  .ridge-review-cart:has(.empty-state) .empty-state p{font-size:17px!important;margin-bottom:16px!important}
  .ridge-review-cart:has(.empty-state) .empty-state .button{font-size:15px!important;min-height:44px!important;padding:0 24px!important}

  /* Mobile expanded menu no longer duplicates the bag/cart action. */
  .ridge-mobile-menu__utility{display:none!important;border:0!important;margin:0!important;padding:0!important}
  .ridge-mobile-menu__inner{padding-bottom:18px!important}

  /* Compact footer on phones. */
  .ridge-footer{margin-top:-25px!important;padding-top:25px!important}
  .ridge-footer__main{padding:32px 18px 28px!important}
  .ridge-footer__brand{width:75px!important;margin-bottom:22px!important}
  .ridge-footer__columns{gap:20px!important}
  .ridge-footer__column h3{font-size:15px!important;margin-bottom:9px!important}
  .ridge-footer__column a,.ridge-footer__column p{font-size:12px!important}
  .ridge-footer__rule{margin:22px 0 10px!important}
  .ridge-footer__legal-links{font-size:9px!important;gap:10px 12px!important}
  .ridge-footer__bottom{font-size:8px!important}
}

/* v3.0.40 — mobile product quantity: equal visual spacing around the value. */
@media (max-width: 749px){
  .ridge-product .ridge-quantity{
    display:grid!important;
    grid-template-columns:34px 34px 34px!important;
    width:104px!important;
    align-items:center!important;
  }
  .ridge-product .ridge-quantity button,
  .ridge-product .ridge-quantity input{
    width:34px!important;
    min-width:0!important;
    padding:0!important;
    margin:0!important;
    text-align:center!important;
    line-height:34px!important;
  }
}

/* ================================================================
   Ridge 3.0.42 — desktop cart icon, hero heading controls, cart spacing,
   and restored mobile product media scale
   ================================================================ */

/* Desktop only: place the bag on the same optical baseline as account.
   Mobile alignment from the previous pass is intentionally untouched. */
@media (min-width:761px){
  .ridge-nav__actions .ridge-icon-button{
    transform:translateY(5px)!important;
  }
  .ridge-nav__actions .ridge-icon-button svg{
    transform:none!important;
  }
}

/* Hero headline: all lines share one alignment axis while allowing each line
   to use its own font, size, bold, italic, and line-height controls. */
.ridge-hero-heading--left{text-align:left}
.ridge-hero-heading--center{text-align:center}
.ridge-hero-heading--right{text-align:right}
.ridge-hero-heading__line{font-weight:400}
.ridge-hero-heading__line.is-bold{font-weight:700!important}
.ridge-hero-heading__line.ridge-font-cal.is-bold{font-weight:700!important}
.ridge-hero-heading__line.ridge-font-times.is-bold{font-weight:700!important}
.ridge-hero-heading__line.ridge-font-barlow.is-bold{font-weight:700!important}

/* Empty review cart: use the same top rhythm as legal/content pages instead
   of centering the heading vertically inside a large empty region. */
.ridge-review-cart:has(.empty-state){
  padding-top:72px!important;
}
.ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
  min-height:calc(100vh - var(--ridge-announcement-offset,0px) - 120px)!important;
}
.ridge-review-cart:has(.empty-state) .ridge-review-cart__main{
  min-height:0!important;
}
.ridge-review-cart:has(.empty-state) .empty-state{
  min-height:clamp(320px,48vh,560px)!important;
  flex:0 0 auto!important;
  justify-content:center!important;
  padding:28px 0!important;
  margin-top:24px!important;
}

@media (max-width:760px){
  /* Restore the larger mobile product media presentation from the pass before
     the 50% reduction, while retaining the newer text and gutter sizing. */
  .ridge-product-gallery{
    width:100%!important;
    max-width:none!important;
    margin:0 auto!important;
  }
  .ridge-product-gallery__stage{
    width:100%!important;
    aspect-ratio:1/1!important;
    border-radius:14px!important;
  }

  /* Review cart heading starts under the mobile nav like Privacy Policy. */
  .ridge-review-cart:has(.empty-state){
    padding-top:34px!important;
  }
  .ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
    width:calc(100% - 32px)!important;
    min-height:calc(100svh - var(--ridge-announcement-offset,0px) - 88px)!important;
  }
  .ridge-review-cart:has(.empty-state) .empty-state{
    min-height:clamp(300px,50svh,520px)!important;
    margin-top:14px!important;
    padding:20px 0!important;
    align-items:center!important;
    text-align:center!important;
  }
  .ridge-review-cart:has(.empty-state) .empty-state .button{
    margin-left:auto!important;
    margin-right:auto!important;
    align-self:center!important;
  }
}


/* Ridge 3.0.43 — hero fallback controls + whole-headline scale */
.ridge-hero-heading__line{font-size:calc(var(--line-size) * var(--headline-scale,1))!important;}
@media (max-width:760px){
  .ridge-hero-heading__line{font-size:calc(var(--line-size-mobile) * var(--headline-scale-mobile,1))!important;}
}

/* v3.0.44 hero headline proportion pass */
@media (max-width: 767px){
  .template-index .ridge-hero__copy{width:min(100%,var(--hero-copy-width-mobile,360px))!important;margin-inline:auto!important;}
  .template-index .ridge-hero-heading__line{white-space:nowrap!important;max-width:100%!important;}
}

/* ================================================================
   Ridge 3.0.45 — Review Cart heading aligned to legal/content pages
   ================================================================ */
/* Cart was receiving both the global template-cart main offset and its own
   section padding. Legal/content pages suppress that extra main offset.
   Match the same positioning system here. */
.template-cart main:has(.ridge-review-cart){
  padding-top:0!important;
}

/* Match the desktop Privacy Policy/content-page horizontal gutter and top rhythm. */
.ridge-review-cart:has(.empty-state){
  padding-top:150px!important;
}
.ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
  width:min(calc(100% - 96px),var(--content))!important;
  max-width:none!important;
  margin-inline:auto!important;
}
.ridge-review-cart:has(.empty-state) .ridge-cart-back{
  margin-top:0!important;
}

@media(max-width:760px){
  /* Same mobile positioning logic as the Privacy Policy/default content page. */
  .template-cart main:has(.ridge-review-cart){padding-top:0!important}
  .ridge-review-cart:has(.empty-state){padding-top:58px!important}
  .ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
    width:calc(100% - 36px)!important;
    margin-inline:auto!important;
  }
}

/* ================================================================
   Ridge 3.0.46 — full-width page endings + sticky-cart/footer safety
   + working homepage phone country selector
   ================================================================ */

/* GLOBAL UX/UI RULE: whenever the final storefront section meets the footer,
   the final surface spans the complete horizontal viewport. Customer-account
   pages are platform-rendered and excluded by the layout. */
#MainContent > .shopify-section:last-child{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
#MainContent > .shopify-section:last-child > section,
#MainContent > .shopify-section:last-child > .ridge-page-end,
#MainContent > .shopify-section:last-child > .ridge-home-signup,
#MainContent > .shopify-section:last-child > .ridge-default-page{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  border-bottom-left-radius:58px!important;
  border-bottom-right-radius:58px!important;
  overflow:hidden!important;
}

/* Homepage signup is the final main-content surface: full width at the footer
   while retaining the rounded lower edge shown in the mockups. */
.template-index #MainContent > .shopify-section:last-child > .ridge-home-signup{
  border-radius:0 0 58px 58px!important;
}

/* Country selector: the whole control (not just the tiny chevron) is clickable. */
.ridge-country-select-wrap{
  position:relative;
  display:flex;
  align-items:center;
  min-width:118px;
  height:100%;
}
.ridge-country-code{
  width:100%;
  height:100%;
  appearance:none;
  -webkit-appearance:none;
  border:1px solid currentColor;
  border-radius:999px;
  background:transparent;
  color:inherit;
  font:inherit;
  padding:0 38px 0 18px!important;
  cursor:pointer;
}
.ridge-country-select-wrap .ridge-country-chevron{
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  pointer-events:none;
}
.ridge-home-signup__or{
  text-transform:uppercase!important;
  letter-spacing:.06em;
}

/* A sticky purchase control must never cover footer/legal links. */
.ridge-sticky-cart.is-footer-blocked{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translate(-50%, calc(100% + 26px)) scale(.96)!important;
}

@media(max-width:760px){
  #MainContent > .shopify-section:last-child > section,
  #MainContent > .shopify-section:last-child > .ridge-page-end,
  #MainContent > .shopify-section:last-child > .ridge-home-signup,
  #MainContent > .shopify-section:last-child > .ridge-default-page{
    border-bottom-left-radius:34px!important;
    border-bottom-right-radius:34px!important;
  }
  .template-index #MainContent > .shopify-section:last-child > .ridge-home-signup{
    margin-inline:0!important;
    border-radius:0 0 34px 34px!important;
  }
  .ridge-country-select-wrap{min-width:104px}
  .ridge-country-code{padding-right:34px!important;padding-left:14px!important}
  .ridge-country-select-wrap .ridge-country-chevron{right:13px}
}

/* ================================================================
   Ridge 3.0.48 — homepage proportion + signup phone control +
   deeper page-to-footer endings
   ================================================================ */

/* Homepage hero: slightly taller so only a restrained preview of the
   UGLY BY DESIGN section is visible below the fold. */
.template-index .ridge-hero{
  height:clamp(600px,74vh,760px)!important;
  margin-bottom:20px!important;
}

/* The pre-entry UGLY BY DESIGN title should read as a small teaser, then
   grow smoothly to its full section-heading scale as the section arrives. */
.template-index .ridge-ubd-panel__heading{
  transform:translateY(14px) scale(.22)!important;
  opacity:.42!important;
  transform-origin:center top!important;
}
.template-index .ridge-ubd-panel__heading.is-in-view,
.template-index .ridge-ubd-panel__heading.is-active{
  transform:translateY(0) scale(1)!important;
  opacity:1!important;
}

/* Homepage content typography: 40% smaller than the prior pass.
   This intentionally excludes the separately controlled hero headline and
   global navigation/footer typography. */
.template-index .ridge-ubd-panel__heading{font-size:calc(1em * .6)!important}
.template-index .ridge-ubd-feature__copy h3{font-size:29px!important}
.template-index .ridge-ubd-feature__body{font-size:16px!important;line-height:1.35!important}
.template-index .ridge-ubd-feature blockquote{font-size:15px!important;line-height:1.35!important}
.template-index .ridge-all-feel__top{font-size:35px!important}
.template-index .ridge-all-feel__editorial{font-size:67px!important}
.template-index .ridge-all-feel__subtitle{font-size:15px!important}
.template-index .ridge-all-feel__body,
.template-index .ridge-all-feel__continuation-body{font-size:16px!important;line-height:1.35!important}
.template-index .ridge-all-feel__question{font-size:14px!important;line-height:1.35!important}
.template-index .ridge-home-signup h2{font-size:13px!important;line-height:1.2!important}
.template-index .ridge-home-signup p{font-size:15px!important;line-height:1.22!important}
.template-index .ridge-home-signup__or{font-size:9px!important}
.template-index .ridge-home-signup__consent{font-size:9px!important;line-height:1.22!important}
.template-index .ridge-home-signup__form input,
.template-index .ridge-country-code{font-size:13px!important}
.template-index .ridge-home-signup .ridge-accent-button{font-size:13px!important;min-height:42px!important;height:42px!important}

/* Signup phone controls: give the country selector its own fixed lane and a
   real gutter so it can never sit on top of the phone-number field. */
.ridge-home-signup__phone-row{
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr)!important;
  column-gap:16px!important;
  align-items:stretch!important;
}
.ridge-country-select-wrap{
  width:112px!important;
  min-width:112px!important;
  max-width:112px!important;
  overflow:visible!important;
}
.ridge-country-code{
  box-sizing:border-box!important;
  width:112px!important;
  min-width:112px!important;
  padding-left:16px!important;
  padding-right:32px!important;
}
.ridge-country-select-wrap .ridge-country-chevron{right:12px!important}
.ridge-home-signup__phone-row > input[type='tel']{
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}

/* Global page/footer finish: add enough vertical body to the final storefront
   surface for its full rounded lower edge to render cleanly before the footer.
   Because the footer remains in normal flow, its logo keeps the same visual
   distance from the completed page edge. */
#MainContent > .shopify-section:last-child > section,
#MainContent > .shopify-section:last-child > .ridge-page-end,
#MainContent > .shopify-section:last-child > .ridge-home-signup,
#MainContent > .shopify-section:last-child > .ridge-default-page{
  padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))!important;
}
.template-index #MainContent > .shopify-section:last-child > .ridge-home-signup{
  padding-bottom:100px!important;
}

@media(max-width:760px){
  .template-index .ridge-hero{
    height:clamp(620px,82svh,760px)!important;
    margin-bottom:14px!important;
  }
  .template-index .ridge-ubd-panel__heading{
    transform:translateY(10px) scale(.25)!important;
    opacity:.42!important;
  }

  /* Homepage copy remains 40% smaller on mobile too, but with minimum sizes
     that preserve legibility and tap-target clarity. */
  .template-index .ridge-ubd-feature__copy h3{font-size:24px!important}
  .template-index .ridge-ubd-feature__body{font-size:14px!important;line-height:1.38!important}
  .template-index .ridge-ubd-feature blockquote{font-size:13px!important;line-height:1.38!important}
  .template-index .ridge-all-feel__top{font-size:23px!important}
  .template-index .ridge-all-feel__editorial{font-size:clamp(41px,14vw,55px)!important}
  .template-index .ridge-all-feel__subtitle{font-size:12px!important}
  .template-index .ridge-all-feel__body,
  .template-index .ridge-all-feel__continuation-body{font-size:13px!important;line-height:1.4!important}
  .template-index .ridge-all-feel__question{font-size:12px!important;line-height:1.4!important}
  .template-index .ridge-home-signup h2{font-size:12px!important}
  .template-index .ridge-home-signup p{font-size:13px!important}
  .template-index .ridge-home-signup__consent{font-size:8px!important}
  .template-index .ridge-home-signup__form input,
  .template-index .ridge-country-code{font-size:12px!important}

  .ridge-home-signup__phone-row{
    grid-template-columns:98px minmax(0,1fr)!important;
    column-gap:12px!important;
  }
  .ridge-country-select-wrap,
  .ridge-country-code{
    width:98px!important;
    min-width:98px!important;
    max-width:98px!important;
  }
  .ridge-country-code{padding-left:12px!important;padding-right:28px!important}
  .ridge-country-select-wrap .ridge-country-chevron{right:10px!important}

  #MainContent > .shopify-section:last-child > section,
  #MainContent > .shopify-section:last-child > .ridge-page-end,
  #MainContent > .shopify-section:last-child > .ridge-home-signup,
  #MainContent > .shopify-section:last-child > .ridge-default-page{
    padding-bottom:56px!important;
  }
  .template-index #MainContent > .shopify-section:last-child > .ridge-home-signup{
    padding-bottom:76px!important;
  }
}

/* ================================================================
   Ridge 3.0.49 — homepage reveal, wider surfaces, media scale,
   deeper footer finish
   ================================================================ */
/* Wider homepage surfaces: reduce the existing side gutters by 30%. */
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.template-index .ridge-home-signup{
  margin-left:29px!important;
  margin-right:29px!important;
  width:calc(100% - 58px)!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* Make the hero taller so the initial UBD reveal is roughly 70% shallower. */
.template-index .ridge-hero{
  height:clamp(720px,88vh,940px)!important;
  min-height:88vh!important;
}

/* UBD teaser heading: readable at entry and continuously scales via JS vars. */
.template-index .ridge-ubd-panel__heading{
  font-size:clamp(34px,3.4vw,58px)!important;
  transform:translateY(var(--ubd-y,18px)) scale(var(--ubd-scale,.56))!important;
  opacity:var(--ubd-opacity,.62)!important;
  transform-origin:center top!important;
  transition:none!important;
  will-change:transform,opacity;
}

/* UBD media placeholders are real image/media containers; reduce footprint 30%. */
.template-index .ridge-ubd-feature__gallery{
  width:70%!important;
  max-width:100%!important;
  justify-self:center!important;
}
.template-index .ridge-ubd-feature__gallery .ridge-feature-gallery__stage{
  height:auto!important;
  aspect-ratio:1 / 1!important;
}

/* Extend every storefront final surface enough that the footer/background cannot
   show through behind the lower rounded corners. Customer account UI is external. */
#MainContent > .shopify-section:last-child > section,
#MainContent > .shopify-section:last-child > .ridge-page-end,
#MainContent > .shopify-section:last-child > .ridge-home-signup,
#MainContent > .shopify-section:last-child > .ridge-default-page{
  padding-bottom:160px!important;
  min-height:calc(100% + 90px);
}
.template-index #MainContent > .shopify-section:last-child > .ridge-home-signup{
  padding-bottom:180px!important;
}

/* Product feature cards: these rounded boxes are media/image placeholders. */
.ridge-product-feature__media{
  position:relative;
  overflow:hidden;
}
.ridge-product-feature__media .ridge-feature-gallery__slide,
.ridge-product-feature__media .ridge-feature-gallery__placeholder{
  position:absolute;
  inset:0;
}
.ridge-product-feature__media .ridge-feature-gallery__slide{opacity:0;transition:opacity .35s ease}
.ridge-product-feature__media .ridge-feature-gallery__slide.is-active{opacity:1}
.ridge-product-feature__media .ridge-feature-gallery__slide img{width:100%;height:100%;object-fit:cover}

@media(max-width:760px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    margin-left:7px!important;
    margin-right:7px!important;
    width:calc(100% - 14px)!important;
  }
  .template-index .ridge-hero{
    height:clamp(760px,94svh,940px)!important;
    min-height:94svh!important;
  }
  .template-index .ridge-ubd-panel__heading{
    font-size:clamp(28px,8.5vw,40px)!important;
  }
  .template-index .ridge-ubd-feature__gallery{width:70%!important}
  #MainContent > .shopify-section:last-child > section,
  #MainContent > .shopify-section:last-child > .ridge-page-end,
  #MainContent > .shopify-section:last-child > .ridge-home-signup,
  #MainContent > .shopify-section:last-child > .ridge-default-page{
    padding-bottom:130px!important;
  }
  .template-index #MainContent > .shopify-section:last-child > .ridge-home-signup{padding-bottom:150px!important}
}

/* ================================================================
   Ridge 3.0.50 — homepage proportions, shared rails, radius controls,
   mobile navigation continuity, footer finish, hero typography
   ================================================================ */

/* Homepage rail: all inset homepage surfaces use the same horizontal width.
   The final page/footer transition is handled separately below. */
:root{--ridge-home-rail:20px}
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.template-index .ridge-home-signup{
  margin-left:var(--ridge-home-rail)!important;
  margin-right:var(--ridge-home-rail)!important;
  width:auto!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* Hero: about 30% shorter than v3.0.49 while keeping a deliberate cream gap
   before UGLY BY DESIGN. Top edge remains square. */
.template-index .ridge-hero{
  height:clamp(520px,62vh,660px)!important;
  min-height:0!important;
  margin-bottom:clamp(46px,7vh,78px)!important;
  border-radius:0 0 var(--radius-lg) var(--radius-lg)!important;
}

/* The homepage itself never receives rounded upper corners. */
.template-index #MainContent,
.template-index #MainContent>.shopify-section:first-child,
.template-index #MainContent>.shopify-section:first-child>section{
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
}

/* Wire the existing theme radius sliders consistently into large surfaces and
   media/card containers. Nav expansion and page-to-footer rounding are exempt. */
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.ridge-feature-detail,
.ridge-contact-page{
  border-radius:var(--radius-lg)!important;
}
.ridge-feature-gallery__stage,
.ridge-product-gallery__stage,
.ridge-product-feature__media,
.ridge-feature-card__media,
.ridge-mega-card__media,
.product-grid .card-media,
.ridge-review-line__media{
  border-radius:var(--radius-md)!important;
}

/* Keep Cal Sans hero lines as open as the rest of the Cal Sans system. */
.ridge-hero-heading__line.ridge-font-cal{
  letter-spacing:0!important;
  font-kerning:normal!important;
  font-feature-settings:"kern" 1!important;
}

/* Final storefront surface: force true viewport width so no body/background
   sliver can appear alongside or beneath the rounded page ending. */
#MainContent>.shopify-section:last-child{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  box-sizing:border-box!important;
}
#MainContent>.shopify-section:last-child>section,
#MainContent>.shopify-section:last-child>.ridge-page-end,
#MainContent>.shopify-section:last-child>.ridge-home-signup,
#MainContent>.shopify-section:last-child>.ridge-default-page{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
  padding-bottom:210px!important;
}
.ridge-footer{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  box-sizing:border-box!important;
  margin-top:-78px!important;
  padding-top:78px!important;
}

@media(max-width:760px){
  :root{--ridge-home-rail:0px}

  /* Every homepage section is full-bleed horizontally on mobile. */
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .template-index .ridge-hero{
    height:clamp(500px,66svh,650px)!important;
    min-height:0!important;
    margin-bottom:clamp(54px,8svh,86px)!important;
    border-radius:0!important;
  }

  /* Mobile remains full bleed/square for major content surfaces. */
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .ridge-feature-detail{
    border-radius:0!important;
  }

  /* Smooth single-surface mobile dropdown. This replaces the older clipped
     sheet animation that could flash as two rectangles. */
  .ridge-header__frame{
    width:calc(100% - 16px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    overflow:visible!important;
  }
  .ridge-mobile-menu{
    display:block!important;
    position:absolute!important;
    left:8px!important;
    right:8px!important;
    top:74px!important;
    width:auto!important;
    max-height:0!important;
    overflow:hidden!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-5px)!important;
    clip-path:none!important;
    transition:max-height .44s cubic-bezier(.22,.61,.36,1),opacity .22s ease,transform .34s cubic-bezier(.22,.61,.36,1),visibility 0s linear .44s!important;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    max-height:calc(100svh - 82px)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
    transition:max-height .46s cubic-bezier(.22,.61,.36,1),opacity .22s .03s ease,transform .36s cubic-bezier(.22,.61,.36,1),visibility 0s!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame{
    background:var(--cream)!important;
    border-radius:22px 22px 0 0!important;
    box-shadow:none!important;
  }
  .ridge-header.is-mobile-open .ridge-nav{
    background:var(--cream)!important;
    border-radius:22px 22px 0 0!important;
  }
  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    background:var(--cream)!important;
    border-radius:0 0 22px 22px!important;
    clip-path:none!important;
    box-shadow:0 22px 42px rgba(35,35,35,.12)!important;
    transform:none!important;
  }

  /* Final mobile surface extends farther so the viewport/body never peeks out. */
  #MainContent>.shopify-section:last-child>section,
  #MainContent>.shopify-section:last-child>.ridge-page-end,
  #MainContent>.shopify-section:last-child>.ridge-home-signup,
  #MainContent>.shopify-section:last-child>.ridge-default-page{
    padding-bottom:180px!important;
  }
  .ridge-footer{
    margin-top:-64px!important;
    padding-top:64px!important;
  }
}


/* ================================================================
   Ridge 3.0.51 — near-edge homepage rail, taller hero + reveal gap,
   measured mobile drawer, softer global corners, anti-sliver footer
   ================================================================ */

/* Homepage surfaces now share a near-edge rail: roughly a tenth-inch visual
   gutter on desktop, true full bleed on mobile. */
:root{--ridge-home-rail:8px!important}
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.template-index .ridge-home-signup{
  margin-left:var(--ridge-home-rail)!important;
  margin-right:var(--ridge-home-rail)!important;
  width:auto!important;
  max-width:none!important;
}

/* v3.0.50 was intentionally short. Restore 40% more vertical hero presence,
   then increase the cream reveal gap by 50% so UBD only lightly peeks below. */
.template-index .ridge-hero{
  height:clamp(728px,87vh,924px)!important;
  min-height:0!important;
  margin-bottom:clamp(70px,10.5vh,118px)!important;
  border-radius:0 0 var(--radius-lg) var(--radius-lg)!important;
}

/* Make the 40% global radius reduction unmistakable. Expanded navigation and
   page-to-footer rounding are intentionally excluded. */
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.ridge-feature-detail,
.ridge-contact-page,
.ridge-default-page,
.ridge-product-gallery__stage,
.ridge-feature-gallery__stage,
.ridge-product-feature__media,
.ridge-feature-card__media,
.ridge-mega-card__media,
.product-grid .card-media,
.ridge-review-line,
.ridge-review-line__media,
.ridge-delivery-note,
.ridge-order-summary__card,
.ridge-purchase-card{
  --ridge-local-lg:var(--radius-lg,16px);
}
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.ridge-feature-detail,
.ridge-contact-page,
.ridge-default-page{border-radius:var(--radius-lg)!important}
.template-index .ridge-hero{border-radius:0 0 var(--radius-lg) var(--radius-lg)!important}
.ridge-product-gallery__stage,
.ridge-feature-gallery__stage,
.ridge-product-feature__media,
.ridge-feature-card__media,
.ridge-mega-card__media,
.product-grid .card-media,
.ridge-review-line__media{border-radius:var(--radius-md)!important}
.ridge-review-line,
.ridge-delivery-note,
.ridge-order-summary__card,
.ridge-purchase-card{border-radius:var(--radius-lg)!important}

/* Anti-alias / editor-canvas insurance: extend the final storefront surface and
   footer one physical pixel beyond both viewport edges. */
#MainContent>.shopify-section:last-child,
.ridge-footer{
  width:calc(100vw + 2px)!important;
  max-width:calc(100vw + 2px)!important;
  margin-left:calc(50% - 50vw - 1px)!important;
  margin-right:calc(50% - 50vw - 1px)!important;
}
#MainContent>.shopify-section:last-child>section,
#MainContent>.shopify-section:last-child>.ridge-page-end,
#MainContent>.shopify-section:last-child>.ridge-home-signup,
#MainContent>.shopify-section:last-child>.ridge-default-page{
  padding-bottom:280px!important;
}
.ridge-footer{margin-top:-120px!important;padding-top:120px!important}

@media(max-width:760px){
  :root{--ridge-home-rail:0px!important}

  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .template-index .ridge-hero{
    height:clamp(700px,92svh,910px)!important;
    min-height:0!important;
    margin-bottom:clamp(82px,12svh,130px)!important;
    border-radius:0!important;
  }

  /* Authoritative mobile menu: one measured sheet, no visibility flip, no
     max-height interpolation, and no clipped double-rectangle flash. */
  .ridge-header__frame{
    width:calc(100% - 16px)!important;
    overflow:visible!important;
  }
  .ridge-mobile-menu{
    display:block!important;
    position:absolute!important;
    left:8px!important;
    right:8px!important;
    top:70px!important;
    width:auto!important;
    height:var(--ridge-mobile-menu-height,0px)!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    opacity:0!important;
    visibility:visible!important;
    pointer-events:none!important;
    transform:none!important;
    clip-path:none!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 22px 22px!important;
    box-shadow:0 22px 44px rgba(35,35,35,0)!important;
    transition:height .44s cubic-bezier(.2,.7,.2,1),opacity .18s ease,box-shadow .28s ease!important;
    will-change:height,opacity!important;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    opacity:1!important;
    pointer-events:auto!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    box-shadow:0 22px 44px rgba(35,35,35,.14)!important;
  }
  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:calc(100svh - 92px)!important;
    overflow-y:auto!important;
    padding:20px 20px 24px!important;
    box-sizing:border-box!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 22px 22px!important;
    clip-path:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    box-shadow:none!important;
  }
  .ridge-mobile-menu__item,
  .ridge-mobile-menu__parent,
  .ridge-mobile-menu__item>a,
  .ridge-mobile-menu__children,
  .ridge-mobile-menu__children a{
    color:var(--ink)!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav{
    background:var(--cream)!important;
    color:var(--ink)!important;
    transition:background-color .20s ease,color .20s ease!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame{border-radius:18px 18px 0 0!important}
  .ridge-header.is-mobile-open .ridge-nav{border-radius:18px 18px 0 0!important}

  /* Large full-bleed homepage surfaces remain square on phone by design. */
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel{border-radius:0!important}

  #MainContent>.shopify-section:last-child>section,
  #MainContent>.shopify-section:last-child>.ridge-page-end,
  #MainContent>.shopify-section:last-child>.ridge-home-signup,
  #MainContent>.shopify-section:last-child>.ridge-default-page{padding-bottom:240px!important}
  .ridge-footer{margin-top:-100px!important;padding-top:100px!important}
}


/* ================================================================
   Ridge 3.0.52 — authoritative applied homepage sizing / mobile nav / radii
   ================================================================ */

/* 40% reduction from the previous 28px / 16px defaults. */
:root{
  --radius-lg:17px!important;
  --radius-md:10px!important;
  --ridge-home-rail:4px!important;
}

/* Every main homepage surface follows the same near-edge rail. */
.template-index .ridge-hero,
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel,
.template-index .ridge-home-signup{
  width:calc(100% - (var(--ridge-home-rail) * 2))!important;
  max-width:none!important;
  margin-left:var(--ridge-home-rail)!important;
  margin-right:var(--ridge-home-rail)!important;
  box-sizing:border-box!important;
}

/* Make the hero visibly taller and keep a larger cream reveal before UBD. */
.template-index .ridge-hero{
  height:clamp(760px,92vh,980px)!important;
  min-height:760px!important;
  margin-bottom:120px!important;
  border-radius:0 0 17px 17px!important;
}
.template-index .ridge-ubd-panel,
.template-index .ridge-all-feel{border-radius:17px!important}
.template-index .ridge-home-signup{border-radius:0 0 58px 58px!important}

/* Reduce visible rounding across large/card surfaces. Nav and footer joins are excluded. */
.ridge-feature-detail,
.ridge-contact-page,
.ridge-default-page,
.ridge-review-line,
.ridge-delivery-note,
.ridge-order-summary__card,
.ridge-purchase-card{border-radius:17px!important}
.ridge-product-gallery__stage,
.ridge-feature-gallery__stage,
.ridge-product-feature__media,
.ridge-feature-card__media,
.ridge-mega-card__media,
.product-grid .card-media,
.ridge-review-line__media{border-radius:10px!important}

@media (max-width:760px){
  :root{--ridge-home-rail:0px!important}

  /* Full-width homepage on phone, but keep hero noticeably taller than v3.0.50. */
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .template-index .ridge-hero{
    height:clamp(720px,90svh,900px)!important;
    min-height:720px!important;
    margin-bottom:96px!important;
    border-radius:0!important;
  }
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel{border-radius:0!important}

  /* One smooth dropdown sheet. Grid-row interpolation avoids the flash caused
     by swapping visibility/max-height states and mirrors the desktop easing. */
  .ridge-mobile-menu{
    display:grid!important;
    grid-template-rows:0fr!important;
    position:absolute!important;
    left:8px!important;
    right:8px!important;
    top:70px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    opacity:0!important;
    visibility:visible!important;
    pointer-events:none!important;
    overflow:hidden!important;
    transform:translateY(-6px)!important;
    clip-path:none!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 22px 22px!important;
    box-shadow:0 22px 44px rgba(35,35,35,0)!important;
    transition:grid-template-rows .38s cubic-bezier(.2,.7,.2,1),opacity .20s ease,transform .38s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease!important;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    grid-template-rows:1fr!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
    box-shadow:0 22px 44px rgba(35,35,35,.14)!important;
  }
  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    min-height:0!important;
    height:auto!important;
    max-height:calc(100svh - 92px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 22px 22px!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    clip-path:none!important;
  }
  .ridge-mobile-menu__item,
  .ridge-mobile-menu__parent,
  .ridge-mobile-menu__item>a,
  .ridge-mobile-menu__children a{
    color:var(--ink)!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav{
    background:var(--cream)!important;
    color:var(--ink)!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame{border-radius:18px 18px 0 0!important}
  .ridge-header.is-mobile-open .ridge-nav{border-radius:18px 18px 0 0!important}
}


/* ================================================================
   Ridge 3.0.53 — shorter homepage hero + desktop-like mobile drawer
   ================================================================ */

/* User requested 30% less vertical hero presence from 3.0.52. */
.template-index .ridge-hero{
  height:clamp(532px,64.5vh,686px)!important;
  min-height:532px!important;
}

@media (max-width:760px){
  .template-index .ridge-hero{
    height:clamp(504px,63svh,630px)!important;
    min-height:504px!important;
  }

  /* Authoritative mobile drawer surface. Motion is driven in JS using the
     same soft cubic-bezier feel as the desktop mega menu. */
  .ridge-mobile-menu{
    display:block!important;
    position:absolute!important;
    left:8px!important;
    right:8px!important;
    top:70px!important;
    width:auto!important;
    height:0;
    max-height:none!important;
    opacity:0;
    visibility:visible!important;
    pointer-events:none!important;
    overflow:hidden!important;
    transform:none!important;
    clip-path:none!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 18px 18px!important;
    box-shadow:0 24px 48px rgba(35,35,35,0)!important;
    transition:none!important;
    will-change:height,opacity,box-shadow;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    pointer-events:auto!important;
    box-shadow:0 24px 48px rgba(35,35,35,.14)!important;
  }
  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    max-height:calc(100svh - 92px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 18px 18px!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    clip-path:none!important;
    transition:none!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav{
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:18px 18px 0 0!important;
    transition:background-color .24s ease,color .24s ease,border-radius .24s ease!important;
  }
}


/* ================================================================
   Ridge 3.0.54 — hero height correction + truly smooth mobile drawer
   ================================================================ */

/* Desktop: restore 20% more vertical presence relative to v3.0.53. */
.template-index .ridge-hero{
  height:clamp(638px,77.4vh,823px)!important;
  min-height:638px!important;
}

@media (max-width:760px){
  /* The hero now terminates at the bottom edge of the visible phone screen.
     The announcement bar is accounted for so the section does not run long. */
  .template-index .ridge-hero{
    height:calc(100svh - var(--ridge-announcement-offset,0px))!important;
    min-height:calc(100svh - var(--ridge-announcement-offset,0px))!important;
    max-height:none!important;
  }

  /* Mobile drawer uses the same visual idea as desktop: one cream surface
     unfolding from the nav with no JS-driven inline height/opacity jumps. */
  .ridge-header__frame{
    overflow:visible!important;
  }

  .ridge-mobile-menu{
    display:grid!important;
    grid-template-rows:0fr!important;
    position:absolute!important;
    left:8px!important;
    right:8px!important;
    top:70px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    opacity:0!important;
    visibility:visible!important;
    pointer-events:none!important;
    overflow:hidden!important;
    transform:translateY(-8px)!important;
    clip-path:none!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 18px 18px!important;
    box-shadow:0 24px 48px rgba(35,35,35,0)!important;
    transition:
      grid-template-rows .46s cubic-bezier(.2,.7,.2,1),
      opacity .26s ease,
      transform .46s cubic-bezier(.2,.7,.2,1),
      box-shadow .32s ease!important;
    will-change:grid-template-rows,opacity,transform!important;
  }

  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    min-height:0!important;
    height:auto!important;
    max-height:calc(100svh - 92px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:0 0 18px 18px!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    clip-path:none!important;
    transition:none!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu{
    grid-template-rows:1fr!important;
    opacity:1!important;
    transform:translateY(0)!important;
    pointer-events:auto!important;
    box-shadow:0 24px 48px rgba(35,35,35,.14)!important;
  }

  .ridge-header.is-mobile-open .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-nav{
    background:var(--cream)!important;
    color:var(--ink)!important;
  }
  .ridge-header.is-mobile-open .ridge-header__frame{border-radius:18px 18px 0 0!important}
  .ridge-header.is-mobile-open .ridge-nav{border-radius:18px 18px 0 0!important}
}

/* ================================================================
   Ridge 3.0.55 — unified mobile header expansion
   The mobile drawer is now physically inside the header frame. The frame
   itself expands, matching the desktop mega-menu rather than revealing a
   second floating rectangle beneath it.
   ================================================================ */
@media (max-width:760px){
  .ridge-header__frame{
    display:grid!important;
    grid-template-rows:62px 0fr!important;
    width:calc(100% - 20px)!important;
    margin:8px auto 0!important;
    overflow:hidden!important;
    border-radius:18px!important;
    background:transparent!important;
    box-shadow:none!important;
    transition:
      grid-template-rows .52s cubic-bezier(.22,.72,.18,1),
      background-color .24s ease,
      box-shadow .34s ease!important;
    will-change:grid-template-rows!important;
  }

  .ridge-header.is-mobile-open .ridge-header__frame{
    grid-template-rows:62px 1fr!important;
    background:var(--cream)!important;
    color:var(--ink)!important;
    border-radius:18px!important;
    box-shadow:0 22px 48px rgba(35,35,35,.14)!important;
  }

  .ridge-nav{
    grid-row:1!important;
    width:100%!important;
    height:62px!important;
    min-height:62px!important;
    border-radius:18px!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    transition:color .24s ease,background-color .24s ease!important;
  }

  .ridge-header.is-mobile-open .ridge-nav{
    background:transparent!important;
    color:var(--ink)!important;
    border-radius:18px 18px 0 0!important;
  }

  .ridge-mobile-menu{
    grid-row:2!important;
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
    overflow:hidden!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    clip-path:none!important;
    background:transparent!important;
    border-radius:0!important;
    box-shadow:none!important;
    pointer-events:none!important;
    transition:none!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu{
    pointer-events:auto!important;
  }

  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    box-sizing:border-box!important;
    width:100%!important;
    min-height:0!important;
    max-height:min(72svh,620px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    margin:0!important;
    padding:18px 22px 26px!important;
    background:transparent!important;
    color:var(--ink)!important;
    border-radius:0!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    opacity:0!important;
    transform:translateY(-10px)!important;
    visibility:visible!important;
    clip-path:none!important;
    transition:
      opacity .20s ease,
      transform .42s cubic-bezier(.22,.72,.18,1)!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    opacity:1!important;
    transform:translateY(0)!important;
    transition-delay:.07s!important;
  }

  .ridge-header:not(.is-mobile-open) .ridge-mobile-menu__inner{
    transition-delay:0s!important;
  }

  .ridge-header.is-mobile-open .ridge-logo__dark{display:block!important}
  .ridge-header.is-mobile-open .ridge-logo__light{display:none!important}
  .ridge-header.is-mobile-open .ridge-logo>img{filter:none!important}
  .ridge-header.is-mobile-open .ridge-mobile-toggle span{background:var(--ink)!important}

  /* Preserve the requested viewport-filling mobile hero. */
  .template-index .ridge-hero{
    height:calc(100svh - var(--ridge-announcement-offset,0px))!important;
    min-height:calc(100svh - var(--ridge-announcement-offset,0px))!important;
    max-height:none!important;
  }
}

/* v3.0.56 — mobile expanded nav surface: one rounded panel like desktop */
@media (max-width: 767px){
  .ridge-header__frame{
    border-radius:24px!important;
  }

  .ridge-header.is-mobile-open .ridge-header__frame{
    background:rgba(234,224,209,.985)!important;
    border-radius:30px!important;
    overflow:hidden!important;
    box-shadow:0 22px 52px rgba(35,35,35,.14)!important;
  }

  .ridge-header.is-mobile-open .ridge-nav{
    background:transparent!important;
    border-radius:30px 30px 0 0!important;
    border-color:transparent!important;
    box-shadow:none!important;
  }

  .ridge-mobile-menu,
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    background:transparent!important;
    border-radius:0 0 30px 30px!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }

  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    width:100%!important;
    margin:0!important;
    padding:20px 24px 30px!important;
    background:transparent!important;
    border:0!important;
    border-radius:0 0 30px 30px!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  /* Prevent older menu-surface rules from drawing a second rectangle. */
  .ridge-mobile-menu__inner::before,
  .ridge-mobile-menu__inner::after{
    display:none!important;
    content:none!important;
  }
}

/* ================================================================
   Ridge 3.0.57 — Oura-reference desktop hero geometry
   Based on the supplied 2048×1154 Oura screenshot, the hero media surface
   spans x=34..2013 (1980 px) and y=0..1005 (1006 px), an aspect ratio of
   approximately 1.968:1. Preserve that proportion responsively on desktop.
   Mobile keeps the viewport-bottom behavior requested in v3.0.54–v3.0.56.
   ================================================================ */
@media (min-width:768px){
  .template-index .ridge-hero{
    box-sizing:border-box!important;
    width:calc(100% - 68px)!important;
    margin-left:34px!important;
    margin-right:34px!important;
    aspect-ratio:1980 / 1006!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
}

/* ================================================================
   Ridge 3.0.58 — unified Oura-width homepage section rail
   Every top-level homepage section surface uses the exact same desktop
   horizontal geometry as the Oura-reference hero from v3.0.57.
   ================================================================ */
@media (min-width:768px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    box-sizing:border-box!important;
    width:calc(100% - 68px)!important;
    max-width:none!important;
    margin-left:34px!important;
    margin-right:34px!important;
  }
}

@media (max-width:767px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-home-signup{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}

/* ================================================================
   Ridge 3.0.59 — mobile content rhythm + cart + Oura-style footer join
   ================================================================ */
@media (max-width: 760px){
  /* One shared mobile title datum for legal/content pages and review cart. */
  .ridge-default-page,
  .shopify-policy__container,
  .ridge-review-cart:has(.empty-state){
    padding-top:118px!important;
  }

  /* Content/text page typography: titles -50%, supporting copy -20%. */
  .ridge-default-page h1,
  .shopify-policy__title h1{
    font-size:clamp(26px,7vw,32px)!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
    margin:0 0 42px!important;
  }
  .ridge-default-page__meta{
    font-size:14px!important;
    line-height:1.3!important;
    margin-bottom:30px!important;
  }
  .ridge-default-page__content,
  .shopify-policy__body{
    font-size:13.6px!important;
    line-height:1.42!important;
  }
  .ridge-default-page__content h2,
  .shopify-policy__body h2{
    font-size:22px!important;
    line-height:1.08!important;
    margin:34px 0 20px!important;
  }
  .ridge-default-page__content h3,
  .shopify-policy__body h3{
    font-size:18px!important;
    line-height:1.12!important;
    margin:28px 0 16px!important;
  }

  /* Empty cart uses the same title placement as Privacy Policy. */
  .ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
    width:calc(100% - 36px)!important;
    min-height:calc(100svh - var(--ridge-announcement-offset,0px) - 118px)!important;
  }
  .ridge-review-cart:has(.empty-state) .ridge-cart-back{
    font-size:12px!important;
    line-height:1.2!important;
    margin:0 0 12px!important;
  }
  .ridge-review-cart:has(.empty-state) .ridge-cart-review-title{
    font-size:30px!important;
    line-height:1!important;
    letter-spacing:-.015em!important;
    margin:0!important;
  }
  .ridge-review-cart:has(.empty-state) .empty-state{
    padding:20px 0 10vh!important;
  }
  .ridge-review-cart:has(.empty-state) .empty-state p{
    font-size:13.6px!important;
    line-height:1.35!important;
    margin-bottom:18px!important;
  }
  .ridge-review-cart:has(.empty-state) .empty-state .button{
    min-width:150px!important;
    min-height:46px!important;
    padding:0 22px!important;
    font-size:13px!important;
    border-radius:14px!important;
    background:var(--accent)!important;
    color:#fff!important;
  }

  /* Oura-inspired mobile page/footer join: keep a comfortable text-safe zone
     before a broad, shallow lower curve instead of letting copy crowd it. */
  #MainContent>.shopify-section:last-child>section,
  #MainContent>.shopify-section:last-child>.ridge-page-end,
  #MainContent>.shopify-section:last-child>.ridge-default-page,
  #MainContent>.shopify-section:last-child>.shopify-policy__container{
    padding-bottom:190px!important;
    border-bottom-left-radius:86px!important;
    border-bottom-right-radius:86px!important;
    overflow:hidden!important;
  }
  .ridge-footer{
    margin-top:-96px!important;
    padding-top:96px!important;
  }
}

/* ================================================================
   Ridge 3.0.71 — shallower, tighter Oura-style terminal geometry
   One implementation only. All v3.0.60–v3.0.69 footer experiments
   were removed to eliminate competing padding/radius/overlap rules.
   ================================================================ */
@media (max-width:760px){
  :root{
    --ridge-terminal-radius:44px;
    --ridge-terminal-center-gap:42px;
    --ridge-footer-bg:#242424;
  }

  /* Normal page canvas stays cream. */
  .template-page #MainContent,
  .template-cart #MainContent,
  .template-collection #MainContent,
  .template-search #MainContent,
  .template-product #MainContent{
    background:var(--cream)!important;
  }

  /* The wrapper behind ONLY the last surface is the dark footer field.
     It is square and full width, so there is no side seam or second pill. */
  .template-page #MainContent>.shopify-section:last-child,
  .template-cart #MainContent>.shopify-section:last-child,
  .template-collection #MainContent>.shopify-section:last-child,
  .template-search #MainContent>.shopify-section:last-child,
  .template-product #MainContent>.shopify-section:last-child{
    box-sizing:border-box!important;
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:visible!important;
    background:var(--ridge-footer-bg)!important;
  }

  /* One cream terminal surface. 42px is the center-bottom distance from
     the last visible content to the bottom edge; the 44px radius creates
     a much shallower Oura-like curve with substantially less empty space. */
  .template-page #MainContent>.shopify-section:last-child>.ridge-default-page,
  .template-page #MainContent>.shopify-section:last-child>.ridge-contact-page,
  .template-page #MainContent>.shopify-section:last-child>section,
  .template-cart #MainContent>.shopify-section:last-child>.ridge-review-cart,
  .template-cart #MainContent>.shopify-section:last-child>section,
  .template-collection #MainContent>.shopify-section:last-child>section,
  .template-search #MainContent>.shopify-section:last-child>section,
  .template-product #MainContent>.shopify-section:last-child>.ridge-product-features,
  .template-product #MainContent>.shopify-section:last-child>section{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding-bottom:var(--ridge-terminal-center-gap)!important;
    border:0!important;
    border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:2!important;
  }

  /* Remove hidden spacing after the actual final visible item so every
     page measures its 64px gap from content, not from a nested wrapper. */
  .ridge-default-page__inner,
  .ridge-default-page__content,
  .ridge-contact-page__inner,
  .ridge-contact-page__grid,
  .ridge-contact-page__body,
  .template-cart .ridge-review-cart__shell,
  .template-cart .ridge-review-cart__main,
  .template-collection #MainContent>.shopify-section:last-child .page-width,
  .template-search #MainContent>.shopify-section:last-child .page-width,
  .template-product #MainContent>.shopify-section:last-child .ridge-section-inner,
  .template-product #MainContent>.shopify-section:last-child .ridge-product-features__grid{
    padding-bottom:0!important;
    margin-bottom:0!important;
  }

  .ridge-default-page__content>:last-child,
  .ridge-default-page__content>:last-child>:last-child,
  .ridge-contact-page__body>:last-child,
  .ridge-contact-page__body>:last-child>:last-child,
  .template-cart .ridge-review-cart__main>:last-child,
  .template-cart .empty-state>:last-child,
  .template-collection #MainContent>.shopify-section:last-child .page-width>:last-child,
  .template-search #MainContent>.shopify-section:last-child .page-width>:last-child,
  .template-product .ridge-product-features__grid>:last-child,
  .template-product .ridge-product-feature:last-child,
  .template-product .ridge-product-feature:last-child .ridge-product-feature__details,
  .template-product .ridge-product-feature:last-child .ridge-product-feature__details>summary,
  .template-product .ridge-product-feature:last-child .ridge-product-feature__details>div:last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* Shopify policy pages are not regular .shopify-section markup, so give
     them the exact same terminal geometry explicitly. */
  #MainContent:has(.shopify-policy__container){
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:visible!important;
    background:var(--ridge-footer-bg)!important;
  }

  #MainContent:has(.shopify-policy__container) .shopify-policy__container{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding-left:18px!important;
    padding-right:18px!important;
    padding-bottom:var(--ridge-terminal-center-gap)!important;
    border:0!important;
    border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:2!important;
  }

  #MainContent:has(.shopify-policy__container) .shopify-policy__body,
  #MainContent:has(.shopify-policy__container) .shopify-policy__body .rte{
    min-height:0!important;
    height:auto!important;
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  #MainContent:has(.shopify-policy__container) .shopify-policy__body>:last-child,
  #MainContent:has(.shopify-policy__container) .shopify-policy__body .rte>:last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* Kill every legacy decorative cap on both pseudo-elements. */
  .template-page #MainContent>.shopify-section:last-child>section::before,
  .template-page #MainContent>.shopify-section:last-child>section::after,
  .template-cart #MainContent>.shopify-section:last-child>section::before,
  .template-cart #MainContent>.shopify-section:last-child>section::after,
  .template-collection #MainContent>.shopify-section:last-child>section::before,
  .template-collection #MainContent>.shopify-section:last-child>section::after,
  .template-search #MainContent>.shopify-section:last-child>section::before,
  .template-search #MainContent>.shopify-section:last-child>section::after,
  .template-product #MainContent>.shopify-section:last-child>section::before,
  .template-product #MainContent>.shopify-section:last-child>section::after,
  .shopify-policy__container::before,
  .shopify-policy__container::after{
    content:none!important;
    display:none!important;
  }

  /* Footer is a direct square continuation of the dark underlay. */
  .template-page .ridge-footer,
  .template-cart .ridge-footer,
  .template-collection .ridge-footer,
  .template-search .ridge-footer,
  .template-product .ridge-footer,
  body:has(.shopify-policy__container) .ridge-footer{
    box-sizing:border-box!important;
    width:100vw!important;
    max-width:100vw!important;
    margin:0!important;
    padding-top:0!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    border:0!important;
    border-radius:0!important;
    background:var(--ridge-footer-bg)!important;
    position:relative!important;
    z-index:1!important;
  }

  /* Preserve the requested dark, centered empty-cart button. */
  .ridge-review-cart:has(.empty-state) .empty-state .button,
  .ridge-review-cart:has(.empty-state) .empty-state .button--dark{
    width:150px!important;
    min-width:150px!important;
    height:46px!important;
    min-height:46px!important;
    padding:0 18px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    line-height:1!important;
    background:#4E4E4E!important;
    color:#fff!important;
    border:0!important;
    border-radius:14px!important;
  }
}


/* ================================================================
   Ridge 3.0.72 — balanced mobile text gutter + one terminal geometry
   Uses the working policy-page curve as the reference for all pages.
   ================================================================ */
@media (max-width:760px){
  :root{
    --ridge-mobile-copy-gutter:40px;
    --ridge-terminal-radius:44px;
    --ridge-terminal-center-gap:42px;
  }

  /* CONTENT / TEXT ALIGNMENT
     Align copy with the mobile menu/hamburger visual datum and mirror it
     on the right side for a balanced reading column. */
  .ridge-default-page__inner,
  .ridge-contact-page__inner{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:var(--ridge-mobile-copy-gutter)!important;
    padding-right:var(--ridge-mobile-copy-gutter)!important;
  }

  #MainContent:has(.shopify-policy__container) .shopify-policy__container{
    padding-left:var(--ridge-mobile-copy-gutter)!important;
    padding-right:var(--ridge-mobile-copy-gutter)!important;
  }

  /* Keep title/body on the exact same left/right datum. */
  .ridge-default-page h1,
  .ridge-default-page__meta,
  .ridge-default-page__content,
  .ridge-contact-page h1,
  .ridge-contact-page__grid,
  .shopify-policy__title,
  .shopify-policy__body{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* TERMINAL CURVE
     Copy the policy/terms geometry verbatim to every other storefront page. */
  .template-page #MainContent>.shopify-section:last-child>.ridge-default-page,
  .template-page #MainContent>.shopify-section:last-child>.ridge-contact-page,
  .template-page #MainContent>.shopify-section:last-child>section,
  .template-cart #MainContent>.shopify-section:last-child>.ridge-review-cart,
  .template-cart #MainContent>.shopify-section:last-child>section,
  .template-collection #MainContent>.shopify-section:last-child>section,
  .template-search #MainContent>.shopify-section:last-child>section,
  .template-product #MainContent>.shopify-section:last-child>.ridge-product-features,
  .template-product #MainContent>.shopify-section:last-child>section{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding-bottom:var(--ridge-terminal-center-gap)!important;
    border:0!important;
    border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:2!important;
  }

  /* The final wrapper is only a square dark underlay — never another rounded pill. */
  .template-page #MainContent>.shopify-section:last-child,
  .template-cart #MainContent>.shopify-section:last-child,
  .template-collection #MainContent>.shopify-section:last-child,
  .template-search #MainContent>.shopify-section:last-child,
  .template-product #MainContent>.shopify-section:last-child{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    background:var(--ridge-footer-bg)!important;
  }

  /* Remove leftover terminal height/spacing that made cart/product/contact
     end differently from policy pages. */
  .ridge-review-cart,
  .ridge-review-cart:has(.empty-state),
  .ridge-review-cart:has(.empty-state) .ridge-review-cart__shell,
  .ridge-review-cart:has(.empty-state) .ridge-review-cart__main,
  .ridge-contact-page,
  .ridge-product-features{
    min-height:0!important;
    height:auto!important;
  }

  .ridge-review-cart:has(.empty-state) .ridge-review-cart__shell{
    min-height:0!important;
  }

  .ridge-review-cart:has(.empty-state) .empty-state{
    padding-bottom:0!important;
    margin-bottom:0!important;
  }

  .ridge-contact-page__inner,
  .ridge-contact-page__grid,
  .ridge-contact-page__body,
  .ridge-product-features .ridge-section-inner,
  .ridge-product-features__grid{
    padding-bottom:0!important;
    margin-bottom:0!important;
  }

  .ridge-contact-page__body>:last-child,
  .ridge-contact-page__body>:last-child>:last-child,
  .ridge-product-feature:last-child,
  .ridge-product-feature:last-child .ridge-product-feature__details,
  .ridge-product-feature:last-child .ridge-product-feature__details>summary,
  .ridge-product-feature:last-child .ridge-product-feature__details>div:last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* No legacy caps/shadows are allowed to create a second black rounded shape. */
  .ridge-default-page::before,.ridge-default-page::after,
  .ridge-contact-page::before,.ridge-contact-page::after,
  .ridge-review-cart::before,.ridge-review-cart::after,
  .ridge-product-features::before,.ridge-product-features::after,
  .shopify-policy__container::before,.shopify-policy__container::after{
    content:none!important;
    display:none!important;
  }
}


/* ================================================================
   Ridge 3.0.73 — apply the WORKING policy-page terminal geometry
   to the actual terminal sections, not to template guesses.
   ================================================================ */
@media (max-width:760px){
  :root{
    --ridge-terminal-radius:44px;
    --ridge-terminal-center-gap:42px;
  }

  /* Every real terminal section now uses the same geometry as the
     Privacy Policy / Terms surface that is already working correctly. */
  #MainContent > .shopify-section:has(> .ridge-terminal-surface){
    box-sizing:border-box!important;
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    background:var(--ridge-footer-bg,#242424)!important;
  }

  #MainContent > .shopify-section > .ridge-terminal-surface{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding-bottom:var(--ridge-terminal-center-gap)!important;
    border:0!important;
    border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:2!important;
  }

  /* Strip old terminal spacing from the actual content wrappers.
     The 42px gap above is now the ONLY page-end spacing. */
  .ridge-terminal-surface > .ridge-default-page__inner,
  .ridge-terminal-surface > .ridge-contact-page__inner,
  .ridge-terminal-surface > .ridge-review-cart__shell,
  .ridge-terminal-surface > .page-width,
  .ridge-terminal-surface > .ridge-section-inner{
    margin-bottom:0!important;
    padding-bottom:0!important;
    min-height:0!important;
    height:auto!important;
  }

  .ridge-terminal-surface .ridge-default-page__content,
  .ridge-terminal-surface .ridge-contact-page__grid,
  .ridge-terminal-surface .ridge-contact-page__body,
  .ridge-terminal-surface .ridge-review-cart__main,
  .ridge-terminal-surface .ridge-product-features__grid{
    margin-bottom:0!important;
    padding-bottom:0!important;
    min-height:0!important;
    height:auto!important;
  }

  .ridge-terminal-surface .ridge-default-page__content > :last-child,
  .ridge-terminal-surface .ridge-contact-page__body > :last-child,
  .ridge-terminal-surface .ridge-review-cart__main > :last-child,
  .ridge-terminal-surface .page-width > :last-child,
  .ridge-terminal-surface .ridge-product-features__grid > :last-child,
  .ridge-terminal-surface .ridge-product-feature:last-child,
  .ridge-terminal-surface .ridge-product-feature:last-child .ridge-product-feature__details{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* Empty cart had several historical viewport-height rules.
     Remove all of them so its ending behaves like a policy page. */
  .ridge-terminal-surface.ridge-review-cart:has(.empty-state),
  .ridge-terminal-surface.ridge-review-cart:has(.empty-state) .ridge-review-cart__shell,
  .ridge-terminal-surface.ridge-review-cart:has(.empty-state) .ridge-review-cart__main,
  .ridge-terminal-surface.ridge-review-cart:has(.empty-state) .empty-state{
    min-height:0!important;
    height:auto!important;
  }

  .ridge-terminal-surface.ridge-review-cart:has(.empty-state) .empty-state{
    flex:0 0 auto!important;
    margin:44px 0 0!important;
    padding:0!important;
    justify-content:flex-start!important;
  }

  /* Product sticky CTA is fixed and should never create terminal spacing. */
  .ridge-terminal-surface .ridge-sticky-cart{
    margin:0!important;
  }

  /* Contact/product/404 carried their own legacy corner systems. */
  .ridge-terminal-surface.ridge-contact-page,
  .ridge-terminal-surface.ridge-product-features,
  .ridge-terminal-surface.ridge-404{
    border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
  }

  /* Never allow an old decorative pseudo-cap to create a second black curve. */
  .ridge-terminal-surface::before,
  .ridge-terminal-surface::after{
    content:none!important;
    display:none!important;
  }

  /* Footer simply continues the same dark field beneath the cream curve. */
  body:has(.ridge-terminal-surface) .ridge-footer{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    border-radius:0!important;
    background:var(--ridge-footer-bg,#242424)!important;
  }
}


/* ================================================================
   Ridge 3.0.74 — authoritative policy-style terminal geometry on
   desktop + mobile, plus Collection/Shop All typography/rhythm.
   ================================================================ */
:root{
  --ridge-terminal-radius:44px;
  --ridge-terminal-center-gap:42px;
  --ridge-footer-bg:#242424;
}

/* POLICY / TERMS: use the same clean surface architecture at every width.
   MainContent is only the square dark underlay; the cream policy container
   is the single rounded surface. */
.template-policy #MainContent,
#MainContent:has(.shopify-policy__container){
  box-sizing:border-box!important;
  width:calc(100% + 2px)!important;
  max-width:none!important;
  margin-left:-1px!important;
  margin-right:-1px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  background:var(--ridge-footer-bg)!important;
}
#MainContent:has(.shopify-policy__container) .shopify-policy__container{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:132px 76px var(--ridge-terminal-center-gap)!important;
  border:0!important;
  border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
  box-shadow:none!important;
  overflow:hidden!important;
  background:var(--cream)!important;
  position:relative!important;
  z-index:2!important;
}
#MainContent:has(.shopify-policy__container) .shopify-policy__title,
#MainContent:has(.shopify-policy__container) .shopify-policy__body{
  width:min(100%,calc(var(--content) - 68px))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
#MainContent:has(.shopify-policy__container) .shopify-policy__body,
#MainContent:has(.shopify-policy__container) .shopify-policy__body .rte{
  margin-bottom:0!important;
  padding-bottom:0!important;
  min-height:0!important;
  height:auto!important;
}
#MainContent:has(.shopify-policy__container) .shopify-policy__body>:last-child,
#MainContent:has(.shopify-policy__container) .shopify-policy__body .rte>:last-child{
  margin-bottom:0!important;
  padding-bottom:0!important;
}

/* ALL OTHER TERMINAL PAGES: exactly the same cream radius/gap as policy pages.
   The parent is always square, so there can be no second rounded black edge. */
#MainContent > .shopify-section:has(> .ridge-terminal-surface){
  box-sizing:border-box!important;
  width:calc(100% + 2px)!important;
  max-width:none!important;
  margin-left:-1px!important;
  margin-right:-1px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  background:var(--ridge-footer-bg)!important;
}
#MainContent > .shopify-section > .ridge-terminal-surface{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding-bottom:var(--ridge-terminal-center-gap)!important;
  border:0!important;
  border-radius:0 0 var(--ridge-terminal-radius) var(--ridge-terminal-radius)!important;
  box-shadow:none!important;
  overflow:hidden!important;
  background:var(--cream)!important;
  position:relative!important;
  z-index:2!important;
}

/* Remove all historical page-end padding/min-height inside the terminal surface. */
.ridge-terminal-surface > .ridge-default-page__inner,
.ridge-terminal-surface > .ridge-contact-page__inner,
.ridge-terminal-surface > .ridge-review-cart__shell,
.ridge-terminal-surface > .page-width,
.ridge-terminal-surface > .ridge-section-inner,
.ridge-terminal-surface .ridge-default-page__content,
.ridge-terminal-surface .ridge-contact-page__grid,
.ridge-terminal-surface .ridge-contact-page__body,
.ridge-terminal-surface .ridge-review-cart__main,
.ridge-terminal-surface .ridge-product-features__grid{
  margin-bottom:0!important;
  padding-bottom:0!important;
  min-height:0!important;
  height:auto!important;
}
.ridge-terminal-surface .ridge-default-page__content>:last-child,
.ridge-terminal-surface .ridge-contact-page__body>:last-child,
.ridge-terminal-surface .ridge-review-cart__main>:last-child,
.ridge-terminal-surface .page-width>:last-child,
.ridge-terminal-surface .ridge-product-features__grid>:last-child,
.ridge-terminal-surface .ridge-product-feature:last-child,
.ridge-terminal-surface .ridge-product-feature:last-child .ridge-product-feature__details{
  margin-bottom:0!important;
  padding-bottom:0!important;
}
.ridge-terminal-surface.ridge-review-cart,
.ridge-terminal-surface.ridge-review-cart .ridge-review-cart__shell,
.ridge-terminal-surface.ridge-review-cart .ridge-review-cart__main,
.ridge-terminal-surface.ridge-review-cart .empty-state,
.ridge-terminal-surface.ridge-contact-page,
.ridge-terminal-surface.ridge-product-features,
.ridge-terminal-surface.ridge-404{
  min-height:0!important;
  height:auto!important;
}
.ridge-terminal-surface::before,
.ridge-terminal-surface::after,
.shopify-policy__container::before,
.shopify-policy__container::after{
  content:none!important;
  display:none!important;
}

/* Footer is a square continuation of the underlay. Kill all old negative overlap. */
body:has(.ridge-terminal-surface) .ridge-footer,
body:has(.shopify-policy__container) .ridge-footer{
  box-sizing:border-box!important;
  width:calc(100% + 2px)!important;
  max-width:none!important;
  margin-top:0!important;
  margin-left:-1px!important;
  margin-right:-1px!important;
  padding-top:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:var(--ridge-footer-bg)!important;
  position:relative!important;
  z-index:1!important;
}

/* SHOP ALL / COLLECTION — desktop */
.template-collection main{
  padding-top:0!important;
}
.template-collection .ridge-collection-page{
  padding-top:132px!important;
}
.template-collection .ridge-collection-page>.page-width{
  width:min(calc(100% - 152px),calc(var(--content) - 68px))!important;
  max-width:none!important;
  margin-inline:auto!important;
}
.template-collection .ridge-collection-head{
  margin:0 0 48px!important;
}
.template-collection .ridge-collection-title{
  font-family:'Cal Sans',Arial,sans-serif!important;
  font-weight:400!important;
  font-size:62px!important;
  line-height:1.02!important;
  letter-spacing:0!important;
  margin:0!important;
}
.template-collection .ridge-collection-toolbar{
  font-size:14.7px!important; /* 30% smaller than 21px */
  line-height:1.1!important;
  gap:17px!important;
  margin:0 0 24px!important;
}
.template-collection .ridge-collection-toolbar form{
  gap:6px!important;
}
.template-collection .ridge-collection-toolbar select,
.template-collection .ridge-collection-toolbar .select{
  min-height:31px!important;
  height:31px!important;
  font-size:14.7px!important;
  padding:4px 31px 4px 11px!important;
  background-position:calc(100% - 13px) 12px,calc(100% - 9px) 12px!important;
  background-size:4px 4px,4px 4px!important;
}

@media(max-width:760px){
  /* Same title datum and reading gutter as the working mobile policies. */
  #MainContent:has(.shopify-policy__container) .shopify-policy__container{
    padding:118px 40px var(--ridge-terminal-center-gap)!important;
  }
  #MainContent:has(.shopify-policy__container) .shopify-policy__title,
  #MainContent:has(.shopify-policy__container) .shopify-policy__body{
    width:100%!important;
  }

  .template-collection main{padding-top:0!important}
  .template-collection .ridge-collection-page{
    padding-top:118px!important;
  }
  .template-collection .ridge-collection-page>.page-width{
    width:calc(100% - 80px)!important;
    max-width:none!important;
    margin-inline:auto!important;
  }
  .template-collection .ridge-collection-head{
    margin:0 0 38px!important;
  }
  .template-collection .ridge-collection-title{
    font-size:clamp(26px,7vw,32px)!important;
    line-height:1.02!important;
    margin:0!important;
  }
  .template-collection .ridge-collection-toolbar{
    font-size:12.6px!important; /* 40% smaller than 21px */
    line-height:1.1!important;
    gap:7px!important;
    margin:0 0 24px!important;
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  .template-collection .ridge-collection-toolbar form{gap:5px!important}
  .template-collection .ridge-collection-toolbar select,
  .template-collection .ridge-collection-toolbar .select{
    min-height:28px!important;
    height:28px!important;
    font-size:12.6px!important;
    padding:3px 27px 3px 10px!important;
    background-position:calc(100% - 12px) 10px,calc(100% - 8px) 10px!important;
    background-size:4px 4px,4px 4px!important;
  }

  /* Empty cart: keep content-driven height while preserving the shared curve. */
  .ridge-terminal-surface.ridge-review-cart:has(.empty-state) .empty-state{
    flex:0 0 auto!important;
    margin:44px 0 0!important;
    padding:0!important;
    justify-content:flex-start!important;
  }
}


/* ================================================================
   Ridge 3.0.75 — MOBILE ONLY terminal join correction
   Desktop v3.0.74 is intentionally untouched.
   The dark footer itself now sits behind the cream curve instead of a
   separate black section wrapper, eliminating the visible black "lip".
   ================================================================ */
@media (max-width:760px){
  :root{
    --ridge-mobile-terminal-radius:44px;
    --ridge-mobile-terminal-gap:42px;
  }

  /* NON-POLICY TERMINAL PAGES
     Do not paint the section wrapper black. That wrapper was the source
     of the separate crescent / double-black edge visible on mobile. */
  #MainContent > .shopify-section:has(> .ridge-terminal-surface){
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    background:transparent!important;
    position:relative!important;
    z-index:2!important;
  }

  #MainContent > .shopify-section > .ridge-terminal-surface{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding-bottom:var(--ridge-mobile-terminal-gap)!important;
    border:0!important;
    border-radius:0 0 var(--ridge-mobile-terminal-radius) var(--ridge-mobile-terminal-radius)!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:3!important;
  }

  /* The footer is now the ONLY dark layer beneath the curve.
     Pull it upward exactly one radius so it fills the rounded cut-outs
     without creating a second black rounded shape. */
  body:has(.ridge-terminal-surface) .ridge-footer{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    margin-top:calc(-1 * var(--ridge-mobile-terminal-radius))!important;
    padding-top:var(--ridge-mobile-terminal-radius)!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#242424!important;
    position:relative!important;
    z-index:1!important;
  }
  body:has(.ridge-terminal-surface) .ridge-footer__main{
    background:#242424!important;
  }

  /* Remove any stray full-width dark background on MainContent for these
     ordinary storefront pages. Policies keep their already-working setup. */
  body:not(:has(.shopify-policy__container)) #MainContent{
    background:var(--cream)!important;
  }

  /* Keep the working policy/Terms implementation completely unchanged. */

  /* CONTACT — make its mobile heading behave like the policy/text titles
     rather than sitting beneath the floating navigation. */
  .ridge-contact-page.ridge-terminal-surface{
    padding-top:118px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:40px!important;
    padding-right:40px!important;
    padding-bottom:0!important;
  }
  .ridge-contact-page.ridge-terminal-surface h1{
    font-size:clamp(26px,7vw,32px)!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
    margin:0 0 42px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid,
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body > :last-child{
    margin-bottom:0!important;
  }

  /* EMPTY CART — guarantee content-driven height and make the button the
     true last item before the shared 42px terminal gap. */
  .template-cart .ridge-review-cart.ridge-terminal-surface,
  .template-cart .ridge-review-cart.ridge-terminal-surface .ridge-review-cart__shell,
  .template-cart .ridge-review-cart.ridge-terminal-surface .ridge-review-cart__main,
  .template-cart .ridge-review-cart.ridge-terminal-surface .empty-state{
    min-height:0!important;
    height:auto!important;
  }
  .template-cart .ridge-review-cart.ridge-terminal-surface .ridge-review-cart__shell{
    padding-bottom:0!important;
    margin-bottom:0!important;
  }
  .template-cart .ridge-review-cart.ridge-terminal-surface .empty-state{
    flex:0 0 auto!important;
    margin:44px 0 0!important;
    padding:0!important;
    justify-content:flex-start!important;
  }
  .template-cart .ridge-review-cart.ridge-terminal-surface .empty-state .button{
    margin-bottom:0!important;
  }

  /* COLLECTION — remove hidden space after the last card so the same
     terminal gap is measured from the actual product content. */
  .template-collection .ridge-terminal-surface > .page-width,
  .template-collection .ridge-terminal-surface .product-grid,
  .template-collection .ridge-terminal-surface .product-grid .card:last-child,
  .template-collection .ridge-terminal-surface .product-grid .card:last-child .card-info{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* PRODUCT FEATURES — same rule: last visible accordion is the datum. */
  .template-product .ridge-terminal-surface > .ridge-section-inner,
  .template-product .ridge-terminal-surface .ridge-product-features__grid,
  .template-product .ridge-terminal-surface .ridge-product-feature:last-child,
  .template-product .ridge-terminal-surface .ridge-product-feature:last-child details,
  .template-product .ridge-terminal-surface .ridge-product-feature:last-child summary{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* Prevent any decorative legacy element from rebuilding a dark lip. */
  #MainContent > .shopify-section > .ridge-terminal-surface::before,
  #MainContent > .shopify-section > .ridge-terminal-surface::after{
    content:none!important;
    display:none!important;
  }
}


/* ================================================================
   Ridge 3.0.76 — MOBILE ONLY: match the working policy corner layout
   Desktop is intentionally unchanged.
   ================================================================ */
@media (max-width:760px){
  :root{
    --ridge-mobile-terminal-radius:44px;
    --ridge-mobile-terminal-gap:42px;
  }

  /* CART — same construction as the working Policy/Terms pages:
     dark canvas directly behind one cream rounded surface. */
  .template-cart #MainContent{
    background:#242424!important;
  }
  .template-cart #MainContent > .shopify-section:last-child{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#242424!important;
    overflow:visible!important;
  }
  .template-cart .ridge-review-cart.ridge-terminal-surface{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding-bottom:var(--ridge-mobile-terminal-gap)!important;
    border:0!important;
    border-radius:0 0 var(--ridge-mobile-terminal-radius) var(--ridge-mobile-terminal-radius)!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:var(--cream)!important;
  }
  .template-cart .ridge-footer{
    margin-top:0!important;
    padding-top:0!important;
    border-radius:0!important;
    background:#242424!important;
  }
  .template-cart .ridge-footer__main{
    background:#242424!important;
  }

  /* HOME SIGNUP — remove the old oversized mobile bottom spacing and
     use the same compact 44px corner language. */
  .template-index #MainContent > .shopify-section:last-child{
    background:var(--cream)!important;
  }
  .template-index #MainContent > .shopify-section:last-child > .ridge-home-signup,
  .template-index .ridge-home-signup{
    min-height:0!important;
    height:auto!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-bottom:var(--ridge-mobile-terminal-gap)!important;
    border-radius:0 0 var(--ridge-mobile-terminal-radius) var(--ridge-mobile-terminal-radius)!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }
  .template-index .ridge-home-signup__inner{
    min-height:0!important;
    height:auto!important;
    margin-bottom:0!important;
    padding-bottom:0!important;
  }
  .template-index .ridge-home-signup__form,
  .template-index .ridge-home-signup__form > :last-child{
    margin-bottom:0!important;
  }
  .template-index .ridge-footer{
    margin-top:0!important;
    padding-top:0!important;
  }

  .template-cart .ridge-review-cart::before,
  .template-cart .ridge-review-cart::after,
  .template-index .ridge-home-signup::before,
  .template-index .ridge-home-signup::after{
    content:none!important;
    display:none!important;
  }
}


/* ================================================================
   Ridge 3.0.77 — MOBILE HOME SIGNUP CORNER UNDERLAY FIX
   Desktop remains unchanged.
   The parent behind the rounded signup now matches the footer dark,
   so cream no longer shows through the lower rounded corners.
   ================================================================ */
@media (max-width:760px){
  .template-index #MainContent > .shopify-section:last-child{
    background:#242424!important;
    border-radius:0!important;
    overflow:visible!important;
  }

  .template-index #MainContent > .shopify-section:last-child > .ridge-home-signup,
  .template-index .ridge-home-signup{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-bottom:42px!important;
    border-radius:0 0 44px 44px!important;
    background:#242424!important;
    box-shadow:none!important;
    overflow:hidden!important;
    position:relative!important;
    z-index:2!important;
  }

  .template-index .ridge-footer,
  .template-index .ridge-footer__main{
    background:#242424!important;
  }

  .template-index .ridge-footer{
    margin-top:0!important;
    padding-top:0!important;
    border-radius:0!important;
  }

  .template-index .ridge-home-signup::before,
  .template-index .ridge-home-signup::after{
    content:none!important;
    display:none!important;
  }
}


/* ================================================================
   Ridge 3.0.78 — cart polish, contact alignment, compact terminal spacing
   Customer/account pages intentionally excluded.
   ================================================================ */

/* ---------- DESKTOP: use policy/terms page-end rhythm everywhere ---------- */
@media (min-width:761px){
  :root{
    --ridge-desktop-terminal-radius:44px;
    --ridge-desktop-terminal-gap:42px;
  }

  /* Kill historical 280px terminal padding / viewport-height behavior. */
  .ridge-terminal-surface,
  .ridge-product-features.ridge-terminal-surface,
  .ridge-review-cart.ridge-terminal-surface,
  .ridge-contact-page.ridge-terminal-surface,
  .ridge-collection-page.ridge-terminal-surface{
    min-height:0!important;
    height:auto!important;
    padding-bottom:var(--ridge-desktop-terminal-gap)!important;
    border-radius:0 0 var(--ridge-desktop-terminal-radius) var(--ridge-desktop-terminal-radius)!important;
  }

  .ridge-terminal-surface > .ridge-section-inner,
  .ridge-terminal-surface > .ridge-review-cart__shell,
  .ridge-terminal-surface > .ridge-contact-page__inner,
  .ridge-terminal-surface > .page-width,
  .ridge-terminal-surface .ridge-product-features__grid,
  .ridge-terminal-surface .ridge-review-cart__main,
  .ridge-terminal-surface .ridge-contact-page__grid,
  .ridge-terminal-surface .ridge-contact-page__body,
  .ridge-terminal-surface .product-grid{
    min-height:0!important;
    height:auto!important;
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  .ridge-terminal-surface .ridge-product-feature:last-child,
  .ridge-terminal-surface .ridge-review-cart__main > :last-child,
  .ridge-terminal-surface .ridge-contact-page__body > :last-child,
  .ridge-terminal-surface .product-grid > :last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* Contact page: same title scale/vertical datum as desktop policy pages. */
  .ridge-contact-page.ridge-terminal-surface{
    padding-top:132px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    width:min(calc(100% - 152px),calc(var(--content) - 68px))!important;
    max-width:none!important;
    margin-inline:auto!important;
    padding:0!important;
  }
  .ridge-contact-page.ridge-terminal-surface h1{
    font-size:clamp(42px,4vw,64px)!important;
    line-height:1.02!important;
    letter-spacing:0!important;
    margin:0 0 42px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid{
    grid-template-columns:minmax(180px,.7fr) minmax(0,1.6fr)!important;
    gap:56px!important;
    align-items:start!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label,
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:20px!important;
    line-height:1.28!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label p,
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin-top:0!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin-bottom:30px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p:last-child{
    margin-bottom:0!important;
  }
}

/* ---------- MOBILE: cart + contact typography/layout ---------- */
@media (max-width:760px){
  :root{
    --ridge-policy-heading-mobile:clamp(26px,7vw,32px);
    --ridge-mobile-terminal-radius:44px;
    --ridge-mobile-terminal-gap:42px;
  }

  /* All principal cart headings match Privacy / Terms title scale. */
  .template-cart .ridge-cart-review-title,
  .template-cart .ridge-order-summary > h2{
    font-family:'Cal Sans',Arial,sans-serif!important;
    font-size:var(--ridge-policy-heading-mobile)!important;
    font-weight:400!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
  }
  .template-cart .ridge-cart-review-title{
    margin:0 0 26px!important;
  }
  .template-cart .ridge-order-summary > h2{
    margin:0 0 16px!important;
  }

  .template-cart .ridge-review-cart__shell{
    width:calc(100% - 40px)!important;
    grid-template-columns:1fr!important;
    gap:26px!important;
    padding-bottom:0!important;
  }
  .template-cart .ridge-cart-back{
    font-size:12px!important;
    margin:0 0 10px!important;
  }

  /* Delivery notice: about 30% smaller and correspondingly tighter. */
  .template-cart .ridge-delivery-note{
    gap:10px!important;
    padding:12px 14px!important;
    margin-bottom:16px!important;
    border-radius:12px!important;
    font-size:12px!important;
    line-height:1.28!important;
  }
  .template-cart .ridge-delivery-note__icon{
    font-size:20px!important;
  }

  /* Product summary card: compact, balanced three-column composition. */
  .template-cart .ridge-review-line{
    grid-template-columns:64px minmax(0,1fr) 72px!important;
    gap:10px!important;
    padding:12px!important;
    align-items:start!important;
    border-radius:13px!important;
  }
  .template-cart .ridge-review-line__media{
    width:64px!important;
    height:64px!important;
    border-radius:9px!important;
  }
  .template-cart .ridge-review-line__copy{
    font-size:12px!important;
    line-height:1.28!important;
    min-width:0!important;
  }
  .template-cart .ridge-review-line__title{
    font-size:16px!important;
    line-height:1.05!important;
    margin-bottom:7px!important;
  }
  .template-cart .ridge-review-line__end{
    grid-column:3!important;
    grid-row:1!important;
    min-width:0!important;
    width:72px!important;
    gap:8px!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    font-size:14px!important;
  }
  .template-cart .ridge-review-line__end > strong{
    font-size:14px!important;
    line-height:1!important;
  }
  .template-cart .ridge-cart-remove{
    font-size:10px!important;
    line-height:1!important;
  }
  .template-cart .ridge-cart-stepper{
    grid-template-columns:18px 22px 18px!important;
    margin-top:4px!important;
    font-size:14px!important;
  }
  .template-cart .ridge-cart-stepper button,
  .template-cart .ridge-cart-stepper input{
    height:22px!important;
    font-size:14px!important;
  }
  .template-cart .ridge-cart-stepper input{
    width:22px!important;
  }
  .template-cart .ridge-cart-fineprint,
  .template-cart .ridge-cart-update-link{
    font-size:10px!important;
  }

  /* Blue-circled order summary card: ~30% smaller type and tighter box. */
  .template-cart .ridge-order-summary__card{
    padding:14px 16px!important;
    margin-bottom:18px!important;
    border-radius:12px!important;
    font-size:12px!important;
  }
  .template-cart .ridge-summary-row{
    font-size:16px!important;
    line-height:1.1!important;
  }
  .template-cart .ridge-order-summary__card p{
    font-size:12px!important;
    line-height:1.35!important;
    margin:14px 0 0!important;
  }

  /* Main checkout: centered label. */
  .template-cart .ridge-checkout-main{
    width:100%!important;
    min-height:46px!important;
    padding:0 20px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    line-height:1!important;
    font-size:14px!important;
    border-radius:999px!important;
    text-decoration:none!important;
  }

  /* Shopify accelerated checkout buttons use closed shadow DOM; style them
     through Shopify's supported CSS custom properties. */
  .template-cart shopify-accelerated-checkout,
  .template-cart shopify-accelerated-checkout-cart{
    --shopify-accelerated-checkout-button-block-size:46px;
    --shopify-accelerated-checkout-button-inline-size:46px;
    --shopify-accelerated-checkout-button-border-radius:999px;
    --shopify-accelerated-checkout-inline-alignment:center;
    --shopify-accelerated-checkout-row-gap:10px;
    width:100%!important;
  }
  .template-cart .ridge-accelerated-checkout{
    margin-top:10px!important;
  }
  .template-cart .ridge-payment-caption{
    font-size:9px!important;
    margin-top:14px!important;
  }

  /* Contact page: title and body use policy/terms sizing and vertical rhythm. */
  .ridge-contact-page.ridge-terminal-surface{
    padding-top:118px!important;
    padding-bottom:var(--ridge-mobile-terminal-gap)!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    width:100%!important;
    padding:0 40px!important;
  }
  .ridge-contact-page.ridge-terminal-surface h1{
    font-size:var(--ridge-policy-heading-mobile)!important;
    line-height:1.02!important;
    margin:0 0 38px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label,
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:13.6px!important;
    line-height:1.42!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label p,
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin-top:0!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin-bottom:24px!important;
  }
  .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p:last-child{
    margin-bottom:0!important;
  }
}

/* ---------- UNIVERSAL STOREFRONT TERMINAL STANDARD (non-customer pages) ---------- */
body:not(.template-customers) .ridge-terminal-surface{
  box-sizing:border-box!important;
}
@media (min-width:761px){
  body:not(.template-customers) .ridge-terminal-surface{
    padding-bottom:42px!important;
    border-radius:0 0 44px 44px!important;
  }
}


/* ================================================================
   Ridge 3.0.79 — terminal gap specificity fix
   The large blank areas were being reintroduced by older high-specificity
   #MainContent page-end rules (210px / 240px / 280px padding). These
   selectors deliberately outrank those legacy rules.
   Applies to product, review cart, contact, and Shop All / collection.
   Customer/account pages remain excluded.
   ================================================================ */

/* DESKTOP */
@media (min-width:761px){
  body.template-product #MainContent > .shopify-section:last-child > section.ridge-product-features.ridge-terminal-surface,
  body.template-cart #MainContent > .shopify-section:last-child > section.ridge-review-cart.ridge-terminal-surface,
  body.template-page #MainContent > .shopify-section:last-child > section.ridge-contact-page.ridge-terminal-surface,
  body.template-collection #MainContent > .shopify-section:last-child > section.ridge-collection-page.ridge-page-end.ridge-terminal-surface{
    min-height:0!important;
    height:auto!important;
    padding-bottom:42px!important;
    margin-bottom:0!important;
    border-radius:0 0 44px 44px!important;
  }

  /* Remove padding/min-height from the real content wrappers so the 42px
     terminal gap is measured from the last visible content, not a wrapper. */
  body.template-product #MainContent > .shopify-section:last-child > .ridge-product-features.ridge-terminal-surface > .ridge-section-inner,
  body.template-cart #MainContent > .shopify-section:last-child > .ridge-review-cart.ridge-terminal-surface > .ridge-review-cart__shell,
  body.template-page #MainContent > .shopify-section:last-child > .ridge-contact-page.ridge-terminal-surface > .ridge-contact-page__inner,
  body.template-collection #MainContent > .shopify-section:last-child > .ridge-collection-page.ridge-terminal-surface > .page-width{
    min-height:0!important;
    height:auto!important;
    padding-bottom:0!important;
    margin-bottom:0!important;
  }

  body.template-product #MainContent > .shopify-section:last-child .ridge-product-features__grid,
  body.template-cart #MainContent > .shopify-section:last-child .ridge-review-cart__main,
  body.template-cart #MainContent > .shopify-section:last-child .ridge-order-summary,
  body.template-page #MainContent > .shopify-section:last-child .ridge-contact-page__grid,
  body.template-page #MainContent > .shopify-section:last-child .ridge-contact-page__body,
  body.template-collection #MainContent > .shopify-section:last-child .product-grid{
    min-height:0!important;
    height:auto!important;
    padding-bottom:0!important;
    margin-bottom:0!important;
  }

  body.template-product #MainContent > .shopify-section:last-child .ridge-product-feature:last-child,
  body.template-cart #MainContent > .shopify-section:last-child .ridge-review-cart__main > :last-child,
  body.template-cart #MainContent > .shopify-section:last-child .ridge-order-summary > :last-child,
  body.template-page #MainContent > .shopify-section:last-child .ridge-contact-page__body > :last-child,
  body.template-collection #MainContent > .shopify-section:last-child .product-grid > :last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
  }

  /* Specifically cancel the old collection rule:
     .template-collection .ridge-page-end { padding-bottom:150px!important } */
  body.template-collection #MainContent > .shopify-section:last-child > .ridge-collection-page.ridge-page-end.ridge-terminal-surface{
    padding-bottom:42px!important;
  }
}

/* MOBILE — keep the same established page-end standard and prevent the
   old 240/280px generic rules from resurfacing on these four page types. */
@media (max-width:760px){
  body.template-product #MainContent > .shopify-section:last-child > section.ridge-product-features.ridge-terminal-surface,
  body.template-cart #MainContent > .shopify-section:last-child > section.ridge-review-cart.ridge-terminal-surface,
  body.template-page #MainContent > .shopify-section:last-child > section.ridge-contact-page.ridge-terminal-surface,
  body.template-collection #MainContent > .shopify-section:last-child > section.ridge-collection-page.ridge-page-end.ridge-terminal-surface{
    min-height:0!important;
    height:auto!important;
    padding-bottom:42px!important;
    margin-bottom:0!important;
    border-radius:0 0 44px 44px!important;
  }

  body.template-product #MainContent > .shopify-section:last-child > .ridge-product-features.ridge-terminal-surface > .ridge-section-inner,
  body.template-cart #MainContent > .shopify-section:last-child > .ridge-review-cart.ridge-terminal-surface > .ridge-review-cart__shell,
  body.template-page #MainContent > .shopify-section:last-child > .ridge-contact-page.ridge-terminal-surface > .ridge-contact-page__inner,
  body.template-collection #MainContent > .shopify-section:last-child > .ridge-collection-page.ridge-terminal-surface > .page-width{
    min-height:0!important;
    height:auto!important;
    padding-bottom:0!important;
    margin-bottom:0!important;
  }

  body.template-product #MainContent > .shopify-section:last-child .ridge-product-features__grid,
  body.template-cart #MainContent > .shopify-section:last-child .ridge-review-cart__main,
  body.template-cart #MainContent > .shopify-section:last-child .ridge-order-summary,
  body.template-page #MainContent > .shopify-section:last-child .ridge-contact-page__grid,
  body.template-page #MainContent > .shopify-section:last-child .ridge-contact-page__body,
  body.template-collection #MainContent > .shopify-section:last-child .product-grid{
    min-height:0!important;
    height:auto!important;
    padding-bottom:0!important;
    margin-bottom:0!important;
  }
}


/* Ridge 3.0.80 — desktop accelerated Shop button matches Checkout pill */
@media (min-width:761px){
  body.template-cart shopify-accelerated-checkout-cart{
    --shopify-accelerated-checkout-button-border-radius:999px!important;
    --shopify-accelerated-checkout-button-block-size:78px!important;
  }
  body.template-cart shopify-accelerated-checkout-cart::part(button){
    border-radius:999px!important;
  }
}


/* ================================================================
   Ridge 3.0.81 — full annotated pass
   Keeps the established rounded terminal geometry intact.
   Implements the remaining Contact, mobile Review Cart, and product
   spacing notes from the annotated screenshots.
   ================================================================ */

/* ---------------- DESKTOP CONTACT ---------------- */
@media (min-width:761px){
  /* Move the ENTIRE contact content group upward together. */
  body.template-page .ridge-contact-page.ridge-terminal-surface{
    padding-top:132px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    width:min(calc(100% - 152px),calc(var(--content) - 68px))!important;
    max-width:none!important;
    margin-inline:auto!important;
    padding:0!important;
    position:relative!important;
    top:-150px!important;
    margin-bottom:-150px!important;
  }

  /* Match Privacy/Terms heading scale exactly. */
  body.template-page .ridge-contact-page.ridge-terminal-surface h1{
    font-family:'Cal Sans',Arial,sans-serif!important;
    font-size:clamp(42px,4vw,64px)!important;
    font-weight:400!important;
    line-height:1.02!important;
    letter-spacing:0!important;
    margin:0 0 42px!important;
  }

  /* Left label stays on the left rail; contact copy sits at the right edge
     of the same content container as requested. */
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid{
    display:grid!important;
    grid-template-columns:minmax(180px,.75fr) minmax(430px,1.25fr)!important;
    gap:56px!important;
    align-items:start!important;
    width:100%!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label{
    justify-self:start!important;
    width:auto!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    justify-self:end!important;
    width:min(100%,620px)!important;
    max-width:620px!important;
  }

  /* Same body scale/rhythm as Privacy/Terms. */
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label,
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:20px!important;
    line-height:1.28!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label p,
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin-top:0!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin-bottom:30px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p:last-child{
    margin-bottom:0!important;
  }
}

/* ---------------- MOBILE CONTACT ---------------- */
@media (max-width:760px){
  body.template-page .ridge-contact-page.ridge-terminal-surface{
    padding-top:118px!important;
  }

  /* Move title + Contact Us + all contact copy upward as one unit so the
     title sits at the same visual datum as mobile Privacy/Terms. */
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    width:100%!important;
    max-width:none!important;
    padding:0 40px!important;
    position:relative!important;
    top:-92px!important;
    margin-bottom:-92px!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface h1{
    font-family:'Cal Sans',Arial,sans-serif!important;
    font-size:clamp(26px,7vw,32px)!important;
    font-weight:400!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
    margin:0 0 38px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label,
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:13.6px!important;
    line-height:1.42!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin:0 0 24px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p:last-child{
    margin-bottom:0!important;
  }
}

/* ---------------- MOBILE REVIEW CART ---------------- */
@media (max-width:760px){
  /* Headings = mobile Privacy/Terms heading scale. */
  body.template-cart .ridge-cart-review-title,
  body.template-cart .ridge-order-summary > h2{
    font-family:'Cal Sans',Arial,sans-serif!important;
    font-size:clamp(26px,7vw,32px)!important;
    font-weight:400!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
  }

  body.template-cart .ridge-review-cart__shell{
    width:calc(100% - 40px)!important;
    gap:24px!important;
  }

  /* Delivery box: roughly 30% smaller, box shrinks with it. */
  body.template-cart .ridge-delivery-note{
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    gap:10px!important;
    padding:11px 13px!important;
    margin:0 0 14px!important;
    border-radius:12px!important;
    font-size:11.5px!important;
    line-height:1.25!important;
  }
  body.template-cart .ridge-delivery-note__icon{
    font-size:16px!important;
    align-self:center!important;
  }

  /* Product summary: compact and rebalanced after reducing price/control size. */
  body.template-cart .ridge-review-line{
    grid-template-columns:66px minmax(0,1fr) 70px!important;
    gap:10px!important;
    padding:12px!important;
    min-height:0!important;
    border-radius:13px!important;
    align-items:start!important;
  }
  body.template-cart .ridge-review-line__media{
    width:66px!important;
    height:66px!important;
    border-radius:9px!important;
  }
  body.template-cart .ridge-review-line__copy{
    min-width:0!important;
    font-size:11.5px!important;
    line-height:1.24!important;
  }
  body.template-cart .ridge-review-line__title{
    display:block!important;
    font-size:15px!important;
    line-height:1.04!important;
    margin:0 0 6px!important;
  }

  body.template-cart .ridge-review-line__end{
    grid-column:3!important;
    grid-row:1!important;
    width:70px!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    gap:5px!important;
    margin:0!important;
    font-size:12px!important;
  }
  body.template-cart .ridge-review-line__end > strong{
    font-size:13px!important;
    line-height:1!important;
    margin:0!important;
  }
  body.template-cart .ridge-cart-remove{
    font-size:9px!important;
    line-height:1!important;
    margin:1px 0 0!important;
  }
  body.template-cart .ridge-cart-stepper{
    grid-template-columns:16px 20px 16px!important;
    margin-top:4px!important;
    font-size:12px!important;
  }
  body.template-cart .ridge-cart-stepper button,
  body.template-cart .ridge-cart-stepper input{
    height:20px!important;
    font-size:12px!important;
  }
  body.template-cart .ridge-cart-stepper input{
    width:20px!important;
  }

  body.template-cart .ridge-cart-fineprint,
  body.template-cart .ridge-cart-update-link{
    font-size:9.5px!important;
  }

  /* Order summary card: ~30% smaller and tighter. */
  body.template-cart .ridge-order-summary__card{
    padding:13px 15px!important;
    border-radius:12px!important;
    margin-bottom:16px!important;
  }
  body.template-cart .ridge-summary-row{
    font-size:14px!important;
    line-height:1.08!important;
  }
  body.template-cart .ridge-order-summary__card p{
    font-size:10.5px!important;
    line-height:1.32!important;
    margin:12px 0 0!important;
  }

  /* Both checkout surfaces use the same pill geometry. */
  body.template-cart .ridge-checkout-main{
    min-height:46px!important;
    border-radius:999px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }
  body.template-cart shopify-accelerated-checkout,
  body.template-cart shopify-accelerated-checkout-cart{
    --shopify-accelerated-checkout-button-block-size:46px;
    --shopify-accelerated-checkout-button-border-radius:999px;
    --shopify-accelerated-checkout-inline-alignment:center;
  }
}

/* ---------------- PRODUCT: requested larger media-to-title gap ---------------- */
@media (max-width:760px){
  body.template-product .ridge-product-gallery{
    margin-bottom:28px!important;
  }
  body.template-product .ridge-product-info h1,
  body.template-product .ridge-product-title{
    margin-top:0!important;
  }
}


/* ================================================================
   Ridge 3.0.82 — CONTACT PAGE exact Policy/Terms geometry match
   Removes the previous negative-position hack entirely.
   Contact now uses the SAME top padding, title scale, content width,
   terminal gap, and bottom radius as the working Policy/Terms pages.
   ================================================================ */

/* DESKTOP CONTACT = desktop Policy/Terms geometry */
@media (min-width:761px){
  body.template-page #MainContent > .shopify-section:last-child > section.ridge-contact-page.ridge-terminal-surface{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:132px 76px 42px!important;
    border:0!important;
    border-radius:0 0 44px 44px!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:2!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    box-sizing:border-box!important;
    width:min(100%,calc(var(--content) - 68px))!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding:0!important;
    position:static!important;
    top:auto!important;
    transform:none!important;
    margin-bottom:0!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface h1{
    font-family:'Cal Sans',Arial,sans-serif!important;
    font-weight:400!important;
    letter-spacing:0!important;
    line-height:1.02!important;
    font-size:clamp(42px,4vw,64px)!important;
    margin:0 0 42px!important;
    width:100%!important;
    max-width:none!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid{
    display:grid!important;
    grid-template-columns:minmax(180px,.75fr) minmax(430px,1.25fr)!important;
    gap:56px!important;
    align-items:start!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label{
    justify-self:start!important;
    width:auto!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    justify-self:end!important;
    width:min(100%,620px)!important;
    max-width:620px!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label,
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:20px!important;
    line-height:1.28!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin:0 0 30px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p:last-child{
    margin-bottom:0!important;
  }
}

/* MOBILE CONTACT = mobile Policy/Terms geometry */
@media (max-width:760px){
  body.template-page #MainContent > .shopify-section:last-child > section.ridge-contact-page.ridge-terminal-surface{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:118px 40px 42px!important;
    border:0!important;
    border-radius:0 0 44px 44px!important;
    overflow:hidden!important;
    background:var(--cream)!important;
    position:relative!important;
    z-index:2!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__inner{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
    top:auto!important;
    transform:none!important;
    margin-bottom:0!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface h1{
    font-family:'Cal Sans',Arial,sans-serif!important;
    font-size:clamp(26px,7vw,32px)!important;
    font-weight:400!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
    margin:0 0 42px!important;
    width:100%!important;
    max-width:none!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:22px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__label,
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:13.6px!important;
    line-height:1.42!important;
  }

  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p{
    margin:0 0 24px!important;
  }
  body.template-page .ridge-contact-page.ridge-terminal-surface .ridge-contact-page__body p:last-child{
    margin-bottom:0!important;
  }
}


/* ================================================================
   Ridge 3.0.83 — Contact literally reuses Policy/Terms page structure
   This removes approximation: the contact title now inherits the exact
   shopify-policy title size, top datum, gutters, and responsive behavior.
   ================================================================ */

/* Let the policy classes own the contact surface geometry. */
.ridge-contact-page.shopify-policy__container{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  min-height:0!important;
  height:auto!important;
  position:relative!important;
  top:auto!important;
  transform:none!important;
}

.ridge-contact-page.shopify-policy__container .ridge-contact-page__inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  position:static!important;
  top:auto!important;
  transform:none!important;
}

/* Exact policy title rules — no contact-specific scaling. */
.ridge-contact-page.shopify-policy__container .shopify-policy__title{
  text-align:left!important;
  margin:0 0 42px!important;
}

.ridge-contact-page.shopify-policy__container .shopify-policy__title h1{
  font-family:'Cal Sans',Arial,sans-serif!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:1.02!important;
  font-size:clamp(42px,4vw,64px)!important;
  margin:0!important;
}

/* Preserve the requested two-column desktop contact layout inside the same
   policy reading rail. */
@media (min-width:761px){
  .ridge-contact-page.shopify-policy__container .shopify-policy__body{
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:20px!important;
    line-height:1.28!important;
  }

  .ridge-contact-page.shopify-policy__container .ridge-contact-page__grid{
    display:grid!important;
    grid-template-columns:minmax(180px,.75fr) minmax(430px,1.25fr)!important;
    gap:56px!important;
    align-items:start!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  .ridge-contact-page.shopify-policy__container .ridge-contact-page__label{
    justify-self:start!important;
    width:auto!important;
  }

  .ridge-contact-page.shopify-policy__container .ridge-contact-page__body{
    justify-self:end!important;
    width:min(100%,620px)!important;
    max-width:620px!important;
    font-size:20px!important;
    line-height:1.28!important;
  }
}

/* Mobile: copy the actual policy title rule exactly. */
@media (max-width:760px){
  .ridge-contact-page.shopify-policy__container .shopify-policy__title h1{
    font-size:clamp(26px,7vw,32px)!important;
    line-height:1.02!important;
    letter-spacing:-.015em!important;
    margin:0!important;
  }

  .ridge-contact-page.shopify-policy__container .shopify-policy__body{
    width:100%!important;
    font-family:'Barlow Condensed',Arial,sans-serif!important;
    font-size:17px!important;
    line-height:1.35!important;
  }

  .ridge-contact-page.shopify-policy__container .ridge-contact-page__grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:28px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  .ridge-contact-page.shopify-policy__container .ridge-contact-page__label,
  .ridge-contact-page.shopify-policy__container .ridge-contact-page__body{
    font-size:17px!important;
    line-height:1.35!important;
  }
}


/* ================================================================
   Ridge 3.0.84 — Oura container standard
   Based on the supplied Oura screen recording:
   - slightly wider desktop surface than v3.0.83
   - one shared desktop gutter for ordinary rounded sections
   - one shared corner radius
   - homepage signup is intentionally excluded
   - terminal page-to-footer surfaces keep their special terminal rule
   ================================================================ */

:root{
  --ridge-oura-container-gutter:28px;
  --ridge-oura-container-radius:22px;
}

@media (min-width:768px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    box-sizing:border-box!important;
    width:calc(100% - (var(--ridge-oura-container-gutter) * 2))!important;
    max-width:none!important;
    margin-left:var(--ridge-oura-container-gutter)!important;
    margin-right:var(--ridge-oura-container-gutter)!important;
  }

  .template-index .ridge-hero{
    aspect-ratio:1980 / 1006!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    border-radius:0 0 var(--ridge-oura-container-radius) var(--ridge-oura-container-radius)!important;
  }

  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    border-radius:var(--ridge-oura-container-radius)!important;
  }
}

@media (max-width:767px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}


/* ================================================================
   Ridge 3.0.85 — Oura-style desktop hover mega menu
   - Desktop mega menus open on hover/focus; click remains a fallback.
   - Expanded sheet starts at the very top edge of the viewport.
   - Nav + mega become one continuous cream surface with only bottom corners.
   - Mobile behavior remains unchanged.
   ================================================================ */
@media (min-width: 768px){
  .ridge-header.is-mega-open,
  .ridge-header.is-mega-closing{
    top:0!important;
  }

  .ridge-header.is-mega-open .ridge-header__frame,
  .ridge-header.is-mega-closing .ridge-header__frame{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }

  .ridge-header.is-mega-open .ridge-nav,
  .ridge-header.is-mega-closing .ridge-nav{
    height:86px!important;
    padding-left:max(42px,calc((100vw - var(--content))/2 + 34px))!important;
    padding-right:max(42px,calc((100vw - var(--content))/2 + 34px))!important;
    border-radius:0!important;
    background:rgba(234,224,209,.985)!important;
    border:0!important;
    box-shadow:none!important;
    backdrop-filter:blur(22px) saturate(130%)!important;
    -webkit-backdrop-filter:blur(22px) saturate(130%)!important;
  }

  .ridge-header.is-mega-open .ridge-mega,
  .ridge-header.is-mega-closing .ridge-mega{
    top:86px!important;
    left:0!important;
    right:0!important;
  }

  .ridge-header.is-mega-open .ridge-mega__inner,
  .ridge-header.is-mega-closing .ridge-mega__inner{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding:14px max(42px,calc((100vw - var(--content))/2 + 34px)) 36px!important;
    border-radius:0 0 32px 32px!important;
    background:rgba(234,224,209,.985)!important;
    border:0!important;
    box-shadow:0 18px 34px rgba(0,0,0,.14)!important;
  }

  /* A slightly quicker reveal feels like the supplied Oura reference. */
  .ridge-mega{
    transition:opacity .16s ease,transform .24s cubic-bezier(.2,.7,.2,1),visibility .16s!important;
  }
}

/* ================================================================
   Ridge 3.0.86 — compact desktop mega + Oura-style mobile expansion
   - Desktop mega height follows the active panel content exactly.
   - Removes the artificial vertical offset / excess empty mega area.
   - SHOP ALL sits shortly after the preceding links instead of being
     pushed toward the bottom of a tall drawer.
   - Mobile keeps the same final expanded menu size/content, but the
     surface itself now grows downward smoothly while its content is
     revealed by the expanding clip (no box-first/text-later effect).
   ================================================================ */
@media (min-width:768px){
  .ridge-header.is-mega-open .ridge-mega,
  .ridge-header.is-mega-closing .ridge-mega{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
  }

  .ridge-mega{
    max-height:0!important;
    overflow:hidden!important;
    transition:max-height .34s cubic-bezier(.22,.72,.18,1),opacity .16s ease,visibility 0s linear .34s!important;
  }

  .ridge-header.is-mega-open .ridge-mega{
    max-height:var(--ridge-mega-open-height,300px)!important;
    opacity:1!important;
    visibility:visible!important;
    transition:max-height .38s cubic-bezier(.22,.72,.18,1),opacity .15s ease,visibility 0s!important;
  }

  .ridge-header.is-mega-closing .ridge-mega{
    max-height:0!important;
    opacity:0!important;
  }

  .ridge-header.is-mega-open .ridge-mega__inner,
  .ridge-header.is-mega-closing .ridge-mega__inner{
    padding-top:10px!important;
    padding-bottom:24px!important;
  }

  .ridge-mega__shop-all{
    margin-top:24px!important;
  }

  .ridge-mega__panel--simple{
    padding-top:22px!important;
    padding-bottom:18px!important;
  }
}

@media (max-width:767px){
  /* Use the menu's measured content height instead of switching the grid
     from a zero row to a full row. This makes the cream panel itself grow
     continuously downward, like the reference animation. */
  .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-header__frame{
    display:block!important;
    overflow:hidden!important;
    transition:background-color .24s ease,border-radius .38s cubic-bezier(.22,.72,.18,1),box-shadow .30s ease!important;
  }

  .ridge-mobile-menu,
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    position:relative!important;
    width:100%!important;
    inset:auto!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
    height:auto!important;
    min-height:0!important;
    max-height:0!important;
    overflow:hidden!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:none!important;
    transition:max-height .52s cubic-bezier(.22,.72,.18,1)!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu{
    max-height:var(--ridge-mobile-menu-open-height,620px)!important;
    pointer-events:auto!important;
  }

  /* Reveal the contents with the expanding surface, rather than waiting
     for the box to finish and then fading the text in. */
  .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
    visibility:visible!important;
  }
}


/* ================================================================
   Ridge 3.0.87 — stationary desktop nav during mega expansion
   Oura behavior: nothing in the actual nav bar moves. Only the dropdown
   surface appears/disappears beneath the unchanged bar.
   ================================================================ */
@media (min-width:768px){

  /* Do not change the header's vertical position while opening/closing. */
  .ridge-header.is-mega-open,
  .ridge-header.is-mega-closing{
    top:var(--ridge-announcement-offset)!important;
    transform:none!important;
  }

  /* Preserve the exact closed-state frame geometry. */
  .ridge-header.is-mega-open .ridge-header__frame,
  .ridge-header.is-mega-closing .ridge-header__frame{
    width:min(calc(100% - 84px),var(--content))!important;
    max-width:var(--content)!important;
    margin:12px auto 0!important;
    padding:0!important;
    transform:none!important;
  }

  /* Preserve the exact closed-state nav layout so logo, links,
     account icon and bag icon never shift. */
  .ridge-header.is-mega-open .ridge-nav,
  .ridge-header.is-mega-closing .ridge-nav{
    height:74px!important;
    min-height:74px!important;
    padding-left:34px!important;
    padding-right:34px!important;
    grid-template-columns:1fr auto 1fr!important;
    column-gap:24px!important;
    transform:none!important;
    margin:0!important;
  }

  .ridge-header.is-mega-open .ridge-logo,
  .ridge-header.is-mega-closing .ridge-logo,
  .ridge-header.is-mega-open .ridge-nav__center,
  .ridge-header.is-mega-closing .ridge-nav__center,
  .ridge-header.is-mega-open .ridge-nav__actions,
  .ridge-header.is-mega-closing .ridge-nav__actions{
    transform:none!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }

  /* Dropdown may expand independently under the fixed bar. */
  .ridge-header .ridge-mega{
    position:absolute!important;
    left:50%!important;
    top:100%!important;
    transform:translateX(-50%)!important;
    width:100vw!important;
    max-width:100vw!important;
    margin:0!important;
  }

  /* The cream drawer visually joins below the bar without changing bar size. */
  .ridge-header.is-mega-open .ridge-mega,
  .ridge-header.is-mega-closing .ridge-mega{
    border-radius:0 0 22px 22px!important;
  }
}


/* ================================================================
   Ridge 3.0.88 — Oura-style desktop "window blind" mega animation
   The nav bar remains completely stationary. The dropdown keeps one
   fixed horizontal geometry for its entire open/close cycle and is
   revealed/hidden vertically only.
   ================================================================ */
@media (min-width:768px){

  /* One immutable horizontal coordinate system for open AND close. */
  .ridge-header .ridge-mega,
  .ridge-header.is-mega-open .ridge-mega,
  .ridge-header.is-mega-closing .ridge-mega{
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    top:100%!important;
    width:100vw!important;
    max-width:100vw!important;
    margin:0!important;
    transform:translateX(-50%)!important;
    transform-origin:top center!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    pointer-events:none!important;

    /* Closed state: blind rolled up. */
    max-height:0!important;
    opacity:1!important;
    visibility:hidden!important;
    clip-path:inset(0 0 100% 0 round 0 0 22px 22px)!important;
    -webkit-clip-path:inset(0 0 100% 0 round 0 0 22px 22px)!important;

    transition:
      max-height .34s cubic-bezier(.42,0,.34,1),
      clip-path .34s cubic-bezier(.42,0,.34,1),
      -webkit-clip-path .34s cubic-bezier(.42,0,.34,1),
      visibility 0s linear .34s!important;
    will-change:max-height,clip-path!important;
  }

  .ridge-header.is-mega-open .ridge-mega{
    max-height:var(--ridge-mega-open-height,300px)!important;
    visibility:visible!important;
    clip-path:inset(0 0 0 0 round 0 0 22px 22px)!important;
    -webkit-clip-path:inset(0 0 0 0 round 0 0 22px 22px)!important;
    pointer-events:auto!important;
    transition:
      max-height .40s cubic-bezier(.18,.76,.24,1),
      clip-path .40s cubic-bezier(.18,.76,.24,1),
      -webkit-clip-path .40s cubic-bezier(.18,.76,.24,1),
      visibility 0s!important;
  }

  .ridge-header.is-mega-closing .ridge-mega{
    max-height:0!important;
    visibility:visible!important;
    clip-path:inset(0 0 100% 0 round 0 0 22px 22px)!important;
    -webkit-clip-path:inset(0 0 100% 0 round 0 0 22px 22px)!important;
    pointer-events:none!important;
  }

  /* Freeze the inside width/centering. Nothing inside is allowed to
     recalculate sideways while the blind winds up. */
  .ridge-header .ridge-mega__inner,
  .ridge-header.is-mega-open .ridge-mega__inner,
  .ridge-header.is-mega-closing .ridge-mega__inner{
    display:block!important;
    box-sizing:border-box!important;
    width:100vw!important;
    max-width:100vw!important;
    margin:0!important;
    transform:none!important;
    padding-left:max(42px,calc((100vw - var(--content))/2 + 34px))!important;
    padding-right:max(42px,calc((100vw - var(--content))/2 + 34px))!important;
    padding-top:10px!important;
    padding-bottom:24px!important;
    border-radius:0 0 22px 22px!important;
  }

  /* Submenu content never slides left/right/up/down. The drawer itself
     provides the entire animation, like a window blind. */
  .ridge-mega__panel.is-active,
  .ridge-header.is-mega-open .ridge-mega__panel.is-active,
  .ridge-header.is-mega-closing .ridge-mega__panel.is-active{
    animation:none!important;
    transform:none!important;
    opacity:1!important;
  }

  .ridge-mega__visual-grid,
  .ridge-mega__simple-links,
  .ridge-mega__text-links,
  .ridge-mega__cards,
  .ridge-mega__links,
  .ridge-mega__shop-all{
    transform:none!important;
    transition:none!important;
  }

  /* The actual navigation row is immutable during the whole interaction. */
  .ridge-header.is-mega-open .ridge-nav,
  .ridge-header.is-mega-closing .ridge-nav,
  .ridge-header.is-mega-open .ridge-logo,
  .ridge-header.is-mega-closing .ridge-logo,
  .ridge-header.is-mega-open .ridge-nav__center,
  .ridge-header.is-mega-closing .ridge-nav__center,
  .ridge-header.is-mega-open .ridge-nav__actions,
  .ridge-header.is-mega-closing .ridge-nav__actions{
    transform:none!important;
    translate:none!important;
  }
}


/* ================================================================
   Ridge 3.0.89 — Oura top-down desktop mega sheet
   Closed desktop nav has NO cream panel.
   On hover, one cream sheet grows from the top of the viewport behind the
   unchanged navigation. Menu content then fades in over that sheet.
   Nothing in the actual nav row changes position.
   ================================================================ */
@media (min-width:768px){

  .ridge-header{
    isolation:isolate!important;
  }

  /* Closed and expanded nav use the exact same geometry. The frame itself
     never supplies the cream background on desktop. */
  .ridge-header .ridge-header__frame,
  .ridge-header .ridge-nav,
  .ridge-header.is-mega-open .ridge-header__frame,
  .ridge-header.is-mega-closing .ridge-header__frame,
  .ridge-header.is-mega-open .ridge-nav,
  .ridge-header.is-mega-closing .ridge-nav{
    background:transparent!important;
    box-shadow:none!important;
    border-color:transparent!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  /* The single expanding Oura-style background layer.
     It begins at the TOP of the page and grows downward like a blind. */
  .ridge-header::before{
    content:"";
    position:fixed!important;
    z-index:0!important;
    top:0!important;
    left:0!important;
    width:100vw!important;
    height:0!important;
    background:rgba(234,224,209,.985)!important;
    border-radius:0 0 22px 22px!important;
    box-shadow:0 18px 34px rgba(0,0,0,.14)!important;
    pointer-events:none!important;
    transition:
      height .38s cubic-bezier(.20,.74,.22,1),
      border-radius .38s cubic-bezier(.20,.74,.22,1)!important;
    will-change:height!important;
  }

  .ridge-header.is-mega-open::before{
    height:var(--ridge-mega-sheet-height,360px)!important;
  }

  .ridge-header.is-mega-closing::before{
    height:0!important;
  }

  /* Keep every actual navigation control above the animated sheet. */
  .ridge-header__frame{
    position:relative!important;
    z-index:2!important;
  }

  /* Dropdown content has a fixed screen coordinate. It does NOT animate
     horizontally or resize the header. The background animation belongs to
     ::before; the content simply appears once the cream sheet reaches it. */
  .ridge-header .ridge-mega,
  .ridge-header.is-mega-open .ridge-mega,
  .ridge-header.is-mega-closing .ridge-mega{
    position:fixed!important;
    z-index:3!important;
    left:0!important;
    right:0!important;
    top:var(--ridge-mega-content-top,86px)!important;
    width:100vw!important;
    max-width:100vw!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    transform:none!important;
    clip-path:none!important;
    -webkit-clip-path:none!important;
    overflow:visible!important;
    background:transparent!important;
    box-shadow:none!important;
    border:0!important;
    pointer-events:none!important;
  }

  .ridge-header .ridge-mega{
    opacity:0!important;
    visibility:hidden!important;
    transition:
      opacity .12s ease,
      visibility 0s linear .12s!important;
  }

  .ridge-header.is-mega-open .ridge-mega{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:
      opacity .18s ease .13s,
      visibility 0s!important;
  }

  .ridge-header.is-mega-closing .ridge-mega{
    opacity:0!important;
    visibility:visible!important;
    pointer-events:none!important;
    transition:opacity .10s ease!important;
  }

  .ridge-header .ridge-mega__inner,
  .ridge-header.is-mega-open .ridge-mega__inner,
  .ridge-header.is-mega-closing .ridge-mega__inner{
    width:100vw!important;
    max-width:100vw!important;
    margin:0!important;
    padding-left:max(42px,calc((100vw - var(--content))/2 + 34px))!important;
    padding-right:max(42px,calc((100vw - var(--content))/2 + 34px))!important;
    padding-top:10px!important;
    padding-bottom:24px!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    transform:none!important;
  }

  /* No individual submenu element is allowed to slide, scale, or reflow
     during open/close. */
  .ridge-mega__panel,
  .ridge-mega__panel.is-active,
  .ridge-mega__visual-grid,
  .ridge-mega__simple-links,
  .ridge-mega__text-links,
  .ridge-mega__cards,
  .ridge-mega__links,
  .ridge-mega__shop-all{
    transform:none!important;
    animation:none!important;
  }

  .ridge-header.is-mega-open .ridge-mega__panel.is-active,
  .ridge-header.is-mega-closing .ridge-mega__panel.is-active{
    opacity:1!important;
  }

  /* Explicitly freeze the whole navigation row through both states. */
  .ridge-header.is-mega-open .ridge-nav,
  .ridge-header.is-mega-closing .ridge-nav{
    height:74px!important;
    min-height:74px!important;
    padding-left:34px!important;
    padding-right:34px!important;
    grid-template-columns:1fr auto 1fr!important;
    column-gap:24px!important;
    margin:0!important;
    transform:none!important;
  }

  .ridge-header.is-mega-open .ridge-logo,
  .ridge-header.is-mega-closing .ridge-logo,
  .ridge-header.is-mega-open .ridge-nav__center,
  .ridge-header.is-mega-closing .ridge-nav__center,
  .ridge-header.is-mega-open .ridge-nav__actions,
  .ridge-header.is-mega-closing .ridge-nav__actions{
    margin:0!important;
    transform:none!important;
    translate:none!important;
  }
}


/* ================================================================
   Ridge 3.0.90 — Mega hover zone + dark nav over cream sheet
   ================================================================ */
@media (min-width:768px){

  /* While the cream mega sheet is visible, the floating nav switches to the
     dark logo/text/icon treatment regardless of the section underneath. */
  .ridge-header.is-mega-open,
  .ridge-header.is-mega-closing{
    color:var(--ink)!important;
  }

  .ridge-header.is-mega-open .ridge-nav__links,
  .ridge-header.is-mega-open .ridge-nav__actions,
  .ridge-header.is-mega-open .ridge-logo,
  .ridge-header.is-mega-closing .ridge-nav__links,
  .ridge-header.is-mega-closing .ridge-nav__actions,
  .ridge-header.is-mega-closing .ridge-logo{
    color:var(--ink)!important;
    mix-blend-mode:normal!important;
    transition:color .16s ease!important;
  }

  /* Explicit logo swap so the dark brand mark is shown over cream even if
     the underlying hero had the header in its light/white state. */
  .ridge-header.is-mega-open .ridge-logo__dark,
  .ridge-header.is-mega-closing .ridge-logo__dark{
    display:block!important;
  }

  .ridge-header.is-mega-open .ridge-logo__light,
  .ridge-header.is-mega-closing .ridge-logo__light{
    display:none!important;
  }

  .ridge-header.is-mega-open .ridge-logo > img,
  .ridge-header.is-mega-closing .ridge-logo > img{
    filter:none!important;
  }

  /* Keep the blue cart-count badge blue while the icon itself becomes dark. */
  .ridge-header.is-mega-open .ridge-cart-count,
  .ridge-header.is-mega-closing .ridge-cart-count{
    background:#3447A6!important;
    color:#fff!important;
  }
}


/* ================================================================
   Ridge 3.0.91 — adaptive floating frosted nav
   "is-light" = light/white navigation controls over a dark background.
   "is-dark"  = dark navigation controls over a light background.
   The frosted island stays translucent enough for the underlying section
   to influence its appearance, like the supplied Oura recording.
   ================================================================ */

.ridge-header.is-returning:not(.is-mega-open):not(.is-mega-closing) .ridge-nav{
  transition:
    color .18s ease,
    background-color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease,
    transform .42s cubic-bezier(.22,.61,.36,1)!important;
}

/* Dark section underneath -> white logo/text/icons, darker neutral frost. */
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav{
  color:#fff!important;
  background:rgba(28,32,32,.24)!important;
  border-color:rgba(255,255,255,.28)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.14)!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__links,
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__actions,
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo{
  color:#fff!important;
  mix-blend-mode:normal!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__light{
  display:block!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__dark{
  display:none!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo > img{
  filter:brightness(0) invert(1)!important;
}

/* Light section underneath -> charcoal logo/text/icons, pale neutral frost. */
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav{
  color:var(--ink)!important;
  background:rgba(244,239,231,.48)!important;
  border-color:rgba(255,255,255,.42)!important;
  box-shadow:0 12px 34px rgba(35,35,35,.09)!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__links,
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__actions,
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo{
  color:var(--ink)!important;
  mix-blend-mode:normal!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__dark{
  display:block!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__light{
  display:none!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo > img{
  filter:none!important;
}

/* Cart count keeps the brand blue in either contrast state. */
.ridge-header.is-returning:not(.is-mega-open):not(.is-mega-closing) .ridge-cart-count{
  background:#3447A6!important;
  color:#fff!important;
}


/* ================================================================
   Ridge 3.0.92 — force true light/dark contrast on floating frosted nav
   ================================================================ */

/* Kill the old blend-mode behavior once the header is floating; otherwise
   "difference" can visually make the nav appear like it is staying one color. */
.ridge-header.is-returning .ridge-nav__links,
.ridge-header.is-returning .ridge-nav__actions,
.ridge-header.is-returning .ridge-logo,
.ridge-header.is-scrolled .ridge-nav__links,
.ridge-header.is-scrolled .ridge-nav__actions,
.ridge-header.is-scrolled .ridge-logo{
  mix-blend-mode:normal!important;
}

/* Dark visual background => white controls. */
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav{
  color:#fff!important;
  background:rgba(24,28,29,.22)!important;
  border-color:rgba(255,255,255,.30)!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__links,
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__actions,
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__links,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__actions,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo{
  color:#fff!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__light,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__light{
  display:block!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__dark,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__dark{
  display:none!important;
}
.ridge-header.is-returning.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo > img,
.ridge-header.is-scrolled.is-light:not(.is-mega-open):not(.is-mega-closing) .ridge-logo > img{
  filter:brightness(0) invert(1)!important;
}

/* Light visual background => charcoal controls. */
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav{
  color:var(--ink)!important;
  background:rgba(244,239,231,.50)!important;
  border-color:rgba(255,255,255,.44)!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__links,
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__actions,
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__links,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-nav__actions,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo{
  color:var(--ink)!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__dark,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__dark{
  display:block!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__light,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo__light{
  display:none!important;
}
.ridge-header.is-returning.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo > img,
.ridge-header.is-scrolled.is-dark:not(.is-mega-open):not(.is-mega-closing) .ridge-logo > img{
  filter:none!important;
}

/* Shopify customer-account custom element should inherit the same foreground. */
.ridge-header.is-returning .ridge-account-component,
.ridge-header.is-returning .ridge-account-slot,
.ridge-header.is-scrolled .ridge-account-component,
.ridge-header.is-scrolled .ridge-account-slot{
  color:inherit!important;
}

/* Smooth crossfade instead of an abrupt color pop. */
.ridge-header .ridge-logo,
.ridge-header .ridge-nav__link,
.ridge-header .ridge-icon-button,
.ridge-header .ridge-account-component,
.ridge-header .ridge-account-slot{
  transition:color .18s ease, filter .18s ease, opacity .18s ease!important;
}


/* ================================================================
   Ridge 3.0.93 — closer Oura container geometry
   Recording comparison showed our hero was still ~4–5 px farther in from
   each desktop edge and our radius was visibly too soft/round.
   ================================================================ */

:root{
  --ridge-oura-container-gutter:24px!important;
  --ridge-oura-container-radius:12px!important;
}

@media (min-width:768px){
  /* Hero + ordinary rounded homepage sections share the new wider/flatter
     Oura-style geometry. Homepage signup and terminal footer joins remain
     excluded by the existing special rules. */
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    width:calc(100% - (var(--ridge-oura-container-gutter) * 2))!important;
    margin-left:var(--ridge-oura-container-gutter)!important;
    margin-right:var(--ridge-oura-container-gutter)!important;
  }

  .template-index .ridge-hero{
    border-radius:0 0 var(--ridge-oura-container-radius) var(--ridge-oura-container-radius)!important;
  }

  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    border-radius:var(--ridge-oura-container-radius)!important;
  }
}


/* ================================================================
   Ridge 3.0.94 — homepage rounded-container standard
   User-approved geometry:
   - 20px desktop gutter per side
   - 6px corner radius
   - applies to hero and other ordinary rounded homepage sections
   - homepage signup/footer join remains excluded
   ================================================================ */
:root{
  --ridge-oura-container-gutter:20px!important;
  --ridge-oura-container-radius:6px!important;
}

@media (min-width:768px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    width:calc(100% - 40px)!important;
    max-width:none!important;
    margin-left:20px!important;
    margin-right:20px!important;
  }

  .template-index .ridge-hero{
    border-radius:0 0 6px 6px!important;
  }

  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    border-radius:6px!important;
  }

  /* Homepage signup keeps its existing special footer-meeting treatment. */
  .template-index .ridge-home-signup{
    /* intentionally unchanged */
  }
}


/* Ridge 3.0.95 — homepage rounded-container standard */
:root{
  --ridge-oura-container-radius:10px!important;
}
@media (min-width:768px){
  .template-index .ridge-hero{
    border-radius:0 0 10px 10px!important;
  }
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    border-radius:10px!important;
  }
}


/* Ridge 3.0.96 — homepage rounded-container standard */
:root{
  --ridge-oura-container-gutter:21px!important;
  --ridge-oura-container-radius:10px!important;
}
@media (min-width:768px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    width:calc(100% - 42px)!important;
    max-width:none!important;
    margin-left:21px!important;
    margin-right:21px!important;
  }
  .template-index .ridge-hero{
    border-radius:0 0 10px 10px!important;
  }
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    border-radius:10px!important;
  }
}


/* Ridge 3.0.97 — final desktop homepage container tuning */
:root{
  --ridge-oura-container-gutter:22px!important;
  --ridge-oura-container-radius:10px!important;
}

@media (min-width:768px){
  .template-index .ridge-hero,
  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    width:calc(100% - 44px)!important;
    max-width:none!important;
    margin-left:22px!important;
    margin-right:22px!important;
  }

  /* Keep the existing responsive hero proportion, then extend the visible
     desktop container exactly 2px vertically. */
  .template-index .ridge-hero{
    height:calc(((100vw - 44px) * 1006 / 1980) + 2px)!important;
    aspect-ratio:auto!important;
    min-height:0!important;
    max-height:none!important;
    border-radius:0 0 10px 10px!important;
  }

  .template-index .ridge-ubd-panel,
  .template-index .ridge-all-feel,
  .template-index .ridge-feature-detail{
    border-radius:10px!important;
  }
}


/* ================================================================
   Ridge 3.0.98 — synchronize mega-menu copy with retracting sheet
   On close, submenu copy is masked upward by the same 0.38s motion
   as the cream background, eliminating the split-second text hang.
   ================================================================ */
@media (min-width:990px) and (hover:hover) and (pointer:fine){
  .ridge-header.is-mega-open .ridge-mega{
    clip-path:inset(0 0 0 0)!important;
    -webkit-clip-path:inset(0 0 0 0)!important;
  }

  .ridge-header.is-mega-closing .ridge-mega{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
    overflow:hidden!important;
    clip-path:inset(0 0 100% 0)!important;
    -webkit-clip-path:inset(0 0 100% 0)!important;
    transition:
      clip-path .38s cubic-bezier(.20,.74,.22,1),
      -webkit-clip-path .38s cubic-bezier(.20,.74,.22,1)!important;
  }

  /* Keep the content itself stationary; the retracting mask removes it
     at the exact pace of the cream sheet instead of leaving a late fade. */
  .ridge-header.is-mega-closing .ridge-mega__panel.is-active{
    opacity:1!important;
    transition:none!important;
  }
}


/* ================================================================
   Ridge 3.0.99 — mobile expanded-nav close synchronization
   The previous 3.0.98 fix targeted the desktop mega menu. The recording
   shows the issue on the mobile expanded menu. On close, remove the copy
   immediately enough that it cannot linger after the cream sheet begins
   retracting, while keeping the sheet's existing smooth 0.52s motion.
   ================================================================ */
@media (max-width:767px){
  .ridge-mobile-menu__inner{
    opacity:1!important;
    transform:translateY(0)!important;
  }

  .ridge-header.is-mobile-closing .ridge-mobile-menu__inner{
    opacity:0!important;
    transform:translateY(-4px)!important;
    transition:
      opacity .12s linear,
      transform .16s cubic-bezier(.22,.72,.18,1)!important;
    pointer-events:none!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu__inner{
    opacity:1!important;
    transform:translateY(0)!important;
    transition:opacity .10s linear!important;
  }
}


/* ================================================================
   Ridge 3.1.00 — hard stop mobile menu copy on retract
   Previous fade-based approach was too subtle / still allowed a visible
   text frame during collapse. When the menu begins closing, hide ALL
   mobile menu copy immediately while allowing the cream frame itself to
   continue its existing smooth retract animation.
   ================================================================ */
@media (max-width:767px){
  .ridge-header.is-mobile-closing .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-closing .ridge-mobile-menu__item,
  .ridge-header.is-mobile-closing .ridge-mobile-menu__parent,
  .ridge-header.is-mobile-closing .ridge-mobile-menu__children,
  .ridge-header.is-mobile-closing .ridge-mobile-menu a,
  .ridge-header.is-mobile-closing .ridge-mobile-menu button{
    opacity:0!important;
    visibility:hidden!important;
    transition:none!important;
    pointer-events:none!important;
  }

  .ridge-header:not(.is-mobile-open):not(.is-mobile-closing) .ridge-mobile-menu__inner{
    opacity:0!important;
    visibility:hidden!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__item,
  .ridge-header.is-mobile-open .ridge-mobile-menu__parent,
  .ridge-header.is-mobile-open .ridge-mobile-menu__children,
  .ridge-header.is-mobile-open .ridge-mobile-menu a,
  .ridge-header.is-mobile-open .ridge-mobile-menu button{
    visibility:visible!important;
  }
}


/* ================================================================
   Ridge 3.1.01 — Oura-inspired background focus blur
   Reference behavior:
   - blur begins during the final part of the menu's drop, not afterward
   - background is fully blurred when the menu reaches full expansion
   - menu/nav remain sharp above the blur
   - blur releases with the retract
   ================================================================ */

/* Fixed backdrop lives inside the header stacking context, behind the cream
   menu sheet and all navigation content, but above the storefront page. */
.ridge-header::after{
  content:"";
  position:fixed!important;
  inset:0!important;
  z-index:-1!important;
  pointer-events:none!important;
  background:rgba(18,18,18,0)!important;
  backdrop-filter:blur(0px) saturate(100%)!important;
  -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
  opacity:0!important;
  will-change:backdrop-filter,opacity,background!important;
}

/* DESKTOP: mega sheet takes ~0.38s to fully open.
   Start blur ~0.08s into that movement and finish with the sheet. */
@media (min-width:768px){
  .ridge-header::after{
    transition:
      backdrop-filter .30s cubic-bezier(.20,.74,.22,1) 0s,
      -webkit-backdrop-filter .30s cubic-bezier(.20,.74,.22,1) 0s,
      opacity .22s ease 0s,
      background .22s ease 0s!important;
  }

  .ridge-header.is-mega-open::after{
    opacity:1!important;
    background:rgba(18,18,18,.045)!important;
    backdrop-filter:blur(10px) saturate(92%)!important;
    -webkit-backdrop-filter:blur(10px) saturate(92%)!important;
    transition-delay:.08s,.08s,.08s,.08s!important;
  }

  /* On close, release blur immediately with the retracting cream sheet. */
  .ridge-header.is-mega-closing::after{
    opacity:0!important;
    background:rgba(18,18,18,0)!important;
    backdrop-filter:blur(0px) saturate(100%)!important;
    -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
    transition-delay:0s!important;
    transition-duration:.24s,.24s,.18s,.18s!important;
  }
}

/* MOBILE: panel takes ~0.52s to fully expand.
   Begin the blur after the drawer is clearly moving, then reach full blur
   right as the panel finishes opening. */
@media (max-width:767px){
  .ridge-header::after{
    transition:
      backdrop-filter .38s cubic-bezier(.20,.74,.22,1) 0s,
      -webkit-backdrop-filter .38s cubic-bezier(.20,.74,.22,1) 0s,
      opacity .28s ease 0s,
      background .28s ease 0s!important;
  }

  .ridge-header.is-mobile-open::after{
    opacity:1!important;
    background:rgba(18,18,18,.05)!important;
    backdrop-filter:blur(12px) saturate(92%)!important;
    -webkit-backdrop-filter:blur(12px) saturate(92%)!important;
    transition-delay:.14s,.14s,.14s,.14s!important;
  }

  .ridge-header.is-mobile-closing::after{
    opacity:0!important;
    background:rgba(18,18,18,0)!important;
    backdrop-filter:blur(0px) saturate(100%)!important;
    -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
    transition-delay:0s!important;
    transition-duration:.28s,.28s,.20s,.20s!important;
  }
}


/* ================================================================
   Ridge 3.1.02 — real page backdrop blur + clean desktop mega retract
   ================================================================ */

/* Disable the earlier header pseudo backdrop. Its negative z-index placed
   it behind the page in the header's isolated stacking context. */
.ridge-header::after{
  content:none!important;
}

/* This is a real fixed sibling layer: storefront < backdrop < nav/menu. */
.ridge-menu-focus-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:69!important;
  pointer-events:none!important;
  opacity:0!important;
  visibility:hidden!important;
  background:rgba(18,18,18,0)!important;
  backdrop-filter:blur(0px) saturate(100%)!important;
  -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
  transition:
    backdrop-filter .30s cubic-bezier(.20,.74,.22,1),
    -webkit-backdrop-filter .30s cubic-bezier(.20,.74,.22,1),
    background-color .30s ease,
    opacity .22s ease,
    visibility 0s linear .32s!important;
  will-change:backdrop-filter,opacity!important;
}

/* Desktop: blur starts shortly after the 0.38s cream blind begins and is
   fully established just before/full expansion. */
@media (min-width:768px){
  .ridge-header.is-mega-open + .ridge-menu-focus-backdrop{
    opacity:1!important;
    visibility:visible!important;
    background:rgba(18,18,18,.055)!important;
    backdrop-filter:blur(12px) saturate(90%)!important;
    -webkit-backdrop-filter:blur(12px) saturate(90%)!important;
    transition-delay:.06s,.06s,.06s,.06s,0s!important;
  }

  .ridge-header.is-mega-closing + .ridge-menu-focus-backdrop{
    opacity:0!important;
    visibility:visible!important;
    background:rgba(18,18,18,0)!important;
    backdrop-filter:blur(0px) saturate(100%)!important;
    -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
    transition-delay:0s!important;
    transition-duration:.28s,.28s,.24s,.20s,0s!important;
  }
}

/* Mobile: slightly stronger blur, reaching full focus as the drawer finishes. */
@media (max-width:767px){
  .ridge-header.is-mobile-open + .ridge-menu-focus-backdrop{
    opacity:1!important;
    visibility:visible!important;
    background:rgba(18,18,18,.06)!important;
    backdrop-filter:blur(14px) saturate(90%)!important;
    -webkit-backdrop-filter:blur(14px) saturate(90%)!important;
    transition:
      backdrop-filter .38s cubic-bezier(.20,.74,.22,1) .11s,
      -webkit-backdrop-filter .38s cubic-bezier(.20,.74,.22,1) .11s,
      background-color .34s ease .11s,
      opacity .28s ease .11s,
      visibility 0s!important;
  }

  .ridge-header.is-mobile-closing + .ridge-menu-focus-backdrop{
    opacity:0!important;
    visibility:visible!important;
    background:rgba(18,18,18,0)!important;
    backdrop-filter:blur(0px) saturate(100%)!important;
    -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
    transition-delay:0s!important;
    transition-duration:.30s,.30s,.24s,.20s,0s!important;
  }
}

/* DESKTOP RETRACT FIX:
   Never slice the product thumbnails with an animated clip-path. Fade the
   entire menu content away quickly while the cream blind retracts behind it. */
@media (min-width:768px) and (hover:hover) and (pointer:fine){
  .ridge-header.is-mega-closing .ridge-mega{
    clip-path:none!important;
    -webkit-clip-path:none!important;
    overflow:visible!important;
    opacity:0!important;
    visibility:visible!important;
    transition:opacity .065s linear!important;
  }

  .ridge-header.is-mega-closing .ridge-mega__inner,
  .ridge-header.is-mega-closing .ridge-mega__panel.is-active,
  .ridge-header.is-mega-closing .ridge-mega-card,
  .ridge-header.is-mega-closing .ridge-mega-card__media,
  .ridge-header.is-mega-closing .ridge-mega__text-links,
  .ridge-header.is-mega-closing .ridge-mega__simple-links{
    opacity:0!important;
    transition:opacity .065s linear!important;
  }
}


/* ================================================================
   Ridge 3.1.03 — slower, synchronized premium menu motion
   + Theme Editor controlled expanded-menu background blur
   ================================================================ */

/* The reference blur is intentionally subtle. The strength comes from the
   Header setting "Expanded menu background blur" (default 6px). */
.ridge-menu-focus-backdrop{
  --ridge-menu-background-blur:6px;
}

/* DESKTOP
   Slow the top-down cream blind and keep all menu content behind its timing.
   Nothing inside independently translates: one sheet + one synchronized
   content fade. */
@media (min-width:768px){
  .ridge-header::before{
    transition:
      height .62s cubic-bezier(.18,.72,.22,1),
      border-radius .62s cubic-bezier(.18,.72,.22,1)!important;
  }

  .ridge-header .ridge-mega{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:
      opacity .12s ease,
      visibility 0s linear .12s!important;
  }

  .ridge-header.is-mega-open .ridge-mega{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:
      opacity .22s ease .24s,
      visibility 0s!important;
  }

  /* All submenu children stay in one stationary coordinate system and use
     the parent reveal only, preventing text or images from arriving first. */
  .ridge-header.is-mega-open .ridge-mega__inner,
  .ridge-header.is-mega-open .ridge-mega__panel,
  .ridge-header.is-mega-open .ridge-mega__visual-grid,
  .ridge-header.is-mega-open .ridge-mega__cards,
  .ridge-header.is-mega-open .ridge-mega__text-links,
  .ridge-header.is-mega-open .ridge-mega__simple-links,
  .ridge-header.is-mega-open .ridge-mega-card,
  .ridge-header.is-mega-open .ridge-mega-card__media{
    transform:none!important;
    animation:none!important;
  }

  .ridge-header.is-mega-open + .ridge-menu-focus-backdrop{
    opacity:1!important;
    visibility:visible!important;
    background:rgba(18,18,18,.025)!important;
    backdrop-filter:blur(var(--ridge-menu-background-blur)) saturate(96%)!important;
    -webkit-backdrop-filter:blur(var(--ridge-menu-background-blur)) saturate(96%)!important;
    transition:
      backdrop-filter .34s cubic-bezier(.20,.74,.22,1) .22s,
      -webkit-backdrop-filter .34s cubic-bezier(.20,.74,.22,1) .22s,
      background-color .34s ease .22s,
      opacity .26s ease .22s,
      visibility 0s!important;
  }

  /* Keep the current clean close: content disappears as one unit before the
     cream blind retract can visibly slice thumbnails or copy. */
  .ridge-header.is-mega-closing .ridge-mega,
  .ridge-header.is-mega-closing .ridge-mega__inner,
  .ridge-header.is-mega-closing .ridge-mega__panel,
  .ridge-header.is-mega-closing .ridge-mega-card,
  .ridge-header.is-mega-closing .ridge-mega-card__media,
  .ridge-header.is-mega-closing .ridge-mega__text-links,
  .ridge-header.is-mega-closing .ridge-mega__simple-links{
    opacity:0!important;
    transition:opacity .065s linear!important;
  }

  .ridge-header.is-mega-closing + .ridge-menu-focus-backdrop{
    opacity:0!important;
    visibility:visible!important;
    background:rgba(18,18,18,0)!important;
    backdrop-filter:blur(0px) saturate(100%)!important;
    -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
    transition:
      backdrop-filter .30s cubic-bezier(.22,.61,.36,1),
      -webkit-backdrop-filter .30s cubic-bezier(.22,.61,.36,1),
      background-color .24s ease,
      opacity .20s ease,
      visibility 0s!important;
  }
}

/* MOBILE
   Slow the actual expanding frame. Since the content lives inside the
   overflow-hidden frame, it is revealed by the same moving bottom edge,
   keeping text, links and submenus naturally synchronized with the drawer. */
@media (max-width:767px){
  .ridge-mobile-menu,
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    transition:max-height .72s cubic-bezier(.18,.72,.22,1)!important;
  }

  .ridge-header__frame,
  .ridge-header.is-mobile-open .ridge-header__frame{
    transition:
      background-color .28s ease,
      border-radius .60s cubic-bezier(.18,.72,.22,1),
      box-shadow .34s ease!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu__inner,
  .ridge-header.is-mobile-open .ridge-mobile-menu__item,
  .ridge-header.is-mobile-open .ridge-mobile-menu__parent,
  .ridge-header.is-mobile-open .ridge-mobile-menu__children,
  .ridge-header.is-mobile-open .ridge-mobile-menu a,
  .ridge-header.is-mobile-open .ridge-mobile-menu button{
    transform:none!important;
    animation:none!important;
  }

  .ridge-header.is-mobile-open + .ridge-menu-focus-backdrop{
    opacity:1!important;
    visibility:visible!important;
    background:rgba(18,18,18,.025)!important;
    backdrop-filter:blur(var(--ridge-menu-background-blur)) saturate(96%)!important;
    -webkit-backdrop-filter:blur(var(--ridge-menu-background-blur)) saturate(96%)!important;
    transition:
      backdrop-filter .40s cubic-bezier(.20,.74,.22,1) .25s,
      -webkit-backdrop-filter .40s cubic-bezier(.20,.74,.22,1) .25s,
      background-color .36s ease .25s,
      opacity .28s ease .25s,
      visibility 0s!important;
  }

  .ridge-header.is-mobile-closing + .ridge-menu-focus-backdrop{
    opacity:0!important;
    visibility:visible!important;
    background:rgba(18,18,18,0)!important;
    backdrop-filter:blur(0px) saturate(100%)!important;
    -webkit-backdrop-filter:blur(0px) saturate(100%)!important;
    transition:
      backdrop-filter .32s cubic-bezier(.22,.61,.36,1),
      -webkit-backdrop-filter .32s cubic-bezier(.22,.61,.36,1),
      background-color .24s ease,
      opacity .20s ease,
      visibility 0s!important;
  }
}


/* ================================================================
   Ridge 3.1.04 — earlier blur timing
   The blur now begins near the start of the blind animation and reaches
   full strength just before the menu is fully expanded.
   ================================================================ */

@media (min-width:768px){
  .ridge-header.is-mega-open + .ridge-menu-focus-backdrop{
    transition:
      backdrop-filter .48s cubic-bezier(.20,.74,.22,1) .06s,
      -webkit-backdrop-filter .48s cubic-bezier(.20,.74,.22,1) .06s,
      background-color .42s ease .06s,
      opacity .34s ease .06s,
      visibility 0s!important;
  }
}

@media (max-width:767px){
  .ridge-header.is-mobile-open + .ridge-menu-focus-backdrop{
    transition:
      backdrop-filter .54s cubic-bezier(.20,.74,.22,1) .08s,
      -webkit-backdrop-filter .54s cubic-bezier(.20,.74,.22,1) .08s,
      background-color .48s ease .08s,
      opacity .38s ease .08s,
      visibility 0s!important;
  }
}


/* Ridge 3.1.05 — blur starts earlier per final timing adjustment */
@media (min-width:768px){
  .ridge-header.is-mega-open + .ridge-menu-focus-backdrop{
    transition:
      backdrop-filter .48s cubic-bezier(.20,.74,.22,1) .04s,
      -webkit-backdrop-filter .48s cubic-bezier(.20,.74,.22,1) .04s,
      background-color .42s ease .04s,
      opacity .34s ease .04s,
      visibility 0s!important;
  }
}

@media (max-width:767px){
  .ridge-header.is-mobile-open + .ridge-menu-focus-backdrop{
    transition:
      backdrop-filter .54s cubic-bezier(.20,.74,.22,1) .06s,
      -webkit-backdrop-filter .54s cubic-bezier(.20,.74,.22,1) .06s,
      background-color .48s ease .06s,
      opacity .38s ease .06s,
      visibility 0s!important;
  }
}


/* ================================================================
   Ridge 3.1.06 — mobile menu/submenu reveal system
   - fixes clipped submenu content
   - top-level items fade + slide into place while the blind opens
   - submenu accordions expand with their parent sheet
   - all content motion finishes before the .72s main drawer completes
   ================================================================ */
@media (max-width:767px){

  /* Main menu items start slightly lifted/faded. */
  .ridge-mobile-menu__item{
    opacity:0!important;
    transform:translateY(-8px)!important;
    transition:
      opacity .26s ease,
      transform .34s cubic-bezier(.20,.72,.22,1)!important;
    transition-delay:0s!important;
  }

  /* Stagger begins almost immediately and is complete well before the
     cream blind reaches its final .72s height. */
  .ridge-header.is-mobile-open .ridge-mobile-menu__item{
    opacity:1!important;
    transform:translateY(0)!important;
    transition-delay:calc(.055s + (var(--ridge-mobile-item-index, 0) * .045s))!important;
  }

  /* Do not let older rules force children to just "pop" into existence. */
  .ridge-mobile-menu__children{
    display:flex;
    flex-wrap:wrap;
    gap:10px 20px;
    padding:0 0 10px;
    height:0;
    overflow:hidden!important;
    opacity:0!important;
    transform:translateY(-6px)!important;
    will-change:height,opacity,transform;
    transition:
      height .36s cubic-bezier(.20,.72,.22,1),
      opacity .22s ease,
      transform .30s cubic-bezier(.20,.72,.22,1)!important;
  }

  .ridge-mobile-menu__children[hidden]{
    display:none!important;
  }

  .ridge-mobile-menu__children[data-open="opening"],
  .ridge-mobile-menu__children[data-open="true"]{
    opacity:1!important;
    transform:translateY(0)!important;
  }

  .ridge-mobile-menu__children[data-open="closing"],
  .ridge-mobile-menu__children[data-open="false"]{
    opacity:0!important;
    transform:translateY(-6px)!important;
  }

  /* Individual submenu links get a very small synchronized stagger, but
     finish before the accordion reaches its final height. */
  .ridge-mobile-menu__children a{
    opacity:0!important;
    transform:translateY(-5px)!important;
    transition:
      opacity .20s ease,
      transform .28s cubic-bezier(.20,.72,.22,1)!important;
    transition-delay:0s!important;
  }

  .ridge-mobile-menu__children[data-open="opening"] a,
  .ridge-mobile-menu__children[data-open="true"] a{
    opacity:1!important;
    transform:translateY(0)!important;
    transition-delay:calc(.025s + (var(--ridge-mobile-child-index, 0) * .035s))!important;
  }

  /* Keep the parent cream sheet able to grow beyond its initial measured
     size whenever an accordion opens. */
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    overflow:hidden!important;
    max-height:var(--ridge-mobile-menu-open-height, 620px)!important;
  }
}


/* ================================================================
   Ridge 3.1.07 — mobile submenu retract synchronization
   The submenu copy, submenu height, lower menu items, and cream drawer
   now collapse together with no delayed second jump.
   ================================================================ */
@media (max-width:767px){

  /* Main menu still uses the slower premium .72s opening, but once the
     menu is already open an accordion resize should be a tighter motion. */
  .ridge-mobile-menu.is-submenu-resizing{
    transition:max-height .36s cubic-bezier(.20,.72,.22,1)!important;
  }

  .ridge-mobile-menu__children{
    transition:
      height .36s cubic-bezier(.20,.72,.22,1),
      opacity .20s ease,
      transform .30s cubic-bezier(.20,.72,.22,1)!important;
  }

  /* On close, begin moving/fading immediately while height collapses.
     Keep the closing state until the height transition has actually ended,
     preventing the text from briefly snapping back to its resting position. */
  .ridge-mobile-menu__children[data-open="closing"]{
    opacity:0!important;
    transform:translateY(-6px)!important;
  }

  .ridge-mobile-menu__children[data-open="closing"] a{
    opacity:0!important;
    transform:translateY(-5px)!important;
    transition-delay:0s!important;
  }
}


/* ================================================================
   Ridge 3.1.08 — rebuilt mobile submenu animation
   Uses CSS grid rows instead of JS-measured pixel heights.
   This removes the pause / snap-back / second layout correction entirely.
   ================================================================ */
@media (max-width:767px){

  /* Once the main blind is open, allow the inner cream surface to size
     naturally as accordions open and close. */
  .ridge-header.is-mobile-open .ridge-mobile-menu{
    max-height:calc(100dvh - 112px)!important;
    overflow:auto!important;
    transition:max-height .72s cubic-bezier(.18,.72,.22,1)!important;
    scrollbar-width:none;
  }
  .ridge-header.is-mobile-open .ridge-mobile-menu::-webkit-scrollbar{
    display:none;
  }

  /* Remove all old JS-height behavior. */
  .ridge-mobile-menu.is-submenu-resizing{
    transition:max-height .72s cubic-bezier(.18,.72,.22,1)!important;
  }

  .ridge-mobile-menu__children{
    display:grid!important;
    grid-template-rows:0fr!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:0!important;
    opacity:1!important;
    transform:none!important;
    transition:grid-template-rows .34s cubic-bezier(.20,.72,.22,1)!important;
  }

  .ridge-mobile-menu__children[data-open="true"]{
    grid-template-rows:1fr!important;
  }

  .ridge-mobile-menu__children-inner{
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-wrap:wrap;
    gap:10px 20px;
    padding:0 0 0;
  }

  .ridge-mobile-menu__children[data-open="true"] .ridge-mobile-menu__children-inner{
    padding-bottom:10px;
  }

  /* Links animate in-place while the row expands. They do not participate
     in any second layout pass, so lower menu rows move continuously. */
  .ridge-mobile-menu__children a{
    opacity:0!important;
    transform:translateY(-5px)!important;
    transition:
      opacity .20s ease,
      transform .28s cubic-bezier(.20,.72,.22,1)!important;
    transition-delay:0s!important;
  }

  .ridge-mobile-menu__children[data-open="true"] a{
    opacity:1!important;
    transform:translateY(0)!important;
    transition-delay:calc(.025s + (var(--ridge-mobile-child-index, 0) * .03s))!important;
  }

  /* Closing begins immediately and follows the shrinking row. */
  .ridge-mobile-menu__children[data-open="false"] a{
    opacity:0!important;
    transform:translateY(-5px)!important;
    transition-delay:0s!important;
  }

  /* Older hidden-state rules must never take over this rebuilt accordion. */
  .ridge-mobile-menu__children[hidden]{
    display:grid!important;
  }
}


/* ================================================================
   Ridge 3.1.09 — vertical mobile submenus + restored drawer pacing
   ================================================================ */
@media (max-width:767px){

  /* Restore the slower measured-height main drawer behavior from before
     v3.1.08. Using a viewport-sized max-height made the visual reveal finish
     almost immediately even though the transition duration was still .72s. */
  .ridge-mobile-menu{
    max-height:0!important;
    overflow:hidden!important;
    transition:max-height .72s cubic-bezier(.18,.72,.22,1)!important;
  }

  .ridge-header.is-mobile-open .ridge-mobile-menu{
    max-height:var(--ridge-mobile-menu-open-height, 620px)!important;
    overflow:hidden!important;
    transition:max-height .72s cubic-bezier(.18,.72,.22,1)!important;
    scrollbar-width:none;
  }

  /* The CSS-grid submenu itself supplies the motion. During that motion,
     let the outer cream drawer follow the true content height directly. */
  .ridge-header.is-mobile-open .ridge-mobile-menu.is-submenu-tracking{
    transition:none!important;
  }

  /* Submenus are a vertical list, matching the intended mobile hierarchy. */
  .ridge-mobile-menu__children-inner{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    gap:8px!important;
    width:100%;
    min-height:0;
    overflow:hidden;
    padding:0;
  }

  .ridge-mobile-menu__children-inner > a{
    display:block!important;
    width:100%;
  }

  .ridge-mobile-menu__children[data-open="true"] .ridge-mobile-menu__children-inner{
    padding-bottom:10px;
  }
}


/* ================================================================
   Ridge 3.1.10 — UGLY BY DESIGN / ALL FOR THE FEEL rebuild
   Based on Mockups 1A–1F and Z–Z4.
   ================================================================ */
.template-index .ridge-ubd-shell--v3110{background:var(--cream)!important;padding:0 0 42px!important}
.template-index .ridge-ubd-panel--interactive{background:var(--ubd-bg)!important;color:var(--ubd-text)!important;min-height:100vh!important;overflow:clip!important}
.ridge-ubd-sticky{min-height:100vh;position:relative;padding:70px 0 36px}
.ridge-ubd-v2-header{width:min(760px,calc(100% - 80px));margin:0 auto;position:relative;z-index:3}
.ridge-ubd-v2-title,.ridge-ubd-v2-deck{transform-origin:left top;will-change:transform,letter-spacing,opacity}
.ridge-ubd-v2-title p,.ridge-ubd-v2-deck p{margin:0}
.ridge-ubd-v2-title{font-size:58px;line-height:1;letter-spacing:.22em;text-transform:uppercase}
.ridge-ubd-v2-deck{font-size:28px;line-height:1.08;margin-top:22px}
.ridge-ubd-v2-selector{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px 30px}
.ridge-ubd-v2-choice{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer;padding:8px 20px;font-size:clamp(34px,3.1vw,64px);font-weight:600;line-height:1;text-transform:uppercase;transition:font-size .32s cubic-bezier(.2,.72,.22,1),transform .32s ease,opacity .24s ease}
.ridge-ubd-v2-choice:not(.is-active){font-size:clamp(24px,2.1vw,42px);opacity:.96}
.ridge-ubd-v2-choice:hover,.ridge-ubd-v2-choice.is-hovered{transform:scale(1.13)}
.ridge-ubd-v2-line{display:block;width:2px;height:42px;background:currentColor;margin:5px 0}
.ridge-ubd-v2-details{position:relative;width:100%}
.ridge-ubd-v2-detail{display:none;width:min(1370px,calc(100% - 120px));margin:0 auto;grid-template-columns:minmax(0,1.45fr) minmax(330px,.85fr);gap:90px;align-items:center;padding:35px 0 70px;min-height:590px;scroll-margin-top:90px}
.ridge-ubd-v2-detail.is-active{display:grid;animation:ridgeUbdDetailIn .42s cubic-bezier(.2,.72,.22,1) both}
@keyframes ridgeUbdDetailIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ridge-ubd-v2-copy h3{font-size:clamp(42px,4vw,62px);line-height:1;margin:0 0 30px;text-transform:uppercase}
.ridge-ubd-v2-body{font-size:clamp(21px,1.55vw,29px);line-height:1.14}
.ridge-ubd-v2-body p{margin:0 0 28px}
.ridge-ubd-v2-copy blockquote{font-size:clamp(20px,1.45vw,27px);font-weight:600;line-height:1.15;margin:34px 0 0}
.ridge-ubd-v2-media{width:100%;aspect-ratio:1/1;border-radius:22px;overflow:hidden}
.ridge-ubd-v2-media img{width:100%;height:100%;object-fit:cover;display:block}
.ridge-ubd-v2-placeholder{width:100%;height:100%;background:#aaa49e}
.ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{min-height:155px;padding:15px 20px 5px}
.ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-choice{font-size:clamp(17px,1.35vw,27px)}
.ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-choice.is-active{font-size:clamp(28px,2.7vw,52px)}
.ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-line{height:38px}
.ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-detail:not(.is-active){display:none}

.ridge-all-feel--v3110{background:var(--af-bg)!important;color:var(--af-text)!important;padding:85px 0 70px!important;min-height:900px!important}
.ridge-all-feel-v2-grid{width:min(1370px,calc(100% - 120px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.85fr);gap:90px;align-items:start}
.ridge-all-feel-v2-copy{padding-top:5px}
.ridge-all-feel-v2-heading p{margin:0}
.ridge-all-feel-v2-heading{font-size:clamp(52px,5vw,82px);line-height:.92;max-width:520px}
.ridge-all-feel-v2-heading em{font-family:"Times New Roman",Times,serif;font-size:1.65em;display:block;line-height:.85}
.ridge-rich-font--cal{font-family:"Cal Sans",sans-serif;text-transform:none}.ridge-rich-font--barlow{font-family:"Barlow Condensed",sans-serif}.ridge-rich-font--times{font-family:"Times New Roman",Times,serif}
.ridge-all-feel-v2-subtitle{font-size:clamp(20px,1.55vw,29px);margin-top:70px}
.ridge-all-feel-v2-subtitle p{margin:0}
.ridge-all-feel-v2-body{font-size:clamp(19px,1.35vw,25px);line-height:1.18;margin-top:80px;max-width:700px}
.ridge-all-feel-v2-body p{margin:0 0 28px}
.ridge-all-feel-v2-question{font-size:clamp(18px,1.3vw,24px);font-style:italic;font-weight:600;text-align:right;margin:65px -90px 0 0}
.ridge-all-feel-v2-body--last{margin-top:70px}
.ridge-all-feel-v2-media{width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden}
.ridge-all-feel-v2-media img{width:100%;height:100%;object-fit:cover;display:block}
.ridge-all-feel-v2-placeholder{width:100%;height:100%;background:#aaa49e}

@media(min-width:768px){
  .template-index .ridge-ubd-panel--interactive,.template-index .ridge-all-feel--v3110{width:calc(100% - 44px)!important;margin-left:22px!important;margin-right:22px!important;border-radius:10px!important}
}
@media(max-width:767px){
  .template-index .ridge-ubd-panel--interactive,.template-index .ridge-all-feel--v3110{width:100%!important;margin:0!important;border-radius:0!important}
  .ridge-ubd-sticky{padding:58px 20px 40px}
  .ridge-ubd-v2-header{width:100%}
  .ridge-ubd-v2-title{font-size:38px;letter-spacing:.15em}
  .ridge-ubd-v2-deck{font-size:20px;margin-top:14px}
  .ridge-ubd-v2-selector{min-height:430px;padding-inline:0}
  .ridge-ubd-v2-choice{font-size:36px}.ridge-ubd-v2-choice:not(.is-active){font-size:26px}
  .ridge-ubd-v2-detail{width:100%;grid-template-columns:1fr;gap:34px;padding:28px 0 55px}
  .ridge-ubd-v2-copy h3{font-size:36px}.ridge-ubd-v2-body{font-size:19px}.ridge-ubd-v2-copy blockquote{font-size:18px}
  .ridge-ubd-v2-media{border-radius:12px}
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{min-height:180px}
  .ridge-all-feel--v3110{padding:65px 20px 55px!important}
  .ridge-all-feel-v2-grid{width:100%;grid-template-columns:1fr;gap:55px}
  .ridge-all-feel-v2-heading{font-size:50px}.ridge-all-feel-v2-subtitle{margin-top:45px;font-size:20px}
  .ridge-all-feel-v2-body{font-size:18px;margin-top:52px}.ridge-all-feel-v2-question{text-align:left;margin:48px 0 0;font-size:18px}
  .ridge-all-feel-v2-body--last{margin-top:50px}.ridge-all-feel-v2-media{border-radius:12px}
}

/* ================================================================
 Ridge 3.1.11 — UBD scroll-story correction
 Keeps the UBD stage pinned while the user progresses through:
 intro -> selector -> Pure Feel -> Heat Flux -> Heat Shift.
 ================================================================ */
@media (min-width:768px){
  .template-index .ridge-ubd-shell--v3110{position:relative!important}
  .template-index .ridge-ubd-panel--interactive{
    min-height:500vh!important;
    overflow:visible!important;
    position:relative!important;
  }
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
    position:sticky!important;
    top:0!important;
    height:100vh!important;
    min-height:100vh!important;
    overflow:hidden!important;
    padding:70px 0 28px!important;
  }
  .ridge-ubd-v2-selector{
    position:absolute!important;
    inset:215px 0 auto!important;
    min-height:calc(100vh - 250px)!important;
    padding:0 20px!important;
    transition:opacity .28s ease,transform .42s cubic-bezier(.2,.72,.22,1)!important;
  }
  .ridge-ubd-v2-details{
    position:absolute!important;
    inset:205px 0 0!important;
    pointer-events:none;
  }
  .ridge-ubd-v2-detail{
    display:grid!important;
    position:absolute!important;
    inset:0!important;
    width:min(1370px,calc(100% - 120px))!important;
    margin:0 auto!important;
    min-height:calc(100vh - 220px)!important;
    padding:20px 0 55px!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(20px)!important;
    transition:opacity .34s ease,transform .46s cubic-bezier(.2,.72,.22,1),visibility 0s linear .46s!important;
  }
  .ridge-ubd-v2-detail.is-active{
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    transition:opacity .34s ease,transform .46s cubic-bezier(.2,.72,.22,1),visibility 0s!important;
  }
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
    opacity:0!important;transform:translateY(-14px)!important;pointer-events:none!important;
  }
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-details{pointer-events:auto}
}

/* ================================================================
 Ridge 3.1.12 — remove dead UBD scroll distance.
 The story is now 360vh instead of 500vh, and every scroll phase has
 visible content. Selector/details remain centered in the pinned viewport.
 ================================================================ */
@media (min-width:768px){
  .template-index .ridge-ubd-panel--interactive{
    min-height:360vh!important;
  }
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
    height:100vh!important;
    min-height:100vh!important;
  }
  .ridge-ubd-v2-selector{
    inset:190px 0 0!important;
    min-height:calc(100vh - 190px)!important;
    opacity:1;
    visibility:visible!important;
  }
  .ridge-ubd-v2-details{
    inset:190px 0 0!important;
  }
}

/* Ridge 3.1.13 — source-of-truth UBD rebuild.
   Critical fix: index.liquid uses a static section, so Shopify does NOT
   instantiate preset blocks. v3.1.10–.12 therefore rendered zero feature
   choices/details. This build includes real fallback feature content. */
@media (min-width:768px){
  .template-index .ridge-ubd-panel--interactive{min-height:320vh!important}
  .ridge-ubd-v2-selector{z-index:4!important}
  .ridge-ubd-v2-details{z-index:5!important}
  .ridge-ubd-panel--interactive:not(.has-detail) .ridge-ubd-v2-selector{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{opacity:1!important;transform:none!important;pointer-events:auto!important;min-height:150px!important;inset:185px 0 auto!important}
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-details{inset:335px 0 0!important}
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-choice{opacity:.95!important}
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-choice.is-active{opacity:1!important}
}

/* ================================================================
 Ridge 3.1.14 — UBD expanded-state correction from 9/15 recording
 + annotated screenshots.
 - Expanded feature = feature content only. Intro/selector disappear.
 - Copy heading and square media share the same top baseline.
 - Detail fills the pinned viewport cleanly.
 - Reduced story length / no oversized tail before ALL FOR THE FEEL.
 ================================================================ */
@media (min-width:768px){
  .template-index .ridge-ubd-panel--interactive{
    min-height:250vh!important;
  }

  /* Intro/selector remain visible only in the selector state. */
  .ridge-ubd-panel--interactive .ridge-ubd-v2-head,
  .ridge-ubd-panel--interactive .ridge-ubd-v2-selector{
    transition:opacity .22s ease,transform .32s cubic-bezier(.2,.72,.22,1)!important;
  }
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-head,
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-12px)!important;
  }

  /* Expanded feature owns the viewport. */
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-details{
    inset:0!important;
    height:100%!important;
    pointer-events:auto!important;
    z-index:8!important;
  }
  .ridge-ubd-panel--interactive .ridge-ubd-v2-detail,
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-detail{
    width:min(1500px,calc(100% - 120px))!important;
    height:100%!important;
    min-height:0!important;
    margin:0 auto!important;
    padding:clamp(100px,13vh,145px) 0 70px!important;
    grid-template-columns:minmax(0,1.55fr) minmax(360px,.85fr)!important;
    column-gap:clamp(70px,8vw,145px)!important;
    align-items:start!important;
    align-content:start!important;
  }

  /* Exact shared top baseline requested in annotated screenshot. */
  .ridge-ubd-v2-copy,
  .ridge-ubd-v2-media{
    align-self:start!important;
    margin-top:0!important;
  }
  .ridge-ubd-v2-copy h3{
    margin-top:0!important;
    padding-top:0!important;
    line-height:.95!important;
  }
  .ridge-ubd-v2-media{
    width:100%!important;
    max-width:510px!important;
    justify-self:end!important;
    aspect-ratio:1/1!important;
  }
  .ridge-ubd-v2-media img,
  .ridge-ubd-v2-placeholder{
    width:100%!important;
    height:100%!important;
    aspect-ratio:1/1!important;
    object-fit:cover!important;
  }
}

/* Mobile: same rule — once a feature is expanded, do not leave the
   intro/selector stacked above the feature. */
@media (max-width:767px){
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-head,
  .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
    display:none!important;
  }
}

/* ================================================================
 Ridge 3.1.15 — UGLY BY DESIGN intro typography/alignment
 Source-of-truth correction:
 - UGLY BY DESIGN = Cal Sans, uppercase, centered
 - subtitle = Cal Sans, centered
 ================================================================ */
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-head{
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  justify-items:center!important;
  align-items:center!important;
}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-head h2,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-head .ridge-ubd-v2-title{
  font-family:"Cal Sans",var(--font-heading-family),sans-serif!important;
  text-transform:uppercase!important;
  text-align:center!important;
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-head p,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-head .ridge-ubd-v2-subtitle{
  font-family:"Cal Sans",var(--font-heading-family),sans-serif!important;
  text-align:center!important;
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ================================================================
 Ridge 3.1.16 — fixes verified against 9/15 1:07:55 PM recording.
 The real intro wrapper is .ridge-ubd-v2-header (not .ridge-ubd-v2-head).
 ================================================================ */

/* Source-of-truth intro typography + true centering. */
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-header{
  width:min(980px,calc(100% - 80px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-title,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-title p,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-deck,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-deck p{
  font-family:"Cal Sans",Arial,sans-serif!important;
  font-weight:400!important;
  text-align:center!important;
}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-title,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-deck{
  width:100%!important;
  transform-origin:50% 0!important;
}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-title{
  text-transform:uppercase!important;
}

/* Expanded feature must contain ONLY the feature view. */
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header,
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Keep the expanded copy/image baseline exact. */
@media (min-width:768px){
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-details{
    position:absolute!important;
    inset:0!important;
    height:100%!important;
  }
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-detail.is-active{
    display:grid!important;
    align-items:start!important;
    align-content:start!important;
  }
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-copy,
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-media{
    margin-top:0!important;
    align-self:start!important;
  }
}

/* ================================================================
   Ridge 3.2.0 — 9/20 UBD scroll source of truth
   Hero ⇄ bridge ⇄ #1B neutral ⇄ feature ⇄ neutral ⇄ feature
   ⇄ neutral ⇄ feature ⇄ neutral ⇄ ALL FOR THE FEEL.
   ================================================================ */
.template-index .ridge-ubd-panel--interactive{
  min-height:620vh!important;
  overflow:visible!important;
  position:relative!important;
}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
  position:sticky!important;top:0!important;height:100svh!important;min-height:100svh!important;
  overflow:hidden!important;padding:clamp(34px,6vh,70px) 0 24px!important;
}
.template-index .ridge-ubd-v2-header{
  position:relative!important;z-index:7!important;
  transition:opacity .32s ease,transform .45s cubic-bezier(.2,.72,.22,1)!important;
}
.template-index .ridge-ubd-v2-title{font-size:clamp(42px,4.2vw,68px)!important;line-height:.98!important}
.template-index .ridge-ubd-v2-deck{font-size:clamp(22px,2vw,32px)!important;line-height:1.08!important}

/* #1B: all three labels are equal members of the neutral menu. */
.template-index .ridge-ubd-v2-selector{
  position:absolute!important;inset:clamp(205px,27vh,285px) 0 0!important;
  min-height:0!important;height:calc(100svh - clamp(205px,27vh,285px))!important;
  display:flex!important;justify-content:center!important;padding:0 20px!important;z-index:6!important;
  opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important;
  transition:opacity .34s ease,transform .48s cubic-bezier(.2,.72,.22,1)!important;
}
.template-index .ridge-ubd-v2-choice,
.template-index .ridge-ubd-v2-choice:not(.is-active){
  font-size:clamp(30px,3vw,58px)!important;opacity:1!important;transform:none!important;
  transition:transform .5s cubic-bezier(.2,.72,.22,1),opacity .3s ease,font-size .5s cubic-bezier(.2,.72,.22,1)!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header{opacity:0!important;transform:translateY(-16px) scale(.96)!important;visibility:hidden!important}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
  opacity:0!important;transform:scale(1.08)!important;visibility:hidden!important;pointer-events:none!important;
}

/* Expanded content morphs out of the menu rather than popping in. */
.template-index .ridge-ubd-v2-details{position:absolute!important;inset:0!important;height:100%!important;z-index:8!important;pointer-events:none!important}
.template-index .ridge-ubd-v2-detail,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
  display:grid!important;position:absolute!important;inset:0!important;
  width:min(1500px,calc(100% - 120px))!important;height:100%!important;min-height:0!important;
  margin:0 auto!important;padding:clamp(105px,14vh,150px) 0 80px!important;
  grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr)!important;
  gap:clamp(65px,8vw,140px)!important;align-items:start!important;align-content:start!important;
  opacity:0!important;visibility:hidden!important;transform:translateY(22px) scale(.965)!important;
  transition:opacity .38s ease,transform .55s cubic-bezier(.2,.72,.22,1),visibility 0s linear .55s!important;
}
.template-index .ridge-ubd-v2-detail.is-active{
  opacity:1!important;visibility:visible!important;transform:translateY(0) scale(1)!important;
  transition:opacity .38s ease,transform .55s cubic-bezier(.2,.72,.22,1),visibility 0s!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-details{pointer-events:auto!important}

/* Previous/next submenu labels stay visibly "on queue" in expanded states. */
.ridge-ubd-v3-queue{position:absolute!important;inset:0!important;z-index:10!important;pointer-events:none!important;opacity:0;visibility:hidden;transition:opacity .38s ease!important}
.ridge-ubd-v3-queue.is-visible{opacity:1;visibility:visible}
.ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{
  position:absolute;left:50%;transform:translateX(-50%);font-size:clamp(18px,1.55vw,28px);line-height:1;
  text-transform:uppercase;white-space:nowrap;opacity:.9
}
.ridge-ubd-v3-queue__prev{top:clamp(28px,4.5vh,52px)}
.ridge-ubd-v3-queue__next{bottom:clamp(28px,4.5vh,52px)}
.ridge-ubd-v3-queue__prev:not(:empty)::after,.ridge-ubd-v3-queue__next:not(:empty)::before{
  content:"";display:block;width:2px;height:30px;background:currentColor;margin:10px auto
}
.ridge-ubd-v3-queue__prev:not(:empty)::after{margin-bottom:0}.ridge-ubd-v3-queue__next:not(:empty)::before{margin-top:0}

@media(max-width:767px){
  /* Normal page scroll only: sticky story, never an internally scrolling panel. */
  .template-index .ridge-ubd-panel--interactive{min-height:650vh!important;overflow:visible!important}
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{position:sticky!important;top:0!important;height:100svh!important;overflow:hidden!important;padding:34px 18px 18px!important}
  .template-index .ridge-ubd-v2-header{width:100%!important}
  .template-index .ridge-ubd-v2-title{font-size:clamp(30px,9.2vw,43px)!important;letter-spacing:.12em!important}
  .template-index .ridge-ubd-v2-deck{font-size:clamp(18px,5.5vw,24px)!important;margin-top:14px!important}
  .template-index .ridge-ubd-v2-selector{inset:180px 0 0!important;height:calc(100svh - 180px)!important;padding:0 12px!important}
  .template-index .ridge-ubd-v2-choice,.template-index .ridge-ubd-v2-choice:not(.is-active){font-size:clamp(27px,8vw,38px)!important}
  .template-index .ridge-ubd-v2-line{height:34px!important}
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{display:flex!important;opacity:0!important;visibility:hidden!important}
  .template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
    width:100%!important;padding:82px 0 70px!important;grid-template-columns:1fr!important;gap:18px!important;overflow:hidden!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:48svh;overflow:hidden}
  .template-index .ridge-ubd-v2-copy h3{font-size:clamp(31px,9vw,42px)!important;margin:0 0 14px!important}
  .template-index .ridge-ubd-v2-body{font-size:clamp(15px,4.2vw,18px)!important;line-height:1.2!important}
  .template-index .ridge-ubd-v2-body p{margin-bottom:12px!important}
  .template-index .ridge-ubd-v2-copy blockquote{font-size:15px!important;margin-top:12px!important}
  .template-index .ridge-ubd-v2-media{width:min(64vw,270px)!important;max-width:none!important;justify-self:center!important;border-radius:12px!important}
  .ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{font-size:17px}.ridge-ubd-v3-queue__prev{top:20px}.ridge-ubd-v3-queue__next{bottom:20px}
}


/* ================================================================
   Ridge 3.2.1 — neutral submenu selection cue
   #1B stays readable, but the submenu under the scroll cursor grows before
   its detail morph. Reverse scroll naturally shrinks it after collapse.
   ================================================================ */
.template-index .ridge-ubd-v2-choice,
.template-index .ridge-ubd-v2-choice:not(.is-active){
  transform:scale(var(--ubd-choice-scale,1))!important;
  opacity:var(--ubd-choice-opacity,1)!important;
  transform-origin:center center!important;
  will-change:transform,opacity!important;
  transition:transform .14s linear,opacity .18s ease!important;
}
.template-index .ridge-ubd-v2-choice.is-selected{
  position:relative!important;
  z-index:3!important;
}
@media (prefers-reduced-motion:reduce){
  .template-index .ridge-ubd-v2-choice{transition:none!important}
}

/* ================================================================
   Ridge 3.2.2 — mobile UBD story parity / longer bridge + visible beats
   ================================================================ */
@media(max-width:767px){
  .template-index .ridge-ubd-panel--interactive{
    min-height:860vh!important;
    overflow:visible!important;
  }
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
    position:sticky!important;top:0!important;height:100svh!important;min-height:100svh!important;
    overflow:hidden!important;padding:30px 16px 18px!important;
  }
  .template-index .ridge-ubd-v2-header{
    display:block!important;opacity:1;visibility:visible;transform-origin:center top!important;
  }
  .template-index .ridge-ubd-v2-selector{
    display:flex!important;inset:190px 0 0!important;height:calc(100svh - 190px)!important;
    opacity:1;visibility:visible;overflow:visible!important;
  }
  .template-index .ridge-ubd-v2-choice,
  .template-index .ridge-ubd-v2-choice:not(.is-active){
    display:block!important;visibility:visible!important;
    transform:scale(var(--ubd-choice-scale,1))!important;
    transform-origin:center center!important;
  }
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header,
  .template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
    opacity:0!important;visibility:hidden!important;pointer-events:none!important;
  }
  .template-index .ridge-ubd-v2-details{display:block!important;inset:0!important;height:100%!important}
  .template-index .ridge-ubd-v2-detail.is-active{
    display:grid!important;visibility:visible!important;opacity:1!important;
    width:100%!important;height:100%!important;padding:72px 18px 64px!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;
    align-content:center!important;gap:18px!important;overflow:hidden!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:52svh!important;overflow:hidden!important}
  .template-index .ridge-ubd-v2-media{max-height:28svh!important;width:min(62vw,250px)!important}
}

/* ================================================================
   Ridge 3.2.3 — continuous neutral/select/detail morph + mobile parity
   ================================================================ */
.template-index .ridge-ubd-v2-header{
  transform:translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
  opacity:var(--ubd-bridge-opacity,1)!important;
  transform-origin:center top!important;
}
.template-index .ridge-ubd-v2-title{letter-spacing:var(--ubd-bridge-spacing,.12em)!important}
.template-index .ridge-ubd-v2-deck{
  transform:translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
  opacity:var(--ubd-bridge-opacity,1)!important;
  transform-origin:center top!important;
}
/* Never teleport the selector away: it fades/scales in the same sticky viewport. */
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header{
  visibility:visible!important;opacity:calc(var(--ubd-bridge-opacity,1) * var(--ubd-selector-progress,0))!important;
  pointer-events:none!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
  display:flex!important;visibility:visible!important;pointer-events:none!important;
  opacity:var(--ubd-selector-progress,0)!important;
  transform:scale(calc(1 + .035 * var(--ubd-detail-progress,0)))!important;
}
.template-index .ridge-ubd-v2-detail.is-active{
  opacity:var(--ubd-detail-progress,1)!important;
  visibility:visible!important;
  transform:translateY(calc(18px * (1 - var(--ubd-detail-progress,1)))) scale(calc(.965 + .035 * var(--ubd-detail-progress,1)))!important;
  transition:none!important;
}
.ridge-ubd-v3-queue.is-visible{opacity:var(--ubd-detail-progress,1)!important}

@media(max-width:900px){
  .template-index .ridge-ubd-panel--interactive{min-height:1100vh!important;overflow:visible!important}
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
    position:sticky!important;top:0!important;height:100dvh!important;min-height:100dvh!important;
    overflow:hidden!important;padding:24px 14px 16px!important;
  }
  .template-index .ridge-ubd-v2-header{display:block!important;width:100%!important;visibility:visible!important}
  .template-index .ridge-ubd-v2-title{font-size:clamp(28px,9vw,42px)!important;line-height:1!important}
  .template-index .ridge-ubd-v2-deck{font-size:clamp(17px,5vw,23px)!important;line-height:1.08!important;margin-top:12px!important}
  .template-index .ridge-ubd-v2-selector{
    display:flex!important;visibility:visible!important;inset:175px 0 0!important;height:calc(100dvh - 175px)!important;
    padding:0 10px!important;overflow:visible!important;
  }
  .template-index .ridge-ubd-v2-choice,.template-index .ridge-ubd-v2-choice:not(.is-active){
    display:block!important;visibility:visible!important;font-size:clamp(25px,7.7vw,37px)!important;
  }
  .template-index .ridge-ubd-v2-details{display:block!important;position:absolute!important;inset:0!important;height:100%!important}
  .template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
    width:100%!important;height:100%!important;padding:70px 16px 58px!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;align-content:center!important;gap:14px!important;overflow:hidden!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:52dvh!important;overflow:hidden!important}
  .template-index .ridge-ubd-v2-media{width:min(60vw,245px)!important;max-height:26dvh!important;justify-self:center!important}
  .ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{font-size:15px!important}
}

/* ================================================================
   Ridge 3.2.4 — FINAL UBD choreography
   Persistent bridge header; fixed visual scene; desktop/mobile parity.
   ================================================================ */
.template-index .ridge-ubd-panel--interactive{min-height:920vh!important;overflow:visible!important}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
  position:sticky!important;top:0!important;height:100dvh!important;min-height:100dvh!important;
  overflow:hidden!important;padding:clamp(22px,4vh,46px) clamp(16px,3vw,42px) 18px!important;
}
/* Bridge remains visible above every neutral/selected/expanded feature state. */
.template-index .ridge-ubd-v2-header{
  position:absolute!important;top:clamp(22px,4vh,46px)!important;left:50%!important;z-index:30!important;
  width:min(980px,calc(100% - 48px))!important;margin:0!important;
  transform:translateX(-50%) translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
  opacity:var(--ubd-bridge-opacity,1)!important;visibility:visible!important;pointer-events:none!important;
  transform-origin:center top!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header{opacity:var(--ubd-bridge-opacity,1)!important;visibility:visible!important}
.template-index .ridge-ubd-v2-deck{transform:none!important;opacity:1!important}

/* One fixed feature stage beneath the bridge: nothing visually teleports. */
.template-index .ridge-ubd-v2-selector{
  position:absolute!important;inset:clamp(170px,23vh,225px) 0 18px!important;height:auto!important;min-height:0!important;
  display:flex!important;visibility:visible!important;align-items:center!important;justify-content:center!important;
  padding:0 18px!important;opacity:var(--ubd-selector-progress,1)!important;pointer-events:none!important;
  transform:none!important;transition:none!important;z-index:12!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{
  display:flex!important;visibility:visible!important;opacity:var(--ubd-selector-progress,0)!important;transform:none!important;
}
.template-index .ridge-ubd-v2-details{
  position:absolute!important;inset:clamp(150px,20vh,195px) 0 12px!important;height:auto!important;z-index:14!important;pointer-events:none!important;
}
.template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
  position:absolute!important;inset:0!important;width:min(1320px,calc(100% - 96px))!important;height:100%!important;min-height:0!important;
  margin:0 auto!important;padding:clamp(18px,2.5vh,30px) 0 clamp(42px,6vh,70px)!important;
  grid-template-columns:minmax(0,1.4fr) minmax(280px,.72fr)!important;gap:clamp(38px,6vw,90px)!important;
  align-items:center!important;align-content:center!important;overflow:hidden!important;
  opacity:0!important;visibility:hidden!important;transform:translateY(12px) scale(.975)!important;transition:none!important;
}
.template-index .ridge-ubd-v2-detail.is-active{
  display:grid!important;visibility:visible!important;opacity:var(--ubd-detail-progress,1)!important;
  transform:translateY(calc(12px * (1 - var(--ubd-detail-progress,1)))) scale(calc(.975 + .025 * var(--ubd-detail-progress,1)))!important;
}
/* Scale content to fit beneath the persistent bridge. */
.template-index .ridge-ubd-v2-copy h3{font-size:clamp(34px,3.2vw,52px)!important;margin:0 0 18px!important}
.template-index .ridge-ubd-v2-body{font-size:clamp(17px,1.25vw,23px)!important;line-height:1.12!important}
.template-index .ridge-ubd-v2-body p{margin:0 0 16px!important}
.template-index .ridge-ubd-v2-copy blockquote{font-size:clamp(16px,1.15vw,21px)!important;margin:20px 0 0!important}
.template-index .ridge-ubd-v2-media{width:min(100%,390px)!important;max-height:min(43dvh,390px)!important;justify-self:end!important}
.ridge-ubd-v3-queue{inset:clamp(145px,19vh,185px) 0 10px!important}
.ridge-ubd-v3-queue__prev{top:0!important}.ridge-ubd-v3-queue__next{bottom:0!important}

@media(max-width:900px){
  .template-index .ridge-ubd-panel--interactive{min-height:1080vh!important}
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{padding:18px 12px 12px!important}
  .template-index .ridge-ubd-v2-header{top:18px!important;width:calc(100% - 28px)!important}
  .template-index .ridge-ubd-v2-title{font-size:clamp(25px,8vw,36px)!important;letter-spacing:var(--ubd-bridge-spacing,.12em)!important}
  .template-index .ridge-ubd-v2-deck{font-size:clamp(15px,4.5vw,20px)!important;margin-top:8px!important;line-height:1.06!important}
  .template-index .ridge-ubd-v2-selector{inset:130px 0 10px!important;padding:0 8px!important}
  .template-index .ridge-ubd-v2-choice,.template-index .ridge-ubd-v2-choice:not(.is-active){font-size:clamp(23px,7vw,32px)!important}
  .template-index .ridge-ubd-v2-line{height:28px!important;margin:3px 0!important}
  .template-index .ridge-ubd-v2-details{inset:118px 0 8px!important}
  .template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
    width:100%!important;padding:18px 16px 42px!important;grid-template-columns:1fr!important;grid-template-rows:auto auto!important;
    gap:10px!important;align-content:center!important;overflow:hidden!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:43dvh!important;overflow:hidden!important}
  .template-index .ridge-ubd-v2-copy h3{font-size:clamp(27px,7.8vw,36px)!important;margin-bottom:10px!important}
  .template-index .ridge-ubd-v2-body{font-size:clamp(13px,3.55vw,16px)!important;line-height:1.14!important}
  .template-index .ridge-ubd-v2-body p{margin-bottom:8px!important}
  .template-index .ridge-ubd-v2-copy blockquote{font-size:clamp(12px,3.35vw,15px)!important;margin-top:8px!important}
  .template-index .ridge-ubd-v2-media{width:min(48vw,190px)!important;max-height:23dvh!important;justify-self:center!important;border-radius:10px!important}
  .ridge-ubd-v3-queue{inset:112px 0 8px!important}.ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{font-size:13px!important}
}

/* ================================================================
   Ridge 3.2.5 — queued-center transitions + mobile rebuild
   Neutral only at section boundaries. Expanded content opens/closes
   from the page center; queued headings directly become active headings.
   ================================================================ */
.template-index .ridge-ubd-panel--interactive{min-height:600vh!important}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{overflow:hidden!important}
/* Persistent bridge: always visible while inside the UBD sticky scene. */
.template-index .ridge-ubd-v2-header,
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header{
  opacity:var(--ubd-bridge-opacity,1)!important;visibility:visible!important;z-index:40!important;
}
/* Neutral selector is boundary-only; details never route through it between features. */
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{opacity:0!important;visibility:hidden!important}
/* Detail itself grows from center rather than sliding in from either side. */
.template-index .ridge-ubd-v2-detail.is-active{
  opacity:var(--ubd-detail-progress,1)!important;
  transform:scale(calc(.88 + .12 * var(--ubd-detail-progress,1)))!important;
  transform-origin:50% 50%!important;
  filter:blur(calc(5px * (1 - var(--ubd-detail-progress,1))))!important;
}
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy,
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-media{
  opacity:var(--ubd-detail-progress,1)!important;
  transform:scale(calc(.92 + .08 * var(--ubd-detail-progress,1)))!important;
  transform-origin:center center!important;
}
/* The active title originates visually at the centered queue and resolves left. */
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy h3{
  transform:translateX(calc((1 - var(--ubd-title-progress,1)) * 34vw)) scale(calc(.72 + .28 * var(--ubd-title-progress,1)))!important;
  transform-origin:left center!important;
  opacity:calc(.45 + .55 * var(--ubd-title-progress,1))!important;
}
.ridge-ubd-v3-queue.is-visible{opacity:var(--ubd-queue-progress,var(--ubd-detail-progress,1))!important;visibility:visible!important}

@media(max-width:900px){
  /* Rebuilt mobile track: enough travel for the bridge + 3 real states, no dead 1000vh gap. */
  .template-index .ridge-ubd-panel--interactive{min-height:650vh!important;overflow:visible!important}
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
    position:sticky!important;top:0!important;height:100svh!important;min-height:100svh!important;
    overflow:hidden!important;padding:14px 10px 10px!important;
  }
  .template-index .ridge-ubd-v2-header{top:14px!important;width:calc(100% - 22px)!important}
  .template-index .ridge-ubd-v2-title{font-size:clamp(23px,7.4vw,34px)!important;line-height:.98!important}
  .template-index .ridge-ubd-v2-deck{font-size:clamp(13px,4vw,18px)!important;line-height:1.04!important;margin-top:6px!important}
  .template-index .ridge-ubd-v2-selector{inset:112px 0 8px!important;height:auto!important}
  .template-index .ridge-ubd-v2-choice,.template-index .ridge-ubd-v2-choice:not(.is-active){font-size:clamp(21px,6.5vw,29px)!important}
  .template-index .ridge-ubd-v2-details{inset:104px 0 6px!important;height:auto!important}
  .template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
    width:100%!important;height:100%!important;padding:26px 14px 38px!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;align-content:center!important;gap:8px!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:48svh!important;overflow:hidden!important}
  .template-index .ridge-ubd-v2-copy h3{font-size:clamp(25px,7.4vw,34px)!important;margin:0 0 8px!important}
  .template-index .ridge-ubd-v2-body{font-size:clamp(12px,3.25vw,15px)!important;line-height:1.12!important}
  .template-index .ridge-ubd-v2-body p{margin-bottom:7px!important}
  .template-index .ridge-ubd-v2-copy blockquote{font-size:clamp(11px,3vw,14px)!important;margin-top:7px!important}
  .template-index .ridge-ubd-v2-media{width:min(42vw,170px)!important;max-height:20svh!important;justify-self:center!important}
  .ridge-ubd-v3-queue{inset:100px 0 5px!important}
  .ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{font-size:12px!important}
  /* Mobile title also grows from center, but with a shorter travel than desktop. */
  .template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy h3{
    transform:translateX(calc((1 - var(--ubd-title-progress,1)) * 27vw)) scale(calc(.76 + .24 * var(--ubd-title-progress,1)))!important;
  }
}

/* ================================================================
   Ridge 3.2.6 — UBD viewport-stage rebuild
   Explicit fixed visual stage, center-origin feature morphs, mobile parity.
   ================================================================ */
.template-index .ridge-ubd-panel--interactive{min-height:560vh!important;position:relative!important;overflow:visible!important}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
  position:sticky!important;top:0!important;width:100%!important;height:100vh!important;height:100dvh!important;min-height:100vh!important;
  overflow:hidden!important;isolation:isolate!important;padding:0!important;background:var(--ubd-bg)!important;
}
.template-index .ridge-ubd-v2-header{
  position:absolute!important;left:50%!important;top:clamp(28px,5vh,58px)!important;width:min(980px,calc(100% - 48px))!important;
  margin:0!important;text-align:left!important;z-index:50!important;transform-origin:center top!important;
  transform:translateX(-50%) translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
  opacity:var(--ubd-bridge-opacity,1)!important;visibility:visible!important;
}
.template-index .ridge-ubd-v2-title{font-size:clamp(42px,4.2vw,68px)!important;line-height:.98!important}
.template-index .ridge-ubd-v2-deck{font-size:clamp(20px,1.8vw,30px)!important;line-height:1.06!important;margin-top:10px!important}
.template-index .ridge-ubd-v2-selector{
  position:absolute!important;left:0!important;right:0!important;top:clamp(190px,25vh,250px)!important;bottom:28px!important;
  display:flex!important;visibility:visible!important;opacity:var(--ubd-neutral-opacity,1)!important;align-items:center!important;justify-content:center!important;
  z-index:20!important;pointer-events:none!important;transform:none!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{display:flex!important;visibility:visible!important;opacity:0!important}
.template-index .ridge-ubd-v2-details{position:absolute!important;left:0!important;right:0!important;top:clamp(150px,19vh,195px)!important;bottom:24px!important;height:auto!important;z-index:30!important}
.template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
  position:absolute!important;inset:0!important;display:grid!important;width:min(1420px,calc(100% - 104px))!important;height:100%!important;margin:auto!important;
  padding:clamp(22px,3vh,36px) 0 clamp(48px,6vh,72px)!important;grid-template-columns:minmax(0,1.45fr) minmax(270px,.72fr)!important;
  gap:clamp(42px,6vw,96px)!important;align-items:center!important;align-content:center!important;overflow:hidden!important;
  visibility:hidden!important;opacity:0!important;transform:scale(.82)!important;transform-origin:50% 50%!important;filter:blur(8px)!important;transition:none!important;
}
.template-index .ridge-ubd-v2-detail.is-active{
  visibility:visible!important;opacity:var(--ubd-detail-progress,1)!important;
  transform:scale(calc(.82 + .18 * var(--ubd-detail-progress,1)))!important;
  filter:blur(calc(8px * (1 - var(--ubd-detail-progress,1))))!important;
}
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy,.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-media{
  opacity:var(--ubd-detail-progress,1)!important;transform:scale(calc(.88 + .12 * var(--ubd-detail-progress,1)))!important;transform-origin:center!important;
}
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy h3{
  transform:translateX(calc((1 - var(--ubd-title-progress,1)) * 36vw)) scale(calc(.68 + .32 * var(--ubd-title-progress,1)))!important;
  transform-origin:left center!important;opacity:calc(.35 + .65 * var(--ubd-title-progress,1))!important;
}
.template-index .ridge-ubd-v2-copy h3{font-size:clamp(34px,3.4vw,56px)!important;margin:0 0 16px!important}
.template-index .ridge-ubd-v2-body{font-size:clamp(16px,1.2vw,22px)!important;line-height:1.12!important}.template-index .ridge-ubd-v2-body p{margin:0 0 14px!important}
.template-index .ridge-ubd-v2-copy blockquote{font-size:clamp(15px,1.1vw,20px)!important;margin:18px 0 0!important}
.template-index .ridge-ubd-v2-media{width:min(100%,380px)!important;max-height:min(42vh,380px)!important;justify-self:end!important}
.ridge-ubd-v3-queue{position:absolute!important;left:0!important;right:0!important;top:clamp(155px,20vh,205px)!important;bottom:26px!important;z-index:45!important;pointer-events:none!important;visibility:hidden!important;opacity:0!important}
.ridge-ubd-v3-queue.is-visible{visibility:visible!important;opacity:var(--ubd-queue-progress,1)!important}.ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{left:50%!important;transform:translateX(-50%)!important}

@media(max-width:900px){
  .template-index .ridge-ubd-panel--interactive{min-height:500vh!important}
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{height:100svh!important;min-height:100svh!important;display:block!important;visibility:visible!important}
  .template-index .ridge-ubd-v2-header{top:18px!important;width:calc(100% - 28px)!important;text-align:center!important}
  .template-index .ridge-ubd-v2-title{font-size:clamp(25px,8vw,36px)!important;line-height:.98!important}.template-index .ridge-ubd-v2-deck{font-size:clamp(13px,4vw,18px)!important;line-height:1.05!important;margin-top:7px!important}
  .template-index .ridge-ubd-v2-selector{top:112px!important;bottom:16px!important;display:flex!important;visibility:visible!important}
  .template-index .ridge-ubd-v2-choice,.template-index .ridge-ubd-v2-choice:not(.is-active){font-size:clamp(22px,7vw,30px)!important}.template-index .ridge-ubd-v2-line{height:26px!important;margin:3px 0!important}
  .template-index .ridge-ubd-v2-details{top:100px!important;bottom:10px!important;display:block!important;visibility:visible!important}
  .template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
    width:100%!important;padding:42px 15px 38px!important;grid-template-columns:1fr!important;grid-template-rows:auto auto!important;gap:9px!important;align-content:center!important;overflow:hidden!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:48svh!important;overflow:hidden!important}.template-index .ridge-ubd-v2-copy h3{font-size:clamp(25px,7.4vw,34px)!important;margin:0 0 8px!important}
  .template-index .ridge-ubd-v2-body{font-size:clamp(12px,3.3vw,15px)!important;line-height:1.12!important}.template-index .ridge-ubd-v2-body p{margin-bottom:7px!important}.template-index .ridge-ubd-v2-copy blockquote{font-size:clamp(11px,3vw,14px)!important;margin-top:7px!important}
  .template-index .ridge-ubd-v2-media{width:min(44vw,170px)!important;max-height:19svh!important;justify-self:center!important}
  .ridge-ubd-v3-queue{top:98px!important;bottom:8px!important}.ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{font-size:12px!important}
  .template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy h3{transform:translateX(calc((1 - var(--ubd-title-progress,1)) * 30vw)) scale(calc(.72 + .28 * var(--ubd-title-progress,1)))!important}
}

/* ================================================================
   Ridge 3.2.7 — center-only morph + real mobile stage
   No opacity/fade transition between feature layouts.
   ================================================================ */
.template-index .ridge-ubd-panel--interactive{min-height:520vh!important;overflow:visible!important}
.template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
  position:sticky!important;top:0!important;height:100dvh!important;min-height:100dvh!important;
  overflow:hidden!important;background:var(--ubd-bg)!important;
}
.template-index .ridge-ubd-v2-header{
  display:block!important;visibility:visible!important;opacity:1!important;
  transform:translateX(-50%) translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-header{
  display:block!important;visibility:visible!important;opacity:1!important;
}
.template-index .ridge-ubd-v2-selector{opacity:var(--ubd-neutral-opacity,1)!important;visibility:visible!important;transition:none!important}
.template-index .ridge-ubd-panel--interactive.has-detail .ridge-ubd-v2-selector{opacity:0!important;visibility:visible!important}

/* Active feature is revealed geometrically from the center — never faded. */
.template-index .ridge-ubd-v2-detail,
.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
  opacity:1!important;filter:none!important;transition:none!important;
  transform:scale(calc(.08 + .92 * var(--ubd-open,0)))!important;
  transform-origin:50% 50%!important;
  clip-path:inset(calc((1 - var(--ubd-open,0)) * 50%) calc((1 - var(--ubd-open,0)) * 50%) round 18px)!important;
  visibility:hidden!important;
}
.template-index .ridge-ubd-v2-detail.is-active{
  opacity:1!important;visibility:visible!important;filter:none!important;
  transform:scale(calc(.08 + .92 * var(--ubd-open,0)))!important;
}
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy,
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-media{
  opacity:1!important;filter:none!important;transition:none!important;
  transform:none!important;
}
/* The heading originates at the center queue axis and travels to its left active position. */
.template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy h3{
  opacity:1!important;transition:none!important;transform-origin:left center!important;
  transform:translateX(calc((1 - var(--ubd-title-progress,1)) * 38vw)) scale(calc(.58 + .42 * var(--ubd-title-progress,1)))!important;
}
.ridge-ubd-v3-queue,.ridge-ubd-v3-queue.is-visible{transition:none!important}
.ridge-ubd-v3-queue.is-visible{visibility:visible!important;opacity:1!important}

@media(max-width:900px){
  .template-index .ridge-ubd-panel--interactive{min-height:470vh!important}
  .template-index .ridge-ubd-panel--interactive .ridge-ubd-sticky{
    position:sticky!important;top:0!important;height:100dvh!important;min-height:100dvh!important;overflow:hidden!important;
  }
  .template-index .ridge-ubd-v2-header{top:12px!important;width:calc(100% - 24px)!important;text-align:center!important}
  .template-index .ridge-ubd-v2-title{font-size:clamp(23px,7.6vw,34px)!important;line-height:.96!important}
  .template-index .ridge-ubd-v2-deck{font-size:clamp(12px,3.75vw,17px)!important;line-height:1.04!important;margin-top:6px!important}
  .template-index .ridge-ubd-v2-selector{top:96px!important;bottom:12px!important}
  .template-index .ridge-ubd-v2-details{top:88px!important;bottom:8px!important;height:auto!important}
  .template-index .ridge-ubd-v2-detail,.template-index .ridge-ubd-panel--interactive .ridge-ubd-v2-detail{
    inset:0!important;width:100%!important;height:100%!important;padding:32px 14px 34px!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;gap:8px!important;align-content:center!important;
  }
  .template-index .ridge-ubd-v2-copy{max-height:46dvh!important;overflow:hidden!important}
  .template-index .ridge-ubd-v2-copy h3{font-size:clamp(24px,7vw,32px)!important;margin:0 0 7px!important}
  .template-index .ridge-ubd-v2-body{font-size:clamp(11px,3.15vw,14px)!important;line-height:1.12!important}
  .template-index .ridge-ubd-v2-body p{margin-bottom:6px!important}
  .template-index .ridge-ubd-v2-copy blockquote{font-size:clamp(10px,2.9vw,13px)!important;margin-top:6px!important}
  .template-index .ridge-ubd-v2-media{width:min(40vw,150px)!important;max-height:17dvh!important;justify-self:center!important}
  .ridge-ubd-v3-queue{top:88px!important;bottom:7px!important}
  .ridge-ubd-v3-queue__prev,.ridge-ubd-v3-queue__next{font-size:11px!important}
  .template-index .ridge-ubd-v2-detail.is-active .ridge-ubd-v2-copy h3{
    transform:translateX(calc((1 - var(--ubd-title-progress,1)) * 43vw)) scale(calc(.60 + .40 * var(--ubd-title-progress,1)))!important;
  }
}

/* ================================================================
   Ridge 3.2.8 — self-contained UGLY BY DESIGN Home Page section
   One sticky scene, center-origin feature morphs, responsive geometry.
   ================================================================ */
.template-index .ridge-ubd4-shell{position:relative;background:var(--ridge-cream,#eae0d1);color:#4b4b4b}
.template-index .ridge-ubd4-story{position:relative;min-height:560vh;background:var(--ubd-bg,#eae0d1);color:var(--ubd-text,#4b4b4b);border-radius:0 0 28px 28px;overflow:visible}
.template-index .ridge-ubd4-scene{position:sticky;top:0;height:100dvh;min-height:100dvh;overflow:hidden;background:var(--ubd-bg,#eae0d1);border-radius:0 0 28px 28px}
.template-index .ridge-ubd4-bridge{position:absolute;z-index:20;top:clamp(34px,5.5vh,64px);left:50%;width:min(1080px,88vw);text-align:left;transform:translateX(-50%) scale(var(--ubd4-bridge-scale,1));transform-origin:50% 0;color:inherit}
.template-index .ridge-ubd4-title p,.template-index .ridge-ubd4-deck p{margin:0}
.template-index .ridge-ubd4-title{font-size:clamp(42px,4.4vw,72px);line-height:.96;letter-spacing:.13em;text-transform:uppercase}
.template-index .ridge-ubd4-deck{margin-top:12px;font-size:clamp(18px,1.65vw,28px);line-height:1.05;font-weight:600}
.template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{position:absolute;left:50%;transform:translateX(-50%);top:clamp(175px,23vh,230px);bottom:clamp(24px,4vh,44px);width:min(1400px,88vw)}
.template-index .ridge-ubd4-neutral{z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:var(--ubd4-neutral,1);visibility:var(--ubd4-neutral-vis,visible);pointer-events:none}
.template-index .ridge-ubd4-neutral-item{font-size:clamp(34px,3.6vw,60px);line-height:1;font-weight:700}
.template-index .ridge-ubd4-neutral-line{width:2px;height:46px;background:currentColor;margin:10px 0}
.template-index .ridge-ubd4-stage{z-index:10}
.template-index .ridge-ubd4-feature{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:clamp(34px,6vw,96px);align-items:center;padding:clamp(22px,3vh,42px) 0;visibility:hidden;transform-origin:50% 50%;transform:scale(var(--ubd4-open,.02));clip-path:inset(calc((1 - var(--ubd4-open,.02))*49%) calc((1 - var(--ubd4-open,.02))*49%) round 22px);will-change:transform,clip-path}
.template-index .ridge-ubd4-feature.is-active{visibility:visible}
.template-index .ridge-ubd4-copy{min-width:0}
.template-index .ridge-ubd4-copy h3{margin:0 0 20px;font-size:clamp(42px,4vw,66px);line-height:.96;transform-origin:left center;transform:translateX(calc((1 - var(--ubd4-open,.02))*34vw)) scale(calc(.58 + .42*var(--ubd4-open,.02)));white-space:nowrap}
.template-index .ridge-ubd4-body{font-size:clamp(17px,1.28vw,22px);line-height:1.16}.template-index .ridge-ubd4-body p{margin:0 0 16px}.template-index .ridge-ubd4-copy blockquote{margin:20px 0 0;font-size:clamp(16px,1.18vw,20px);line-height:1.15;font-weight:600}
.template-index .ridge-ubd4-media{justify-self:end;width:min(100%,390px);aspect-ratio:1/1;border-radius:20px;overflow:hidden}.template-index .ridge-ubd4-media img{width:100%;height:100%;object-fit:cover}.template-index .ridge-ubd4-placeholder{width:100%;height:100%;background:#aaa59f;border-radius:20px}
.template-index .ridge-ubd4-queue{position:absolute;z-index:30;left:50%;transform:translateX(-50%);font-size:clamp(17px,1.4vw,23px);font-weight:700;line-height:1;text-align:center;white-space:nowrap;visibility:hidden}
.template-index .ridge-ubd4-queue.is-visible{visibility:visible}.template-index .ridge-ubd4-queue--prev{top:0}.template-index .ridge-ubd4-queue--next{bottom:0}
.template-index .ridge-ubd4-queue:not(:empty)::after,.template-index .ridge-ubd4-queue:not(:empty)::before{content:"";display:block;width:2px;height:36px;background:currentColor;margin:9px auto 0}.template-index .ridge-ubd4-queue--next:not(:empty)::before{margin:0 auto 9px}.template-index .ridge-ubd4-queue--next:not(:empty)::after{display:none}
@media(max-width:900px){
 .template-index .ridge-ubd4-story{min-height:500vh}
 .template-index .ridge-ubd4-bridge{top:18px;width:calc(100% - 30px);text-align:center}
 .template-index .ridge-ubd4-title{font-size:clamp(25px,8vw,38px);letter-spacing:.08em}.template-index .ridge-ubd4-deck{font-size:clamp(13px,4vw,18px);margin-top:7px}
 .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:105px;bottom:16px;width:calc(100% - 28px)}
 .template-index .ridge-ubd4-neutral-item{font-size:clamp(25px,7.4vw,34px)}.template-index .ridge-ubd4-neutral-line{height:30px;margin:6px 0}
 .template-index .ridge-ubd4-feature{grid-template-columns:1fr;grid-template-rows:auto minmax(90px,18dvh);gap:8px;align-content:center;padding:40px 2px 42px}
 .template-index .ridge-ubd4-copy{max-height:52dvh;overflow:hidden}.template-index .ridge-ubd4-copy h3{font-size:clamp(26px,8vw,36px);margin-bottom:8px;transform:translateX(calc((1 - var(--ubd4-open,.02))*42vw)) scale(calc(.62 + .38*var(--ubd4-open,.02)))}
 .template-index .ridge-ubd4-body{font-size:clamp(12px,3.35vw,15px);line-height:1.13}.template-index .ridge-ubd4-body p{margin-bottom:7px}.template-index .ridge-ubd4-copy blockquote{font-size:clamp(11px,3.1vw,14px);margin-top:7px}
 .template-index .ridge-ubd4-media{justify-self:center;width:min(42vw,165px);max-height:18dvh}
 .template-index .ridge-ubd4-queue{font-size:12px}.template-index .ridge-ubd4-queue:not(:empty)::after,.template-index .ridge-ubd4-queue:not(:empty)::before{height:25px;margin-top:6px}.template-index .ridge-ubd4-queue--next:not(:empty)::before{margin:0 auto 6px}
}


/* Ridge 3.2.9 — UBD deterministic viewport repair */
.template-index .ridge-ubd4-story{min-height:440vh!important;isolation:isolate}
.template-index .ridge-ubd4-scene{position:sticky!important;top:0!important;height:100svh!important;min-height:100svh!important;display:block!important;overflow:hidden!important}
.template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:clamp(165px,22svh,220px)!important;bottom:clamp(18px,3svh,34px)!important}
.template-index .ridge-ubd4-feature{visibility:hidden!important;opacity:1!important;pointer-events:none;transform:scale(var(--ubd4-open,.055))!important;clip-path:inset(calc((1 - var(--ubd4-open,.055))*47%) calc((1 - var(--ubd4-open,.055))*47%) round 22px)!important;transform-origin:50% 50%!important}
.template-index .ridge-ubd4-feature.is-active{visibility:visible!important;pointer-events:auto}
.template-index .ridge-ubd4-copy,.template-index .ridge-ubd4-media{opacity:1!important}
.template-index .ridge-ubd4-neutral{transition:none!important}
@media(max-width:900px){
 .template-index .ridge-ubd4-story{min-height:390vh!important}
 .template-index .ridge-ubd4-scene{height:100svh!important;min-height:100svh!important}
 .template-index .ridge-ubd4-bridge{top:14px!important;width:calc(100% - 24px)!important}
 .template-index .ridge-ubd4-title{font-size:clamp(24px,7.4vw,34px)!important}
 .template-index .ridge-ubd4-deck{font-size:clamp(12px,3.7vw,16px)!important;line-height:1.08!important}
 .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:94px!important;bottom:12px!important;width:calc(100% - 24px)!important}
 .template-index .ridge-ubd4-feature{grid-template-columns:1fr!important;grid-template-rows:auto minmax(76px,16svh)!important;gap:6px!important;padding:34px 0 34px!important;align-content:center!important}
 .template-index .ridge-ubd4-copy{max-height:none!important;overflow:visible!important}
 .template-index .ridge-ubd4-copy h3{font-size:clamp(25px,7.6vw,34px)!important;margin:0 0 7px!important;white-space:normal!important;transform:translateX(calc((1 - var(--ubd4-open,.055))*41vw)) scale(calc(.62 + .38*var(--ubd4-open,.055)))!important}
 .template-index .ridge-ubd4-body{font-size:clamp(11px,3.15vw,14px)!important;line-height:1.1!important}
 .template-index .ridge-ubd4-body p{margin:0 0 6px!important}
 .template-index .ridge-ubd4-copy blockquote{font-size:clamp(10.5px,3vw,13px)!important;line-height:1.08!important;margin:6px 0 0!important}
 .template-index .ridge-ubd4-media{width:min(36vw,145px)!important;max-height:16svh!important}
 .template-index .ridge-ubd4-queue{font-size:11px!important}
}

/* Ridge 3.3.0 — UBD hard reset: navbar-safe sticky geometry, no fades, no clip-path */
.template-index .ridge-ubd4-story{min-height:520vh!important;overflow:visible!important}
.template-index .ridge-ubd4-scene{position:sticky!important;top:96px!important;height:calc(100svh - 96px)!important;min-height:0!important;overflow:hidden!important}
.template-index .ridge-ubd4-bridge{top:14px!important;width:min(1180px,90vw)!important;transform:translateX(-50%)!important}
.template-index .ridge-ubd4-title{font-size:clamp(38px,4vw,64px)!important}
.template-index .ridge-ubd4-deck{font-size:clamp(17px,1.45vw,24px)!important}
.template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:126px!important;bottom:18px!important;width:min(1420px,90vw)!important}
.template-index .ridge-ubd4-feature{visibility:hidden!important;opacity:1!important;clip-path:none!important;transform:scale(var(--ubd4-open,.08))!important;transform-origin:50% 50%!important;transition:none!important}
.template-index .ridge-ubd4-feature.is-active{visibility:visible!important}
.template-index .ridge-ubd4-copy,.template-index .ridge-ubd4-media{opacity:1!important;transition:none!important}
.template-index .ridge-ubd4-copy h3{transform:none!important;transition:none!important}
.template-index .ridge-ubd4-neutral{transition:none!important}
@media(max-width:900px){
 .template-index .ridge-ubd4-story{min-height:430vh!important}
 .template-index .ridge-ubd4-scene{top:72px!important;height:calc(100svh - 72px)!important;min-height:0!important}
 .template-index .ridge-ubd4-bridge{top:10px!important;width:calc(100% - 24px)!important;text-align:center!important}
 .template-index .ridge-ubd4-title{font-size:clamp(23px,7vw,32px)!important;letter-spacing:.07em!important}
 .template-index .ridge-ubd4-deck{font-size:clamp(11px,3.3vw,15px)!important;margin-top:5px!important}
 .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:78px!important;bottom:10px!important;width:calc(100% - 24px)!important}
 .template-index .ridge-ubd4-feature{grid-template-columns:1fr!important;grid-template-rows:auto minmax(72px,15svh)!important;gap:5px!important;padding:30px 0 30px!important;align-content:center!important}
 .template-index .ridge-ubd4-copy{max-height:none!important;overflow:visible!important}
 .template-index .ridge-ubd4-copy h3{font-size:clamp(24px,7vw,32px)!important;line-height:.95!important;margin:0 0 6px!important;white-space:normal!important}
 .template-index .ridge-ubd4-body{font-size:clamp(10.5px,3vw,13.5px)!important;line-height:1.08!important}
 .template-index .ridge-ubd4-body p{margin:0 0 5px!important}
 .template-index .ridge-ubd4-copy blockquote{font-size:clamp(10px,2.8vw,12.5px)!important;line-height:1.06!important;margin:5px 0 0!important}
 .template-index .ridge-ubd4-media{justify-self:center!important;width:min(34vw,132px)!important;max-height:15svh!important}
 .template-index .ridge-ubd4-queue{font-size:11px!important}
}

/* Ridge 3.3.1 — UBD initialization root-cause fix.
   Neutral is visible before JS initializes; controller script now lives inside its own shell. */

/* Ridge 3.3.3 — UBD jackpot-reel rebuild. Continuous wheel motion; no crossfades. */
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-title *,
.template-index .ridge-ubd4-deck,
.template-index .ridge-ubd4-deck *{font-family:'Cal Sans',sans-serif!important;font-weight:400!important}
.template-index .ridge-ubd4-story{min-height:390vh!important}
.template-index .ridge-ubd4-scene{top:96px!important;height:calc(100svh - 96px)!important}
.template-index .ridge-ubd4-stage{top:128px!important;bottom:18px!important;overflow:hidden!important}
.template-index .ridge-ubd4-queue{display:none!important}
.template-index .ridge-ubd-reel{position:absolute;inset:0;z-index:35;pointer-events:none;overflow:hidden}
.template-index .ridge-ubd-reel-item{position:absolute;left:50%;top:0;transform-origin:50% 50%;font-size:clamp(27px,2.3vw,40px);line-height:1;font-weight:400!important;white-space:nowrap;will-change:transform}
.template-index .ridge-ubd-reel-item.is-selected{font-size:clamp(34px,3vw,52px)}
.template-index .ridge-ubd4-feature{visibility:hidden!important;display:grid!important;opacity:1!important;clip-path:none!important;transform:translate(-50%,-50%) scale(var(--ubd-reel-open,0))!important;transform-origin:50% 50%!important;position:absolute!important;left:50%!important;top:54%!important;right:auto!important;bottom:auto!important;width:100%!important;height:auto!important;max-height:calc(100% - 86px)!important;padding:0!important;transition:none!important}
.template-index .ridge-ubd4-feature.is-active{visibility:visible!important}
.template-index .ridge-ubd4-copy h3{font-family:'Cal Sans',sans-serif!important;font-weight:400!important;transform:none!important}
.template-index .ridge-ubd4-neutral{top:128px!important;bottom:18px!important}
@media(max-width:900px){
 .template-index .ridge-ubd4-story{min-height:285vh!important}
 .template-index .ridge-ubd4-scene{top:72px!important;height:calc(100svh - 72px)!important}
 .template-index .ridge-ubd4-bridge{top:10px!important}
 .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(23px,7vw,32px)!important}
 .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(11px,3.3vw,15px)!important}
 .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:82px!important;bottom:8px!important;width:calc(100% - 22px)!important}
 .template-index .ridge-ubd-reel-item{font-size:clamp(19px,5.4vw,25px)!important}
 .template-index .ridge-ubd-reel-item.is-selected{font-size:clamp(25px,7vw,32px)!important}
 .template-index .ridge-ubd4-feature{top:58%!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(68px,13svh)!important;gap:5px!important;max-height:calc(100% - 92px)!important;width:100%!important}
 .template-index .ridge-ubd4-copy h3{font-size:clamp(24px,7vw,32px)!important;margin:0 0 6px!important}
 .template-index .ridge-ubd4-body{font-size:clamp(10.5px,2.9vw,13px)!important;line-height:1.08!important}
 .template-index .ridge-ubd4-copy blockquote{font-size:clamp(10px,2.7vw,12px)!important}
 .template-index .ridge-ubd4-media{width:min(31vw,120px)!important;max-height:13svh!important}
}
/* Ridge v3.3.5 — UBD pinned jackpot reel + scroll-driven bridge */
.template-index .ridge-ubd4-shell{overflow:visible!important}
.template-index .ridge-ubd4-story{position:relative!important;min-height:470svh!important;overflow:visible!important}
.template-index .ridge-ubd4-scene{position:sticky!important;top:96px!important;height:calc(100svh - 96px)!important;min-height:0!important;overflow:hidden!important}
.template-index .ridge-ubd4-bridge{position:absolute!important;left:50%!important;right:auto!important;top:14px!important;width:min(620px,40vw)!important;text-align:center!important;transform:translateX(-50%) scale(var(--ubd-bridge-scale,.64))!important;transform-origin:50% 0!important;will-change:transform!important;z-index:70!important}
.template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-family:'Cal Sans',sans-serif!important;font-size:clamp(34px,2.65vw,46px)!important;line-height:.96!important;letter-spacing:.025em!important;font-weight:400!important;margin:0!important}
.template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-family:'Cal Sans',sans-serif!important;font-size:clamp(14px,1.15vw,19px)!important;line-height:1.05!important;font-weight:400!important;margin:7px 0 0!important}
.template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{position:absolute!important;left:50%!important;transform:translateX(-50%)!important;top:116px!important;bottom:18px!important;width:min(1380px,90vw)!important;overflow:hidden!important}
.template-index .ridge-ubd-reel{position:absolute!important;inset:0!important;z-index:35!important;pointer-events:none!important;overflow:hidden!important}
.template-index .ridge-ubd-reel-item{position:absolute!important;left:50%!important;top:0!important;transform-origin:50% 50%!important;font-family:'Cal Sans',sans-serif!important;font-size:clamp(28px,2.25vw,40px)!important;line-height:1!important;font-weight:400!important;white-space:nowrap!important;will-change:transform,opacity!important}
.template-index .ridge-ubd4-feature{position:absolute!important;left:50%!important;top:52%!important;right:auto!important;bottom:auto!important;width:100%!important;height:auto!important;max-height:calc(100% - 54px)!important;visibility:hidden!important;opacity:1!important;display:grid!important;transform:translate(-50%,-50%) scale(calc(.84 + .16*var(--ubd-reel-open,0)))!important;transform-origin:50% 50%!important;clip-path:inset(calc((1 - var(--ubd-reel-open,0))*48%) calc((1 - var(--ubd-reel-open,0))*48%) round 22px)!important;transition:none!important;pointer-events:none!important}
.template-index .ridge-ubd4-feature.is-active{pointer-events:auto!important}
.template-index .ridge-ubd4-copy,.template-index .ridge-ubd4-media{opacity:1!important}
.template-index .ridge-ubd4-copy h3{font-family:'Cal Sans',sans-serif!important;font-weight:400!important;transform:none!important}
@media(max-width:900px){
 .template-index .ridge-ubd4-story{min-height:365svh!important;overflow:visible!important}
 .template-index .ridge-ubd4-scene{position:sticky!important;top:72px!important;height:calc(100svh - 72px)!important;min-height:0!important;overflow:hidden!important}
 .template-index .ridge-ubd4-bridge{top:8px!important;width:calc(100% - 34px)!important}
 .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(22px,6.8vw,30px)!important;line-height:.96!important}
 .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(10px,3vw,13px)!important;line-height:1.04!important;margin-top:4px!important}
 .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:72px!important;bottom:8px!important;width:calc(100% - 22px)!important}
 .template-index .ridge-ubd-reel-item{font-size:clamp(19px,5.4vw,25px)!important}
 .template-index .ridge-ubd4-feature{top:54%!important;width:100%!important;max-height:calc(100% - 34px)!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(74px,14svh)!important;gap:6px!important;padding:0!important;align-content:center!important;transform:translate(-50%,-50%) scale(calc(.88 + .12*var(--ubd-reel-open,0)))!important}
 .template-index .ridge-ubd4-copy{max-height:none!important;overflow:visible!important}
 .template-index .ridge-ubd4-copy h3{font-size:clamp(24px,7vw,31px)!important;line-height:.96!important;margin:0 0 6px!important}
 .template-index .ridge-ubd4-body{font-size:clamp(10.5px,3vw,13px)!important;line-height:1.08!important}
 .template-index .ridge-ubd4-body p{margin:0 0 5px!important}
 .template-index .ridge-ubd4-copy blockquote{font-size:clamp(10px,2.8vw,12px)!important;line-height:1.06!important;margin:5px 0 0!important}
 .template-index .ridge-ubd4-media{justify-self:center!important;width:min(34vw,132px)!important;max-height:14svh!important}
}

/* === Ridge v3.3.5 — protected jackpot lanes / true center-scale panels === */
.template-index .ridge-ubd4-stage{overflow:hidden!important}
.template-index .ridge-ubd4-feature{
  clip-path:none!important;
  overflow:visible!important;
  transform:translate(-50%,-50%) scale(calc(.055 + .945*var(--ubd-reel-open,0)))!important;
  transform-origin:50% 50%!important;
  will-change:transform!important;
}
.template-index .ridge-ubd4-feature .ridge-ubd4-copy,
.template-index .ridge-ubd4-feature .ridge-ubd4-media{
  transform:none!important;
  clip-path:none!important;
}
@media (max-width:900px){
  .template-index .ridge-ubd4-story{min-height:310svh!important}
  .template-index .ridge-ubd4-scene{position:sticky!important;top:72px!important;height:calc(100svh - 72px)!important;min-height:0!important}
  .template-index .ridge-ubd4-feature{
    transform:translate(-50%,-50%) scale(calc(.06 + .94*var(--ubd-reel-open,0)))!important;
  }
}

/* === Ridge v3.3.6 — fixed mobile stage + unified reel heading handoff === */
.template-index .ridge-ubd4-story{min-height:430svh!important}
.template-index .ridge-ubd4-scene.is-fixed-stage{
  position:fixed!important;left:0!important;right:0!important;top:var(--ubd-safe,96px)!important;
  width:100%!important;height:calc(100svh - var(--ubd-safe,96px))!important;z-index:20!important;
}
.template-index .ridge-ubd4-feature .ridge-ubd4-copy h3{display:none!important}
.template-index .ridge-ubd4-feature{
  top:57%!important;width:min(1380px,90vw)!important;
  transform:translate(-50%,-50%) scale(var(--ubd-reel-open,0))!important;
  clip-path:none!important;overflow:visible!important;
}
.template-index .ridge-ubd4-bridge{width:min(560px,38vw)!important}
.template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(30px,2.25vw,40px)!important}
.template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(13px,1vw,17px)!important}
@media(max-width:900px){
 .template-index .ridge-ubd4-story{min-height:360svh!important}
 .template-index .ridge-ubd4-scene.is-fixed-stage{top:72px!important;height:calc(100svh - 72px)!important}
 .template-index .ridge-ubd4-bridge{top:6px!important;width:calc(100% - 28px)!important}
 .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:60px!important;bottom:6px!important}
 .template-index .ridge-ubd4-feature{top:59%!important;width:calc(100% - 24px)!important;grid-template-rows:auto minmax(68px,13svh)!important}
 .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(21px,6.2vw,28px)!important}
 .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(9.5px,2.75vw,12px)!important}
}

/* === Ridge v3.3.7 — bridge width + 30% smaller reel + mobile compact square stage === */
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-title *{
  text-transform:none!important;
}
.template-index .ridge-ubd4-title{
  width:100%!important;
  overflow:visible!important;
}
.template-index .ridge-ubd4-title > *{
  width:100%!important;
  transform:scaleX(1.30)!important;
  transform-origin:50% 50%!important;
}
/* Subsection/reel headings are 30% smaller at every point in their animation. */
.template-index .ridge-ubd-reel-item{
  font-size:clamp(20px,1.575vw,28px)!important;
}
/* Desktop final content geometry: wider left copy, 40% smaller square media. */
@media (min-width:901px){
  .template-index .ridge-ubd4-feature{
    grid-template-columns:minmax(0,1.72fr) minmax(210px,.58fr)!important;
    column-gap:clamp(34px,4vw,72px)!important;
    align-items:center!important;
  }
  .template-index .ridge-ubd4-media{
    width:min(23vw,234px)!important;
    max-height:none!important;
    aspect-ratio:1/1!important;
  }
}
@media (max-width:900px){
  .template-index .ridge-ubd4-story{min-height:315svh!important}
  .template-index .ridge-ubd4-bridge{top:2px!important;width:calc(100% - 34px)!important}
  .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(20px,5.9vw,27px)!important}
  .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(9.5px,2.75vw,12px)!important;margin-top:3px!important}
  /* Pull the feature reel upward so the bridge and feature stage read as one section. */
  .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:46px!important;bottom:4px!important}
  .template-index .ridge-ubd4-feature{
    top:51%!important;
    width:calc(100% - 34px)!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:8px!important;
    align-content:center!important;
  }
  .template-index .ridge-ubd-reel-item{font-size:clamp(13px,3.78vw,17.5px)!important}
  .template-index .ridge-ubd4-media{
    justify-self:center!important;
    width:min(32vw,118px)!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:1/1!important;
  }
  .template-index .ridge-ubd4-media img,
  .template-index .ridge-ubd4-placeholder{
    width:100%!important;height:100%!important;aspect-ratio:1/1!important;object-fit:cover!important;
  }
}

/* === Ridge v3.3.8 — screenshot/recording correction pass === */
/* Bridge: preserve Cal Sans proportions. Widen with real tracking, never horizontal scaling. */
.template-index .ridge-ubd4-title > *{
  transform:none!important;
}
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-title *{
  font-family:'Cal Sans',sans-serif!important;
  text-transform:none!important;
  font-size:clamp(34px,2.35vw,42px)!important;
  line-height:.98!important;
  letter-spacing:.16em!important;
  font-weight:400!important;
}
.template-index .ridge-ubd4-deck,
.template-index .ridge-ubd4-deck *{
  letter-spacing:0!important;
}
/* Neutral-state headings were still inheriting the old oversized v3.2.8 rule. */
.template-index .ridge-ubd4-neutral-item{
  font-family:'Cal Sans',sans-serif!important;
  font-size:clamp(24px,2.5vw,42px)!important;
  line-height:1!important;
  font-weight:400!important;
}
.template-index .ridge-ubd4-neutral-line{height:34px!important;margin:8px 0!important}

@media (min-width:901px){
  .template-index .ridge-ubd4-stage,
  .template-index .ridge-ubd4-neutral{top:108px!important;bottom:14px!important}
  .template-index .ridge-ubd4-feature{top:54%!important}
}

@media (max-width:900px){
  /* Shorter track removes the long mobile dead-scroll tail. */
  .template-index .ridge-ubd4-story{min-height:265svh!important}
  .template-index .ridge-ubd4-bridge{top:0!important;width:calc(100% - 24px)!important}
  .template-index .ridge-ubd4-title,
  .template-index .ridge-ubd4-title *{
    font-size:clamp(20px,5.8vw,27px)!important;
    letter-spacing:.10em!important;
  }
  .template-index .ridge-ubd4-stage,
  .template-index .ridge-ubd4-neutral{top:34px!important;bottom:2px!important;width:calc(100% - 18px)!important}
  .template-index .ridge-ubd4-neutral{justify-content:center!important;transform:translate(-50%,-5%)!important}
  .template-index .ridge-ubd4-neutral-item{font-size:clamp(15px,4.25vw,24px)!important;font-weight:400!important}
  .template-index .ridge-ubd4-neutral-line{height:22px!important;margin:5px 0!important}
  .template-index .ridge-ubd4-feature{
    top:48%!important;
    width:calc(100% - 24px)!important;
    grid-template-rows:auto auto!important;
    gap:6px!important;
    align-content:center!important;
  }
  /* Square at every point; never compress vertically. */
  .template-index .ridge-ubd4-media{
    width:min(34vw,126px)!important;
    height:min(34vw,126px)!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:1/1!important;
  }
}

/* === Ridge v3.3.9 — continuous neutral handoff + screenshot geometry === */
.template-index .ridge-ubd4-neutral,
.template-index .ridge-ubd-reel{will-change:transform,opacity!important}
@media (min-width:901px){
  /* Bridge stays centered inside the annotated inner borders. */
  .template-index .ridge-ubd4-bridge{width:min(500px,31vw)!important;text-align:center!important}
  .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{
    font-size:clamp(38px,2.75vw,48px)!important;letter-spacing:.12em!important;white-space:nowrap!important
  }
  .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{
    width:100%!important;font-size:clamp(14px,1.15vw,19px)!important;white-space:nowrap!important
  }
  /* Expanded content uses the full inner page width. */
  .template-index .ridge-ubd4-stage{width:calc(100% - 164px)!important;max-width:none!important}
  .template-index .ridge-ubd4-feature{grid-template-columns:minmax(0,1fr) 234px!important;column-gap:72px!important}
  .template-index .ridge-ubd4-media{transform:translateY(34px)!important}
}
@media (max-width:900px){
  /* Mobile: one centered column from queued title through media and next queue. */
  .template-index .ridge-ubd4-story{min-height:285svh!important}
  .template-index .ridge-ubd4-stage,.template-index .ridge-ubd4-neutral{top:50px!important;width:calc(100% - 36px)!important}
  .template-index .ridge-ubd4-feature{
    top:49%!important;width:100%!important;padding:0 18px!important;gap:18px!important;
    text-align:center!important;justify-items:center!important;align-content:center!important
  }
  .template-index .ridge-ubd4-copy{width:100%!important;text-align:center!important}
  .template-index .ridge-ubd4-copy h3{font-size:clamp(28px,8.4vw,38px)!important;text-align:center!important;margin-bottom:22px!important}
  .template-index .ridge-ubd4-body{font-size:clamp(14px,3.8vw,17px)!important;line-height:1.16!important;text-align:center!important}
  .template-index .ridge-ubd4-body p{margin-bottom:12px!important}
  .template-index .ridge-ubd4-copy blockquote{font-size:clamp(13px,3.5vw,16px)!important;line-height:1.14!important;margin-top:12px!important}
  .template-index .ridge-ubd4-media{
    justify-self:center!important;width:min(62vw,240px)!important;height:min(62vw,240px)!important;
    aspect-ratio:1/1!important;margin-top:10px!important
  }
  .template-index .ridge-ubd-reel-item{font-size:clamp(16px,4.5vw,21px)!important}
  .template-index .ridge-ubd-reel-item.is-selected{font-size:clamp(21px,6vw,28px)!important}
  .template-index .ridge-ubd4-queue{left:50%!important;text-align:center!important}
}

/* === Ridge v3.3.10 — no-neutral reel, bridge controls, safe desktop bounds === */
.template-index .ridge-ubd4-neutral{display:none!important}
.template-index .ridge-ubd4-bridge{width:min(100% - 48px, 560px)!important;text-align:var(--ubd-bridge-align,center)!important}
.template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{
  font-size:var(--ubd-title-size,44px)!important;letter-spacing:var(--ubd-title-track,.075em)!important;
  transform:none!important;white-space:normal!important;text-align:inherit!important
}
.template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{
  font-size:var(--ubd-deck-size,17px)!important;letter-spacing:var(--ubd-deck-track,0em)!important;
  white-space:normal!important;text-align:inherit!important
}
@media(min-width:901px){
  .template-index .ridge-ubd4-stage{width:calc(100% - 168px)!important;max-width:1440px!important;overflow:hidden!important}
  .template-index .ridge-ubd4-feature{width:100%!important;padding:0 2px!important;box-sizing:border-box!important}
  .template-index .ridge-ubd4-copy{min-width:0!important;padding-left:0!important}
  .template-index .ridge-ubd-reel-item{font-size:clamp(34px,2.7vw,48px)!important}
}
@media(max-width:900px){
  .template-index .ridge-ubd4-bridge{width:calc(100% - 30px)!important;text-align:center!important}
  .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(24px,7vw,31px)!important;letter-spacing:.055em!important}
  .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(11px,3.2vw,14px)!important}
  .template-index .ridge-ubd-reel-item{font-size:clamp(27px,7.2vw,34px)!important}
}

/* === Ridge v3.3.11 — unified sticky reel architecture (desktop + mobile) === */
.template-index .ridge-ubd4-story{min-height:360svh!important;overflow:visible!important}
.template-index .ridge-ubd4-scene,
.template-index .ridge-ubd4-scene.is-fixed-stage{
  position:sticky!important;left:auto!important;right:auto!important;top:96px!important;
  width:100%!important;height:calc(100svh - 96px)!important;min-height:0!important;
  z-index:20!important;overflow:hidden!important;
}
.template-index .ridge-ubd4-bridge{
  left:50%!important;top:8px!important;width:min(560px,calc(100% - 48px))!important;
  transform:translateX(-50%) scale(var(--ubd-bridge-scale,1))!important;
  transform-origin:50% 0!important;
}
.template-index .ridge-ubd4-stage{left:50%!important;top:104px!important;bottom:14px!important;width:min(1440px,calc(100% - 112px))!important;overflow:hidden!important}
.template-index .ridge-ubd-reel{overflow:hidden!important}
.template-index .ridge-ubd-reel-item{font-size:clamp(27px,2vw,36px)!important;transition:none!important}
.template-index .ridge-ubd4-feature{
  left:50%!important;top:55%!important;width:100%!important;max-width:100%!important;
  padding:0 12px!important;box-sizing:border-box!important;
  grid-template-columns:minmax(0,1fr) minmax(190px,234px)!important;column-gap:clamp(36px,4.5vw,72px)!important;
  transform:translate(-50%,-50%) scale(max(.04,var(--ubd-reel-open,0)))!important;
  transform-origin:50% 50%!important;clip-path:none!important;overflow:visible!important;
}
.template-index .ridge-ubd4-copy{min-width:0!important;max-width:100%!important;padding:0!important}
.template-index .ridge-ubd4-media{width:234px!important;height:234px!important;aspect-ratio:1/1!important;max-height:none!important;transform:none!important}
.template-index .ridge-ubd4-media img,.template-index .ridge-ubd4-placeholder{width:100%!important;height:100%!important;object-fit:cover!important}

@media(max-width:900px){
  .template-index .ridge-ubd4-story{min-height:330svh!important}
  .template-index .ridge-ubd4-scene,
  .template-index .ridge-ubd4-scene.is-fixed-stage{top:72px!important;height:calc(100svh - 72px)!important}
  .template-index .ridge-ubd4-bridge{top:2px!important;width:calc(100% - 24px)!important}
  .template-index .ridge-ubd4-stage{top:48px!important;bottom:4px!important;width:calc(100% - 24px)!important}
  .template-index .ridge-ubd-reel-item{font-size:clamp(20px,5.6vw,27px)!important}
  .template-index .ridge-ubd4-feature{
    top:54%!important;width:100%!important;padding:0 14px!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;gap:18px!important;
    justify-items:center!important;align-content:center!important;text-align:center!important;
    transform:translate(-50%,-50%) scale(max(.04,var(--ubd-reel-open,0)))!important;
  }
  .template-index .ridge-ubd4-copy{width:100%!important;text-align:center!important}
  .template-index .ridge-ubd4-body{font-size:clamp(14px,3.8vw,17px)!important;line-height:1.16!important;text-align:center!important}
  .template-index .ridge-ubd4-copy blockquote{font-size:clamp(13px,3.5vw,16px)!important;text-align:center!important}
  .template-index .ridge-ubd4-media{width:min(58vw,230px)!important;height:min(58vw,230px)!important;margin:8px auto 0!important}
}


/* === Ridge v3.3.13 — hard viewport lock + exact desktop heading alignment === */
.template-index .ridge-ubd4-story{position:relative!important;}
.template-index .ridge-ubd4-scene.is-ubd-locked{
  position:fixed!important;
  top:var(--ubd-safe,96px)!important;
  left:0!important;right:0!important;
  width:100%!important;
  height:calc(100svh - var(--ubd-safe,96px))!important;
  z-index:20!important;
}
.template-index .ridge-ubd4-scene.is-ubd-before{
  position:absolute!important;top:0!important;left:0!important;right:0!important;width:100%!important;
}
.template-index .ridge-ubd4-scene.is-ubd-after{
  position:absolute!important;top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;
}
@media(min-width:901px){
  .template-index .ridge-ubd4-feature{padding-left:12px!important;}
  .template-index .ridge-ubd4-copy{text-align:left!important;}
}
@media(max-width:900px){
  /* Mobile must remain a single locked viewport for the whole reel sequence. */
  .template-index .ridge-ubd4-story{min-height:330svh!important;}
  .template-index .ridge-ubd4-scene.is-ubd-locked{
    top:72px!important;height:calc(100svh - 72px)!important;
  }
}


/* === Ridge v3.3.14 — emphatic bridge choreography + reliable mobile lock === */
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-title *{
  letter-spacing:var(--ubd-bridge-title-track,var(--ubd-title-track,.300em))!important;
}
.template-index .ridge-ubd4-deck{
  transform:scale(var(--ubd-bridge-deck-scale,.62))!important;
  transform-origin:50% 0!important;
}
.template-index .ridge-ubd4-deck,
.template-index .ridge-ubd4-deck *{
  transition:none!important;
}
@media(max-width:900px){
  /* Do not let older mobile rules override the editor-configured/dynamic bridge tracking. */
  .template-index .ridge-ubd4-title,
  .template-index .ridge-ubd4-title *{
    letter-spacing:var(--ubd-bridge-title-track,var(--ubd-title-track,.300em))!important;
  }
  /* A fixed scene is used while the story is active. The story remains the scroll track. */
  .template-index .ridge-ubd4-scene.is-ubd-locked{
    position:fixed!important;
    inset:72px 0 auto 0!important;
    width:100vw!important;
    height:calc(100dvh - 72px)!important;
    min-height:0!important;
    margin:0!important;
    transform:none!important;
    overflow:hidden!important;
    z-index:50!important;
  }
  .template-index .ridge-ubd4-scene.is-ubd-before{
    position:absolute!important;inset:0 0 auto 0!important;height:calc(100dvh - 72px)!important;
  }
  .template-index .ridge-ubd4-scene.is-ubd-after{
    position:absolute!important;inset:auto 0 0 0!important;height:calc(100dvh - 72px)!important;
  }
}


/* === Ridge v3.3.16 — enforced central formatting rails + subtitle kerning choreography === */
.template-index .ridge-ubd4-bridge{
  width:min(760px,56vw)!important;max-width:calc(100% - 96px)!important;
}
.template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *,
.template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{
  max-width:100%!important;overflow-wrap:normal!important;word-break:normal!important;
}
.template-index .ridge-ubd4-deck{
  letter-spacing:var(--ubd-bridge-deck-track,.18em)!important;
  transform:scale(var(--ubd-bridge-deck-scale,.58))!important;
  transform-origin:50% 0!important;
}
.template-index .ridge-ubd4-deck *{letter-spacing:inherit!important}
@media(min-width:901px){
  /* Desktop content central formatting lines: bridge cannot cross this column. */
  .template-index .ridge-ubd4-bridge{width:min(760px,56vw)!important}
}
@media(max-width:900px){
  /* Mobile content central formatting lines. Copy, active heading and square media share them. */
  .template-index .ridge-ubd4-bridge,
  .template-index .ridge-ubd4-stage{width:calc(100% - 64px)!important;max-width:none!important}
  .template-index .ridge-ubd4-feature{
    width:100%!important;padding:0!important;left:50%!important;top:52%!important;
    justify-items:stretch!important;text-align:center!important;gap:18px!important
  }
  .template-index .ridge-ubd4-copy{width:100%!important;max-width:100%!important;margin:0 auto!important;text-align:center!important}
  .template-index .ridge-ubd4-body,.template-index .ridge-ubd4-copy blockquote{
    width:100%!important;max-width:100%!important;overflow-wrap:normal!important;word-break:normal!important
  }
  .template-index .ridge-ubd4-media{
    width:100%!important;height:auto!important;max-width:100%!important;aspect-ratio:1/1!important;
    margin:18px 0 0!important;justify-self:stretch!important
  }
  .template-index .ridge-ubd4-media img,.template-index .ridge-ubd4-placeholder{aspect-ratio:1/1!important}
  .template-index .ridge-ubd-reel-item{left:50%!important;text-align:center!important;transform-origin:50% 50%!important}
  .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{white-space:normal!important}
}


/* === Ridge v3.3.16 — authoritative central formatting rails === */
.template-index .ridge-ubd4-bridge{
  --ubd-central-width:min(760px,56vw);
  width:var(--ubd-central-width)!important;
  max-width:calc(100% - 96px)!important;
  left:50%!important;
  transform:translateX(-50%) scale(var(--ubd-bridge-scale,1))!important;
  transform-origin:50% 0!important;
}
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-title *,
.template-index .ridge-ubd4-deck,
.template-index .ridge-ubd4-deck *{
  box-sizing:border-box!important;
  max-width:100%!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-align:center!important;
}
.template-index .ridge-ubd4-deck,
.template-index .ridge-ubd4-deck *{
  letter-spacing:var(--ubd-bridge-deck-track,.300em)!important;
}
.template-index .ridge-ubd4-deck{
  transform:scale(var(--ubd-bridge-deck-scale,.58))!important;
  transform-origin:50% 0!important;
}
/* Editor-only guide rails so the central formatting boundaries are visible while tuning. */
.shopify-design-mode.template-index .ridge-ubd4-bridge::before,
.shopify-design-mode.template-index .ridge-ubd4-bridge::after{
  content:"";position:absolute;top:-8px;bottom:-8px;width:1px;background:rgba(92,166,52,.55);pointer-events:none;
}
.shopify-design-mode.template-index .ridge-ubd4-bridge::before{left:0}
.shopify-design-mode.template-index .ridge-ubd4-bridge::after{right:0}
@media(max-width:900px){
  .template-index .ridge-ubd4-bridge,
  .template-index .ridge-ubd4-stage{
    width:calc(100% - 64px)!important;
    max-width:none!important;
  }
  .template-index .ridge-ubd4-feature{
    width:100%!important;padding-inline:0!important;left:50%!important;
    justify-items:stretch!important;text-align:center!important;
  }
  .template-index .ridge-ubd4-copy,
  .template-index .ridge-ubd4-body,
  .template-index .ridge-ubd4-copy blockquote{width:100%!important;max-width:100%!important;margin-inline:auto!important}
  .template-index .ridge-ubd4-media{
    width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;
    margin-top:18px!important;justify-self:stretch!important;
  }
  .shopify-design-mode.template-index .ridge-ubd4-stage::before,
  .shopify-design-mode.template-index .ridge-ubd4-stage::after{
    content:"";position:absolute;top:0;bottom:0;width:1px;background:rgba(92,166,52,.35);z-index:90;pointer-events:none;
  }
  .shopify-design-mode.template-index .ridge-ubd4-stage::before{left:0}
  .shopify-design-mode.template-index .ridge-ubd4-stage::after{right:0}
}

/* === Ridge v3.4.0 — clean v3.3.16 reset, responsive-only mobile layout === */
/* Bridge stays a single centered composition. No editor rail strokes in this reset. */
.shopify-design-mode.template-index .ridge-ubd4-bridge::before,
.shopify-design-mode.template-index .ridge-ubd4-bridge::after,
.shopify-design-mode.template-index .ridge-ubd4-stage::before,
.shopify-design-mode.template-index .ridge-ubd4-stage::after{content:none!important;display:none!important}
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-title *{white-space:nowrap!important}
.template-index .ridge-ubd4-deck,
.template-index .ridge-ubd4-deck *{white-space:nowrap!important}
@media(min-width:901px){
  /* Desktop feature composition returns to the wide, left-aligned v3.3.16 layout. */
  .template-index .ridge-ubd4-stage{width:min(1180px,90vw)!important;max-width:none!important}
  .template-index .ridge-ubd4-feature{width:100%!important;text-align:left!important}
  .template-index .ridge-ubd4-copy{text-align:left!important}
}
@media(max-width:900px){
  /* Mobile is only a responsive layout of the same v3.3.16 animation engine. */
  .template-index .ridge-ubd4-bridge,
  .template-index .ridge-ubd4-stage{width:calc(100% - 48px)!important;max-width:none!important;left:50%!important}
  .template-index .ridge-ubd4-title{font-size:clamp(24px,8.2vw,var(--ubd-title-size,44px))!important}
  .template-index .ridge-ubd4-deck{font-size:clamp(8px,2.55vw,var(--ubd-deck-size,17px))!important}
  .template-index .ridge-ubd4-feature{
    width:100%!important;left:50%!important;top:50%!important;padding:0!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;
    gap:18px!important;text-align:center!important;align-items:start!important
  }
  .template-index .ridge-ubd4-copy{width:100%!important;max-width:100%!important;text-align:center!important;margin:0 auto!important}
  .template-index .ridge-ubd4-copy h3{text-align:center!important}
  .template-index .ridge-ubd4-media{width:100%!important;max-width:100%!important;aspect-ratio:1/1!important;height:auto!important;margin:18px auto 0!important}
  .template-index .ridge-ubd4-media img,.template-index .ridge-ubd4-placeholder{width:100%!important;height:100%!important;aspect-ratio:1/1!important;object-fit:cover!important}
  .template-index .ridge-ubd-reel-item{left:50%!important;text-align:center!important;transform-origin:50% 50%!important}
}

/* === Ridge v3.4.1 — locked mobile composition + true center-origin bridge === */
/* Center the visual ink of tracked bridge lines. Negative trailing tracking
   compensation prevents letter-spacing from making the line look left-biased. */
.template-index .ridge-ubd4-bridge{
  transform:translateX(-50%) translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
  transform-origin:50% 0!important;
  text-align:center!important;
}
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-deck{width:100%!important;text-align:center!important}
.template-index .ridge-ubd4-title > *,
.template-index .ridge-ubd4-deck > *{
  display:inline-block!important;
  width:auto!important;
  max-width:none!important;
  white-space:nowrap!important;
  text-align:center!important;
}
.template-index .ridge-ubd4-title > *{
  letter-spacing:var(--ubd-bridge-title-track,var(--ubd-title-track,.300em))!important;
  margin-right:calc(-1 * var(--ubd-bridge-title-track,var(--ubd-title-track,.300em)))!important;
}
.template-index .ridge-ubd4-deck > *{
  letter-spacing:var(--ubd-bridge-deck-track,.300em)!important;
  margin-right:calc(-1 * var(--ubd-bridge-deck-track,.300em))!important;
}

@media(max-width:900px){
  /* One authoritative mobile formatting column for bridge + active content. */
  .template-index .ridge-ubd4-bridge,
  .template-index .ridge-ubd4-stage{
    width:calc(100% - 48px)!important;
    max-width:none!important;
    left:50%!important;
  }
  /* The mobile bridge may shrink, but never wrap. */
  .template-index .ridge-ubd4-title,
  .template-index .ridge-ubd4-title *{
    font-size:clamp(20px,6.4vw,28px)!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .template-index .ridge-ubd4-deck,
  .template-index .ridge-ubd4-deck *{
    font-size:clamp(7px,2.25vw,11px)!important;
    line-height:1.05!important;
    white-space:nowrap!important;
  }

  /* Compact vertical active composition. The article owns body + square media;
     the reel title remains a separate layer above it. */
  .template-index .ridge-ubd4-feature{
    top:56%!important;
    width:100%!important;
    padding:0!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:12px!important;
    justify-items:stretch!important;
    align-content:center!important;
    text-align:center!important;
  }
  .template-index .ridge-ubd4-copy{width:100%!important;text-align:center!important}
  /* Avoid duplicate active heading fighting the reel heading on mobile. */
  .template-index .ridge-ubd4-copy h3{display:none!important}
  .template-index .ridge-ubd4-body{
    width:100%!important;
    font-size:clamp(13px,3.45vw,15px)!important;
    line-height:1.14!important;
    text-align:center!important;
  }
  .template-index .ridge-ubd4-body p{margin:0 0 9px!important}
  .template-index .ridge-ubd4-copy blockquote{
    width:100%!important;
    font-size:clamp(12px,3.2vw,14px)!important;
    line-height:1.12!important;
    margin:9px 0 0!important;
    text-align:center!important;
  }
  .template-index .ridge-ubd4-media{
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    margin:8px 0 0!important;
    justify-self:stretch!important;
  }
  .template-index .ridge-ubd4-media img,
  .template-index .ridge-ubd4-placeholder{width:100%!important;height:100%!important;aspect-ratio:1/1!important;object-fit:cover!important}

  /* Mobile queued titles are text only. */
  .template-index .ridge-ubd4-queue::before,
  .template-index .ridge-ubd4-queue::after,
  .template-index .ridge-ubd-reel-item::before,
  .template-index .ridge-ubd-reel-item::after{content:none!important;display:none!important}
  .template-index .ridge-ubd-reel-item{
    text-align:center!important;
    transform-origin:50% 50%!important;
    white-space:nowrap!important;
  }
}
\n\n/* === Ridge v3.4.2 — true centered bridge ink + protected mobile composition === */
/* Center the actual text box, not the letter-spacing origin. The child owns its
   intrinsic width and is anchored by its midpoint, so tracking grows equally
   left and right on desktop and mobile. */
.template-index .ridge-ubd4-title,
.template-index .ridge-ubd4-deck{position:relative!important;width:100%!important;text-align:center!important;transform:none!important}
.template-index .ridge-ubd4-title > *,
.template-index .ridge-ubd4-deck > *{
  position:relative!important;left:50%!important;display:table!important;width:max-content!important;max-width:none!important;
  margin-left:0!important;margin-right:0!important;white-space:nowrap!important;text-align:center!important;
  transform:translateX(-50%)!important;transform-origin:50% 50%!important
}
.template-index .ridge-ubd4-title > *{letter-spacing:var(--ubd-bridge-title-track,var(--ubd-title-track,.300em))!important}
.template-index .ridge-ubd4-deck > *{letter-spacing:var(--ubd-bridge-deck-track,.300em)!important}

@media(max-width:900px){
  /* One mobile rail width. Bridge and expanded composition stay inside it. */
  .template-index .ridge-ubd4-bridge,
  .template-index .ridge-ubd4-stage{width:calc(100% - 48px)!important;max-width:none!important}
  .template-index .ridge-ubd4-bridge{top:0!important}
  .template-index .ridge-ubd4-title,.template-index .ridge-ubd4-title *{font-size:clamp(19px,6vw,27px)!important}
  .template-index .ridge-ubd4-deck,.template-index .ridge-ubd4-deck *{font-size:clamp(7px,2.05vw,10px)!important}

  /* The active article has a stable vertical home below the selected reel title. */
  .template-index .ridge-ubd4-feature{
    top:54%!important;width:100%!important;padding:0!important;gap:12px!important;
    grid-template-columns:1fr!important;grid-template-rows:auto auto!important;
    align-content:center!important;justify-items:stretch!important;text-align:center!important
  }
  .template-index .ridge-ubd4-copy{width:100%!important;max-width:100%!important;margin:0!important;text-align:center!important}
  .template-index .ridge-ubd4-copy h3{display:none!important}
  .template-index .ridge-ubd4-body{font-size:clamp(12px,3.15vw,14px)!important;line-height:1.12!important}
  .template-index .ridge-ubd4-body p{margin:0 0 8px!important}
  .template-index .ridge-ubd4-copy blockquote{font-size:clamp(11px,3vw,13px)!important;line-height:1.1!important;margin:8px 0 0!important}
  .template-index .ridge-ubd4-media{width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;margin:8px 0 0!important}
  .template-index .ridge-ubd4-media img,.template-index .ridge-ubd4-placeholder{width:100%!important;height:100%!important;aspect-ratio:1/1!important;object-fit:cover!important}
  .template-index .ridge-ubd4-queue::before,.template-index .ridge-ubd4-queue::after,
  .template-index .ridge-ubd-reel-item::before,.template-index .ridge-ubd-reel-item::after{content:none!important;display:none!important}
}

/* === Ridge v3.4.3 — mobile-only fixed vertical composition; desktop v3.4.2 locked === */
@media(max-width:900px){
  /* One authoritative mobile column. */
  .template-index .ridge-ubd4-stage,
  .template-index .ridge-ubd4-bridge{
    width:calc(100% - 72px)!important;
    max-width:340px!important;
    left:50%!important;
  }

  /* Keep bridge text in the same rails and on one line. */
  .template-index .ridge-ubd4-title,
  .template-index .ridge-ubd4-title *{
    font-size:clamp(18px,5.6vw,25px)!important;
    white-space:nowrap!important;
  }
  .template-index .ridge-ubd4-deck,
  .template-index .ridge-ubd4-deck *{
    font-size:clamp(6.5px,1.9vw,9px)!important;
    white-space:nowrap!important;
  }

  /* Active content has one fixed home. It does not move when reel titles move. */
  .template-index .ridge-ubd4-feature{
    left:50%!important;
    top:55%!important;
    width:100%!important;
    max-width:100%!important;
    max-height:none!important;
    padding:0!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:10px!important;
    align-content:center!important;
    justify-items:stretch!important;
    text-align:center!important;
    transform:translate(-50%,-50%) scale(calc(.88 + .12*var(--ubd-reel-open,0)))!important;
  }
  .template-index .ridge-ubd4-copy{
    width:100%!important;max-width:100%!important;margin:0!important;text-align:center!important;
  }
  .template-index .ridge-ubd4-copy h3{display:none!important}
  .template-index .ridge-ubd4-body{
    width:100%!important;max-width:100%!important;
    font-size:clamp(11px,2.85vw,13px)!important;line-height:1.12!important;text-align:center!important;
  }
  .template-index .ridge-ubd4-body p{margin:0 0 7px!important}
  .template-index .ridge-ubd4-copy blockquote{
    width:100%!important;max-width:100%!important;
    font-size:clamp(10px,2.7vw,12px)!important;line-height:1.1!important;margin:7px 0 0!important;text-align:center!important;
  }
  .template-index .ridge-ubd4-media{
    width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;
    margin:6px 0 0!important;justify-self:stretch!important;
  }
  .template-index .ridge-ubd4-media img,
  .template-index .ridge-ubd4-placeholder{
    width:100%!important;height:100%!important;aspect-ratio:1/1!important;object-fit:cover!important;
  }

  /* Reel headings are an independent layer. No decorative lines. */
  .template-index .ridge-ubd-reel{position:absolute!important;inset:0!important;pointer-events:none!important;z-index:70!important}
  .template-index .ridge-ubd-reel-item{
    left:50%!important;top:0!important;text-align:center!important;white-space:nowrap!important;
    transform-origin:50% 50%!important;font-size:clamp(18px,5vw,23px)!important;
  }
  .template-index .ridge-ubd-reel-item::before,
  .template-index .ridge-ubd-reel-item::after,
  .template-index .ridge-ubd4-queue::before,
  .template-index .ridge-ubd4-queue::after{content:none!important;display:none!important}
}
\n\n/* === Ridge v3.4.4 — mobile visible-center bridge + compact feature reel === */
@media(max-width:900px){
  /* The scene already excludes the 72px navbar. Use that visible scene directly. */
  .template-index .ridge-ubd4-bridge{
    top:0!important;
    transform-origin:50% 50%!important;
  }
  .template-index .ridge-ubd4-stage{
    top:0!important;
    bottom:0!important;
    height:100%!important;
  }

  /* Compact mobile composition. Selected reel title stays above this block. */
  .template-index .ridge-ubd4-feature{
    top:31%!important;
    bottom:auto!important;
    width:100%!important;
    max-height:none!important;
    align-content:start!important;
    transform:translateX(-50%) scale(calc(.88 + .12*var(--ubd-reel-open,0)))!important;
    transform-origin:50% 0!important;
    gap:8px!important;
  }
  .template-index .ridge-ubd4-body{
    font-size:clamp(11px,2.8vw,13px)!important;
    line-height:1.10!important;
  }
  .template-index .ridge-ubd4-body p{margin:0 0 6px!important}
  .template-index .ridge-ubd4-copy blockquote{
    font-size:clamp(10px,2.65vw,12px)!important;
    line-height:1.08!important;
    margin:6px 0 0!important;
  }
  .template-index .ridge-ubd4-media{
    width:100%!important;
    max-width:100%!important;
    margin:8px 0 0!important;
    aspect-ratio:1/1!important;
  }

  /* Titles are a clean reel layer; never add stems/rules on mobile. */
  .template-index .ridge-ubd-reel-item,
  .template-index .ridge-ubd4-queue{border:0!important;box-shadow:none!important}
  .template-index .ridge-ubd-reel-item::before,
  .template-index .ridge-ubd-reel-item::after,
  .template-index .ridge-ubd4-queue::before,
  .template-index .ridge-ubd4-queue::after{content:none!important;display:none!important}
}

/* === Ridge v3.4.5 — effective mobile geometry (verified final cascade) === */
@media(max-width:900px){
  /* These are the final winning mobile rules. Older mobile UBD rules above are
     intentionally superseded here rather than layered through inherited geometry. */
  .template-index .ridge-ubd4-scene.is-ubd-locked,
  .template-index .ridge-ubd4-scene.is-ubd-before,
  .template-index .ridge-ubd4-scene.is-ubd-after{
    overflow:hidden!important;
  }
  .template-index .ridge-ubd4-bridge{
    top:0!important;
    left:50%!important;
    width:min(340px,calc(100vw - 48px))!important;
    max-width:none!important;
    transform:translateX(-50%) translateY(var(--ubd-bridge-y,0px)) scale(var(--ubd-bridge-scale,1))!important;
    transform-origin:50% 50%!important;
    text-align:center!important;
    z-index:90!important;
  }
  .template-index .ridge-ubd4-stage{
    position:absolute!important;
    inset:0 auto 0 50%!important;
    width:min(340px,calc(100vw - 48px))!important;
    height:100%!important;
    max-width:none!important;
    transform:translateX(-50%)!important;
    overflow:hidden!important;
  }
  .template-index .ridge-ubd-reel{
    position:absolute!important;
    inset:0!important;
    z-index:80!important;
    overflow:hidden!important;
    pointer-events:none!important;
  }
  .template-index .ridge-ubd-reel-item{
    left:50%!important;
    top:0!important;
    font-size:clamp(18px,5vw,23px)!important;
    line-height:1!important;
    white-space:nowrap!important;
    text-align:center!important;
    transform-origin:50% 50%!important;
    border:0!important;
    box-shadow:none!important;
  }
  .template-index .ridge-ubd-reel-item::before,
  .template-index .ridge-ubd-reel-item::after{content:none!important;display:none!important}

  /* Active content has one stable home below the active reel title. It never
     recenters itself as it opens, so the title/body/image relationship is fixed. */
  .template-index .ridge-ubd4-feature{
    left:50%!important;
    top:31%!important;
    bottom:auto!important;
    width:100%!important;
    max-width:100%!important;
    max-height:none!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:8px!important;
    align-content:start!important;
    justify-items:stretch!important;
    text-align:center!important;
    transform:translateX(-50%) scale(max(.04,var(--ubd-reel-open,0)))!important;
    transform-origin:50% 0!important;
    overflow:visible!important;
  }
  .template-index .ridge-ubd4-copy{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;text-align:center!important}
  .template-index .ridge-ubd4-copy h3{display:none!important}
  .template-index .ridge-ubd4-body{width:100%!important;max-width:100%!important;font-size:clamp(11px,2.8vw,13px)!important;line-height:1.10!important;text-align:center!important}
  .template-index .ridge-ubd4-body p{margin:0 0 6px!important}
  .template-index .ridge-ubd4-copy blockquote{width:100%!important;max-width:100%!important;font-size:clamp(10px,2.65vw,12px)!important;line-height:1.08!important;margin:6px 0 0!important;text-align:center!important}
  .template-index .ridge-ubd4-media{width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;margin:8px 0 0!important;justify-self:stretch!important}
  .template-index .ridge-ubd4-media img,.template-index .ridge-ubd4-placeholder{width:100%!important;height:100%!important;aspect-ratio:1/1!important;object-fit:cover!important}
}
