:root{--green:#0f4a3f;--deep:#082f29;--cream:#f2eadb;--gold:#d3ad48;--ink:#18221e;--logo-font:'Libre Caslon Display',Georgia,serif;--typewriter:'Special Elite','Courier New',monospace;--tattoo:'Rye',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--deep);color:var(--cream);font-family:var(--typewriter);line-height:1.7}img{display:block;max-width:100%}a{color:inherit}button{font:inherit}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,64px);background:rgba(8,47,41,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(211,173,72,.55)}.brand{display:flex;align-items:center;gap:10px;color:var(--cream);text-decoration:none}.header-logo{height:64px;width:auto}.brand-name{font-family:var(--tattoo);font-size:clamp(1.05rem,2vw,1.55rem);letter-spacing:.04em}.main-nav{display:flex;gap:30px}.main-nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.main-nav a:hover{color:var(--gold)}.menu-button{display:none;background:none;border:1px solid var(--gold);color:var(--cream);padding:7px 12px;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.hero{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;background:url('assets/shop-hero.jpg') center 48%/cover no-repeat}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,15,13,.5),rgba(3,15,13,.26) 38%,rgba(3,15,13,.8))}.hero-content{position:relative;max-width:1000px;padding:125px 25px 90px}.hero-logo{width:clamp(120px,18vw,210px);margin:0 auto 10px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.4))}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--gold);margin:0 0 15px}.eyebrow.green{color:var(--green)}h1,h2{font-family:var(--typewriter);font-weight:400;line-height:1.15;margin:0}h1{font-size:clamp(3.4rem,9vw,7.8rem);text-shadow:0 4px 26px rgba(0,0,0,.45)}h2{font-size:clamp(2.5rem,5vw,4.8rem)}.hero-line{font-size:clamp(1rem,2vw,1.35rem);letter-spacing:.03em}.hero-line span{color:var(--gold);margin:0 .45em}.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;border:1px solid transparent;transition:.2s}.button-gold{background:var(--gold);color:var(--deep)}.button-ghost{border-color:var(--cream)}.button-green{background:var(--green);color:var(--cream)}.button:hover{transform:translateY(-2px)}.scroll-cue{position:absolute;bottom:24px;font-size:1.7rem;text-decoration:none;color:var(--gold)}.section{padding:clamp(78px,10vw,140px) clamp(22px,6vw,90px)}.cream{background:var(--cream);color:var(--ink)}.dark{background:var(--deep)}.textured{background-color:var(--green);background-image:linear-gradient(rgba(11,73,63,.74),rgba(11,73,63,.74)),url('assets/green-brick-texture.jpg');background-size:cover;background-position:center;background-attachment:fixed;box-shadow:inset 0 0 100px rgba(0,0,0,.3)}.section-logo{width:86px;margin:0 auto 14px;opacity:.88}.light-logo{filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}.split-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,6vw,90px);align-items:center}.split-image img{width:100%;max-height:760px;object-fit:cover;box-shadow:0 22px 55px rgba(20,25,22,.18)}.split-copy{max-width:690px}.split-copy .section-logo{margin-left:0}.split-copy .lead{font-family:var(--typewriter);font-size:clamp(1.25rem,2.1vw,1.75rem);line-height:1.5;margin:30px 0 20px}.section-heading{text-align:center;margin-bottom:46px}.menu-card{display:block;position:relative;max-width:1380px;margin:auto;padding:0;border:0;background:none;cursor:zoom-in;box-shadow:0 26px 70px rgba(0,0,0,.4)}.menu-card img{width:100%}.menu-card span{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--deep);padding:10px 18px;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.gallery-grid{max-width:1220px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:330px;gap:18px}.gallery-grid figure{margin:0;overflow:hidden}.gallery-grid .gallery-tall{grid-row:span 2}.gallery-grid .gallery-wide{grid-column:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-grid figure:hover img{transform:scale(1.025)}.hours-wrap{max-width:790px;margin:auto;text-align:center}.season-toggle{display:grid;grid-template-columns:1fr 1fr;max-width:650px;margin:40px auto 38px;border:2px solid var(--gold)}.season{padding:18px;background:transparent;border:0;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;cursor:pointer}.season.active{background:var(--gold);color:var(--deep)}.hours-table{max-width:720px;margin:auto}.hours-row{display:flex;justify-content:space-between;gap:20px;padding:15px 12px;border-bottom:1px solid rgba(242,234,219,.2)}.hours-row span:first-child{text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-size:.8rem}.phone-call{display:flex;flex-direction:column;text-decoration:none;margin-top:46px}.phone-call small{font-size:.95rem;color:rgba(242,234,219,.75)}.phone-call strong{font:400 clamp(2rem,5vw,3.2rem) var(--typewriter);color:var(--gold)}.reviews-section{background-color:#0b3931;background-image:linear-gradient(rgba(11,57,49,.82),rgba(11,57,49,.82)),url('assets/green-brick-texture.jpg');background-size:cover;background-position:center;background-attachment:fixed;color:var(--cream);position:relative;overflow:hidden}.reviews-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 20%,rgba(211,173,72,.08),transparent 34%),radial-gradient(circle at 90% 80%,rgba(211,173,72,.07),transparent 30%);pointer-events:none}.reviews-section>*{position:relative}.reviews-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.review-card{margin:0;padding:clamp(28px,4vw,48px);border:1px solid rgba(211,173,72,.55);background:rgba(6,37,31,.55);box-shadow:0 18px 45px rgba(0,0,0,.18)}.review-card blockquote{margin:18px 0 25px;font:400 clamp(1.15rem,2vw,1.45rem)/1.65 var(--typewriter)}.stars{color:var(--gold);letter-spacing:.18em;font-size:1rem}.review-source{margin:0;color:rgba(242,234,219,.7);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.reviews-action{text-align:center;margin-top:38px}
.find-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:center}.find-logo{width:150px;margin-bottom:12px}.find-copy .address{font:400 1.35rem/1.6 var(--typewriter)}.find-copy p a{font-size:1.2rem;color:var(--green)}.map-wrap{min-height:480px}.map-wrap iframe{width:100%;height:480px;border:0;filter:grayscale(1) sepia(.15)}footer{text-align:center;padding:48px 20px;background:#06251f;color:rgba(242,234,219,.75);font-size:.8rem}.footer-logo{width:130px;margin:0 auto 12px}.copyright{opacity:.55}.menu-modal{width:min(98vw,1600px);max-height:96vh;padding:42px 12px 12px;border:0;background:#111;box-shadow:0 25px 80px rgba(0,0,0,.75);overflow:auto}.menu-modal::backdrop{background:rgba(0,0,0,.92)}.menu-modal img{width:100%;height:auto}.close-modal{position:absolute;right:10px;top:5px;border:0;background:none;color:white;font-size:2rem;cursor:pointer}
@media(max-width:820px){.reviews-grid{grid-template-columns:1fr}.site-header{height:70px}.header-logo{height:54px}.brand-name{font-size:1rem}.menu-button{display:block}.main-nav{position:absolute;top:70px;left:0;right:0;display:none;flex-direction:column;gap:0;background:var(--deep);padding:12px 22px 22px}.main-nav.open{display:flex}.main-nav a{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.1)}.hero-content{padding-top:110px}.hero-line span{display:none}.hero-line{display:flex;flex-direction:column;gap:4px}.section{padding-left:20px;padding-right:20px}.split-section{grid-template-columns:1fr}.split-copy .section-logo{margin-left:auto}.split-copy{text-align:center}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:300px}.gallery-grid .gallery-tall,.gallery-grid .gallery-wide{grid-row:auto;grid-column:auto}.season{padding:14px 8px;font-size:.62rem}.hours-row{font-size:.85rem}.find-grid{grid-template-columns:1fr}.find-logo{margin-left:auto;margin-right:auto}.find-copy{text-align:center}.map-wrap,.map-wrap iframe{height:380px;min-height:380px}}
@media(max-width:430px){.brand-name{display:none}.gallery-grid{grid-auto-rows:250px}.hero-logo{width:120px}}

@media(max-width:820px){.textured,.reviews-section{background-attachment:scroll}}

/* Type treatment: Special Elite throughout, with the business name retained in the vintage nautical style. */
.brand-name, h1, #gallery-heading, #find-us h2 {font-family:var(--tattoo);}

/* Requested refinements: retain the existing design, add the real green brick texture
   to the header and menu section, and show the replacement gallery photographs in full. */
.site-header{
  background-color:rgba(8,47,41,.94);
  background-image:linear-gradient(rgba(8,47,41,.82),rgba(8,47,41,.82)),url('assets/green-brick-texture.jpg');
  background-size:520px auto;
  background-position:center top;
}
#menu.dark{
  background-color:var(--green);
  background-image:linear-gradient(rgba(8,47,41,.78),rgba(8,47,41,.78)),url('assets/green-brick-texture.jpg');
  background-size:cover;
  background-position:center;
  box-shadow:inset 0 0 100px rgba(0,0,0,.28);
}
.gallery-grid.gallery-grid-natural{
  max-width:1220px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:auto;
  gap:18px;
  align-items:start;
}
.gallery-grid.gallery-grid-natural figure{
  margin:0;
  overflow:hidden;
  background:#e7decc;
  box-shadow:0 12px 30px rgba(20,25,22,.12);
}
.gallery-grid.gallery-grid-natural img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  transform:none;
}
.gallery-grid.gallery-grid-natural figure:hover img{transform:none}
.gallery-grid.gallery-grid-natural .gallery-shopfront{grid-column:1 / -1}
.gallery-grid.gallery-grid-natural .gallery-neon{grid-column:1 / span 2}
@media(max-width:820px){
  .gallery-grid.gallery-grid-natural{grid-template-columns:1fr 1fr}
  .gallery-grid.gallery-grid-natural .gallery-shopfront,
  .gallery-grid.gallery-grid-natural .gallery-neon{grid-column:1 / -1}
}
@media(max-width:520px){
  .gallery-grid.gallery-grid-natural{grid-template-columns:1fr}
  .gallery-grid.gallery-grid-natural .gallery-shopfront,
  .gallery-grid.gallery-grid-natural .gallery-neon{grid-column:auto}
}

/* Latest gallery replacement: preserve each supplied photo exactly as provided. */
.gallery-grid.gallery-grid-natural{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:auto;
  align-items:start;
}
.gallery-grid.gallery-grid-natural figure{
  background:transparent;
  border:0;
  padding:0;
  overflow:visible;
}
.gallery-grid.gallery-grid-natural img{
  width:100%;
  height:auto;
  object-fit:contain;
  background:transparent;
}
@media(max-width:820px){
  .gallery-grid.gallery-grid-natural{grid-template-columns:1fr}
}

/* Final gallery labels, full-screen viewer and larger opening-hours text. */
.hours-row{
  font-size:clamp(1.05rem,2vw,1.3rem);
  padding:18px 12px;
}
.hours-row span:first-child{
  font-size:1em;
}
.gallery-item{
  position:relative;
  cursor:zoom-in;
}
.gallery-item figcaption{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  padding:12px 14px;
  background:rgba(8,47,41,.88);
  color:var(--cream);
  text-align:center;
  font-size:.9rem;
  line-height:1.35;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .2s ease,transform .2s ease;
  pointer-events:none;
}
.gallery-item:hover figcaption,
.gallery-item:focus figcaption{
  opacity:1;
  transform:translateY(0);
}
.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.gallery-modal{
  width:min(96vw,1400px);
  max-height:96vh;
  padding:46px 16px 18px;
  border:0;
  background:#0b1714;
  color:var(--cream);
  box-shadow:0 25px 80px rgba(0,0,0,.75);
  overflow:auto;
}
.gallery-modal::backdrop{background:rgba(0,0,0,.92)}
.gallery-modal img{width:100%;height:auto;max-height:82vh;object-fit:contain;margin:auto}
.close-gallery{position:absolute;right:10px;top:5px;border:0;background:none;color:white;font-size:2rem;cursor:pointer}
.gallery-modal-caption{text-align:center;margin:14px 0 0;color:var(--cream);font-size:1rem}
@media(max-width:820px){
  .hours-row{font-size:1rem}
  .gallery-item figcaption{
    position:static;
    opacity:1;
    transform:none;
    background:var(--deep);
    margin:0;
  }
  .gallery-item figcaption.visually-hidden{position:absolute!important}
}


/* Compact masonry gallery: retains every original image without cropping while removing large blank gaps. */
.gallery-grid.gallery-grid-natural{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:8px;
  gap:12px 16px;
  align-items:start;
}
.gallery-grid.gallery-grid-natural .gallery-item{
  align-self:start;
}
.gallery-grid.gallery-grid-natural .gallery-item img{
  width:100%;
  height:auto;
  object-fit:contain;
}
@media(max-width:820px){
  .gallery-grid.gallery-grid-natural{
    grid-template-columns:1fr;
    gap:12px;
  }
}


/* Final menu refinement: place the enlarge control below the menu on the brick background. */
.menu-display{max-width:1380px;margin:0 auto;text-align:center}
.menu-display .menu-card{margin:0 auto}
.menu-display .menu-card span{display:none}
.menu-enlarge-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:28px auto 0;
  min-height:48px;
  padding:10px 22px;
  border:0;
  background:var(--gold);
  color:var(--deep);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.76rem;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.24);
  transition:transform .2s, box-shadow .2s;
}
.menu-enlarge-button:hover,.menu-enlarge-button:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 11px 26px rgba(0,0,0,.3);
}

/* Final professional gallery layout: true masonry columns with no artificial blank gaps. */
.gallery-grid.gallery-grid-natural{
  display:block !important;
  columns:3 300px;
  column-gap:14px;
  max-width:1320px;
  margin:0 auto;
}
.gallery-grid.gallery-grid-natural .gallery-item{
  display:inline-block;
  width:100%;
  margin:0 0 14px;
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  vertical-align:top;
  overflow:hidden;
  background:transparent;
}
.gallery-grid.gallery-grid-natural .gallery-item img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
@media(max-width:900px){
  .gallery-grid.gallery-grid-natural{columns:2 260px;column-gap:12px}
  .gallery-grid.gallery-grid-natural .gallery-item{margin-bottom:12px}
}
@media(max-width:560px){
  .gallery-grid.gallery-grid-natural{columns:1;column-gap:0}
}

/* Balanced gallery: fills the complete gallery area with no empty columns or lower gaps.
   Full original photos remain available in the click-to-enlarge viewer. */
.gallery-grid.gallery-grid-natural{
  display:grid !important;
  columns:auto !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:repeat(3,clamp(230px,24vw,330px));
  grid-auto-flow:dense;
  gap:14px;
  max-width:1320px;
  margin:0 auto;
}
.gallery-grid.gallery-grid-natural .gallery-item{
  display:block;
  width:auto;
  height:100%;
  margin:0;
  overflow:hidden;
  break-inside:auto;
  background:var(--deep);
}
.gallery-grid.gallery-grid-natural .gallery-item:nth-child(1),
.gallery-grid.gallery-grid-natural .gallery-item:nth-child(4){
  grid-column:span 2;
}
.gallery-grid.gallery-grid-natural .gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.gallery-grid.gallery-grid-natural .gallery-item figcaption{
  z-index:2;
}
@media(max-width:900px){
  .gallery-grid.gallery-grid-natural{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:none;
    grid-auto-rows:clamp(230px,46vw,340px);
    gap:12px;
  }
  .gallery-grid.gallery-grid-natural .gallery-item:nth-child(1),
  .gallery-grid.gallery-grid-natural .gallery-item:nth-child(4){
    grid-column:span 2;
  }
}
@media(max-width:560px){
  .gallery-grid.gallery-grid-natural{
    grid-template-columns:1fr;
    grid-auto-rows:min(110vw,440px);
    gap:12px;
  }
  .gallery-grid.gallery-grid-natural .gallery-item:nth-child(1),
  .gallery-grid.gallery-grid-natural .gallery-item:nth-child(4){
    grid-column:auto;
  }
}

/* About-section quality note */
.quality-note{
  margin-top:34px;
  padding:24px 26px 22px;
  background:rgba(21,88,78,.07);
  border-left:5px solid var(--gold);
  box-shadow:0 12px 30px rgba(20,25,22,.08);
}
.quality-note h3{
  margin:0 0 12px;
  color:var(--green);
  font-family:var(--typewriter);
  font-size:clamp(1.25rem,2vw,1.65rem);
  font-weight:400;
  line-height:1.25;
}
.quality-note p{margin:0;line-height:1.65}
@media(max-width:820px){
  .quality-note{text-align:left;padding:22px 20px}
}


/* Social links */
.social-links{display:flex;justify-content:center;align-items:center;gap:12px;margin:12px 0 6px}
.social-links a{color:var(--gold);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem}
.social-links a:hover,.social-links a:focus-visible{text-decoration:underline}
.social-links span{color:rgba(242,234,219,.5)}
