:root {
  --wine:#32121d;
  --wine-soft:#562631;
  --red:#e93626;
  --paper:#f7f0e6;
  --cream:#fffaf1;
  --line:rgba(50,18,29,.27);
  --line-light:rgba(255,250,241,.32)
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:var(--paper);
  color:var(--wine);
  overflow-x:hidden;
  font-family:"Helvetica Neue",Arial,sans-serif
}

img {
  display:block;
  width:100%
}

a {
  color:inherit;
  text-decoration:none
}

button {
  font:inherit;
  cursor:pointer
}

.svg-sprite {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}

.icon-arrow {
  display:block;
  width:24px;
  height:24px;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:square;
  stroke-linejoin:miter
}

.skip-link {
  position:absolute;
  top:-100px;
  left:12px;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  background:var(--cream);
  color:var(--wine);
  padding:12px;
  z-index:100
}

.skip-link:focus {
  top:12px
}

:focus-visible {
  outline:3px solid var(--red);
  outline-offset:4px
}

.paper {
  background:var(--paper)
}

.burgundy {
  background:var(--wine);
  color:var(--cream)
}

.eyebrow {
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
  line-height:1.3;
  text-transform:uppercase
}

.section-intro h2,.reasons h2,.order h2,.visit h2,.faq h2,.final-cta h2 {
  font-family:Impact,"Arial Narrow","Arial Black",sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.048em;
  line-height:.84
}

.section-intro h2 em,.visit h2 em,.faq h2 em {
  font-style:normal;
  color:var(--red)
}

.site-header {
  height:75px;
  display:flex;
  align-items:center;
  padding:0 5vw;
  gap:3vw;
  background:var(--wine);
  color:var(--cream);
  position:relative;
  z-index:20
}

.brand {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font:900 36px/.9 "Arial Black","Helvetica Neue",Arial,sans-serif;
  letter-spacing:-.085em;
  white-space:nowrap
}

.brand span {
  color:var(--red)
}

.site-nav {
  display:flex;
  gap:2.6vw;
  margin:auto
}

.site-nav a,.header-phone {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:11px;
  line-height:1;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:color .25s
}

.site-nav a:hover,.header-phone:hover {
  color:#ff8a7c
}

.header-phone {
  white-space:nowrap
}

.menu-toggle {
  display:none
}

.hero {
  height:calc(100svh - 145px);
  min-height:690px;
  max-height:870px;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-radius:0 0 50% 50% / 0 0 6% 6%;
  background:var(--red);
  color:var(--cream)
}

.hero-photo {
  position:absolute;
  inset:0;
  z-index:-1;
  background:url('assets/hero.webp') center 54%/cover no-repeat;
  transform:translateY(var(--hero-shift,0px)) scale(1.04);
  will-change:transform
}

.is-ready .hero-photo {
  animation:photo-open 1.45s cubic-bezier(.22,1,.36,1) both
}

.hero-content {
  padding:42px 5vw 0
}

.hero-kicker {
  display:none
}

.hero h1 {
  font:900 clamp(115px,12.6vw,208px)/.81 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  letter-spacing:-.055em;
  margin:0;
  max-width:1000px;
  transform:translateY(var(--hero-type-shift,0px));
  will-change:transform
}

.hero h1 span {
  color:var(--wine)
}

.is-ready .hero h1 {
  animation:title-open 1s .14s both
}

.hero-subtitle {
  font-size:clamp(13px,1.3vw,17px);
  font-weight:800;
  line-height:1.25;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin:30px 0 0
}

.hero-bottom {
  position:absolute;
  left:5vw;
  right:5vw;
  bottom:72px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px
}

.hero-bottom>span {
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase
}

.button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-width:320px;
  padding:24px 26px;
  font:900 25px/1 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  letter-spacing:.01em;
  transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s,color .35s
}

.button .icon-arrow {
  width:30px;
  height:30px;
  transition:transform .35s
}

.button:hover {
  transform:translateY(-5px)
}

.button:hover .icon-arrow {
  transform:translate(5px,-5px)
}

.button-light {
  background:var(--cream);
  color:var(--wine)
}

.button-light:hover {
  background:#ffdbcf
}

.button-burgundy {
  background:var(--wine);
  color:var(--cream)
}

.button-burgundy:hover {
  background:var(--red)
}

.assortment {
  padding:126px 5vw 110px;
  margin-top:-35px;
  position:relative;
  z-index:2;
  clip-path:polygon(0 2%,100% 0,100% 100%,0 100%)
}

.section-intro {
  display:grid;
  grid-template-columns:20% 52% 1fr;
  align-items:start;
  gap:2vw
}

.section-intro .eyebrow {
  padding-top:12px
}

.section-intro h2 {
  font-size:clamp(85px,9vw,154px);
  margin:0 0 80px
}

.section-intro p {
  font-size:16px;
  font-weight:650;
  line-height:1.45;
  max-width:280px;
  margin:16px 0 0
}

.category-stage {
  display:grid;
  grid-template-columns:1.13fr .82fr;
  grid-template-rows:auto auto;
  gap:72px 5vw;
  align-items:start
}

.category-feature {
  display:block;
  min-width:0
}

.category-fish {
  grid-row:span 2
}

.category-seafood {
  margin-top:86px
}

.category-smoked {
  width:86%;
  margin-left:14%
}

.image-frame {
  overflow:hidden;
  background:var(--wine);
  clip-path:inset(0)
}

.category-feature img {
  height:100%;
  object-fit:cover;
  transition:transform 1s cubic-bezier(.22,1,.36,1),filter .6s
}

.category-feature:hover img,.category-feature:focus-visible img {
  transform:scale(1.065);
  filter:saturate(1.13)
}

.category-fish .image-frame {
  aspect-ratio:.81
}

.category-seafood .image-frame {
  aspect-ratio:1.2
}

.category-smoked .image-frame {
  aspect-ratio:1.27
}

.category-caption {
  display:flex;
  align-items:flex-start;
  gap:14px;
  border-top:2px solid var(--wine);
  padding-top:17px;
  margin-top:18px
}

.category-caption h3 {
  font:900 clamp(53px,6vw,104px)/.83 Impact,"Arial Narrow","Arial Black",sans-serif;
  letter-spacing:-.045em;
  text-transform:uppercase;
  margin:0;
  flex:1
}

.category-index {
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  padding-top:7px;
  white-space:nowrap
}

.category-arrow {
  width:38px;
  height:38px;
  transition:transform .3s
}

.category-feature:hover .category-arrow {
  transform:translate(5px,-5px)
}

.category-seafood h3 {
  font-size:clamp(53px,5.6vw,94px)
}

.category-smoked h3 {
  font-size:clamp(43px,4.6vw,76px)
}

.category-lines {
  border-top:2px solid var(--wine);
  margin-top:80px
}

.category-lines a {
  display:flex;
  align-items:center;
  gap:2vw;
  border-bottom:1px solid var(--line);
  padding:20px 0;
  font:900 clamp(28px,3.7vw,58px)/1 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  letter-spacing:-.025em;
  transition:color .3s,padding-left .3s
}

.category-lines a:hover {
  color:var(--red);
  padding-left:12px
}

.category-lines span {
  font:800 11px/1 Arial,sans-serif;
  min-width:18%;
  letter-spacing:.1em
}

.category-lines .icon-arrow {
  width:30px;
  height:30px;
  margin-left:auto
}

.assortment-foot {
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  margin-top:36px
}

.assortment-foot p {
  font-size:15px;
  font-weight:650;
  max-width:270px;
  line-height:1.4;
  margin:0
}

.text-link {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  position:relative;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.1em;
  padding-bottom:9px;
  cursor:pointer;
  transition:color .25s
}

.text-link::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:currentColor;
  transition:transform .3s cubic-bezier(.22,1,.36,1)
}

.text-link:hover,.text-link:focus-visible {
  color:var(--red)
}

.text-link:hover::after,.text-link:focus-visible::after {
  transform:translateX(5px)
}

.text-link .icon-arrow {
  margin-left:20px;
  width:20px;
  height:20px;
  transition:transform .3s cubic-bezier(.22,1,.36,1)
}

.text-link:hover .icon-arrow,.text-link:focus-visible .icon-arrow {
  transform:translate(4px,-4px)
}

.reasons {
  padding:118px 5vw 138px
}

.reasons-head {
  display:flex;
  align-items:start;
  gap:9vw
}

.reasons-head .eyebrow {
  width:15%;
  padding-top:8px;
  flex:none
}

.reasons h2 {
  font-size:clamp(83px,9.2vw,150px);
  margin:0 0 110px
}

.reason-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line-light)
}

.reason {
  padding:25px 30px 0 0;
  min-height:270px
}

.reason+.reason {
  padding-left:30px;
  border-left:1px solid var(--line-light)
}

.reason>span {
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  color:#f48b7c
}

.reason h3 {
  font:900 clamp(34px,3.35vw,56px)/.92 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  letter-spacing:-.02em;
  margin:36px 0 18px
}

.reason p {
  max-width:280px;
  font-size:16px;
  line-height:1.5;
  margin:0;
  color:#e9d9d5
}

.editorial {
  height:min(85vh,850px);
  min-height:610px;
  position:relative;
  overflow:hidden;
  background:var(--wine);
  color:var(--cream)
}

.editorial:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(31,7,15,.7),transparent 67%);
  pointer-events:none
}

.editorial-image {
  position:absolute;
  inset:0;
  overflow:hidden;
  clip-path:inset(var(--editorial-mask,0%) 0 0 0)
}

.editorial-image img {
  height:100%;
  object-fit:cover;
  object-position:center 49%;
  transform:scale(1.09) translateY(var(--editorial-shift,0px));
  will-change:transform
}

.editorial-content {
  position:relative;
  z-index:1;
  padding:10vh 5vw
}

.editorial-content p {
  font:900 clamp(82px,9.4vw,155px)/.84 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  letter-spacing:-.05em;
  margin:32px 0 0;
  max-width:900px
}

.editorial-content em {
  font-style:normal;
  color:#ffb4a5
}

.order {
  padding:120px 5vw 130px
}

.order-intro {
  margin-bottom:75px
}

.order-intro h2 {
  font-size:clamp(85px,8.7vw,145px);
  margin-bottom:0
}

.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:2px solid var(--wine);
  margin-bottom:55px
}

.step {
  padding:26px 26px 45px 0;
  min-height:310px
}

.step+.step {
  border-left:1px solid var(--line);
  padding-left:30px
}

.step-num {
  font:900 clamp(95px,11.5vw,180px)/.85 Impact,"Arial Narrow","Arial Black",sans-serif;
  letter-spacing:-.06em;
  color:var(--red)
}

.step h3 {
  font:900 clamp(32px,3.1vw,52px)/.95 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  margin:12px 0
}

.step p {
  max-width:240px;
  margin:0;
  font-size:15px;
  line-height:1.4
}

.order>.button {
  width:max-content;
  margin-left:auto
}

.visit {
  padding:115px 5vw 100px
}

.visit-top {
  display:grid;
  grid-template-columns:20% 1fr;
  gap:2vw
}

.visit-top .eyebrow {
  padding-top:9px
}

.visit h2 {
  font-size:clamp(90px,10vw,165px);
  margin:0 0 100px
}

.visit-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line-light)
}

.visit-option {
  padding:30px 9vw 80px 0
}

.visit-option+.visit-option {
  border-left:1px solid var(--line-light);
  padding-left:4vw
}

.visit-number {
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
  color:#f48b7c
}

.visit h3 {
  font:900 clamp(43px,4.6vw,76px)/.87 Impact,"Arial Narrow","Arial Black",sans-serif;
  text-transform:uppercase;
  letter-spacing:-.03em;
  margin:35px 0 25px
}

.visit-option p {
  font-size:16px;
  line-height:1.45;
  max-width:320px;
  margin:0 0 18px
}

.visit-phone {
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:3vw;
  align-items:center;
  border-top:1px solid var(--line-light);
  border-bottom:1px solid var(--line-light);
  padding:24px 0;
  transition:color .3s
}

.visit-phone:hover {
  color:#ff8a7c
}

.visit-phone span:first-child {
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase
}

.visit-phone strong {
  font:900 clamp(30px,3vw,51px)/1 Impact,"Arial Narrow","Arial Black",sans-serif
}

.visit-phone .icon-arrow {
  width:30px;
  height:30px
}

.faq {
  padding:125px 5vw 145px;
  display:grid;
  grid-template-columns:47% 1fr;
  gap:4vw
}

.faq h2 {
  font-size:clamp(82px,7.5vw,125px);
  margin:30px 0 0
}

.faq-list {
  border-top:2px solid var(--wine);
  align-self:start
}

.faq details {
  border-bottom:1px solid var(--line);
  padding:0
}

.faq summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:24px 0;
  font-size:17px;
  font-weight:800;
  cursor:pointer
}

.faq summary::-webkit-details-marker {
  display:none
}

.faq summary span {
  font-size:28px;
  font-weight:300;
  transition:transform .3s
}

.faq details[open] summary span {
  transform:rotate(45deg)
}

.faq details p {
  max-width:560px;
  font-size:15px;
  line-height:1.55;
  margin:0 0 25px;
  color:#674851
}

.faq details p a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-block:-11px;
  text-decoration:underline;
  text-underline-offset:3px
}

.faq summary:hover,.faq summary:focus-visible {
  color:var(--red)
}

.final-cta {
  position:relative;
  min-height:720px;
  overflow:hidden;
  display:flex;
  align-items:center;
  padding:90px 5vw
}

.final-image {
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:52%;
  clip-path:ellipse(87% 100% at 100% 50%)
}

.final-image:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,var(--wine),transparent 36%)
}

.final-image img {
  height:100%;
  object-fit:cover;
  object-position:63% center;
  transition:transform 1s
}

.final-cta:hover .final-image img {
  transform:scale(1.035)
}

.final-content {
  position:relative;
  z-index:1;
  width:59%
}

.final-cta h2 {
  font-size:clamp(115px,12vw,200px);
  margin:28px 0
}

.final-cta h2 span {
  color:var(--red)
}

.final-content p {
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  max-width:290px;
  margin:0 0 34px
}

.final-content .button {
  width:350px
}

.site-footer {
  background:#230b13;
  color:var(--cream);
  padding:42px 5vw;
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  align-items:start;
  gap:25px
}

.site-footer .brand {
  font-size:32px
}

.site-footer p {
  margin:0;
  font-size:13px;
  line-height:1.55
}

.site-footer>a:not(.brand) {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:13px;
  font-weight:700
}

.site-footer>a:not(.brand):hover {
  color:#ff8a7c
}

.site-header :focus-visible,.burgundy :focus-visible,.site-footer :focus-visible {
  outline-color:var(--cream)
}

.burgundy .button-light:focus-visible {
  outline-color:var(--red)
}

.back-top {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  text-transform:uppercase;
  letter-spacing:.1em
}

.back-top .icon-up {
  width:16px;
  height:16px
}

.mobile-sticky {
  display:none
}

.reveal {
  opacity:0;
  transform:translateY(38px);
  transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)
}

.reveal.is-visible {
  opacity:1;
  transform:translateY(0)
}

.category-feature.reveal .image-frame {
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1s cubic-bezier(.22,1,.36,1)
}

.category-feature.reveal.is-visible .image-frame {
  clip-path:inset(0)
}

@keyframes photo-open {
  from {
    clip-path:inset(0 0 100% 0)
  }

  to {
    clip-path:inset(0)
  }

}

@keyframes title-open {
  from {
    opacity:0;
    translate:0 36px
  }

  to {
    opacity:1;
    translate:0 0
  }

}

@media(max-width:980px) {
  .site-nav {
    gap:1.5vw
  }

  .header-phone {
    display:none
  }

  .hero h1 {
    font-size:clamp(105px,13vw,150px)
  }

  .section-intro {
    grid-template-columns:17% 52% 1fr
  }

  .section-intro h2 {
    font-size:clamp(78px,9vw,125px)
  }

  .category-stage {
    gap:65px 3vw
  }

  .category-caption h3 {
    font-size:clamp(48px,5.5vw,80px)
  }

  .category-seafood h3 {
    font-size:clamp(44px,5vw,74px)
  }

  .category-smoked h3 {
    font-size:clamp(37px,4.2vw,61px)
  }

  .faq {
    grid-template-columns:43% 1fr
  }

  .final-cta h2 {
    font-size:clamp(105px,12vw,160px)
  }

}

@media(max-width:700px) {
  html {
    scroll-padding-top:calc(62px + env(safe-area-inset-top))
  }

  .site-header {
    height:calc(64px + env(safe-area-inset-top));
    padding:env(safe-area-inset-top) 20px 0
  }

  .brand {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    font-size:30px
  }

  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:44px;
    height:44px;
    margin-left:auto;
    padding:0;
    border:0;
    background:none;
    color:var(--cream)
  }

  .menu-toggle span {
    height:2px;
    width:27px;
    background:currentColor;
    transition:transform .25s
  }

  .menu-toggle[aria-expanded="true"] span:first-child {
    transform:translateY(4px) rotate(45deg)
  }

  .menu-toggle[aria-expanded="true"] span:last-child {
    transform:translateY(-4px) rotate(-45deg)
  }

  .site-nav {
    display:none;
    position:absolute;
    top:calc(64px + env(safe-area-inset-top));
    left:0;
    right:0;
    margin:0;
    padding:12px 20px 26px;
    background:var(--wine);
    box-shadow:0 20px 30px rgba(0,0,0,.2);
    flex-direction:column;
    gap:0
  }

  .site-nav.is-open {
    display:flex
  }

  .site-nav a {
    padding:16px 0;
    font-size:14px;
    border-top:1px solid var(--line-light)
  }

  .hero {
    min-height:calc(100svh - 64px - env(safe-area-inset-top));
    height:auto;
    max-height:none;
    border-radius:0 0 50% 50% / 0 0 3% 3%
  }

  .hero-photo {
    background-position:61% center;
    will-change:auto
  }

  .hero-content {
    padding:32px 20px 0
  }

  .hero-kicker {
    display:block;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.15em;
    margin:0 0 24px
  }

  .hero h1 {
    font-size:clamp(76px,20vw,126px);
    line-height:.83
  }

  .hero-subtitle {
    font-size:12px;
    letter-spacing:.12em;
    margin-top:22px
  }

  .hero-bottom {
    left:20px;
    right:20px;
    bottom:calc(44px + env(safe-area-inset-bottom));
    display:block
  }

  .hero-bottom>span {
    display:none
  }

  .button {
    min-width:0;
    padding:22px 20px;
    font-size:23px
  }

  .hero-bottom .button {
    width:100%
  }

  .assortment {
    padding:80px 20px 78px;
    margin-top:-18px;
    clip-path:polygon(0 1%,100% 0,100% 100%,0 100%)
  }

  .section-intro {
    display:block
  }

  .section-intro .eyebrow {
    padding:0;
    margin-bottom:23px
  }

  .section-intro h2 {
    font-size:clamp(69px,18vw,110px);
    margin:0 0 23px
  }

  .section-intro p {
    font-size:14px;
    max-width:300px;
    margin:0 0 35px
  }

  .category-stage {
    display:block
  }

  .category-feature {
    margin:0 0 38px!important;
    width:auto!important
  }

  .category-fish .image-frame {
    aspect-ratio:.94
  }

  .category-seafood .image-frame {
    aspect-ratio:1.2
  }

  .category-smoked .image-frame {
    aspect-ratio:1.3
  }

  .category-caption {
    gap:10px;
    padding-top:12px;
    margin-top:12px
  }

  .category-caption h3,.category-seafood h3,.category-smoked h3 {
    font-size:clamp(49px,13.3vw,78px)
  }

  .category-index {
    font-size:10px;
    min-width:27px
  }

  .category-arrow {
    width:27px;
    height:27px
  }

  .category-lines {
    margin-top:8px
  }

  .category-lines a {
    font-size:clamp(27px,7vw,43px);
    padding:16px 0;
    gap:12px
  }

  .category-lines span {
    min-width:27px;
    font-size:10px
  }

  .category-lines .icon-arrow {
    width:22px;
    height:22px
  }

  .assortment-foot {
    align-items:start;
    display:block;
    margin-top:30px
  }

  .assortment-foot p {
    font-size:14px;
    margin-bottom:24px
  }

  .reasons {
    padding:85px 20px 100px
  }

  .reasons-head {
    display:block
  }

  .reasons-head .eyebrow {
    width:auto;
    margin-bottom:25px
  }

  .reasons h2 {
    font-size:clamp(74px,18vw,115px);
    margin-bottom:60px
  }

  .reason-list {
    display:block
  }

  .reason,.reason+.reason {
    padding:21px 0 35px;
    border-left:0;
    border-bottom:1px solid var(--line-light);
    min-height:0
  }

  .reason h3 {
    font-size:41px;
    margin:21px 0 12px
  }

  .reason p {
    font-size:14px
  }

  .editorial {
    height:clamp(620px,92svh,760px);
    min-height:0
  }

  .editorial:after {
    background:linear-gradient(180deg,rgba(31,7,15,.63),transparent 64%)
  }

  .editorial-image img {
    object-position:61% center;
    will-change:auto
  }

  .editorial-content {
    padding:54px 20px
  }

  .editorial-content p {
    font-size:clamp(71px,17vw,112px);
    margin-top:23px
  }

  .order {
    padding:85px 20px 100px
  }

  .order-intro {
    margin-bottom:45px
  }

  .order-intro h2 {
    font-size:clamp(71px,17vw,108px)
  }

  .order-intro p {
    margin-bottom:0
  }

  .steps {
    display:block;
    margin-bottom:30px
  }

  .step,.step+.step {
    display:flex;
    gap:30px;
    align-items:start;
    padding:25px 0;
    border-left:0;
    border-bottom:1px solid var(--line);
    min-height:0
  }

  .step-num {
    font-size:92px;
    min-width:90px
  }

  .step h3 {
    font-size:36px;
    margin:4px 0 12px
  }

  .step p {
    font-size:14px
  }

  .order>.button {
    width:100%
  }

  .visit {
    padding:88px 20px 100px
  }

  .visit-top {
    display:block
  }

  .visit-top .eyebrow {
    margin-bottom:24px
  }

  .visit h2 {
    font-size:clamp(78px,19vw,118px);
    margin-bottom:56px
  }

  .visit-options {
    display:block
  }

  .visit-option,.visit-option+.visit-option {
    padding:25px 0 45px;
    border-left:0;
    border-bottom:1px solid var(--line-light)
  }

  .visit h3 {
    font-size:clamp(49px,13vw,74px);
    margin:24px 0 18px
  }

  .visit-option p {
    font-size:15px
  }

  .visit-phone {
    display:flex;
    flex-wrap:wrap;
    gap:8px 20px;
    margin-top:30px
  }

  .visit-phone span:first-child {
    width:100%
  }

  .visit-phone strong {
    font-size:34px
  }

  .visit-phone .icon-arrow {
    margin-left:auto
  }

  .faq {
    padding:90px 20px 105px;
    display:block
  }

  .faq h2 {
    font-size:clamp(72px,17vw,110px);
    margin:24px 0 45px
  }

  .faq summary {
    font-size:15px;
    padding:20px 0
  }

  .faq details p {
    font-size:14px
  }

  .final-cta {
    min-height:850px;
    align-items:flex-start;
    padding:67px 20px 155px
  }

  .final-image {
    top:auto;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    height:60%;
    clip-path:ellipse(100% 80% at 50% 100%)
  }

  .final-image:after {
    background:linear-gradient(180deg,var(--wine),transparent 35%)
  }

  .final-image img {
    object-position:50% 25%
  }

  .final-content {
    width:100%
  }

  .final-cta h2 {
    font-size:clamp(62px,18.5vw,96px);
    margin:26px 0 18px
  }

  .final-content p {
    font-size:14px;
    margin-bottom:25px
  }

  .final-content .button {
    width:100%
  }

  .site-footer {
    display:grid;
    grid-template-columns:1fr auto;
    gap:28px;
    padding:40px 20px calc(36px + env(safe-area-inset-bottom))
  }

  .site-footer .brand {
    grid-column:1/-1
  }

  .site-footer p {
    font-size:12px
  }

  .site-footer>a:not(.brand) {
    font-size:12px;
    min-height:44px;
    display:inline-flex;
    align-items:center
  }

  .site-footer>a:nth-of-type(2) {
    grid-column:1/-1
  }

  .mobile-sticky {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:30;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:var(--cream);
    color:var(--wine);
    border-top:1px solid var(--wine);
    min-height:52px;
    padding:8px 20px calc(8px + env(safe-area-inset-bottom));
    font:900 20px/1 Impact,"Arial Narrow","Arial Black",sans-serif;
    text-transform:uppercase;
    transform:translateY(105%);
    visibility:hidden;
    pointer-events:none;
    transition:transform .42s cubic-bezier(.22,1,.36,1),visibility .42s
  }

  .mobile-sticky.is-visible {
    transform:translateY(0);
    visibility:visible;
    pointer-events:auto
  }

  .mobile-sticky .icon-arrow {
    width:24px;
    height:24px
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }

  .reveal {
    opacity:1!important;
    transform:none!important
  }

  .category-feature.reveal .image-frame {
    clip-path:none!important
  }

  .hero-photo,.editorial-image img,.hero h1 {
    transform:none!important
  }

}
