/** Shopify CDN: Minification failed

Line 2500:0 Unexpected "@media"
Line 2616:0 Unexpected "}"
Line 2622:0 Unexpected "}"

**/
:root {
  /* Brand colors — Lake Life Designs */
  --clr-navy:          #1B2B4B;
  --clr-navy-dark:     #0F1C32;
  --clr-navy-light:    #243660;
  --clr-lake:          #2E7DAA;
  --clr-lake-light:    #5BA3C7;
  --clr-lake-pale:     #D6EAF5;
  --clr-gold:          #C8973A;
  --clr-gold-light:    #E8C070;
  --clr-white:         #FFFFFF;
  --clr-off-white:     #F8F9FA;
  --clr-bg:            #F5F7FA;
  --clr-border:        #DEE3EA;
  --clr-text:          #1A1A2E;
  --clr-text-muted:    #5C6B7E;

  /* Typography */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'Open Sans', Arial, sans-serif;

  /* Spacing */
  --space-xs:  0.25rem;
  --space-sm:  0.5rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  /* Layout */
  --max-width: 1200px;
  --gutter:    clamp(0.75rem, 3vw, 2rem);

  /* Motion */
  --ease:      cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition:0.28s var(--ease);

  /* Radii */
  --radius-sm:  3px;
  --radius-md:  6px;
  --radius-lg:  10px;
  --radius-xl:  16px;
  --radius-pill:9999px;
}

/* ── Reset ──────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}
body{font-family:var(--font-body);background:var(--clr-bg);color:var(--clr-text);line-height:1.6;}
img,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
button{cursor:pointer;border:none;background:none;font-family:inherit;}
input,textarea,select{font-family:inherit;}

/* ── Type ───────────────────────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--clr-navy);}
h1{font-size:clamp(1.8rem,5vw,3.5rem);}
h2{font-size:clamp(1.4rem,3vw,2.4rem);}
h3{font-size:clamp(1.1rem,2vw,1.6rem);}
p{margin-bottom:var(--space-md);}
p:last-child{margin-bottom:0;}

/* ── Layout helpers ─────────────────────────────────────────────────── */
.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:var(--space-3xl);}
.section--sm{padding-block:var(--space-2xl);}
.section--xs{padding-block:var(--space-xl);}

/* ── Buttons ────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:0.75em 1.8em;font-family:var(--font-body);font-size:0.88rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;border-radius:var(--radius-sm);border:2px solid transparent;transition:var(--transition);cursor:pointer;line-height:1;}
.btn--primary{background:var(--clr-gold);color:var(--clr-navy-dark);border-color:var(--clr-gold);}
.btn--primary:hover{background:var(--clr-gold-light);border-color:var(--clr-gold-light);transform:translateY(-1px);box-shadow:0 6px 18px rgba(200,151,58,0.4);}
.btn--navy{background:var(--clr-navy);color:var(--clr-white);border-color:var(--clr-navy);}
.btn--navy:hover{background:var(--clr-navy-light);border-color:var(--clr-navy-light);}
.btn--outline-white{background:transparent;color:var(--clr-white);border-color:var(--clr-white);}
.btn--outline-white:hover{background:var(--clr-white);color:var(--clr-navy);}
.btn--full{width:100%;}
.btn--lg{font-size:1rem;padding:0.85em 2.2em;}

/* ── Announcement Bar ───────────────────────────────────────────────── */
.announcement-bar{background:var(--clr-navy-dark);color:var(--clr-white);font-size:0.82rem;letter-spacing:0.05em;overflow:hidden;}
.announcement-bar__inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-xl);padding:0.55rem var(--gutter);text-align:center;}
.announcement-bar__item{white-space:nowrap;}
.announcement-bar a{color:var(--clr-gold-light);text-decoration:underline;text-underline-offset:2px;}
.announcement-bar strong{color:var(--clr-gold-light);}

/* ── Top Bar (email/utility row) ────────────────────────────────────── */
.top-bar{background:var(--clr-navy);color:rgba(255,255,255,0.7);font-size:0.78rem;border-bottom:1px solid rgba(255,255,255,0.1);}
.top-bar__inner{display:flex;align-items:center;justify-content:space-between;height:34px;gap:var(--space-lg);}
.top-bar a{color:rgba(255,255,255,0.7);transition:color var(--transition);}
.top-bar a:hover{color:var(--clr-white);}
.top-bar__left,.top-bar__right{display:flex;align-items:center;gap:var(--space-md);}
.top-bar__icon{display:flex;align-items:center;gap:4px;}
@media(max-width:600px){.top-bar{display:none;}}

/* ── Header ─────────────────────────────────────────────────────────── */
.site-header{position:sticky;top:0;z-index:200;background:var(--clr-white);border-bottom:2px solid var(--clr-navy);transition:box-shadow var(--transition);}
.site-header.scrolled{box-shadow:0 2px 20px rgba(27,43,75,0.15);}
.header-inner{display:flex;align-items:center;gap:var(--space-md);}
.header-nav{display:flex;align-items:center;gap:var(--space-xl);}
.header-nav > a,.header-nav > .nav-item > a{font-size:0.82rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--clr-navy);transition:color var(--transition);padding:4px 0;position:relative;}
.header-nav > a::after,.header-nav > .nav-item > a::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--clr-gold);transform:scaleX(0);transform-origin:left;transition:transform var(--transition);}
.header-nav > a:hover,.header-nav > .nav-item > a:hover{color:var(--clr-lake);}
.header-nav > a:hover::after,.header-nav > .nav-item > a:hover::after{transform:scaleX(1);}
/* Dropdown */
.nav-item{position:relative;}
.nav-dropdown{position:absolute;top:calc(100% + 12px);left:0;min-width:160px;background:var(--clr-white);border:1px solid var(--clr-border);border-radius:var(--radius-md);box-shadow:0 8px 24px rgba(27,43,75,0.12);opacity:0;visibility:hidden;transform:translateY(-8px);transition:var(--transition);z-index:10;padding:var(--space-sm) 0;}
.nav-item:hover .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.nav-dropdown a{display:block;padding:var(--space-sm) var(--space-lg);font-size:0.82rem;font-weight:600;color:var(--clr-navy);transition:background var(--transition),color var(--transition);}
.nav-dropdown a:hover{background:var(--clr-lake-pale);color:var(--clr-lake);}
/* Logo */
.header-logo{justify-self:center;display:flex;align-items:center;}
.header-logo__text{font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:var(--clr-navy);letter-spacing:-0.01em;line-height:1.1;text-align:center;}
.header-logo__text span{display:block;font-size:0.6em;font-weight:400;letter-spacing:0.1em;text-transform:uppercase;color:var(--clr-lake);font-family:var(--font-body);}
.header-logo img{width:auto;}  /* max-height removed — controlled by inline style */
/* Header actions */
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);}
.header-icon-btn{color:var(--clr-navy);transition:color var(--transition);display:flex;align-items:center;padding:4px;position:relative;}
.header-icon-btn:hover{color:var(--clr-lake);}
.cart-count{position:absolute;top:-6px;right:-8px;background:var(--clr-gold);color:var(--clr-navy-dark);font-size:0.6rem;font-weight:800;min-width:16px;height:16px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;padding:0 3px;}
/* Mobile toggle */
.mobile-menu-toggle{display:none;flex-direction:column;gap:5px;padding:6px;cursor:pointer;}
.mobile-menu-toggle span{display:block;width:22px;height:2px;background:var(--clr-navy);transition:var(--transition);transform-origin:center;}
.mobile-nav{display:none;flex-direction:column;background:var(--clr-white);border-top:1px solid var(--clr-border);}
.mobile-nav.open{display:flex;}
.mobile-nav a{display:block;font-size:0.88rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--clr-navy);padding:var(--space-md) var(--gutter);border-bottom:1px solid var(--clr-border);}
.mobile-nav a:hover{color:var(--clr-lake);background:var(--clr-lake-pale);}
@media(max-width:860px){
  .header-nav{display:none;}
  .mobile-menu-toggle{display:flex;}
  .header-inner{grid-template-columns:auto 1fr auto;}
}

/* ── Hero Slideshow ──────────────────────────────────────────────────── */
.hero-slideshow{position:relative;overflow:hidden;background:var(--clr-navy);}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 0.9s var(--ease);pointer-events:none;}
.hero-slide.active{position:relative;opacity:1;pointer-events:auto;}
.hero-slide__media{position:absolute;inset:0;}
.hero-slide__media img{width:100%;height:100%;object-fit:cover;object-position:center;}
.hero-slide__overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(15,28,50,0.72) 0%,rgba(15,28,50,0.35) 50%,rgba(15,28,50,0.1) 100%);}
.hero-slide__content{position:relative;z-index:1;display:flex;align-items:center;min-height:520px;padding-block:var(--space-3xl);}
@media(max-width:600px){.hero-slide__content{min-height:380px;}}
.hero-slide__text{max-width:580px;}
.hero-slide__eyebrow{display:inline-block;font-size:0.75rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--clr-gold-light);margin-bottom:var(--space-md);}
.hero-slide__title{font-family:var(--font-display);color:var(--clr-white);font-size:clamp(2rem,5.5vw,4rem);font-weight:700;line-height:1.1;margin-bottom:var(--space-md);}
.hero-slide__subtitle{font-size:clamp(0.95rem,2vw,1.15rem);color:rgba(255,255,255,0.85);margin-bottom:var(--space-xl);max-width:44ch;}
.hero-slide__actions{display:flex;gap:var(--space-md);flex-wrap:wrap;}
/* Slideshow controls */
.slideshow-controls{position:absolute;bottom:var(--space-xl);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:var(--space-md);z-index:10;}
.slideshow-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.4);border:none;cursor:pointer;transition:var(--transition);padding:0;}
.slideshow-dot.active{background:var(--clr-gold);transform:scale(1.3);}
.slideshow-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(255,255,255,0.15);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,0.3);color:var(--clr-white);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);}
.slideshow-arrow:hover{background:rgba(255,255,255,0.3);}
.slideshow-arrow--prev{left:var(--space-lg);}
.slideshow-arrow--next{right:var(--space-lg);}
@media(max-width:600px){.slideshow-arrow{display:none;}}

/* ── Welcome / Search Section ───────────────────────────────────────── */
.welcome-section{background:var(--clr-navy);color:var(--clr-white);text-align:center;padding-block:var(--space-2xl);}
.welcome-section h2{color:var(--clr-white);margin-bottom:var(--space-md);}
.welcome-section p{color:rgba(255,255,255,0.8);margin-inline:auto;max-width:52ch;margin-bottom:var(--space-xl);}
.search-bar{display:flex;max-width:500px;margin-inline:auto;border-radius:var(--radius-sm);overflow:hidden;border:2px solid var(--clr-gold);}
.search-bar input{flex:1;padding:0.8em 1.2em;font-size:0.95rem;border:none;background:var(--clr-white);color:var(--clr-text);outline:none;}
.search-bar input::placeholder{color:var(--clr-text-muted);}
.search-bar button{padding:0.8em 1.5em;background:var(--clr-gold);color:var(--clr-navy-dark);font-weight:700;font-size:0.85rem;letter-spacing:0.06em;text-transform:uppercase;border:none;cursor:pointer;transition:background var(--transition);display:flex;align-items:center;gap:6px;}
.search-bar button:hover{background:var(--clr-gold-light);}

/* ── Category Tile Grid ─────────────────────────────────────────────── */
.category-grid-section{padding-block:var(--space-2xl);}
.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);}
@media(max-width:860px){.category-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.category-grid{grid-template-columns:1fr;}}
.category-tile{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;display:block;background:var(--clr-navy);}
.category-tile__img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s var(--ease);}
.category-tile:hover .category-tile__img{transform:scale(1.06);}
.category-tile__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,20,40,0.8) 0%,rgba(10,20,40,0.25) 55%,transparent 100%);}
.category-tile__body{position:absolute;bottom:0;left:0;right:0;padding:var(--space-lg);}
.category-tile__title{font-family:var(--font-display);font-size:clamp(1rem,2.5vw,1.4rem);font-weight:700;color:var(--clr-white);line-height:1.2;margin-bottom:4px;}
.category-tile__count{font-size:0.78rem;font-weight:600;color:var(--clr-gold-light);letter-spacing:0.05em;text-transform:uppercase;}
.category-tile__arrow{position:absolute;top:var(--space-md);right:var(--space-md);width:32px;height:32px;background:rgba(255,255,255,0.15);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition);}
.category-tile:hover .category-tile__arrow{opacity:1;background:var(--clr-gold);}

/* ── Section header ─────────────────────────────────────────────────── */
.section-header{margin-bottom:var(--space-2xl);}
.section-header--center{text-align:center;}
.section-tag{display:inline-block;font-size:0.72rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--clr-lake);margin-bottom:var(--space-sm);}
.divider-rule{width:48px;height:3px;background:var(--clr-gold);margin-block:var(--space-md);border:none;}
.divider-rule--center{margin-inline:auto;}

/* ── Product Cards ──────────────────────────────────────────────────── */
.product-card{display:flex;flex-direction:column;background:var(--clr-white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--clr-border);transition:box-shadow var(--transition),transform var(--transition);}
.product-card:hover{box-shadow:0 12px 36px rgba(27,43,75,0.14);transform:translateY(-3px);}
.product-card__image-wrap{aspect-ratio:1;overflow:hidden;background:var(--clr-lake-pale);display:block;position:relative;}
.product-card__image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 0.45s var(--ease);}
.product-card:hover .product-card__image-wrap img{transform:scale(1.05);}
.product-card__badge{position:absolute;top:var(--space-sm);left:var(--space-sm);background:var(--clr-gold);color:var(--clr-navy-dark);font-size:0.65rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-sm);}
.product-card__body{padding:var(--space-md);flex:1;display:flex;flex-direction:column;gap:4px;}
.product-card__title{font-size:0.92rem;font-weight:700;color:var(--clr-navy);line-height:1.35;display:block;transition:color var(--transition);}
.product-card:hover .product-card__title{color:var(--clr-lake);}
.product-card__price-row{display:flex;align-items:center;gap:var(--space-sm);margin-top:auto;padding-top:var(--space-sm);}
.product-card__price{font-weight:700;color:var(--clr-navy);font-size:0.95rem;}
.product-card__price--compare{font-size:0.82rem;color:var(--clr-text-muted);text-decoration:line-through;}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-md);}

/* ── Image with Text ────────────────────────────────────────────────── */
.image-with-text{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.image-with-text--reversed .image-with-text__media{order:2;}
.image-with-text--reversed .image-with-text__content{order:1;}
.image-with-text__media{border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:4/3;background:var(--clr-lake-pale);}
.image-with-text__media img{width:100%;height:100%;object-fit:cover;}
.image-with-text__content{display:flex;flex-direction:column;gap:var(--space-lg);}
@media(max-width:720px){
  .image-with-text{grid-template-columns:1fr;}
  .image-with-text--reversed .image-with-text__media,
  .image-with-text--reversed .image-with-text__content{order:0;}
}

/* ── Product Page ───────────────────────────────────────────────────── */
.product-page{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.product-gallery__main{border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:1;background:var(--clr-lake-pale);}
.product-gallery__main img{width:100%;height:100%;object-fit:cover;}
.product-gallery__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);margin-top:var(--space-sm);}
.product-gallery__thumb{border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1;cursor:pointer;border:2px solid transparent;transition:border-color var(--transition);padding:0;background:var(--clr-lake-pale);}
.product-gallery__thumb.active,.product-gallery__thumb:hover{border-color:var(--clr-lake);}
.product-gallery__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.product-info{position:sticky;top:calc(68px + 1.5rem);}
.product-info__vendor{font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--clr-lake);margin-bottom:var(--space-sm);}
.product-info__title{margin-bottom:var(--space-md);line-height:1.2;}
.product-info__price-row{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--clr-border);}
.product-info__price{font-size:1.7rem;font-weight:700;color:var(--clr-navy);}
.product-info__price--compare{font-size:1.1rem;color:var(--clr-text-muted);text-decoration:line-through;}
.product-info__variants{margin-bottom:var(--space-xl);}
.variant-label{display:block;font-size:0.78rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--clr-text-muted);margin-bottom:var(--space-sm);}
.variant-options{display:flex;flex-wrap:wrap;gap:var(--space-sm);}
.variant-btn{padding:0.4em 1em;border:2px solid var(--clr-border);border-radius:var(--radius-sm);font-size:0.85rem;font-weight:600;cursor:pointer;transition:var(--transition);background:var(--clr-white);color:var(--clr-navy);}
.variant-btn.active,.variant-btn:hover:not(:disabled){border-color:var(--clr-navy);background:var(--clr-navy);color:white;}
.variant-btn:disabled{opacity:0.35;cursor:not-allowed;text-decoration:line-through;}
.product-info__description{font-size:0.93rem;line-height:1.75;color:var(--clr-text-muted);padding-top:var(--space-xl);border-top:1px solid var(--clr-border);}
.product-info__actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-xl);}
.qty-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);}
.quantity-selector{display:flex;align-items:center;border:2px solid var(--clr-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--clr-white);}
.quantity-selector button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--clr-navy);transition:background var(--transition);background:none;border:none;cursor:pointer;}
.quantity-selector button:hover{background:var(--clr-lake-pale);}
.quantity-selector input{width:46px;text-align:center;font-size:0.9rem;font-weight:700;border:none;background:none;height:40px;-moz-appearance:textfield;}
.quantity-selector input::-webkit-outer-spin-button,.quantity-selector input::-webkit-inner-spin-button{-webkit-appearance:none;}
.quantity-selector input:focus{outline:none;}
@media(max-width:860px){.product-page{grid-template-columns:1fr;}.product-info{position:static;}}

/* ── Cart ───────────────────────────────────────────────────────────── */
.cart-page{display:grid;grid-template-columns:1fr 340px;gap:clamp(2rem,5vw,4rem);align-items:start;}
.cart-table-head{display:grid;grid-template-columns:80px 1fr auto;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:2px solid var(--clr-navy);font-size:0.72rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--clr-text-muted);}
.cart-item{display:grid;grid-template-columns:80px 1fr auto;gap:var(--space-md);align-items:start;padding-block:var(--space-lg);border-bottom:1px solid var(--clr-border);}
.cart-item__image{border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1;background:var(--clr-lake-pale);}
.cart-item__image img{width:100%;height:100%;object-fit:cover;}
.cart-item__title{font-weight:700;font-size:0.9rem;color:var(--clr-navy);display:block;line-height:1.35;}
.cart-item__variant{font-size:0.78rem;color:var(--clr-text-muted);margin-top:2px;}
.cart-item__price{font-weight:700;font-size:0.95rem;color:var(--clr-navy);white-space:nowrap;}
.cart-item__remove{font-size:0.72rem;color:var(--clr-text-muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;display:inline-block;margin-top:var(--space-sm);background:none;border:none;padding:0;}
.cart-item__remove:hover{color:var(--clr-lake);}
.cart-summary{background:var(--clr-white);border:2px solid var(--clr-navy);border-radius:var(--radius-lg);padding:var(--space-xl);position:sticky;top:calc(68px + 1.5rem);}
.cart-summary h2{font-size:1.15rem;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--clr-border);}
.cart-summary__row{display:flex;justify-content:space-between;align-items:center;font-size:0.88rem;padding-block:var(--space-sm);}
.cart-summary__total{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem;font-weight:700;color:var(--clr-navy);padding-top:var(--space-md);margin-top:var(--space-md);border-top:2px solid var(--clr-navy);margin-bottom:var(--space-xl);}
.cart-note{font-size:0.72rem;color:var(--clr-text-muted);text-align:center;margin-top:var(--space-md);}
.cart-empty{text-align:center;padding:var(--space-3xl) var(--space-lg);}
@media(max-width:860px){.cart-page{grid-template-columns:1fr;}.cart-summary{position:static;}}

/* ── Newsletter ─────────────────────────────────────────────────────── */
.newsletter-section{background:var(--clr-navy);color:var(--clr-white);text-align:center;}
.newsletter-section h2{color:var(--clr-white);margin-bottom:var(--space-sm);}
.newsletter-section p{color:rgba(255,255,255,0.75);margin-inline:auto;max-width:48ch;margin-bottom:var(--space-xl);}
.newsletter-form{display:flex;max-width:440px;margin-inline:auto;border-radius:var(--radius-sm);overflow:hidden;border:2px solid var(--clr-gold);}
.newsletter-form input[type="email"]{flex:1;padding:0.8em 1.1em;font-size:0.9rem;border:none;background:rgba(255,255,255,0.1);color:var(--clr-white);outline:none;}
.newsletter-form input[type="email"]::placeholder{color:rgba(255,255,255,0.5);}
.newsletter-form input[type="email"]:focus{background:rgba(255,255,255,0.15);}
.newsletter-form button{padding:0.8em 1.4em;background:var(--clr-gold);color:var(--clr-navy-dark);font-weight:700;font-size:0.82rem;letter-spacing:0.07em;text-transform:uppercase;border:none;cursor:pointer;transition:background var(--transition);white-space:nowrap;}
.newsletter-form button:hover{background:var(--clr-gold-light);}

/* ── Footer ─────────────────────────────────────────────────────────── */
.site-footer{background:var(--clr-navy-dark);color:rgba(255,255,255,0.65);}

.footer-brand p{font-size:0.85rem;line-height:1.7;max-width:30ch;}

.footer-social a:hover{color:var(--clr-gold-light);}

.footer-col ul{display:flex;flex-direction:column;gap:var(--space-sm);}
.footer-col ul a{font-size:0.85rem;color:rgba(255,255,255,0.55);transition:color var(--transition);}
.footer-col ul a:hover{color:var(--clr-gold-light);}

.footer-payment-icons{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center;}
.footer-payment-icons img{height:22px;width:auto;opacity:0.7;}
@media(max-width:860px){}
@media(max-width:500px){}

/* ── Utility ────────────────────────────────────────────────────────── */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.rte h2,.rte h3,.rte h4{margin-bottom:var(--space-md);}
.rte p{color:var(--clr-text-muted);}
.rte a{color:var(--clr-lake);text-decoration:underline;}
.rte ul{list-style:disc;padding-left:1.5em;}
.rte ol{list-style:decimal;padding-left:1.5em;}
.page-content{max-width:820px;margin-inline:auto;}
.page-content h1{margin-bottom:var(--space-2xl);}
.page-404{text-align:center;padding-block:var(--space-3xl);min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);}
.page-404__number{font-family:var(--font-display);font-size:clamp(5rem,15vw,10rem);font-weight:700;line-height:1;color:var(--clr-lake-pale);letter-spacing:-0.03em;}
/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.animate-fade-up{animation:fadeUp 0.6s var(--ease) both;}
.animate-d1{animation-delay:0.1s;}
.animate-d2{animation-delay:0.22s;}
.animate-d3{animation-delay:0.36s;}
.reveal{opacity:0;transform:translateY(18px);transition:opacity 0.55s var(--ease),transform 0.55s var(--ease);}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ── Collection header ───────────────────────────────────────────────── */
.collection-header{padding-block:var(--space-xl);border-bottom:2px solid var(--clr-navy);margin-bottom:var(--space-lg);}
.collection-header h1{margin-bottom:var(--space-sm);}
.collection-description{color:var(--clr-text-muted);max-width:65ch;}

/* ── Filter bar ──────────────────────────────────────────────────────── */
.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;padding-block:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--clr-border);}
.filter-bar__left{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;}
.filter-bar__right{display:flex;align-items:center;gap:var(--space-lg);}
.filter-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:0.55em 1.1em;border:2px solid var(--clr-navy);border-radius:var(--radius-sm);font-size:0.82rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--clr-navy);background:var(--clr-white);cursor:pointer;transition:var(--transition);}
.filter-toggle-btn:hover,.filter-toggle-btn[aria-expanded="true"]{background:var(--clr-navy);color:var(--clr-white);}
.filter-count-badge{background:var(--clr-gold);color:var(--clr-navy-dark);font-size:0.65rem;font-weight:800;min-width:18px;height:18px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;padding:0 4px;}
.filter-clear-all{font-size:0.78rem;font-weight:700;color:var(--clr-lake);text-decoration:underline;text-underline-offset:2px;white-space:nowrap;}
.filter-clear-all:hover{color:var(--clr-navy);}
.filter-pill{display:inline-flex;align-items:center;gap:5px;padding:0.3em 0.8em;background:var(--clr-lake-pale);border:1px solid var(--clr-lake);border-radius:var(--radius-pill);font-size:0.75rem;font-weight:600;color:var(--clr-navy);transition:var(--transition);}
.filter-pill:hover{background:var(--clr-navy);color:var(--clr-white);border-color:var(--clr-navy);}
.collection-count{font-size:0.8rem;color:var(--clr-text-muted);white-space:nowrap;}
.sort-wrap{display:flex;align-items:center;gap:var(--space-sm);}
.sort-label{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--clr-text-muted);white-space:nowrap;}
.sort-select{border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);padding:0.4em 0.8em;font-size:0.85rem;font-weight:600;color:var(--clr-navy);background:var(--clr-white);cursor:pointer;outline:none;transition:border-color var(--transition);}
.sort-select:hover,.sort-select:focus{border-color:var(--clr-navy);}

/* ── Filter drawer ───────────────────────────────────────────────────── */
.filter-drawer{background:var(--clr-off-white);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl);animation:fadeUp 0.25s var(--ease) both;}
.filter-drawer[hidden]{display:none;}
.filter-drawer__groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-xl);}
.filter-group{border:none;padding:0;margin:0;}
.filter-group__title{display:flex;align-items:center;justify-content:space-between;font-size:0.82rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--clr-navy);cursor:pointer;list-style:none;padding-bottom:var(--space-sm);border-bottom:1px solid var(--clr-border);margin-bottom:var(--space-md);user-select:none;}
.filter-group__title::-webkit-details-marker{display:none;}
.filter-group[open] .filter-chevron{transform:rotate(180deg);}
.filter-chevron{transition:transform var(--transition);flex-shrink:0;}
.filter-group__options{display:flex;flex-direction:column;gap:var(--space-xs);}
.filter-option{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:0.85rem;color:var(--clr-text);padding:3px 0;user-select:none;}
.filter-option input[type="checkbox"]{width:15px;height:15px;accent-color:var(--clr-navy);cursor:pointer;flex-shrink:0;}
.filter-option--disabled{opacity:0.4;cursor:not-allowed;}
.filter-option__count{font-size:0.75rem;color:var(--clr-text-muted);margin-left:auto;}

/* Color swatches in filter */
.filter-option--swatch{flex-direction:row;}
.filter-swatch{width:18px;height:18px;border-radius:50%;border:2px solid var(--clr-border);flex-shrink:0;display:inline-block;}
.filter-option--active .filter-swatch{outline:2px solid var(--clr-navy);outline-offset:2px;}

/* Price range filter */
.filter-price-range{margin-top:var(--space-sm);}
.filter-price-inputs{display:flex;align-items:center;gap:var(--space-sm);}
.filter-price-inputs label{display:flex;flex-direction:column;gap:3px;font-size:0.75rem;font-weight:600;color:var(--clr-text-muted);}
.filter-price-inputs input{width:80px;border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);padding:0.4em 0.6em;font-size:0.85rem;background:var(--clr-white);}
.filter-price-inputs input:focus{outline:none;border-color:var(--clr-navy);}
.price-range-sep{color:var(--clr-text-muted);font-weight:700;}

/* ── Product card swatches ───────────────────────────────────────────── */
.product-card__swatches{display:flex;align-items:center;gap:5px;margin-top:var(--space-sm);flex-wrap:wrap;}
.swatch{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,0,0,0.12);flex-shrink:0;cursor:pointer;}
.swatch-more{font-size:0.72rem;font-weight:700;color:var(--clr-lake);text-decoration:none;}
.swatch-more:hover{color:var(--clr-navy);}

/* ── Common swatch color names -> hex ───────────────────────────────── */
/* Shopify handleize() turns "Forest Green" -> "forest-green" */
.swatch[style*="forest-green"],.swatch.forest-green{background-color:#228B22 !important;}
.swatch[style*="navy"],.swatch.navy{background-color:#1B2B4B !important;}
.swatch[style*="black"],.swatch.black{background-color:#1A1A1A !important;}
.swatch[style*="white"],.swatch.white{background-color:#FFFFFF !important;border-color:#ccc !important;}
.swatch[style*="red"],.swatch.red{background-color:#CC2200 !important;}
.swatch[style*="maroon"],.swatch.maroon{background-color:#800000 !important;}
.swatch[style*="heather"],.swatch.heather,.swatch[style*="athletic-heather"]{background-color:#9E9E9E !important;}
.swatch[style*="dark-heather"],.swatch.dark-heather{background-color:#4A4A4A !important;}
.swatch[style*="irish-green"],.swatch.irish-green{background-color:#009A44 !important;}
.swatch[style*="hot-pink"],.swatch.hot-pink,.swatch[style*="solid-hot-pink"]{background-color:#FF69B4 !important;}
.swatch[style*="purple"],.swatch.purple,.swatch[style*="solid-purple"]{background-color:#6B21A8 !important;}
.swatch[style*="royal"],.swatch.royal,.swatch[style*="royal-blue"]{background-color:#2252B8 !important;}
.swatch[style*="kelly"],.swatch.kelly,.swatch[style*="kelly-green"],.swatch[style*="solid-kelly-green"]{background-color:#4CBB17 !important;}
.swatch[style*="light-blue"],.swatch.light-blue{background-color:#ADD8E6 !important;}
.swatch[style*="khaki"],.swatch.khaki{background-color:#C3A46B !important;}
.swatch[style*="brown"],.swatch.brown{background-color:#7B3F00 !important;}
.swatch[style*="loden"],.swatch.loden{background-color:#5E6B3A !important;}
.swatch[style*="grey"],.swatch.grey,.swatch[style*="gray"],.swatch.gray{background-color:#9CA3AF !important;}

/* ── Search page ─────────────────────────────────────────────────────── */
.search-page-form { margin-bottom: 0; }

.search-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 2px solid var(--clr-navy);
}
.search-section-title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  color: var(--clr-navy);
  margin: 0;
}
.search-section-count {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--clr-text-muted);
  white-space: nowrap;
}

/* Collection tiles in search results */
.search-collection-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}
.search-collection-tile {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 3/2;
  display: block;
  background: var(--clr-navy);
  transition: transform var(--transition), box-shadow var(--transition);
}
.search-collection-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(27,43,75,0.2);
}
.search-collection-tile__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
  display: block;
}
.search-collection-tile:hover .search-collection-tile__img {
  transform: scale(1.05);
}
.search-collection-tile__img--placeholder {
  background: linear-gradient(135deg, #1B2B4B 0%, #2E7DAA 100%);
  position: absolute;
  inset: 0;
}
.search-collection-tile__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,20,40,0.85) 0%, rgba(10,20,40,0.3) 55%, transparent 100%);
}
.search-collection-tile__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-lg);
}
.search-collection-tile__label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-gold-light);
  margin-bottom: 4px;
}
.search-collection-tile__title {
  color: var(--clr-white);
  font-size: clamp(0.95rem, 2vw, 1.25rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 4px;
}
.search-collection-tile__count {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.75);
  font-weight: 600;
}

/* No results */
.search-no-results {
  padding: var(--space-3xl) 0;
  text-align: center;
}
.search-no-results h2 { margin-bottom: var(--space-md); }
.search-no-results p { color: var(--clr-text-muted); }
.search-no-results a { color: var(--clr-lake); text-decoration: underline; }

/* Search intro / popular tags */
.search-intro { padding: var(--space-2xl) 0; }
.search-intro h2 { margin-bottom: var(--space-sm); }
.search-intro > p { color: var(--clr-text-muted); margin-bottom: var(--space-xl); }
.search-popular__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
  margin-bottom: var(--space-sm);
}
.search-popular__tags { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.search-popular__tag {
  display: inline-block;
  padding: 0.4em 1em;
  background: var(--clr-lake-pale);
  border: 1.5px solid var(--clr-lake);
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--clr-navy);
  transition: var(--transition);
}
.search-popular__tag:hover {
  background: var(--clr-navy);
  border-color: var(--clr-navy);
  color: var(--clr-white);
}

/* ── Search page ─────────────────────────────────────────────────────── */
.search-page-form { margin-bottom: 0; }

.search-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 2px solid var(--clr-navy);
}
.search-section-title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  color: var(--clr-navy);
  margin: 0;
}
.search-section-count {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--clr-text-muted);
  white-space: nowrap;
}

/* Collection tiles rendered by search-collections.js */
.search-collection-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-md);
}
.search-collection-tile {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 3/2;
  display: block;
  background: var(--clr-navy);
  transition: transform var(--transition), box-shadow var(--transition);
}
.search-collection-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(27,43,75,0.22);
}
.search-collection-tile__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
  display: block;
  position: absolute;
  inset: 0;
}
.search-collection-tile:hover .search-collection-tile__img {
  transform: scale(1.05);
}
.search-collection-tile__img--placeholder {
  background: linear-gradient(135deg, #1B2B4B 0%, #2E7DAA 100%);
}
.search-collection-tile__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,20,40,0.88) 0%, rgba(10,20,40,0.3) 55%, transparent 100%);
}
.search-collection-tile__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-lg);
}
.search-collection-tile__label {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-gold-light);
  margin-bottom: 4px;
}
.search-collection-tile__title {
  color: var(--clr-white);
  font-size: clamp(0.9rem, 2vw, 1.2rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 5px;
}
.search-collection-tile__cta {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.75);
  font-weight: 600;
}

/* No results */
.search-no-results {
  padding: var(--space-3xl) 0;
  text-align: center;
}
.search-no-results h2 { margin-bottom: var(--space-md); }
.search-no-results p { color: var(--clr-text-muted); }
.search-no-results a { color: var(--clr-lake); text-decoration: underline; }

/* Pre-search intro */
.search-intro { padding: var(--space-2xl) 0; }
.search-intro h2 { margin-bottom: var(--space-sm); }
.search-intro > p { color: var(--clr-text-muted); margin-bottom: var(--space-xl); }
.search-popular__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
  margin-bottom: var(--space-sm);
}
.search-popular__tags { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.search-popular__tag {
  display: inline-block;
  padding: 0.4em 1em;
  background: var(--clr-lake-pale);
  border: 1.5px solid var(--clr-lake);
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--clr-navy);
  transition: var(--transition);
}
.search-popular__tag:hover {
  background: var(--clr-navy);
  border-color: var(--clr-navy);
  color: var(--clr-white);
}

/* ── Nearby badge on collection tiles ────────────────────────────────── */
.search-collection-tile--nearby { opacity: 0.92; }
.search-collection-tile--nearby .search-collection-tile__overlay {
  background: linear-gradient(to top, rgba(27,43,75,0.88) 0%, rgba(27,43,75,0.35) 55%, transparent 100%);
}
.search-collection-tile__nearby-badge {
  position: absolute;
  top: var(--space-sm);
  right: var(--space-sm);
  background: rgba(200,151,58,0.9);
  color: var(--clr-navy-dark);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  z-index: 2;
}
/* Single row: auto-fill tiles as small as 160px so all fit on one line */
.search-collection-grid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

/* ══════════════════════════════════════════════════════════════════════
   COLLECTION TILE REDESIGN v2
   ══════════════════════════════════════════════════════════════════════ */

/* Reset previous tile styles cleanly */
.search-collection-tile {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  aspect-ratio: 3/2;
  display: block;
  background: var(--clr-navy);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  border: 1px solid rgba(255,255,255,0.08);
  text-decoration: none;
}
.search-collection-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(27,43,75,0.28);
}

/* Image */
.search-collection-tile__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
  display: block;
}
.search-collection-tile:hover .search-collection-tile__img {
  transform: scale(1.05);
}

/* No-image placeholder: lake water gradient + SVG wave pattern */
.search-collection-tile__img--placeholder {
  background:
    radial-gradient(ellipse at 30% 70%, rgba(46,125,170,0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(27,43,75,0.8) 0%, transparent 55%),
    linear-gradient(160deg, #0F1C32 0%, #1B2B4B 45%, #2E7DAA 100%);
}
/* SVG wave overlay for placeholder cards */
.search-collection-tile__img--placeholder::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='200' viewBox='0 0 400 200'%3E%3Cpath d='M0 120 Q50 100 100 120 Q150 140 200 120 Q250 100 300 120 Q350 140 400 120 L400 200 L0 200Z' fill='rgba(46,125,170,0.15)'/%3E%3Cpath d='M0 140 Q60 120 120 140 Q180 160 240 140 Q300 120 360 140 Q380 148 400 140 L400 200 L0 200Z' fill='rgba(46,125,170,0.12)'/%3E%3Cpath d='M0 160 Q70 145 140 160 Q210 175 280 160 Q340 148 400 160 L400 200 L0 200Z' fill='rgba(46,125,170,0.1)'/%3E%3C/svg%3E");
  background-size: cover;
  background-position: bottom;
  opacity: 0.9;
}

/* Gradient overlay on ALL tiles (image or not) */
.search-collection-tile__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10,20,40,0.92) 0%,
    rgba(10,20,40,0.55) 40%,
    rgba(10,20,40,0.15) 70%,
    transparent 100%
  );
  z-index: 1;
}

/* Card body — sits above overlay */
.search-collection-tile__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem 1.1rem 1rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

/* Top-left type badge (Lake Collection / Nearby Lake) */
.search-collection-tile__label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-gold-light);
  opacity: 0.9;
  margin-bottom: 2px;
}

/* Title */
.search-collection-tile__title {
  color: var(--clr-white);
  font-family: var(--font-display);
  font-size: clamp(0.85rem, 1.8vw, 1.1rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

/* CTA / mileage line */
.search-collection-tile__cta {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.65);
  font-weight: 600;
  letter-spacing: 0.03em;
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: color 0.25s;
}
.search-collection-tile:hover .search-collection-tile__cta {
  color: var(--clr-gold-light);
}

/* Remove old float badge, replaced by label styling */
.search-collection-tile__nearby-badge { display: none; }

/* Nearby tile: subtle left border accent */
.search-collection-tile--nearby {
  opacity: 1;
}
.search-collection-tile--nearby::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--clr-gold);
  z-index: 3;
}

/* Primary/matched tile: top border accent in lake blue */
.search-collection-tile:not(.search-collection-tile--nearby)::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: var(--clr-lake-light);
  z-index: 3;
}

/* Small lake icon in top-right of each card */
.search-collection-tile__icon {
  position: absolute;
  top: 0.75rem;
  right: 0.85rem;
  z-index: 3;
  width: 28px;
  height: 28px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(4px);
  transition: background 0.25s;
}
.search-collection-tile:hover .search-collection-tile__icon {
  background: rgba(200,151,58,0.25);
}
.search-collection-tile__icon svg {
  width: 14px;
  height: 14px;
  stroke: rgba(255,255,255,0.75);
}
.search-collection-tile:hover .search-collection-tile__icon svg {
  stroke: var(--clr-gold-light);
}

/* Grid stays as one row of auto-fill tiles */
.search-collection-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: var(--space-md);
}

/* ══════════════════════════════════════════════════════════════════════
   COLLECTION PAGE — Hero + Sidebar + Grid
   ══════════════════════════════════════════════════════════════════════ */

/* ── Hero banner ──────────────────────────────────────────────────────── */
.collection-hero {
  position: relative;
  height: clamp(180px, 28vw, 340px);
  overflow: hidden;
  background: var(--clr-navy);
  margin-bottom: 0;
}
.collection-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
}
.collection-hero__img--placeholder {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0F1C32 0%, #1B2B4B 50%, #2E7DAA 100%);
}
.collection-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
    rgba(10,20,40,0.15) 0%,
    rgba(10,20,40,0.45) 50%,
    rgba(10,20,40,0.65) 100%);
}
.collection-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 3vw, 2rem);
  text-align: center;
}
.collection-hero__title {
  color: var(--clr-white);
  font-size: clamp(1.6rem, 4vw, 3rem);
  font-weight: 700;
  margin-bottom: 0.4rem;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.collection-hero__subtitle {
  color: rgba(255,255,255,0.85);
  font-size: clamp(0.85rem, 1.8vw, 1.05rem);
  font-weight: 400;
  margin: 0;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

/* ── Toolbar ──────────────────────────────────────────────────────────── */
.collection-page { padding-block: var(--space-lg) var(--space-3xl); }
.collection-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--space-md);
  border-bottom: 1px solid var(--clr-border);
  margin-bottom: var(--space-xl);
  gap: var(--space-md);
  flex-wrap: wrap;
}
.collection-toolbar__left,
.collection-toolbar__right { flex: 1; }
.collection-toolbar__right { display: flex; justify-content: flex-end; }
.collection-toolbar__center {
  text-align: center;
  white-space: nowrap;
}
.collection-count {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--clr-text-muted);
}

/* View-as buttons */
.view-as {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
.view-as__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--clr-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.view-as__btn {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--clr-border);
  border-radius: var(--radius-sm);
  color: var(--clr-text-muted);
  background: var(--clr-white);
  cursor: pointer;
  transition: var(--transition);
  padding: 0;
}
.view-as__btn:hover { border-color: var(--clr-navy); color: var(--clr-navy); }
.view-as__btn.active {
  border-color: var(--clr-navy);
  background: var(--clr-navy);
  color: var(--clr-white);
}

/* Sort select */
.sort-select {
  border: 1.5px solid var(--clr-border);
  border-radius: var(--radius-sm);
  padding: 0.45em 2em 0.45em 0.8em;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--clr-navy);
  background: var(--clr-white);
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231B2B4B' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.6em center;
  transition: border-color var(--transition);
}
.sort-select:focus { outline: none; border-color: var(--clr-navy); }

/* ── Layout: sidebar + main ───────────────────────────────────────────── */
.collection-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: var(--space-2xl);
  align-items: start;
}

/* ── Sidebar ──────────────────────────────────────────────────────────── */
.collection-sidebar {
  position: sticky;
  top: calc(68px + 1rem);
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Active filter pills */
.sidebar-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--clr-border);
}
.sidebar-active-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.3em 0.7em;
  background: var(--clr-navy);
  color: var(--clr-white);
  font-size: 0.72rem;
  font-weight: 600;
  border-radius: var(--radius-pill);
  transition: var(--transition);
}
.sidebar-active-tag:hover { background: var(--clr-lake); }
.sidebar-clear-all {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--clr-lake);
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 0.3em 0;
  white-space: nowrap;
  align-self: center;
}
.sidebar-clear-all:hover { color: var(--clr-navy); }

/* Filter groups */
.sidebar-group {
  border-bottom: 1px solid var(--clr-border);
  padding-block: var(--space-md);
}
.sidebar-group:first-of-type { border-top: 1px solid var(--clr-border); }
.sidebar-group__title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-navy);
  cursor: pointer;
  list-style: none;
  user-select: none;
  padding-bottom: 0;
}
.sidebar-group__title::-webkit-details-marker { display: none; }
.sidebar-group[open] .sidebar-group__title svg { transform: rotate(180deg); }
.sidebar-group__title svg { transition: transform var(--transition); flex-shrink: 0; }
.sidebar-group__options {
  display: flex;
  flex-direction: column;
  margin-top: var(--space-md);
  gap: 2px;
}

/* Individual filter options */
.sidebar-option {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 0.3em 0.4em;
  border-radius: var(--radius-sm);
  transition: background var(--transition);
  cursor: pointer;
  color: var(--clr-text);
  text-decoration: none;
}
.sidebar-option:hover { background: var(--clr-lake-pale); }
.sidebar-option--active { color: var(--clr-navy); font-weight: 600; }
.sidebar-option__checkbox {
  width: 16px;
  height: 16px;
  border: 2px solid var(--clr-border);
  border-radius: 3px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--clr-white);
  transition: var(--transition);
}
.sidebar-option--active .sidebar-option__checkbox {
  background: var(--clr-navy);
  border-color: var(--clr-navy);
}
.sidebar-option--active .sidebar-option__checkbox svg { stroke: white; }
.sidebar-option__label { font-size: 0.88rem; flex: 1; }
.sidebar-option__count {
  font-size: 0.75rem;
  color: var(--clr-text-muted);
  margin-left: auto;
}

/* Mobile sidebar close btn (hidden on desktop) */
.sidebar-close-btn { display: none; }

/* ── Product grid with dynamic columns ────────────────────────────────── */
.collection-product-grid { display: grid; gap: var(--space-md); }
.collection-product-grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.collection-product-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.collection-product-grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }

/* Empty state */
.collection-empty { text-align: center; padding: var(--space-3xl); }
.collection-empty h2 { margin-bottom: var(--space-md); }
.collection-empty a { color: var(--clr-lake); text-decoration: underline; }

/* Pagination */
.collection-pagination {
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
  margin-top: var(--space-3xl);
  flex-wrap: wrap;
}

/* ── Mobile: sidebar becomes a drawer ─────────────────────────────────── */
@media (max-width: 860px) {
  .collection-layout { grid-template-columns: 1fr; }
  .collection-sidebar {
    position: fixed;
    top: 0;
    left: -100%;
    width: min(300px, 85vw);
    height: 100%;
    background: var(--clr-white);
    z-index: 300;
    overflow-y: auto;
    padding: var(--space-xl) var(--space-lg);
    box-shadow: 4px 0 24px rgba(27,43,75,0.2);
    transition: left 0.3s var(--ease);
    top: 0;
  }
  .collection-sidebar.open { left: 0; }
  .sidebar-close-btn {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-xl);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--clr-navy);
    cursor: pointer;
    background: none;
    border: 1.5px solid var(--clr-border);
    padding: 0.6em 1em;
    border-radius: var(--radius-sm);
    width: 100%;
    justify-content: center;
  }
  .collection-product-grid[data-cols="3"],
  .collection-product-grid[data-cols="4"] { grid-template-columns: repeat(2, 1fr); }
  .collection-toolbar { gap: var(--space-sm); }
  .view-as__label { display: none; }
}
@media (max-width: 480px) {
  .collection-product-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ══════════════════════════════════════════════════════════════════════
   SEARCH PAGE STYLES
   ══════════════════════════════════════════════════════════════════════ */

/* ── Breadcrumb ───────────────────────────────────────────────────────── */
.search-breadcrumb {
  background: var(--clr-off-white);
  border-bottom: 1px solid var(--clr-border);
  padding-block: 0.55rem;
  font-size: 0.8rem;
  color: var(--clr-text-muted);
}
.breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  list-style: none;
}
.breadcrumb-list a { color: var(--clr-text-muted); transition: color var(--transition); }
.breadcrumb-list a:hover { color: var(--clr-navy); }
.breadcrumb-list li:last-child { color: var(--clr-navy); font-weight: 600; }

/* ── Search Hero ──────────────────────────────────────────────────────── */
.search-hero {
  position: relative;
  height: clamp(220px, 32vw, 380px);
  overflow: hidden;
  background: var(--clr-navy);
  display: flex;
  flex-direction: column;
}
.search-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  display: block;
}
.search-hero__img--placeholder {
  background: linear-gradient(160deg, #0F1C32 0%, #1B2B4B 45%, #2E7DAA 100%);
}
.search-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(10,20,40,0.28) 0%,
    rgba(10,20,40,0.42) 50%,
    rgba(10,20,40,0.75) 85%,
    rgba(10,20,40,0.88) 100%
  );
}
/* Title centered in upper portion of hero */
.search-hero__content {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 72px; /* leave room for the search bar */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  padding-inline: var(--gutter);
  text-align: center;
}
.search-hero__title {
  color: var(--clr-white);
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 4.5vw, 3rem);
  font-weight: 700;
  text-shadow: 0 2px 12px rgba(0,0,0,0.5);
  margin: 0;
}
/* Search bar pinned to bottom of hero, full width */
.search-hero__bar-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
}
.search-hero__form {
  display: flex;
  width: 100%;
  height: 60px;
}
.search-hero__input {
  flex: 1;
  height: 100%;
  padding: 0 1.5rem;
  font-size: 1rem;
  font-family: var(--font-body);
  border: none;
  background: var(--clr-white);
  color: var(--clr-text);
  outline: none;
  min-width: 0;
}
.search-hero__input::placeholder { color: #9CA3AF; }
.search-hero__input:focus { background: #FEFEFE; }
.search-hero__btn {
  width: 72px;
  height: 100%;
  background: var(--clr-navy-dark);
  color: var(--clr-white);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background var(--transition);
}
.search-hero__btn:hover { background: var(--clr-lake); }
.search-hero__btn svg { display: block; }

/* ── Results summary bar ─────────────────────────────────────────────── */
.search-results-bar {
  background: var(--clr-white);
  border-bottom: 1px solid var(--clr-border);
  padding-block: 0.85rem;
}
.search-results-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
}
.search-results-bar__label {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--clr-navy);
}
.search-results-bar__label strong { font-weight: 700; }
.search-results-bar__showing {
  font-size: 0.85rem;
  color: var(--clr-text-muted);
}
.search-results-bar__showing strong { color: var(--clr-navy); font-weight: 700; }
.search-results-bar__showing em { font-style: italic; color: var(--clr-navy); }

/* ── Page body ───────────────────────────────────────────────────────── */
.search-page-body { padding-block: var(--space-lg) var(--space-3xl); }

/* ── Zero-count filter options ───────────────────────────────────────── */
.sidebar-option--zero { opacity: 0.4; pointer-events: none; }

/* ── Price range filter ──────────────────────────────────────────────── */
.sidebar-price-range { padding-top: var(--space-md); }
.price-range-inputs {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}
.price-range-label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--clr-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  flex: 1;
}
.price-range-input-wrap {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--clr-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--clr-white);
}
.price-range-currency {
  padding: 0 0.5rem;
  font-size: 0.82rem;
  color: var(--clr-text-muted);
  border-right: 1px solid var(--clr-border);
  background: var(--clr-bg-alt);
  height: 34px;
  display: flex;
  align-items: center;
}
.price-range-input {
  border: none;
  background: none;
  width: 100%;
  padding: 0 0.5rem;
  font-size: 0.88rem;
  height: 34px;
  color: var(--clr-navy);
  font-weight: 600;
  -moz-appearance: textfield;
}
.price-range-input::-webkit-outer-spin-button,
.price-range-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.price-range-input:focus { outline: none; }
.price-range-sep { color: var(--clr-text-muted); font-weight: 700; flex-shrink: 0; }
.price-range-apply { width: 100%; font-size: 0.8rem; padding: 0.5em 1em; }

/* ── Pre-search popular tags ─────────────────────────────────────────── */
.search-intro { padding: var(--space-2xl) 0; }
.search-popular__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
  margin-bottom: var(--space-sm);
}
.search-popular__tags { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.search-popular__tag {
  display: inline-block;
  padding: 0.4em 1em;
  background: var(--clr-lake-pale);
  border: 1.5px solid var(--clr-lake);
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--clr-navy);
  transition: var(--transition);
}
.search-popular__tag:hover {
  background: var(--clr-navy);
  border-color: var(--clr-navy);
  color: var(--clr-white);
}

/* ── Mobile sidebar for search ───────────────────────────────────────── */
@media (max-width: 860px) {
  #SearchSidebar {
    position: fixed;
    top: 0;
    left: -100%;
    width: min(300px, 85vw);
    height: 100%;
    background: var(--clr-white);
    z-index: 300;
    overflow-y: auto;
    padding: var(--space-xl) var(--space-lg);
    box-shadow: 4px 0 24px rgba(27,43,75,0.2);
    transition: left 0.3s var(--ease);
  }
  #SearchSidebar.open { left: 0; }
  #SearchSidebarClose { display: flex; }
}

/* ══════════════════════════════════════════════════════════════════════
   NEARBY LAKES — Collection Page Chips
   ══════════════════════════════════════════════════════════════════════ */

/* Container bar sits between hero and toolbar */
.nearby-lakes-bar {
  background: var(--clr-off-white);
  border-bottom: 1px solid var(--clr-border);
  padding: 0.65rem var(--gutter);
}

/* Header label */
.nearby-lakes-header {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
  margin-bottom: 0.55rem;
}
.nearby-lakes-header svg { flex-shrink: 0; stroke: var(--clr-text-muted); }

/* Chip row */
.nearby-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}

/* Individual chip */
.nearby-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0.32em 0.75em 0.32em 0.55em;
  background: var(--clr-white);
  border: 1.5px solid var(--clr-border);
  border-radius: var(--radius-pill);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--clr-navy);
  text-decoration: none;
  transition: border-color var(--transition), background var(--transition), color var(--transition);
  white-space: nowrap;
}
.nearby-chip:hover {
  border-color: var(--clr-lake);
  background: var(--clr-lake-pale);
  color: var(--clr-lake);
}
.nearby-chip__icon {
  display: flex;
  align-items: center;
  color: var(--clr-text-muted);
  transition: color var(--transition);
}
.nearby-chip:hover .nearby-chip__icon { color: var(--clr-lake); }
.nearby-chip__name { /* main text */ }
.nearby-chip__dist {
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--clr-text-muted);
  margin-left: 2px;
  transition: color var(--transition);
}
.nearby-chip:hover .nearby-chip__dist { color: var(--clr-lake); }

@media (max-width: 600px) {
  .nearby-chip { font-size: 0.72rem; }
  .nearby-chip__dist { display: none; } /* hide mileage on mobile to save space */
}

/* ── Search hero: title + search bar centered together ───────────────── */
/* Override the split layout (title centered, bar pinned to bottom) */
.search-hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
}
/* Content area: no longer needs bottom padding for bar, just centers vertically */
.search-hero__content {
  position: relative;     /* pull out of absolute so it flows with flex */
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  flex: 0 0 auto;
  z-index: 2;
  padding-inline: var(--gutter);
  text-align: center;
  padding-top: 0;
  padding-bottom: var(--space-lg);
}
/* Search bar: no longer absolute, sits in flex flow right under the title */
.search-hero__bar-wrap {
  position: relative;
  bottom: auto;
  left: auto;
  right: auto;
  z-index: 2;
  flex: 0 0 auto;
  max-width: 760px;
  width: 90%;
  margin-inline: auto;
}
/* Keep the form the same style but constrained to max-width */
.search-hero__form {
  width: 100%;
  height: 54px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

/* ── Search page: collection tiles — single row, no wrap ─────────────── */
.search-collection-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: var(--space-md);
  overflow-x: auto;
  padding-bottom: var(--space-xs);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--clr-border) transparent;
}
.search-collection-row::-webkit-scrollbar { height: 4px; }
.search-collection-row::-webkit-scrollbar-track { background: transparent; }
.search-collection-row::-webkit-scrollbar-thumb { background: var(--clr-border); border-radius: 2px; }

/* Tiles in the row: fixed width, never shrink below readable size */
.search-collection-row .search-collection-tile {
  flex: 0 0 200px;
  min-width: 180px;
  aspect-ratio: 3/2;
}

/* On wide screens with few tiles, let them grow to fill */
@media (min-width: 1100px) {
  .search-collection-row .search-collection-tile {
    flex: 1 0 180px;
    max-width: 260px;
  }
}

/* Filter options with zero count: visible but greyed — never hidden */
.sidebar-option--zero {
  opacity: 0.38;
  pointer-events: none; /* can't click a 0-result filter */
  cursor: default;
}
/* Override any previous display:none on zero options */
.sidebar-option--zero { display: flex !important; }

/* ── Checkbox-based filter options ──────────────────────────────────── */
.sidebar-option--cb {
  cursor: pointer;
  user-select: none;
}
/* Hide the native checkbox, use visual span instead */
.sidebar-option--cb input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
/* Visual checkbox square */
.sidebar-option__checkbox--visual {
  width: 16px;
  height: 16px;
  border: 2px solid var(--clr-border);
  border-radius: 3px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--clr-white);
  transition: var(--transition);
}
/* Checked state — driven by JS adding class to label */
.sidebar-option--cb:has(input:checked) .sidebar-option__checkbox--visual,
.sidebar-option--cb.is-checked .sidebar-option__checkbox--visual {
  background: var(--clr-navy);
  border-color: var(--clr-navy);
}
.sidebar-option--cb:has(input:checked) .sidebar-option__checkbox--visual::after,
.sidebar-option--cb.is-checked .sidebar-option__checkbox--visual::after {
  content: '';
  display: block;
  width: 4px;
  height: 7px;
  border: 2px solid white;
  border-top: none;
  border-left: none;
  transform: rotate(45deg) translate(-1px, -1px);
}
.sidebar-option--cb:has(input:checked) {
  color: var(--clr-navy);
  font-weight: 600;
}
.sidebar-option--cb:hover .sidebar-option__checkbox--visual {
  border-color: var(--clr-navy);
}
/* Prevent hover background flash on checkbox options */
.sidebar-option--cb:hover {
  background: var(--clr-lake-pale);
}

/* Active pills area */
.sidebar-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--clr-border);
}
.active-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0.28em 0.7em;
  background: var(--clr-navy);
  color: var(--clr-white);
  font-size: 0.72rem;
  font-weight: 600;
  border-radius: var(--radius-pill);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font-body);
}
.active-filter-pill:hover { background: var(--clr-lake); }
.active-filter-pill svg { flex-shrink: 0; }

/* :has() fallback for older browsers — JS adds is-checked class */
@supports not selector(:has(a, b)) {
  .sidebar-option--cb.is-checked .sidebar-option__checkbox--visual {
    background: var(--clr-navy);
    border-color: var(--clr-navy);
  }
}

/* ── Nearby Lakes bar — more prominent, centered ─────────────────────── */
.nearby-lakes-bar {
  background: var(--clr-navy);
  border-bottom: none;
  padding: var(--space-md) var(--gutter) var(--space-lg);
  text-align: center;
}
.nearby-lakes-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: var(--space-md);
}
.nearby-lakes-header svg { flex-shrink: 0; stroke: rgba(255,255,255,0.55); }

.nearby-chips {
  justify-content: center;
  gap: var(--space-sm);
}

.nearby-chip {
  padding: 0.45em 1.1em 0.45em 0.75em;
  background: rgba(255,255,255,0.08);
  border: 1.5px solid rgba(255,255,255,0.18);
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  gap: 6px;
}
.nearby-chip:hover {
  background: var(--clr-lake);
  border-color: var(--clr-lake);
  color: var(--clr-white);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(46,125,170,0.35);
}
.nearby-chip__icon { color: var(--clr-gold-light); }
.nearby-chip:hover .nearby-chip__icon { color: var(--clr-white); }
.nearby-chip__name { color: inherit; }
.nearby-chip__dist {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(255,255,255,0.5);
  margin-left: 2px;
}
.nearby-chip:hover .nearby-chip__dist { color: rgba(255,255,255,0.8); }

@media (max-width: 600px) {
  .nearby-chip__dist { display: inline; }
}

/* ══════════════════════════════════════════════════════════════════════
   COLLECTION SEARCH — Compact chip carousel (JS-measured widths)
   ══════════════════════════════════════════════════════════════════════ */

/* Carousel row */
.coll-carousel {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: var(--space-xl);
  width: 100%;
  box-sizing: border-box;
}

/* Clipping window — overflow:hidden is the key */
.coll-carousel__window {
  flex: 1 1 0%;
  min-width: 0;
  overflow: hidden;
}

/* Sliding track — chip widths set by JS */
.coll-carousel__track {
  display: flex;
  gap: 10px;
  transition: transform 0.36s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
  align-items: stretch;
}

/* Each chip — width injected by JS, overflow clipped */
.coll-chip {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0.55em 0.85em;
  background: var(--clr-navy);
  border: 1.5px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  text-decoration: none;
  overflow: hidden;
  box-sizing: border-box;
  transition: background var(--transition), border-color var(--transition),
              transform var(--transition), box-shadow var(--transition);
}
.coll-chip:hover {
  background: var(--clr-navy-light);
  border-color: var(--clr-lake-light);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(27,43,75,0.22);
}
.coll-chip--nearby {
  border-color: rgba(200,151,58,0.25);
}
.coll-chip--nearby:hover {
  border-color: var(--clr-gold);
}

/* Icon circle */
.coll-chip__icon {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  background: rgba(255,255,255,0.07);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.coll-chip:not(.coll-chip--nearby) .coll-chip__icon { color: var(--clr-lake-light); }
.coll-chip--nearby .coll-chip__icon                 { color: var(--clr-gold-light); }

/* Text column */
.coll-chip__inner {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  flex: 1;
  overflow: hidden;
}
.coll-chip__label {
  font-size: 0.57rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.coll-chip:not(.coll-chip--nearby) .coll-chip__label { color: var(--clr-lake-light); }
.coll-chip--nearby .coll-chip__label                 { color: var(--clr-gold-light); }

.coll-chip__title {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--clr-white);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.coll-chip__sub {
  font-size: 0.62rem;
  color: rgba(255,255,255,0.42);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color var(--transition);
}
.coll-chip:hover .coll-chip__sub { color: rgba(255,255,255,0.7); }

/* Nav arrows */
.coll-carousel__btn {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: var(--clr-navy);
  border: 1.5px solid rgba(255,255,255,0.15);
  border-radius: 50%;
  color: var(--clr-white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
  padding: 0;
}
.coll-carousel__btn:hover:not(:disabled) {
  background: var(--clr-lake);
  border-color: var(--clr-lake);
}
.coll-carousel__btn:disabled {
  opacity: 0.25;
  cursor: default;
}

/* Ensure old search-collection-row/grid tiles don't interfere */
.search-collection-row  { display: none !important; }
.search-collection-grid { display: none !important; }

/* ══════════════════════════════════════════════════════════════════════
   COLLECTION SEARCH CAROUSEL
   Chips sit directly inside .coll-carousel__window (the flex container)
   so flex-basis % resolves against the VISIBLE window width, not an
   unconstrained inner track. Prev/next use scrollBy() on the window.
   ══════════════════════════════════════════════════════════════════════ */

/* Outer row: arrow | window | arrow */
.coll-carousel {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: var(--space-xl);
}

/* Scrollable clipping window — IS the flex container for chips */
.coll-carousel__window {
  flex: 1 1 0%;
  min-width: 0;           /* allow shrinking below content */
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;          /* Firefox */
  -webkit-overflow-scrolling: touch;
}
.coll-carousel__window::-webkit-scrollbar { display: none; } /* Chrome/Safari */

/* ── Chip sizing
   flex-basis: calc((100% - 3*10px) / 4)
   100% here = .coll-carousel__window's width  ✓ (chips are direct children)
   3 gaps between 4 visible chips = 30px
   On mobile (≤ 520px): show 2 chips; gap = 1 × 10px = 10px
─────────────────────────────────────────────────────────────────────── */
.coll-chip {
  flex: 0 0 calc((100% - 30px) / 4);
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
  scroll-snap-align: start;

  /* Layout */
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0.55em 0.85em;
  overflow: hidden;

  /* Visual */
  background: var(--clr-navy);
  border: 1.5px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background var(--transition), border-color var(--transition),
              box-shadow var(--transition);
}
.coll-chip:hover {
  background: var(--clr-navy-light);
  border-color: var(--clr-lake-light);
  box-shadow: 0 4px 14px rgba(27,43,75,0.22);
}
.coll-chip--nearby               { border-color: rgba(200,151,58,0.25); }
.coll-chip--nearby:hover         { border-color: var(--clr-gold); }

/* Icon circle */
.coll-chip__icon {
  flex-shrink: 0;
  width: 26px; height: 26px;
  background: rgba(255,255,255,0.07);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.coll-chip:not(.coll-chip--nearby) .coll-chip__icon { color: var(--clr-lake-light); }
.coll-chip--nearby .coll-chip__icon                 { color: var(--clr-gold-light); }

/* Text column */
.coll-chip__inner {
  display: flex; flex-direction: column; gap: 1px;
  min-width: 0; flex: 1; overflow: hidden;
}
.coll-chip__label {
  font-size: 0.57rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.coll-chip:not(.coll-chip--nearby) .coll-chip__label { color: var(--clr-lake-light); }
.coll-chip--nearby .coll-chip__label                 { color: var(--clr-gold-light); }
.coll-chip__title {
  font-family: var(--font-display); font-size: 0.82rem; font-weight: 700;
  color: var(--clr-white); line-height: 1.2;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.coll-chip__sub {
  font-size: 0.62rem; color: rgba(255,255,255,0.42);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: color var(--transition);
}
.coll-chip:hover .coll-chip__sub { color: rgba(255,255,255,0.7); }

/* Arrow buttons */
.coll-carousel__btn {
  flex-shrink: 0;
  width: 32px; height: 32px;
  background: var(--clr-navy);
  border: 1.5px solid rgba(255,255,255,0.15);
  border-radius: 50%;
  color: var(--clr-white);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0;
  transition: var(--transition);
}
.coll-carousel__btn:hover:not(:disabled) {
  background: var(--clr-lake); border-color: var(--clr-lake);
}
.coll-carousel__btn:disabled { opacity: 0.25; cursor: default; }

/* Mobile: 2 chips wide */
@media (max-width: 520px) {
  .coll-chip { flex: 0 0 calc((100% - 10px) / 2); }
}

/* Suppress old grid/row classes */
.search-collection-row,
.search-collection-grid { display: none !important; }

/* ── Carousel overflow containment ────────────────────────────────────── */
/* Grid items don't implicitly prevent overflow — min-width:0 fixes that */
.collection-main {
  min-width: 0;
}
/* Carousel must not exceed its parent's width */
.coll-carousel {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
/* CollectionResults div also needs containment */
#CollectionResults {
  max-width: 100%;
  overflow: hidden;         /* clip the carousel row — does NOT affect product grid */
}
/* Window already has overflow-x:auto for scrolling; make sure it can't expand parent */
.coll-carousel__window {
  max-width: 100%;
}

/* ── Nearby Lakes bar — compact white redesign ───────────────────────── */
.nearby-lakes-bar {
  background: var(--clr-white);
  border-bottom: 1px solid var(--clr-border);
  padding: var(--space-sm) var(--gutter);
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}
.nearby-lakes-header {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
  margin-bottom: 0;
  white-space: nowrap;
  flex-shrink: 0;
}
.nearby-lakes-header svg { stroke: var(--clr-text-muted); }

.nearby-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  align-items: center;
  justify-content: flex-start;
}

/* Chips: white bg, lake-blue border, blue text */
.nearby-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0.28em 0.85em 0.28em 0.6em;
  background: var(--clr-white);
  border: 1.5px solid var(--clr-lake);
  border-radius: var(--radius-pill);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--clr-lake);
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--transition), color var(--transition), box-shadow var(--transition);
}
.nearby-chip:hover {
  background: var(--clr-lake);
  color: var(--clr-white);
  transform: none;
  box-shadow: 0 2px 8px rgba(46,125,170,0.25);
}
.nearby-chip__icon { color: inherit; display: flex; align-items: center; }
.nearby-chip__name { color: inherit; }
.nearby-chip__dist {
  font-size: 0.68rem;
  font-weight: 400;
  opacity: 0.7;
  color: inherit;
}

/* ── Nearby Lakes bar — centered chips, larger font ─────────────────── */
.nearby-lakes-bar {
  justify-content: center;
  text-align: center;
}
.nearby-chips {
  justify-content: center;
}
.nearby-chip {
  font-size: 0.88rem;
  padding: 0.38em 1em 0.38em 0.75em;
}
.nearby-chip__dist {
  font-size: 0.78rem;
}

/* ══════════════════════════════════════════════════════════════════════
   COLLECTION CHIP CAROUSEL — MOBILE  (≤ 640px)
   - Small nav buttons stay visible for tap navigation
   - 1 chip at a time, full lake name readable
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {

  /* Smaller buttons on mobile — keep them visible */
  .coll-carousel__btn {
    width: 28px  !important;
    height: 28px !important;
    flex-shrink: 0 !important;
  }
  .coll-carousel { gap: 6px !important; }

  /* Each chip: fills the remaining window width (1 at a time) */
  .coll-chip {
    flex: 0 0 calc(100% - 0px) !important;
    min-width: 0     !important;
    max-width: 100%  !important;
    padding: 0.75em 1em !important;
    scroll-snap-align: center;
  }

  /* Full lake name — allow wrapping, no truncation */
  .coll-chip__title {
    white-space: normal  !important;
    overflow: visible    !important;
    text-overflow: unset !important;
    font-size: 1rem      !important;
    line-height: 1.3     !important;
  }
  .coll-chip__label { font-size: 0.65rem !important; }
  .coll-chip__sub   { font-size: 0.72rem !important; white-space: normal !important; }
  .coll-chip__icon  { width: 28px !important; height: 28px !important; }
}

/* ── Category tile hover effect — matches lakelifedesigns.com zoom ───── */

/* Tile lifts on hover */
.category-tile {
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.category-tile:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: 0 16px 40px rgba(10,20,40,0.35);
}

/* Image zooms more dramatically and faster */
.category-tile__img {
  transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  filter: brightness(1.01);
}
.category-tile:hover .category-tile__img {
  transform: scale(1.22);
  filter: brightness(1.22);
}

/* Overlay brightens on hover — the "opening up" feel */
.category-tile__overlay {
  transition: background 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.category-tile:hover .category-tile__overlay {
  background: linear-gradient(
    to top,
    rgba(10,20,40,0.65) 0%,
    rgba(10,20,40,0.12) 45%,
    transparent 100%
  );
}

/* Title slides up slightly on hover */
.category-tile__body {
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.category-tile:hover .category-tile__body {
  transform: translateY(-4px);
}

/* Title brightens */
.category-tile__title {
  transition: color 0.3s ease;
}
.category-tile:hover .category-tile__title {
  color: var(--clr-white);
}

/* Count turns gold on hover */
.category-tile:hover .category-tile__count {
  color: var(--clr-gold-light);
}

/* ── Footer newsletter column ────────────────────────────────────────── */

.footer-newsletter__form input[type="email"] {
  flex: 1;
  padding: 0.7em 0.9em;
  font-size: 0.85rem;
  border: none;
  background: rgba(255,255,255,0.08);
  color: var(--clr-white);
  outline: none;
  min-width: 0;
}
.footer-newsletter__form input[type="email"]::placeholder {
  color: rgba(255,255,255,0.4);
}
.footer-newsletter__form input[type="email"]:focus {
  background: rgba(255,255,255,0.13);
}
.footer-newsletter__form button {
  flex-shrink: 0;
  width: 42px;
  background: var(--clr-gold);
  color: var(--clr-navy-dark);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
}
.footer-newsletter__form button:hover {
  background: var(--clr-gold-light);
}

/* Extend footer grid to 5 cols when newsletter is present */
.footer-grid:has(.footer-newsletter) {
  grid-template-columns: 1.6fr 1fr 1fr 1.4fr;
}

/* ══════════════════════════════════════════════════════════════════════
   FOOTER — Redesigned to match live site, fully block-based
   ══════════════════════════════════════════════════════════════════════ */
.site-footer {
  background: var(--clr-navy-dark);
  color: rgba(255,255,255,0.7);
}

/* Brand column */

/* Optional nav menu inside brand column */
.footer-brand__nav {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);
}
.footer-brand__nav li a {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.6);
  transition: color var(--transition);
  display: block;
  padding: 2px 0;
}
.footer-brand__nav li a:hover { color: var(--clr-white); }

/* Social links */

.footer-social a:hover { color: var(--clr-white); }
.footer-social a svg { flex-shrink: 0; }

/* Column titles — larger, bolder */

/* Link menu column */

.footer-col__links li a {
  font-size: 0.92rem;
  color: rgba(255,255,255,0.6);
  transition: color var(--transition);
  display: block;
}
.footer-col__links li a:hover { color: var(--clr-white); }

/* Text column */

.footer-col__text p { color: rgba(255,255,255,0.6); }

.footer-col__email:hover { color: var(--clr-white); }

/* Newsletter column */

.footer-newsletter__form input[type="email"] {
  flex: 1;
  min-width: 0;
  padding: 0.75em 1em;
  font-size: 0.9rem;
  border: none;
  background: rgba(255,255,255,0.07);
  color: var(--clr-white);
  outline: none;
}
.footer-newsletter__form input[type="email"]::placeholder {
  color: rgba(255,255,255,0.35);
}
.footer-newsletter__form input[type="email"]:focus {
  background: rgba(255,255,255,0.12);
}
.footer-newsletter__form button {
  flex-shrink: 0;
  width: 46px;
  background: var(--clr-gold);
  color: var(--clr-navy-dark);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
}
.footer-newsletter__form button:hover { background: var(--clr-gold-light); }

/* Bottom bar */

.footer-bottom a { color: rgba(255,255,255,0.4); transition: color var(--transition); }
.footer-bottom a:hover { color: var(--clr-white); }

/* Responsive */
@media (max-width: 900px) {
  
}
@media (max-width: 560px) {
  
  
}

/* ── Header custom link ──────────────────────────────────────────────── */
.header-custom-link {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--clr-navy) !important;
  padding: 0 !important;
}
.header-custom-link:hover { color: var(--clr-lake) !important; }

/* Announcement bar items separated by dots on wide screens */
.announcement-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-md);
  padding: 0.55rem var(--gutter);
  text-align: center;
}
.announcement-bar__item { white-space: nowrap; }
.announcement-bar__item--link {
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.announcement-bar__item--link:hover { opacity: 0.8; }
@media (max-width: 640px) {
  .announcement-bar__inner { justify-content: center; }
}

/* Custom HTML footer block */

.footer-col--html a { color: rgba(255,255,255,0.6); transition: color var(--transition); }
.footer-col--html a:hover { color: var(--clr-white); }
.footer-col--html p { color: rgba(255,255,255,0.6); margin-bottom: var(--space-sm); }
.footer-col--html h3, .footer-col--html h4 { color: var(--clr-white); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: var(--space-lg); }

/* ── Footer newsletter — larger, more prominent ──────────────────────── */
.footer-newsletter 

.footer-newsletter__form input[type="email"] {
  padding: 0.9em 1.1em;
  font-size: 1rem;
}
.footer-newsletter__form button {
  width: 54px;
  background: var(--clr-gold);
}
.footer-newsletter__form button:hover {
  background: var(--clr-gold-light);
}
.footer-newsletter__form button svg {
  width: 18px;
  height: 18px;
}

/* ── Header: logo left, nav centered, sticky ─────────────────────────── */

/* Header inner — height controlled by section setting (inline style) */
.header-inner {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  position: relative;
}

/* Logo: left-aligned, no longer center */
.header-logo {
  justify-self: unset;
  flex-shrink: 0;
  order: 0;
}

/* Nav: takes remaining space, centers its links */
.header-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xl);
  order: 1;
}

/* Actions: pushed to far right */
.header-actions {
  flex-shrink: 0;
  order: 2;
  margin-left: auto;
}

/* Sticky: already position:sticky but ensure it's always visible */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
}

/* Mobile: keep logo left, hamburger right */
@media (max-width: 900px) {
  .header-inner {
    display: flex;
    justify-content: space-between;
  }
  .header-nav { display: none; }
  .header-logo { order: 0; flex: 1; }
  .header-actions { order: 1; margin-left: 0; }
}

/* ── Footer: 6-column grid layout ───────────────────────────────────── */

/* Tablet: collapse to 3 cols */
@media (max-width: 900px) {
  
  .footer-grid .footer-col,
  .footer-grid .footer-brand,
  .footer-grid .footer-newsletter { grid-column: span 1 !important; }
}
/* Mobile: single column */
@media (max-width: 560px) {
  
  .footer-grid [style*="grid-column"] { grid-column: 1 / -1 !important; }
}

/* ── Footer: strict equal 6-column grid, mobile-friendly ──────────────── */

/* Force all col content to stay inside its column */
.footer-col,
.footer-brand,
.footer-newsletter {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
  box-sizing: border-box;
}
/* All links and text must not overflow */
.footer-col a,
.footer-col p,
.footer-col__links li,

/* Tablet (≤ 960px): collapse to 3 equal columns, each block = 1 of 3 */
@media (max-width: 960px) {
  
  .footer-grid > * {
    grid-column: span 1 !important;
  }
}

/* Small tablet (≤ 640px): collapse to 2 equal columns */
@media (max-width: 640px) {
  
  .footer-grid > * {
    grid-column: span 1 !important;
  }
}

/* Mobile (≤ 480px): single full-width column */
@media (max-width: 480px) {
  
  .footer-grid > * {
    grid-column: 1 / -1 !important;
  }
}

.site-footer {
  background: var(--clr-navy-dark);
  color: rgba(255,255,255,0.7);
}

/* Inner container matches the page container */

/* Top section */

/* ── 6-column grid ────────────────────────────────────────── */
/* Each "column" = 1fr, all truly equal via minmax(0,1fr)     */

/* Span classes — set by block setting (1-6) */

/* All columns: prevent overflow */

/* ── Column titles ─────────────────────────────────────────── */

/* ── Brand column ─────────────────────────────────────────── */

.footer-col__email:hover { color: var(--clr-white); }
.footer-col__email svg { flex-shrink: 0; }

/* ── Social links ─────────────────────────────────────────── */

.footer-social a:hover { color: var(--clr-white); }
.footer-social svg { flex-shrink: 0; }

/* ── Link list columns ────────────────────────────────────── */

.footer-col__links li a {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  display: block;
  transition: color var(--transition);
}
.footer-col__links li a:hover { color: var(--clr-white); }

/* ── Text column ──────────────────────────────────────────── */

.footer-col__text p { color: rgba(255,255,255,0.6); margin-bottom: 8px; }

/* ── Newsletter ───────────────────────────────────────────── */

/* Form: email input + button side by side, NEVER shrinks below readable */

.footer-newsletter__form input[type="email"] {
  flex: 1 1 0%;
  min-width: 0;
  width: 0;           /* forces flex to control width, not content */
  padding: 12px 14px;
  font-size: 0.9rem;
  border: none;
  background: rgba(255,255,255,0.07);
  color: var(--clr-white);
  outline: none;
  box-sizing: border-box;
}
.footer-newsletter__form input[type="email"]::placeholder { color: rgba(255,255,255,0.38); }
.footer-newsletter__form input[type="email"]:focus { background: rgba(255,255,255,0.12); }
.footer-newsletter__form button {
  flex: 0 0 48px;
  width: 48px;
  height: auto;
  background: var(--clr-gold);
  color: var(--clr-navy-dark);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
}
.footer-newsletter__form button:hover { background: var(--clr-gold-light); }

/* ── Custom HTML column ───────────────────────────────────── */

.footer-col--html a { color: rgba(255,255,255,0.6); transition: color var(--transition); }
.footer-col--html a:hover { color: var(--clr-white); }
.footer-col--html p { color: rgba(255,255,255,0.6); margin-bottom: 8px; }

/* ── Bottom bar ───────────────────────────────────────────── */

.footer-bottom a { color: rgba(255,255,255,0.38); }
.footer-bottom a:hover { color: var(--clr-white); }

/* Medium desktop: 4 columns */
@media (max-width: 1100px) {
  
  .f-span-5, 
  
  
}

/* Tablet: 3 columns — all blocks become 1 column wide */
@media (max-width: 860px) {
  
  .footer-grid 
}

/* Small tablet: 2 columns */
@media (max-width: 560px) {
  
  .footer-grid 
  /* Newsletter gets full width on 2-col layout so form is usable */
  .footer-grid .footer-newsletter {
    grid-column: span 2 !important;
  }
}

/* Mobile: single column */
@media (max-width: 380px) {
  
  .footer-grid .footer-col,
  .footer-grid .footer-newsletter {
    grid-column: 1 / -1 !important;
  }
}

/* ================================================================
   FOOTER — 6-column grid, single authoritative definition
   ================================================================ */
.site-footer { background: var(--clr-navy-dark); color: rgba(255,255,255,0.7); }

.footer-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--gutter);
  box-sizing: border-box;
}
.footer-top {
  padding: 56px 0 48px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

/* TRUE 6-column grid — minmax(0,1fr) prevents any column from expanding */
.footer-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 32px 20px;
  align-items: start;
  width: 100%;
  box-sizing: border-box;
}

/* Span utility classes */
.f-span-1 { grid-column: span 1; }
.f-span-2 { grid-column: span 2; }
.f-span-3 { grid-column: span 3; }
.f-span-4 { grid-column: span 4; }
.f-span-5 { grid-column: span 5; }
.f-span-6 { grid-column: span 6; }

/* Every column: prevent overflow, equal treatment */
.footer-col {
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

/* Column titles */
.footer-col__title {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clr-white);
  margin-bottom: 14px;
  line-height: 1.3;
}

/* Brand */
.footer-brand__logo { display: block; margin-bottom: 10px; }
.footer-brand__logo img { max-height: 48px; width: auto; display: block; }
.footer-brand__logo-text { font-family: var(--font-display); font-size: 1.1rem; font-weight: 700; color: var(--clr-white); }
.footer-brand__desc { font-size: 0.82rem; line-height: 1.6; color: rgba(255,255,255,0.52); margin-bottom: 10px; }
.footer-col__email { display: flex; align-items: flex-start; gap: 5px; font-size: 0.8rem; color: rgba(255,255,255,0.52); text-decoration: none; word-break: break-all; transition: color var(--transition); margin-bottom: 10px; }
.footer-col__email:hover { color: var(--clr-white); }
.footer-col__email svg { flex-shrink: 0; margin-top: 2px; }

/* Social */
.footer-social { display: flex; flex-direction: column; gap: 7px; margin-top: 4px; }
.footer-social a { display: flex; align-items: center; gap: 6px; font-size: 0.82rem; color: rgba(255,255,255,0.52); text-decoration: none; transition: color var(--transition); }
.footer-social a:hover { color: var(--clr-white); }

/* Links */
.footer-col__links { list-style: none; display: flex; flex-direction: column; gap: 7px; }
.footer-col__links li a { font-size: 0.85rem; color: rgba(255,255,255,0.58); text-decoration: none; display: block; transition: color var(--transition); }
.footer-col__links li a:hover { color: var(--clr-white); }

/* Text col */
.footer-col__text { font-size: 0.85rem; line-height: 1.65; color: rgba(255,255,255,0.58); }
.footer-col__text p { color: rgba(255,255,255,0.58); margin-bottom: 6px; }

/* Newsletter title — serif, larger */
.footer-newsletter__title {
  font-family: var(--font-display) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin-bottom: 8px;
}
.footer-newsletter__text { font-size: 0.82rem; line-height: 1.6; color: rgba(255,255,255,0.58); margin-bottom: 12px; }

/* Newsletter form — critical: width:0 on input prevents overflow */
.footer-newsletter__form {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-radius: 5px;
  overflow: hidden;
}
.footer-newsletter__form input[type="email"] {
  flex: 1 1 0%;
  min-width: 0;
  width: 0;
  padding: 10px 12px;
  font-size: 0.88rem;
  border: none;
  background: rgba(255,255,255,0.07);
  color: var(--clr-white);
  outline: none;
  box-sizing: border-box;
}
.footer-newsletter__form input[type="email"]::placeholder { color: rgba(255,255,255,0.35); }
.footer-newsletter__form input[type="email"]:focus { background: rgba(255,255,255,0.11); }
.footer-newsletter__form button {
  flex: 0 0 44px;
  background: var(--clr-gold);
  color: var(--clr-navy-dark);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
  padding: 0;
}
.footer-newsletter__form button:hover { background: var(--clr-gold-light); }
.footer-newsletter__success { font-size: 0.78rem; color: var(--clr-gold-light); margin-top: 6px; font-weight: 700; }

/* Custom HTML */
.footer-col--html { font-size: 0.85rem; line-height: 1.65; color: rgba(255,255,255,0.58); }
.footer-col--html a { color: rgba(255,255,255,0.58); transition: color var(--transition); }
.footer-col--html a:hover { color: var(--clr-white); }
.footer-col--html p { color: rgba(255,255,255,0.58); margin-bottom: 6px; }

/* Bottom bar */
.footer-bottom-bar { padding: 18px 0; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 0.75rem; color: rgba(255,255,255,0.35); }
.footer-bottom a { color: rgba(255,255,255,0.35); }
.footer-bottom a:hover { color: var(--clr-white); }

/* ── Responsive ───────────────────────────────────────────── */
/* Tablet landscape: 3 cols */
@media (max-width: 900px) {
  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .footer-grid .footer-col { grid-column: span 1 !important; }
  .footer-grid .footer-newsletter { grid-column: span 3 !important; }
}
/* Mobile large: 2 cols */
@media (max-width: 580px) {
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px 14px;
  }
  .footer-grid .footer-col { grid-column: span 1 !important; }
  .footer-grid .footer-newsletter { grid-column: span 2 !important; }
}
/* Mobile small: 1 col */
@media (max-width: 380px) {
  .footer-grid { grid-template-columns: 1fr !important; gap: 24px; }
  .footer-grid .footer-col,
  .footer-grid .footer-newsletter { grid-column: 1 / -1 !important; }
}

/* ── Footer block text alignment ───────────────────────────────────────── */
/* text-align is set inline per block; these ensure children respect it */
.footer-col[style*="text-align: center"] .footer-col__links,
.footer-col[style*="text-align:center"] .footer-col__links { align-items: center; }
.footer-col[style*="text-align: right"] .footer-col__links,
.footer-col[style*="text-align:right"] .footer-col__links  { align-items: flex-end; }
.footer-col[style*="text-align: center"] .footer-social,
.footer-col[style*="text-align:center"] .footer-social     { align-items: center; }
.footer-col[style*="text-align: right"] .footer-social,
.footer-col[style*="text-align:right"] .footer-social      { align-items: flex-end; }
.footer-col[style*="text-align: center"] .footer-col__email,
.footer-col[style*="text-align:center"] .footer-col__email { justify-content: center; }
.footer-col[style*="text-align: right"] .footer-col__email,
.footer-col[style*="text-align:right"] .footer-col__email  { justify-content: flex-end; }
.footer-col[style*="text-align: center"] .footer-newsletter__form,
.footer-col[style*="text-align:center"] .footer-newsletter__form { max-width: 320px; margin: 0 auto; }
.footer-col[style*="text-align: right"] .footer-newsletter__form,
.footer-col[style*="text-align:right"] .footer-newsletter__form  { max-width: 320px; margin-left: auto; }

/* ── Header pinned to top of viewport on scroll ──────────────────────── */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 500 !important;
}

/* Push page content down so nothing hides behind the fixed header.
   72px = header height. Adjust if header height changes. */
/* body padding-top set by JS */

/* Announcement bar and top bar sit above the header, so account for them */
.announcement-bar + .top-bar + .site-header,
.announcement-bar + .site-header,
.top-bar + .site-header {
  /* These sections are inside the fixed header wrapper in layout,
     so no extra offset needed — body padding-top covers it. */
}

/* ── Site header wrap — fixed container for bar + header ─────────────── */
.site-header-wrap {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 500 !important;
}
/* The header itself should no longer be independently fixed */
.site-header {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
}

/* Body padding accounts for the full height of the header wrap.
   72px header + ~32px for announcement + top bar combined.
   JS below sets the exact value dynamically. */
/* body padding-top set by JS */

/* ── Header: sticky — scrolls into view with the page, locks at top ─── */
/* Sticky requires: no ancestor with overflow:hidden/auto/scroll         */
html, body { overflow-x: hidden; overflow-y: auto; }

.site-header-wrap { display: contents; } /* neutralise any leftover wrap */

.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 300 !important;
  left: auto !important;
  right: auto !important;
  width: auto !important;
}

/* No body padding-top needed with sticky */
body { padding-top: 0 !important; }

/* ── Header: always pinned to top, solid white background ────────────── */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 500 !important;
  background: var(--clr-white) !important;
  box-shadow: 0 2px 12px rgba(27,43,75,0.1);
}

/* Push content below the fixed header */
/* body padding-top set by JS */

/* ── Spacer section ──────────────────────────────────────────────────── */
.section-spacer { width: 100%; display: block; }

@media (max-width: 640px) {
  .section-spacer {
    height: var(--spacer-mobile-height, 20px) !important;
  }
  .section-spacer--hide-mobile {
    display: none !important;
  }
}

/* ── Product page breadcrumb bar ─────────────────────────────────────── */
.product-breadcrumb {
  background: var(--clr-off-white);
  border-bottom: 1px solid var(--clr-border);
  padding-block: 0.55rem;
  font-size: 0.8rem;
  color: var(--clr-text-muted);
}
.product-breadcrumb .breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  list-style: none;
}
.product-breadcrumb .breadcrumb-list a {
  color: var(--clr-lake);
  text-decoration: none;
  transition: color var(--transition);
  display: flex;
  align-items: center;
}
.product-breadcrumb .breadcrumb-list a:hover { color: var(--clr-navy); }
.product-breadcrumb .breadcrumb-list [aria-current="page"] {
  color: var(--clr-navy);
  font-weight: 600;
  /* Truncate long product titles on mobile */
  max-width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: bottom;
}
@media (max-width: 480px) {
  .product-breadcrumb .breadcrumb-list [aria-current="page"] { max-width: 130px; }
}

/* ── Product page breadcrumb bar ─────────────────────────────────────── */
.product-breadcrumb {
  background: var(--clr-off-white);
  border-bottom: 1px solid var(--clr-border);
  padding-block: 0.6rem;
  font-size: 0.8rem;
}
.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  list-style: none;
}
.breadcrumb-list__item {
  display: flex;
  align-items: center;
}
/* CSS-generated separator before every item except the first */
.breadcrumb-list__item + .breadcrumb-list__item::before {
  content: '\203A'; /* rsaquo */
  margin: 0 0.45rem;
  color: var(--clr-text-muted);
  font-size: 1rem;
  line-height: 1;
}
.breadcrumb-list__item a {
  color: var(--clr-lake);
  text-decoration: none;
  transition: color var(--transition);
  display: flex;
  align-items: center;
}
.breadcrumb-list__item a:hover { color: var(--clr-navy); }
.breadcrumb-list__item [aria-current="page"] {
  color: var(--clr-navy);
  font-weight: 600;
  max-width: 220px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
}
@media (max-width: 480px) {
  .breadcrumb-list__item [aria-current="page"] { max-width: 140px; }
}

/* ── Product Recommendations Section ─────────────────────────────────── */
.product-recs-section {
  padding: var(--space-3xl) 0;
  background: var(--clr-off-white);
}

.product-recs__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--space-xl);
  gap: var(--space-md);
}
.product-recs__title {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--clr-navy);
  margin: 0;
}
.product-recs__see-all {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--clr-lake);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}
.product-recs__see-all:hover { color: var(--clr-navy); }

/* Carousel wrapper with arrow buttons */
.product-recs__wrap {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

/* Arrow buttons */
.product-recs__arrow {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid var(--clr-border);
  background: var(--clr-white);
  color: var(--clr-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
  padding: 0;
}
.product-recs__arrow:hover:not(:disabled) {
  background: var(--clr-navy);
  border-color: var(--clr-navy);
  color: var(--clr-white);
}
.product-recs__arrow:disabled { opacity: 0.3; cursor: default; }

/* Scrolling track */
.product-recs__track {
  flex: 1;
  min-width: 0;
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.product-recs__track::-webkit-scrollbar { display: none; }

/* Individual product card */
.rec-card {
  flex: 0 0 200px;
  scroll-snap-align: start;
  background: var(--clr-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  border: 1.5px solid var(--clr-border);
  transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition);
  display: flex;
  flex-direction: column;
}
.rec-card:hover {
  box-shadow: 0 8px 24px rgba(27,43,75,0.12);
  transform: translateY(-2px);
  border-color: var(--clr-lake);
}

.rec-card__img-wrap {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--clr-bg-alt);
}
.rec-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease);
  display: block;
}
.rec-card:hover .rec-card__img { transform: scale(1.05); }
.rec-card__img--placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1B2B4B 0%, #2E7DAA 100%);
}

.rec-card__body {
  padding: 10px 12px 14px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rec-card__nearby-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-gold);
}
.rec-card__title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--clr-navy);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rec-card__price {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--clr-navy);
  margin-top: auto;
  padding-top: 4px;
}

/* Mobile: narrower cards */
@media (max-width: 640px) {
  .product-recs__arrow { width: 32px; height: 32px; }
  .rec-card { flex: 0 0 155px; }
  .product-recs__title { font-size: 1.2rem; }
}

/* ── Lake collection cards in nearby carousel ───────────────────────── */
.rec-card--lake .rec-card__img-wrap {
  aspect-ratio: 4/3;  /* slightly wider than product cards */
}
.rec-card--lake .rec-card__img--placeholder {
  background: linear-gradient(135deg, var(--clr-navy) 0%, var(--clr-lake) 100%);
}
.rec-card__cta {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--clr-lake);
  margin-top: auto;
  padding-top: 6px;
  transition: color var(--transition);
}
.rec-card--lake:hover .rec-card__cta { color: var(--clr-navy); }
.rec-card--lake .rec-card__nearby-label {
  color: var(--clr-lake);  /* distance label in lake blue for lake cards */
}

/* ── Nearby lake cards — bigger bolder lake name ─────────────────────── */
.rec-card__lake-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--clr-navy);
  line-height: 1.25;
  margin-bottom: 4px;
  /* Don't truncate — show full lake name */
  white-space: normal;
  overflow: visible;
  -webkit-line-clamp: unset;
}
.rec-card__lake-dist {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--clr-lake);
  display: block;
  margin-bottom: 4px;
}
/* Lake card body: slightly more padding for the larger title */
.rec-card--lake .rec-card__body {
  padding: 12px 14px 16px;
}
/* Lake card: slightly wider than product cards */
.rec-card--lake {
  flex: 0 0 210px;
}
@media (max-width: 640px) {
  .rec-card--lake { flex: 0 0 170px; }
  .rec-card__lake-title { font-size: 0.92rem; }
}

/* ── Lake card placeholder: white instead of blue ───────────────────── */
.rec-card--lake .rec-card__img--placeholder {
  background: var(--clr-off-white);
  border-bottom: 1px solid var(--clr-border);
}

/* ── Lake card: hide image area entirely when no image available ──────── */
.rec-card--lake .rec-card__img-wrap {
  display: none;
}
/* Only show image area when there's an actual image inside it */
.rec-card--lake .rec-card__img-wrap:has(img) {
  display: block;
}
/* Fallback for browsers without :has() support — JS adds class */
.rec-card--lake.has-image .rec-card__img-wrap {
  display: block;
}

/* ================================================================
   FOOTER LAYOUT OVERRIDE — clean 3-col desktop, stacked centered mobile
   ================================================================ */

/* Wipe previous grid definition and use a clean one */
.footer-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 40px 32px !important;
  align-items: start !important;
  justify-items: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Every column: center its content */
.footer-col {
  text-align: center !important;
  width: 100% !important;
}

/* Center inline flex children (email link, social links) */
.footer-col .footer-col__email,
.footer-col .footer-social a {
  justify-content: center !important;
}
.footer-col .footer-col__links {
  align-items: center !important;
}
.footer-col .footer-social {
  align-items: center !important;
}
.footer-col .footer-newsletter__form {
  max-width: 340px !important;
  margin: 0 auto !important;
}

/* Tablet: 3-col still works (each span-2 out of 6) */
@media (max-width: 900px) {
  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 32px 20px !important;
  }
  .footer-grid .footer-col { grid-column: span 1 !important; }
}

/* Mobile: single column, everything stacked centered */
@media (max-width: 600px) {
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 36px 0 !important;
  }
  .footer-grid .footer-col { grid-column: 1 / -1 !important; }
  .footer-col .footer-newsletter__form { max-width: 100% !important; }
}

/* ================================================================
   CONTACT FORM SECTION
   ================================================================ */
.contact-section { padding-block: var(--space-3xl); }

.contact-wrap { max-width: 900px; margin: 0 auto; }

/* Heading area */
.contact-header {
  text-align: center;
  margin-bottom: var(--space-3xl);
}
.contact-header h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  margin-bottom: var(--space-md);
}
.contact-subtext {
  font-size: 1rem;
  line-height: 1.7;
  max-width: 55ch;
  margin: 0 auto;
  color: var(--clr-text-muted);
}

/* Two-col layout: info + form */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.8fr;
  gap: var(--space-3xl);
  align-items: start;
}

/* Info panel */
.contact-info__title {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: var(--space-md);
}
.contact-info__text {
  font-size: 0.95rem;
  line-height: 1.7;
  margin-bottom: var(--space-lg);
}
.contact-info__email {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
  margin-bottom: var(--space-md);
  transition: opacity var(--transition);
}
.contact-info__email:hover { opacity: 0.75; }
.contact-info__response {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: var(--clr-text-muted);
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--clr-border);
}

/* Form fields */
.contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
}
.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: var(--space-lg);
}
.contact-form__field label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--clr-navy);
}
.contact-form__required { color: var(--clr-lake); margin-left: 2px; }
.contact-form__optional { font-weight: 400; color: var(--clr-text-muted); }

.contact-form__field input,
.contact-form__field textarea {
  width: 100%;
  padding: 0.75em 1em;
  font-size: 0.95rem;
  font-family: var(--font-body);
  border: 1.5px solid var(--clr-border);
  border-radius: var(--radius-md);
  background: var(--clr-white);
  color: var(--clr-text);
  outline: none;
  transition: border-color var(--transition), box-shadow var(--transition);
  box-sizing: border-box;
}
.contact-form__field input:focus,
.contact-form__field textarea:focus {
  border-color: var(--clr-lake);
  box-shadow: 0 0 0 3px rgba(46,125,170,0.12);
}
.contact-form__field textarea { resize: vertical; line-height: 1.6; }

/* Success state */
.contact-success {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  background: #ECFDF5;
  border: 1.5px solid #6EE7B7;
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  margin-bottom: var(--space-xl);
  color: #065F46;
}
.contact-success svg { flex-shrink: 0; color: #10B981; margin-top: 2px; }
.contact-success p { font-size: 0.95rem; font-weight: 600; margin: 0; }

/* Mobile */
@media (max-width: 700px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-form__row { grid-template-columns: 1fr; }
  .contact-info { padding-bottom: var(--space-xl); border-bottom: 1px solid var(--clr-border); }
}

/* ── Page content section ─────────────────────────────────────────────── */
.page-section { width: 100%; }
.page-content-wrap { width: 100%; box-sizing: border-box; }
.page-title {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.2;
}
.page-body { color: var(--clr-text); }
.page-body h2 { font-size: 1.3em; font-weight: 700; color: var(--clr-navy); margin: 1.5em 0 0.6em; }
.page-body h3 { font-size: 1.1em; font-weight: 700; color: var(--clr-navy); margin: 1.3em 0 0.5em; }
.page-body p  { margin-bottom: 1em; }
.page-body ul, .page-body ol { padding-left: 1.5em; margin-bottom: 1em; }
.page-body li { margin-bottom: 0.3em; }
.page-body img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.page-body a { color: var(--clr-lake); }
.page-body a:hover { color: var(--clr-navy); }

/* Header height is set entirely via inline style from section settings.
   No CSS height rules here — inline style always wins over class rules. */
body { padding-top: 0; } /* JS sets this dynamically */

/* ── Logo fills header height ────────────────────────────────────────── */
.header-logo {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 8px 0;   /* small breathing room top/bottom */
  flex-shrink: 0;
}
.header-logo__img {
  height: 100%;     /* fill the available height */
  width: auto;      /* scale width proportionally */
  max-height: 100%; /* never overflow */
  display: block;
  object-fit: contain;
}
.header-logo__text {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--clr-navy);
  white-space: nowrap;
}

/* ── Logo: fill full header height — force height chain ─────────────── */
/* Every ancestor between site-header and the img needs a height */
.site-header > .container,
.site-header .header-inner {
  height: 100%;
}
/* header-inner already has height from inline style (vh),
   but we need the container to also be full height */
.site-header > .container {
  height: 100%;
  display: flex;
  align-items: stretch;
  padding-block: 0;
}
.header-inner {
  flex: 1;
  display: flex;
  align-items: center;
}
/* Logo link stretches to inner height */
.header-logo {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  padding: 6px 0 !important;
  box-sizing: border-box;
}
/* The actual img fills the link height */
.header-logo__img {
  height: 100% !important;
  width: auto !important;
  max-width: 320px;
  object-fit: contain;
  display: block;
}

/* ── Header logo — height set by inline style from section setting ───── */
.header-logo {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  flex-shrink: 0 !important;
}
.header-logo__img {
  /* height and width are set inline by Liquid from the vh setting */
  display: block !important;
}
