
:root{
  --red:#bd1228;
  --red-dark:#8f0e1e;
  --black:#121214;
  --charcoal:#242428;
  --white:#fff;
  --off:#f5f4f1;
  --line:#e5e3de;
  --gray:#66666d;
  --max:1180px;
  --radius:18px;
  --shadow:0 22px 60px rgba(0,0,0,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Inter",sans-serif;color:var(--black);background:#fff;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4{font-family:"Anton",sans-serif;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:-.01em}
.container{width:min(var(--max),calc(100% - 40px));margin:auto}
section{padding:92px 0}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--red);font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;margin-bottom:14px}
.eyebrow:before{content:"";width:28px;height:3px;background:var(--red);border-radius:999px}
.section-head{max-width:740px;margin-bottom:42px}
.section-head h2{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:15px}
.section-head p{color:var(--gray);font-size:1.04rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:8px;font-size:.87rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:2px solid transparent;transition:.2s ease;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark)}
.btn-dark{background:var(--black);color:#fff}
.btn-outline{background:transparent;border-color:currentColor}
.text-link{font-weight:800;color:var(--red)}
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.topbar{background:var(--black);color:#d5d5d8;font-size:.78rem}
.topbar-inner{min-height:31px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.topbar a:hover{color:#fff}
.nav{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo img{width:285px;height:62px;object-fit:contain;object-position:left center}
.nav-links{display:flex;align-items:center;gap:23px;font-size:.87rem;font-weight:750}
.nav-links a:hover,.nav-links a.active{color:var(--red)}
.nav-actions{display:flex;align-items:center;gap:12px}
.menu-toggle{display:none;border:0;background:none;font-size:1.7rem;cursor:pointer}
.page-hero{min-height:420px;display:grid;align-items:end;color:#fff;background:linear-gradient(90deg,rgba(16,16,18,.94),rgba(16,16,18,.52)),var(--hero-image) center/cover no-repeat}
.page-hero-content{max-width:770px;padding:90px 0 72px}
.page-hero h1{font-size:clamp(3.2rem,8vw,6.4rem);margin-bottom:18px}
.page-hero p{max-width:640px;color:#e6e6e8;font-size:1.13rem}
.home-hero{min-height:720px;display:grid;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(16,16,18,.94) 0%,rgba(16,16,18,.72) 48%,rgba(16,16,18,.12) 85%),url("hero-loading-totes.jpeg") center 44%/cover no-repeat}
.home-hero-content{max-width:720px;padding:90px 0}
.hero-badge{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.08);padding:9px 14px;border-radius:999px;font-size:.82rem;font-weight:700;margin-bottom:22px}
.hero-badge i{width:8px;height:8px;border-radius:50%;background:var(--red)}
.home-hero h1{font-size:clamp(3.5rem,8vw,7rem);margin-bottom:20px}
.home-hero h1 span{color:var(--red)}
.home-hero p{font-size:clamp(1.05rem,2vw,1.28rem);color:#eeeef0;max-width:610px;margin-bottom:28px}
.actions{display:flex;gap:14px;flex-wrap:wrap}
.home-hero .btn-outline{color:#fff}
.proof{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:24px;color:#dedee2;font-size:.87rem;font-weight:700}
.proof span:before{content:"✓";color:var(--red);margin-right:7px}
.trust{background:var(--black);color:#fff;padding:20px 0}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.trust-grid strong{display:block;font-size:.95rem}.trust-grid span{font-size:.8rem;color:#aaaab1}
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:var(--off);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.card-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--red);color:#fff;border-radius:12px;margin-bottom:18px;font-weight:900}
.card h3{font-size:1.22rem;margin-bottom:9px}.card p{color:var(--gray);font-size:.93rem}
.dark{background:var(--black);color:#fff}.dark .section-head p{color:#c4c4ca}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.photo-frame{border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.photo-frame img{width:100%;height:100%;object-fit:cover}
.check-list{display:grid;gap:14px;margin:25px 0;list-style:none}
.check-list li{display:flex;gap:11px}.check-list li:before{content:"✓";color:var(--red);font-weight:900}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:steps}
.step{counter-increment:steps;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;position:relative;overflow:hidden}
.step:after{content:"0" counter(steps);position:absolute;right:14px;top:3px;font-family:"Anton";font-size:4.5rem;color:rgba(189,18,40,.08)}
.step h3{font-size:1.2rem;margin-bottom:9px}.step p{color:var(--gray);font-size:.92rem}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.price-card{border:2px solid var(--black);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;background:#fff}
.price-card.featured{transform:translateY(-10px);box-shadow:var(--shadow)}
.price-top{background:var(--red);color:#fff;padding:15px 22px;font-size:.8rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.price-body{padding:28px;display:flex;flex-direction:column;flex:1}
.price-body h3{font-size:1.45rem;margin-bottom:18px}
.tote-count{font-family:"Anton";font-size:4rem;line-height:.9}.tote-count span{font-family:"Inter";font-size:.95rem;color:var(--gray);margin-left:8px;font-weight:700}
.price{font-size:2.25rem;font-weight:800;margin:24px 0 4px}.price small{font-size:.88rem;color:var(--gray)}
.price-card p{color:var(--gray);font-size:.91rem;margin-bottom:24px}.price-card .btn{margin-top:auto}
.compare{display:grid;grid-template-columns:1fr 1fr;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.compare-side{padding:42px}.compare-old{background:#ededed}.compare-new{background:var(--black);color:#fff}
.compare-side h3{font-size:2rem;margin-bottom:24px}.compare-list{display:grid;gap:14px}
.compare-item{display:flex;gap:12px;font-weight:650}.compare-icon{width:26px;height:26px;flex:0 0 26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem}
.compare-old .compare-icon{background:#d4d4d4;color:#777}.compare-new .compare-icon{background:var(--red);color:#fff}
.story-collage{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.story-collage img{height:100%;object-fit:cover;border-radius:18px}.story-collage img:first-child{grid-row:span 2;min-height:520px}
.quote{border-left:4px solid var(--red);padding-left:18px;font-size:1.12rem;font-weight:750;margin:25px 0}
.partner-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.partner-chip{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:20px 14px;text-align:center;font-weight:700;font-size:.88rem}
.partner-chip span{display:block;font-size:1.5rem;margin-bottom:8px}
.faq-list{max-width:900px;display:grid;gap:12px}
details{border:1px solid var(--line);border-radius:14px;padding:0 20px;background:#fff}
summary{cursor:pointer;list-style:none;font-weight:800;padding:20px 34px 20px 0;position:relative}
summary::-webkit-details-marker{display:none}summary:after{content:"+";position:absolute;right:0;color:var(--red);font-size:1.4rem}details[open] summary:after{content:"−"}
details p{color:var(--gray);padding:0 0 20px}
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:48px;align-items:start}
.contact-items{display:grid;gap:16px;margin:25px 0}
.contact-item{display:flex;gap:12px;align-items:flex-start}
form{background:#fff;color:var(--black);padding:32px;border-radius:22px;box-shadow:var(--shadow)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px;margin-bottom:16px}
label{font-size:.83rem;font-weight:800}input,select,textarea{width:100%;border:1.5px solid #d8d8dc;border-radius:10px;padding:13px 14px;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(189,18,40,.2);border-color:var(--red)}
textarea{min-height:95px;resize:vertical}.form-submit{width:100%;border:0}.form-note{font-size:.78rem;color:var(--gray);text-align:center;margin-top:10px}
.cta{background:var(--red);color:#fff;padding:55px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:8px}.cta p{color:#f7dfe4}
footer{background:#0c0c0d;color:#fff;padding:45px 0 30px}.footer-grid{display:grid;grid-template-columns:1.25fr .75fr .75fr;gap:38px}
.footer-logo{background:#fff;border-radius:12px;padding:12px 16px;width:min(100%,340px);margin-bottom:17px}.footer-logo img{width:100%}
footer p,footer a{color:#aaaab1;font-size:.87rem}footer a:hover{color:#fff}.footer-links{display:grid;gap:9px}footer h4{font-size:1.05rem;margin-bottom:14px}
.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:20px;color:#707078;font-size:.78rem}
@media(max-width:980px){
.nav-links{position:fixed;top:113px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;max-height:0;overflow:hidden;transition:max-height .25s;border-bottom:1px solid var(--line)}
.nav-links.open{max-height:450px}.nav-links a{padding:16px 20px;border-top:1px solid var(--line)}.menu-toggle{display:block}
.card-grid,.steps,.trust-grid{grid-template-columns:repeat(2,1fr)}.two-col,.contact-grid{grid-template-columns:1fr}.partner-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
.topbar{display:none}.nav{min-height:78px}.nav-links{top:78px}.logo img{width:220px;height:52px}.nav-actions .btn{display:none}
section{padding:70px 0}.home-hero{min-height:680px;align-items:end;background:linear-gradient(180deg,rgba(16,16,18,.35),rgba(16,16,18,.95) 68%),url("hero-loading-totes.jpeg") 60% center/cover no-repeat}.home-hero-content{padding:190px 0 62px}
.home-hero h1{font-size:clamp(3.1rem,16vw,5rem)}.pricing-grid,.compare{grid-template-columns:1fr}.price-card.featured{transform:none}.partner-grid{grid-template-columns:repeat(2,1fr)}
.form-row{grid-template-columns:1fr}.cta-inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:540px){
.container{width:min(var(--max),calc(100% - 28px))}.card-grid,.steps,.trust-grid,.partner-grid{grid-template-columns:1fr}.trust-grid{text-align:left}.compare-side{padding:30px 24px}
.story-collage{grid-template-columns:1fr}.story-collage img:first-child{grid-row:auto;min-height:0}.footer-grid{grid-template-columns:1fr}.logo img{width:195px}
}


/* V2 enhancements */
.reviews-section{background:#fff}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review-card{border:1px solid var(--line);border-radius:18px;padding:28px;background:var(--off)}
.review-card .stars{color:var(--red);letter-spacing:.14em;font-size:1rem;margin-bottom:14px}
.review-card p{color:var(--gray);font-size:.96rem;margin-bottom:18px}
.review-card strong{font-size:.88rem}
.service-callout{background:var(--off)}
.service-map-card{min-height:320px;border-radius:24px;background:radial-gradient(circle at 50% 40%,#333 0,#161618 70%);display:grid;place-items:center;text-align:center;padding:40px;color:#fff;box-shadow:var(--shadow)}
.service-map-card.light{background:linear-gradient(145deg,#fff,#eceae5);color:var(--black);border:1px solid var(--line)}
.service-map-card .map-pin{font-size:5rem;color:var(--red);line-height:1}
.service-map-card h3{font-size:2.1rem;margin:12px 0 8px}
.service-map-card p{color:inherit;opacity:.75}
.county-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.county-card{border:1px solid var(--line);border-radius:18px;padding:28px;background:var(--off)}
.county-card h3{font-size:1.45rem;margin-bottom:8px}
.county-card p{color:var(--gray)}
.mobile-actions{display:none}
@media(max-width:900px){.review-grid,.county-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
 body{padding-bottom:66px}
 .review-grid,.county-grid{grid-template-columns:1fr}
 .mobile-actions{position:fixed;left:0;right:0;bottom:0;z-index:120;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.1)}
 .mobile-actions a{padding:14px 8px;text-align:center;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
 .mobile-actions a:nth-child(2){background:var(--black);color:#fff}
 .mobile-actions a:nth-child(3){background:var(--red);color:#fff}
}


/* Family photo and Emmarie photo updates */
.family-story-photo {
  border-radius: 24px;
  overflow: hidden;
  min-height: 620px;
  box-shadow: var(--shadow);
  background: var(--black);
}

.family-story-photo img {
  width: 100%;
  height: 100%;
  min-height: 620px;
  object-fit: cover;
  object-position: center 42%;
  display: block;
}

.family-in-action {
  background: var(--off);
}

.action-photo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.action-photo-grid figure {
  margin: 0;
  min-height: 560px;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--shadow);
  background: #111;
}

.action-photo-grid img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
  display: block;
}

.action-photo-grid figure:first-child img {
  object-position: center 48%;
}

.action-photo-grid figure:last-child img {
  object-position: center 45%;
}

@media (max-width: 760px) {
  .family-story-photo,
  .family-story-photo img {
    min-height: 480px;
  }

  .action-photo-grid {
    grid-template-columns: 1fr;
  }

  .action-photo-grid figure,
  .action-photo-grid img {
    min-height: 430px;
  }
}


/* V3 family gallery and product photography */
.family-gallery-section {
  background: var(--off);
}

.family-gallery {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  grid-auto-rows: 285px;
  gap: 18px;
}

.family-gallery figure {
  position: relative;
  margin: 0;
  border-radius: 20px;
  overflow: hidden;
  background: #111;
  box-shadow: var(--shadow);
}

.family-gallery .gallery-feature {
  grid-row: span 2;
}

.family-gallery figure:last-child {
  grid-column: span 2;
}

.family-gallery img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.family-gallery .gallery-feature img {
  object-position: center 42%;
}

.family-gallery figure:nth-child(2) img {
  object-position: center 45%;
}

.family-gallery figure:nth-child(3) img {
  object-position: center 42%;
}

.family-gallery figure:nth-child(4) img {
  object-position: center 38%;
}

.family-gallery figure:nth-child(5) img {
  object-position: center;
}

.family-gallery figcaption {
  position: absolute;
  left: 16px;
  bottom: 16px;
  padding: 9px 13px;
  border-radius: 999px;
  background: rgba(0,0,0,.72);
  color: #fff;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.product-photo-section {
  background: #fff;
}

.product-photo-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 56px;
  align-items: center;
}

.product-photo-layout h2 {
  font-size: clamp(2.6rem, 5vw, 4.6rem);
  line-height: .98;
  margin-bottom: 18px;
}

.product-photo-layout p {
  color: var(--gray);
  margin-bottom: 24px;
}

.product-photo {
  min-height: 480px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow);
  background: var(--off);
}

.product-photo img {
  width: 100%;
  height: 100%;
  min-height: 480px;
  object-fit: cover;
  display: block;
}

@media (max-width: 900px) {
  .family-gallery {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 270px;
  }

  .family-gallery .gallery-feature {
    grid-column: span 2;
    grid-row: span 1;
  }

  .family-gallery figure:last-child {
    grid-column: span 2;
  }

  .product-photo-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .family-gallery {
    grid-template-columns: 1fr;
    grid-auto-rows: 360px;
  }

  .family-gallery .gallery-feature,
  .family-gallery figure:last-child {
    grid-column: span 1;
  }

  .family-gallery figure:nth-child(5) {
    min-height: 250px;
  }

  .product-photo,
  .product-photo img {
    min-height: 330px;
  }
}
