/* HERO */

.hero{

min-height:calc(100svh - 82px);
position:relative;
overflow:hidden;

background-color:#334438;
background-image:
  linear-gradient(
    90deg,
    rgba(48,70,56,.98) 0%,
    rgba(48,70,56,.94) 24%,
    rgba(48,70,56,.8) 42%,
    rgba(48,70,56,.46) 60%,
    rgba(48,70,56,.12) 82%,
    rgba(48,70,56,.04) 100%
  ),
  radial-gradient(
    circle at 28% 50%,
    rgba(255,250,241,.1) 0%,
    rgba(255,250,241,.035) 38%,
    rgba(255,250,241,0) 68%
  ),
  url("/assets/images/hero-drinks-mobile-v5.jpg");
background-image:
  linear-gradient(
    90deg,
    rgba(48,70,56,.98) 0%,
    rgba(48,70,56,.94) 24%,
    rgba(48,70,56,.8) 42%,
    rgba(48,70,56,.46) 60%,
    rgba(48,70,56,.12) 82%,
    rgba(48,70,56,.04) 100%
  ),
  radial-gradient(
    circle at 28% 50%,
    rgba(255,250,241,.1) 0%,
    rgba(255,250,241,.035) 38%,
    rgba(255,250,241,0) 68%
  ),
  image-set(
    url("/assets/images/hero-drinks-mobile-v5.avif") type("image/avif"),
    url("/assets/images/hero-drinks-mobile-v5.webp") type("image/webp"),
    url("/assets/images/hero-drinks-mobile-v5.jpg") type("image/jpeg")
  );

background-size:100% 100%,100% 100%,cover;
background-position:center,center,center 58%;
background-repeat:no-repeat;

display:flex;
align-items:center;
justify-content:center;

text-align:left;

}

/* HERO CONTENT */

.hero-content{

display:flex;
flex-direction:column;
align-items:flex-start;
position:relative;
z-index:2;

gap:clamp(14px,2vw,22px);

width:min(100%,1280px);
max-width:none;
padding:clamp(56px,8vw,104px) clamp(28px,7vw,96px);

}

.hero-cone-medallions{
display:none;
}

@media (min-width:1001px){
  .hero-cone-medallions{
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    pointer-events:none;
  }

  .hero-cone-medallions::before{
    position:absolute;
    top:50%;
    left:clamp(-260px,-13vw,-150px);
    width:clamp(640px,56vw,880px);
    aspect-ratio:1;
    content:"";
    border:1px solid rgba(255,250,241,.2);
    border-radius:50%;
    background:
      radial-gradient(
        circle at 54% 50%,
        rgba(255,250,241,.1) 0%,
        rgba(255,250,241,.04) 52%,
        rgba(255,250,241,0) 72%
      );
    box-shadow:
      inset 0 0 90px rgba(255,250,241,.05),
      0 0 0 18px rgba(255,250,241,.025);
    transform:translateY(-50%);
  }

  .hero-cone-medallion{
    position:absolute;
    display:block;
    aspect-ratio:1;
    border:5px solid rgba(255,250,241,.95);
    border-radius:50%;
    background-color:#fffaf1;
    background-repeat:no-repeat;
    box-shadow:
      0 18px 42px rgba(15,27,18,.34),
      0 0 0 8px rgba(255,250,241,.11),
      0 0 0 1px rgba(255,255,255,.22);
    animation:hero-cone-float 7s ease-in-out infinite;
  }

  .hero-cone-medallion--one{
    top:16%;
    left:clamp(-42px,-2vw,-18px);
    width:clamp(150px,11vw,194px);
    background-image:url("/assets/images/about-03-720.jpg");
    background-image:image-set(
      url("/assets/images/about-03-720.webp") type("image/webp"),
      url("/assets/images/about-03-720.jpg") type("image/jpeg")
    );
    background-position:42% 38%;
    background-size:220% auto;
    animation-duration:8.4s;
  }

  .hero-cone-medallion--two{
    top:clamp(26px,5vh,54px);
    left:clamp(230px,18vw,330px);
    width:clamp(92px,7vw,126px);
    background-image:url("/assets/images/gallery-08-720.jpg");
    background-image:image-set(
      url("/assets/images/gallery-08-720.webp") type("image/webp"),
      url("/assets/images/gallery-08-720.jpg") type("image/jpeg")
    );
    background-position:50% 50%;
    background-size:152% auto;
    animation-delay:-2.8s;
    animation-direction:reverse;
  }

  .hero-cone-medallion--three{
    top:19%;
    left:clamp(430px,38vw,610px);
    width:clamp(72px,5.5vw,98px);
    background-image:url("/assets/images/gallery-02-720.jpg");
    background-image:image-set(
      url("/assets/images/gallery-02-720.webp") type("image/webp"),
      url("/assets/images/gallery-02-720.jpg") type("image/jpeg")
    );
    background-position:50% 51%;
    background-size:175% auto;
    animation-duration:6.6s;
    animation-delay:-4.1s;
  }

  .hero-cone-medallion--four{
    bottom:clamp(44px,8vh,82px);
    left:clamp(40px,5vw,86px);
    width:clamp(90px,6.5vw,118px);
    background-image:url("/assets/images/gallery-05-720.jpg");
    background-image:image-set(
      url("/assets/images/gallery-05-720.webp") type("image/webp"),
      url("/assets/images/gallery-05-720.jpg") type("image/jpeg")
    );
    background-position:49% 47%;
    background-size:150% auto;
    animation-duration:7.8s;
    animation-delay:-5.2s;
    animation-direction:reverse;
  }

  .hero-cone-medallion--five{
    right:auto;
    bottom:clamp(34px,6vh,66px);
    left:clamp(380px,30vw,520px);
    width:clamp(104px,7.5vw,134px);
    background-image:url("/assets/images/gallery-01-720.jpg");
    background-image:image-set(
      url("/assets/images/gallery-01-720.webp") type("image/webp"),
      url("/assets/images/gallery-01-720.jpg") type("image/jpeg")
    );
    background-position:50% 43%;
    background-size:132% auto;
    animation-duration:9.2s;
    animation-delay:-6.3s;
  }
}

@keyframes hero-cone-float{
  0%,
  100%{
    transform:translate3d(0,0,0) rotate(-2deg);
  }

  50%{
    transform:translate3d(0,-10px,0) rotate(2deg);
  }
}

/* LOGO */

.logo{
width:clamp(340px,42vw,560px);
margin:0;
display:flex;
flex-direction:column;
align-items:center;
gap:clamp(4px,.65vw,9px);
filter:
  drop-shadow(0 4px 6px rgba(0,0,0,.58))
  drop-shadow(0 18px 34px rgba(0,0,0,.34));
}

.hero-wordmark-name{
display:block;
width:100%;
aspect-ratio:1120 / 452;
overflow:hidden;
}

.hero-wordmark-name picture{
display:block;
width:100%;
}

.hero-wordmark{
display:block;
width:100%;
height:auto;
}

.hero-wordmark-subtitle{
display:block;
color:#fffaf1;
font:600 clamp(22px,2.15vw,30px)/1 "Inter",sans-serif;
letter-spacing:.16em;
text-align:center;
text-transform:uppercase;
white-space:nowrap;
}

/* BUTTONS */

.buttons{
display:flex;
gap:10px;
flex-wrap:wrap;
justify-content:flex-start;
margin-top:6px;
}

.btn{

padding:18px 36px;
font-size:18px;

border-radius:12px;
border:none;

cursor:pointer;
font-family:inherit;
font-weight:600;

transition:.3s;

}

@media (min-width: 801px){

  .hero-content > nav{
    width:clamp(340px,42vw,560px);
  }

  .hero .buttons{
    justify-content:center;
  }

  .hero .btn{
    min-width: 190px;
    padding: 16px 34px;
    letter-spacing: 0.5px;
  }

  .hero .btn-primary{
    border:1px solid rgba(255,250,241,.94);
    border-radius:999px;
    background:var(--site-sage);
    color:white;
    box-shadow:0 14px 30px rgba(16,25,18,.3);
    backdrop-filter:none;
  }

}

.btn-primary{
  background:var(--site-sage);
  color:white;

  border:2px solid rgba(255,255,255,.92);

  box-shadow:
  0 16px 36px rgba(20,28,20,.3);
  backdrop-filter:blur(6px);
}

.btn:hover{

transform:translateY(-3px);

box-shadow:
0 18px 38px rgba(20,28,20,.38);

}

/* SECTION */

section{
padding:90px 10%;
text-align:center;
}

/* CARDS */

.cards{

display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:35px;

}

.card{

background:white;
padding:22px;
border-radius:16px;

box-shadow:0 10px 30px rgba(0,0,0,.08);

transition:
transform .25s ease,
box-shadow .25s ease;
}

.card:hover{

transform:translateY(-8px);

box-shadow:0 20px 40px rgba(0,0,0,.18);

}

/* image */

.card img{
  width:100%;
  height:220px;
  object-fit:cover;
  object-position:center 44%;
  border-radius:12px;
  margin-bottom:12px;

  transition:.3s ease;
}

.card picture{
  display:block;
}

.card:hover img{
  transform:scale(1.03);
}

.card h3{
font-family:"DM Serif Display",serif;
margin-bottom:6px;
}

.card p{
  margin-top:6px;
}

.section-subtitle{
  text-align:center;
  margin:10px 0 14px;
  font-family:"DM Serif Display",serif;
  font-size:clamp(20px,3.5vw,28px);
  color:var(--text);
}

.featured-menu-grid{
  margin-top:24px;
}

.featured-menu-items{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.featured-menu-card{
  text-align:left;
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:9px;
  color:var(--text);
}

.featured-menu-card picture{
  display:block;
  border-radius:16px;
  background:transparent;
  overflow:visible;
}

.featured-menu-card-copy,
.featured-menu-copy{
  margin:0 2px;
}

.featured-menu-card img{
  width:100%;
  height:clamp(230px,21vw,300px);
  object-fit:contain;
  object-position:center center;
  border-radius:14px;
}

.featured-menu-card h4{
  margin:0;
  font-size:clamp(16px,2.8vw,22px);
  line-height:1.18;
  font-family:"DM Serif Display",serif;
  text-wrap:balance;
}

.featured-menu-card p{
  margin:0;
  color:var(--text-soft);
  font-size:clamp(13px,2.5vw,15px);
  text-wrap:balance;
}

/* ABOUT */

.about{
background:var(--cream);
}

/* SOCIAL */

.social-section{
  padding:clamp(48px,7vw,78px) 10%;
  background:var(--tan);
}

.social-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(420px,1.25fr);
  align-items:center;
  gap:clamp(34px,6vw,76px);
  width:min(100%,1080px);
  margin:0 auto;
  padding:clamp(34px,5vw,56px);
  overflow:hidden;
  border:1px solid rgba(255,250,241,.24);
  border-radius:30px;
  background:
    radial-gradient(circle at 2% 4%,rgba(255,250,241,.16),transparent 42%),
    linear-gradient(135deg,#4f6652 0%,#617962 100%);
  box-shadow:0 22px 54px rgba(43,58,46,.18);
  color:#fffaf1;
  text-align:left;
}

.social-panel__copy{
  position:relative;
  z-index:1;
}

.social-panel h2{
  margin:0;
  color:#fffaf1;
  font:400 clamp(38px,5vw,58px)/1.02 "DM Serif Display",serif;
  text-wrap:balance;
}

.social-links{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}

.social-links a{
  display:flex;
  min-height:74px;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px 16px 22px;
  border:1px solid rgba(255,255,255,.62);
  border-radius:18px;
  background:#fffaf1;
  box-shadow:0 10px 24px rgba(27,42,30,.16);
  color:#344a39;
  font-size:17px;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}

.social-link__text{
  display:grid;
  gap:4px;
  min-width:0;
}

.social-link__text strong{
  font-size:17px;
  line-height:1.15;
}

.social-link__text small{
  overflow:hidden;
  color:#687568;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.social-link__icon{
  display:grid;
  flex:0 0 40px;
  width:40px;
  height:40px;
  place-items:center;
  border-radius:50%;
  box-shadow:0 5px 12px rgba(34,45,35,.16);
  transition:transform .22s ease,box-shadow .22s ease;
}

.social-link__icon img{
  display:block;
  width:22px;
  height:22px;
}

.social-link__icon--instagram{
  background:radial-gradient(circle at 30% 107%,#fdf497 0 5%,#fd5949 38%,#d6249f 62%,#285aeb 92%);
}

.social-link__icon--facebook{
  background:#1877f2;
}

.social-links a:hover{
  background:#fff;
  box-shadow:0 15px 30px rgba(27,42,30,.24);
  transform:translateY(-3px);
}

.social-links a:hover .social-link__icon{
  box-shadow:0 7px 16px rgba(34,45,35,.22);
  transform:scale(1.06);
}

@media(max-width:900px){
  .social-panel{
    grid-template-columns:1fr;
    gap:28px;
    text-align:center;
  }

  .social-links{
    width:100%;
  }
}

@media(max-width:560px){
  .social-section{
    padding:42px 20px;
  }

  .social-panel{
    gap:24px;
    padding:32px 20px;
    border-radius:24px;
  }

  .social-links{
    grid-template-columns:1fr;
    gap:11px;
  }

  .social-links a{
    min-height:64px;
  }
}

/* MOBILE */

@media(max-width:800px){
  .hero{
    position:relative;
    display:flex;
    min-height:0;
    height:auto;
    max-height:calc(100svh - 76px);
    aspect-ratio:863 / 1280;
    overflow:hidden;
    background-color:#304638;
    background-image:
      linear-gradient(
        180deg,
        rgba(24,39,29,.66) 0%,
        rgba(24,39,29,.16) 26%,
        rgba(24,39,29,.03) 62%,
        rgba(24,39,29,.66) 100%
      ),
      url("/assets/images/hero-drinks-mobile-v5.jpg");
    background-image:
      linear-gradient(
        180deg,
        rgba(24,39,29,.66) 0%,
        rgba(24,39,29,.16) 26%,
        rgba(24,39,29,.03) 62%,
        rgba(24,39,29,.66) 100%
      ),
      image-set(
        url("/assets/images/hero-drinks-mobile-v5.avif") type("image/avif"),
        url("/assets/images/hero-drinks-mobile-v5.webp") type("image/webp"),
        url("/assets/images/hero-drinks-mobile-v5.jpg") type("image/jpeg")
      );
    background-position:center;
    background-size:cover;
    text-align:center;
  }

  .hero-content{
    position:relative;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    width:100%;
    min-width:0;
    max-width:none;
    min-height:100%;
    height:100%;
    padding:
      clamp(30px,6svh,52px)
      20px
      clamp(48px,8svh,68px);
  }

  .logo{
    position:static;
    flex:0 0 auto;
    width:min(72vw,340px);
    gap:4px;
    transform:none;
    filter:
      drop-shadow(0 2px 3px rgba(0,0,0,.5))
      drop-shadow(0 8px 14px rgba(0,0,0,.24));
  }

  .hero-wordmark-subtitle{
    font-size:clamp(17px,4.5vw,22px);
    letter-spacing:.12em;
  }

  .hero-content > nav{
    position:static;
    flex:0 0 auto;
    width:100%;
    padding:0;
  }

  .buttons{
    flex-direction:column;
    align-items:center;
    width:100%;
    max-width:none;
    margin-top:0;
    gap:10px;
  }

  .btn{
    width:fit-content;
    min-width:140px;
    min-height:44px;
    padding:13px 26px;
    font-size:16px;
  }

  .btn-primary{
    border:1px solid rgba(255,250,241,.92);
    border-radius:999px;
    background:var(--site-sage);
    color:white;
    box-shadow:0 12px 28px rgba(16,25,18,.34);
    backdrop-filter:none;
  }

  section{
    padding:70px 8%;
  }

  #menu-section{
    padding-top:44px;
    padding-inline:16px;
  }

  .cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .card{
    display:flex;
    min-width:0;
    flex-direction:column;
    padding:10px;
    border-radius:14px;
    box-shadow:0 9px 22px rgba(48,43,36,.11);
  }

  .card img{
    height:auto;
    aspect-ratio:4 / 3;
    margin-bottom:10px;
    border-radius:10px;
  }

  .card p{
    margin:4px 2px 2px;
    font-size:clamp(13px,3.55vw,15px);
    line-height:1.45;
    text-wrap:balance;
  }

  .featured-menu-items{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
  }

  .featured-menu-card h4{
    font-size:clamp(15px,1.6vw,19px);
  }

  .featured-menu-card img{
    height:clamp(148px,39vw,172px);
  }

}
.menu-tile-btn{

display:inline-block;

background:var(--sage);
color:white;

padding:10px 22px;
border-radius:8px;

font-family:"DM Serif Display",serif;
font-size:20px;

text-decoration:none;
border:none;

margin-bottom:10px;

transition:.25s;

}

.menu-tile-btn:hover{

transform:translateY(-3px);
box-shadow:0 10px 20px rgba(0,0,0,.15);

}

@media(max-width:800px){
  .menu-tile-btn{
    display:grid;
    min-height:46px;
    width:100%;
    margin-bottom:6px;
    padding:9px 6px;
    place-items:center;
    font-size:clamp(14px,4vw,18px);
    line-height:1.1;
    white-space:nowrap;
  }
}

.location-callout{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:clamp(28px,5vw,72px);
  width:min(80%,1040px);
  margin:clamp(42px,6vw,72px) auto;
  padding:clamp(26px,4vw,42px) clamp(4px,1vw,12px);
  border-top:1px solid rgba(88,109,88,.42);
  border-bottom:1px solid rgba(88,109,88,.42);
  text-align:left;
}

.location-callout__eyebrow{
  margin:0 0 7px;
  color:var(--sage);
  font-size:12px;
  font-weight:800;
  letter-spacing:.2em;
  line-height:1.2;
  text-transform:uppercase;
}

.location-callout h2{
  margin:0 0 8px;
  color:#30372f;
  font:400 clamp(30px,4vw,44px)/1.08 "DM Serif Display",serif;
  text-wrap:balance;
}

.location-callout address,
.location-callout__hours{
  margin:0;
  color:#586158;
  font-size:15px;
  font-style:normal;
  line-height:1.55;
}

.location-callout__button{
  min-width:190px;
  min-height:54px;
  border-radius:999px;
  white-space:nowrap;
}

@media(max-width:800px){
  .location-callout{
    grid-template-columns:1fr;
    justify-items:center;
    width:calc(100% - 40px);
    margin:38px auto 46px;
    padding:30px 10px;
    gap:22px;
    text-align:center;
  }

  .location-callout__button{
    width:min(100%,300px);
    min-height:52px;
    padding:14px 26px;
    border-radius:999px;
    box-shadow:0 10px 24px rgba(20,28,20,.2);
  }
}

#menu-section .section-title:focus{
  outline:none;
}

.review-stars{
  margin-bottom:12px;
  color:#ffc800;
  font-size:28px;
  letter-spacing:6px;
  line-height:1;
  text-shadow:0 0 8px rgba(255,200,0,.58);
}

.review-cta{
  margin-top:24px;
}

.reviews{
  background:var(--cream);
}

.review-carousel{
  width:min(100%,760px);
  margin:30px auto 0;
  padding:clamp(26px,4vw,42px);
  border:1px solid rgba(88,109,88,.2);
  border-radius:26px;
  background:rgba(255,255,255,.72);
  box-shadow:0 18px 44px rgba(54,65,52,.1);
}

.review-slides{
  display:grid;
  min-height:250px;
  align-items:center;
}

.review-slide{
  grid-area:1/1;
  align-self:center;
  padding:2px 12px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .5s ease,visibility 0s linear .5s;
}

.review-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
}

.review-quote{
  max-width:30ch;
  margin:0 auto 20px;
  color:#30372f;
  font:400 clamp(24px,3.2vw,34px)/1.35 "DM Serif Display",serif;
}

.review-quote p{
  margin:0;
}

.review-credit{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:7px 12px;
}

.review-credit cite{
  color:#344534;
  font-size:18px;
  font-style:normal;
  font-weight:800;
}

.review-credit a{
  color:#526752;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}

.review-credit a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

.review-controls{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin-top:20px;
}

.review-controls[hidden]{
  display:none;
}

.review-control{
  min-height:44px;
  border:1px solid rgba(88,109,88,.35);
  background:#edf1e8;
  color:#344534;
  font:800 14px/1 "Inter",sans-serif;
  cursor:pointer;
}

.review-control:hover{
  background:#dfe7d9;
}

.review-control--arrow{
  width:44px;
  padding:0;
  border-radius:50%;
  font-size:20px;
}

.review-position{
  min-width:42px;
  color:#526152;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
}

@media(max-width:600px){
  .review-carousel{
    padding:26px 18px;
    border-radius:22px;
  }

  .review-slides{
    min-height:300px;
  }

  .review-slide{
    padding:0 2px;
  }

  .review-quote{
    font-size:26px;
  }

  .review-controls{
    gap:8px;
  }
}

@media(prefers-reduced-motion:reduce){
  .review-slide{
    transition:none;
  }
}

/* PRODUCT GALLERY */

.gallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(24px,3vw,40px);
  width:min(100%,1200px);
  margin:0 auto;
  padding:12px 0 30px;
}

.gallery-item{
  position:relative;
  display:grid;
  min-width:0;
  aspect-ratio:4 / 5;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(88,109,88,.08);
  border-radius:clamp(20px,2vw,28px);
  background:#fff;
  box-shadow:0 14px 28px rgba(48,43,36,.12);
}

.gallery-item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#fff;
  transform:scale(var(--gallery-scale,1));
  transform-origin:center;
}

.gallery-item picture{
  display:contents;
}

.gallery-item--portrait{
  --gallery-scale:1.06;
}

.gallery-item--wide{
  --gallery-scale:1.2;
}

.gallery-item--compact{
  --gallery-scale:1.34;
}

@media(max-width:800px){

  .gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:12px;
    row-gap:18px;
    padding:8px 0 32px;
  }

  .gallery-item{
    min-height:0;
    border-radius:18px;
    box-shadow:0 10px 22px rgba(48,43,36,.12);
  }

  .gallery-item--portrait{
    --gallery-scale:1.04;
  }

  .gallery-item--wide{
    --gallery-scale:1.14;
  }

  .gallery-item--compact{
    --gallery-scale:1.22;
  }

}
