/* ===== Fonts ===== */
@font-face{font-family:'Modernoir';src:url('../fonts/TT_Modernoir_Trial_Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Modernoir';src:url('../fonts/TT_Modernoir_Trial_Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Modernoir';src:url('../fonts/TT_Modernoir_Trial_DemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Modernoir';src:url('../fonts/TT_Modernoir_Trial_Bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'Akrobat';src:url('../fonts/Akrobat-Regular.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:'Akrobat';src:url('../fonts/Akrobat-Bold.otf') format('opentype');font-weight:700;font-display:swap}
@font-face{font-family:'Minion';src:url('../fonts/MinionPro-Regular.otf') format('opentype');font-weight:400;font-display:swap}

/* ===== Tokens ===== */
:root{
  --green:#004f39;
  --cream:#F4E3CD;
  --soft:#cdb892;
  --line:rgba(244,227,205,.22);
  --maxw:1080px;
}

/* ===== Reset ===== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--green);color:var(--cream);font-family:'Akrobat',system-ui,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ===== Layout primitives ===== */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.section{padding:64px 0 8px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:30px 54px}

/* ===== Hero ===== */
.hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px}
.hero__logo{width:min(260px,70vw);aspect-ratio:972/929;background:var(--cream);-webkit-mask:url('../img/logo-rounded.svg') center/contain no-repeat;mask:url('../img/logo-rounded.svg') center/contain no-repeat}
.hero__menu{font-family:'Modernoir';font-weight:400;font-size:clamp(64px,16vw,128px);letter-spacing:.04em;line-height:.85;margin-top:8px}
.hero__tag{font-family:'Modernoir';font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--soft);font-size:clamp(14px,2.4vw,20px);margin-top:18px}
.hero__cue{margin-top:42px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;font-size:12px;color:var(--soft);opacity:.75}

/* ===== Sticky nav ===== */
.nav{position:sticky;top:0;z-index:50;background:rgba(0,79,57,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transform:translateY(-100%);transition:transform .35s ease}
.nav.is-visible{transform:none}
.nav__in{max-width:var(--maxw);margin:0 auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.nav__logo{height:34px;width:158px;background:var(--cream);-webkit-mask:url('../img/logo-horizontal.svg') left center/contain no-repeat;mask:url('../img/logo-horizontal.svg') left center/contain no-repeat}
.nav__links{display:flex;gap:20px;flex-wrap:wrap;font-family:'Modernoir';font-weight:500;letter-spacing:.06em;font-size:15px}
.nav__links a{color:var(--soft);transition:color .2s}
.nav__links a:hover{color:var(--cream)}
/* hamburger toggle (hidden on desktop) */
.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;padding:7px;background:none;border:0;cursor:pointer}
.nav__toggle span{display:block;height:2px;width:100%;background:var(--cream);border-radius:2px;transition:transform .3s ease,opacity .2s ease}
.nav.is-open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.is-open .nav__toggle span:nth-child(2){opacity:0}
.nav.is-open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ===== Section header ===== */
.sec__title{font-family:'Modernoir';font-weight:700;font-size:clamp(40px,7vw,64px);text-align:center;letter-spacing:.03em;line-height:.92}
.sec__title .en{font-weight:400;opacity:.85}
.sec__star{text-align:center;color:var(--soft);font-size:20px;margin:6px 0 26px}
.bar{display:flex;align-items:center;gap:14px;justify-content:center;margin-bottom:26px}
.bar__dots{flex:1;border-top:1.6px dotted var(--line)}
.bar__t{font-family:'Modernoir';font-weight:700;font-size:22px;letter-spacing:.03em;text-align:center}
.bar__t .en{font-weight:400;opacity:.8}
.bar__u{font-family:'Akrobat';font-weight:700;font-size:12px;letter-spacing:.06em;opacity:.7;white-space:nowrap}
.colhead{font-family:'Modernoir';font-weight:700;font-size:22px;letter-spacing:.16em;text-align:center;margin:6px 0 14px}
.colhead::before,.colhead::after{content:"\2726";font-size:12px;color:var(--soft);margin:0 10px;vertical-align:middle}
.mini{font-family:'Modernoir';font-weight:600;letter-spacing:.12em;font-size:15px;text-align:center;margin:20px 0 8px;color:var(--soft)}

/* ===== Item rows ===== */
.item{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);align-items:baseline;transition:transform .2s ease}
.item:hover{transform:translateX(4px)}
.item__nm{font-weight:700;font-size:15.5px;flex:1}
.item__nm .en{font-weight:400;color:var(--soft)}
.item__desc{display:block;font-family:'Minion';font-style:italic;font-weight:400;color:var(--soft);font-size:12.5px;margin-top:1px}
.item__pr{font-family:'Akrobat';font-weight:700;white-space:nowrap;font-size:13.5px;color:var(--soft);text-align:right}

/* ===== Signature dashed box ===== */
.signature{margin-top:30px;border:1.6px dashed var(--line);border-radius:16px;padding:24px 28px 16px}
.signature__title{font-family:'Modernoir';font-weight:700;font-size:20px;letter-spacing:.08em;text-align:center;margin-bottom:14px}
.signature__title .en{font-weight:400;opacity:.8}

/* ===== Gelato inverse panel (cream bg, green ink) ===== */
.panel{background:var(--cream);color:var(--green);border-radius:18px;padding:34px 36px;margin-top:34px;display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.panel__body{flex:1;min-width:240px}
.panel .sec__title,.panel .item__nm,.panel .item__pr,.panel .item__desc{color:var(--green)}
.panel .item{border-bottom-color:rgba(0,79,57,.18)}
.panel__illus{width:150px;height:150px;background:var(--green);-webkit-mask:url('../img/ice-cream.svg') center/contain no-repeat;mask:url('../img/ice-cream.svg') center/contain no-repeat;flex:none}

/* ===== Illustrations (recolored line art) ===== */
.illus{width:100%;max-width:340px;height:200px;margin:8px auto 18px;background:var(--cream)}
.illus--girls{-webkit-mask:url('../img/girls.svg') center/contain no-repeat;mask:url('../img/girls.svg') center/contain no-repeat}
.illus--kid{-webkit-mask:url('../img/kid.svg') center/contain no-repeat;mask:url('../img/kid.svg') center/contain no-repeat;max-width:240px}

/* ===== Footer ===== */
.footer{text-align:center;padding:70px 24px 60px;margin-top:40px;border-top:1px solid var(--line)}
.footer__logo{width:120px;aspect-ratio:972/929;margin:0 auto 14px;background:var(--cream);-webkit-mask:url('../img/logo-rounded.svg') center/contain no-repeat;mask:url('../img/logo-rounded.svg') center/contain no-repeat}
.footer__contact{margin-top:10px;font-size:14px;color:var(--soft)}
.footer__legal{margin-top:22px;font-size:12px;letter-spacing:.06em;color:var(--soft);opacity:.7}
.footer__credit{margin-top:6px;font-size:12px;letter-spacing:.06em;color:var(--soft);opacity:.7}
.footer__credit a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line);transition:color .2s,border-color .2s}
.footer__credit a:hover,.footer__credit a:focus-visible{color:var(--cream);border-bottom-color:currentColor}

/* ===== Responsive ===== */
@media(max-width:720px){
  .cols{grid-template-columns:1fr;gap:8px}
  .panel{flex-direction:column;text-align:center}

  .nav__toggle{display:flex}
  .nav__links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;
    background:rgba(0,79,57,.98);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;opacity:0;pointer-events:none;
    transition:max-height .32s ease,opacity .25s ease;
  }
  .nav.is-open .nav__links{max-height:80vh;opacity:1;pointer-events:auto}
  .nav__links a{
    padding:14px 28px;font-size:19px;color:var(--cream);
    border-bottom:1px solid var(--line);
  }
  .nav__links a:last-child{border-bottom:none}
}

@media(prefers-reduced-motion:reduce){
  .nav__links{transition:none}
  .nav__toggle span{transition:none}
}

/* ===== Reduced motion: ensure everything visible if JS animates ===== */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .nav{transition:none}
  .item{transition:none}
}

/* ===== JS animation initial states (only applied when .js-anim is on <html>) ===== */
.js-anim .reveal{opacity:0}
.js-anim .wipe{clip-path:inset(0 0 100% 0)}

/* ===== Section description (optional paragraph under the title) ===== */
.sec__desc{max-width:640px;margin:0 auto 24px;text-align:center;font-family:'Minion';font-style:italic;color:var(--soft);font-size:15px}
.sec__desc .en{opacity:.85}

/* ===== Group flow (owner-selected desktop columns; mobile always 1) ===== */
.grouplist{}
.grouplist.cols-2{column-count:2;column-gap:54px}
.grouplist.cols-2 .group{break-inside:avoid}
.group{margin-bottom:6px}
@media(max-width:720px){ .grouplist.cols-2{column-count:1} }

/* ===== Dish photo trigger (lightbox wired in Plan 3) ===== */
/* Inline dish thumbnail — click opens the lightbox slider */
.item__photo{align-self:center;flex:none;width:54px;height:54px;padding:0;border:0;background:none;cursor:pointer;border-radius:8px;overflow:hidden;position:relative;box-shadow:0 2px 8px rgba(0,0,0,.28);transition:transform .2s ease}
.item__photo:hover{transform:scale(1.05)}
.item__photo img{width:100%;height:100%;object-fit:cover;display:block}
.item__photo-more{position:absolute;right:3px;bottom:3px;background:rgba(0,32,23,.82);color:var(--cream);font-family:'Akrobat';font-weight:700;font-size:10px;line-height:1;padding:2px 4px;border-radius:4px}

/* ===== Photo lightbox + slider ===== */
.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(0,32,23,.9);padding:24px;cursor:zoom-out}
.lightbox.is-open{display:flex}
.lightbox .lb__img{max-width:min(92vw,760px);max-height:86vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb__nav{display:none;position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:50%;background:rgba(244,227,205,.14);color:var(--cream);font-size:30px;line-height:1;cursor:pointer;align-items:center;justify-content:center;transition:background .2s}
.lb__nav:hover{background:rgba(244,227,205,.28)}
.lb__prev{left:16px}
.lb__next{right:16px}
.lightbox.is-multi .lb__nav{display:flex}
.lb__count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-family:'Akrobat';font-weight:700;font-size:13px;letter-spacing:.08em;color:var(--soft)}
