/* =========================================================
   GOOSEBERRY — SECTION CSS
   Paste SETELAH gooseberry-tokens.css (di bawahnya) pada
   Additional CSS / code snippet yang sama.

   ATURAN PENTING saat membangun di Elementor:
   Untuk Container yang diberi salah satu class di file ini
   (gb-hero, gb-menu, gb-menu__list, gb-margin-row, gb-intro__columns,
   gb-sig-strip, gb-about-cols, gb-guest, gb-visit__grid,
   gb-footer__wrap, gb-footer__nav, gb-footer__sig) —
   JANGAN atur ulang Direction / Columns / Padding / Gap milik
   container itu sendiri lewat panel Layout Elementor. Biarkan
   default (kosong). CSS di file ini yang mengatur 100% layout-nya.
   Ini supaya tidak baku-tabrak specificity dengan CSS bawaan Elementor.
   ========================================================= */

/* ===== HERO ===== */
.gb-hero{
  position:relative;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important; justify-content:center !important; text-align:center !important;
  min-height:100vh !important;
  padding:170px clamp(24px,6vw,60px) 150px !important;
  overflow:hidden;
  background-image:
    linear-gradient(180deg, rgba(12,10,8,.62) 0%, rgba(12,10,8,.34) 40%, rgba(12,10,8,.84) 100%),
    url('REPLACE-WITH-HERO-IMAGE-URL') !important;
  background-size:cover !important;
  background-position:center 40% !important;
}
@media (max-width:767px){
  .gb-hero{ min-height:660px !important; padding:70px 24px 96px !important; }
}

.gb-hero__kicker{
  font-family:var(--gb-font-label) !important; font-weight:200 !important; font-size:10.5px;
  letter-spacing:.62em; text-transform:uppercase; color:var(--gb-champagne) !important; padding-left:.62em;
}
@media (max-width:767px){ .gb-hero__kicker{ font-size:9px; letter-spacing:.46em; padding-left:.46em; } }

.gb-hero__h1{
  font-family:var(--gb-font-display); font-weight:300;
  font-size:clamp(52px,10vw,138px); line-height:.98; letter-spacing:.01em;
  color:var(--gb-bone-bright); margin:34px 0 0;
}
@media (max-width:767px){ .gb-hero__h1{ font-size:52px; line-height:1; margin-top:24px; } }
.gb-hero__h1 em{ font-style:italic; font-weight:300; color:var(--gb-champagne-light); }

.gb-hero__divider{
  width:1px !important; height:66px !important;
  padding:0 !important;
  background:linear-gradient(rgba(201,170,118,.9), rgba(201,170,118,0)) !important;
  margin:30px 0 26px !important;
}
@media (max-width:767px){ .gb-hero__divider{ height:44px !important; margin:26px 0 22px !important; } }

.gb-hero__standfirst{
  font-family:var(--gb-font-standfirst) !important; font-style:italic;
  font-size:clamp(20px,2.2vw,26px); line-height:1.6; color:rgba(246,241,231,.92) !important; max-width:620px !important;
}
@media (max-width:767px){ .gb-hero__standfirst{ font-size:19px; line-height:1.55; max-width:320px; } }

.gb-hero__hours{
  font-family:var(--gb-font-label) !important; font-weight:300 !important; font-size:10.5px;
  letter-spacing:.44em; text-transform:uppercase; color:rgba(239,233,220,.66) !important;
  margin-top:30px; padding-left:.44em;
}
@media (max-width:767px){ .gb-hero__hours{ font-size:9.5px; letter-spacing:.36em; margin-top:22px; } }

.gb-hero__cta{ margin-top:36px; }
@media (max-width:767px){
  .gb-hero__cta{ margin-top:30px; width:250px; }
  .gb-hero__cta .gb-btn{ width:100%; }
  .gb-hero__cta .gb-btn .elementor-button{ width:100% !important; text-align:center !important; }
}

.gb-hero__cue{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:12px;
  font-family:var(--gb-font-label); font-weight:300; font-size:9.5px;
  letter-spacing:.42em; text-transform:uppercase; color:rgba(239,233,220,.6);
}
.gb-hero__cue-bar{
  width:1px; height:46px;
  background:linear-gradient(rgba(239,233,220,.7), transparent);
  animation:gbCue 2.6s cubic-bezier(.22,.61,.36,1) infinite;
}
@keyframes gbCue{
  0%{transform:scaleY(.15);transform-origin:top}
  48%{transform:scaleY(1);transform-origin:top}
  52%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(.15);transform-origin:bottom}
}
@media (prefers-reduced-motion:reduce){ .gb-hero__cue-bar{ animation:none; } }


/* ===== MENU ===== */
.gb-menu{
  position:relative;
  padding:clamp(66px,8vw,110px) clamp(24px,6vw,60px);
  overflow:hidden;
  background-color:var(--gb-paper);
}
@media (max-width:767px){ .gb-menu{ padding:56px 24px; } }

.gb-menu::before{
  content:"";
  position:absolute; inset:0;
  background-image:url('REPLACE-WITH-HERO-IMAGE-URL');
  background-size:cover; background-position:center 30%;
  opacity:.07; filter:grayscale(.5);
}

.gb-menu__intro{ position:relative; max-width:600px; margin:0 auto; display:flex !important; flex-direction:column !important; align-items:center; text-align:center; }

.gb-menu__heading{
  font-family:var(--gb-font-display); font-weight:300;
  font-size:clamp(44px,7vw,86px); line-height:1.04; color:var(--gb-ink); margin-top:22px;
}
@media (max-width:767px){ .gb-menu__heading{ font-size:46px; line-height:1.05; margin-top:16px; } }
.gb-menu__heading em{ font-style:italic; color:var(--gb-gold-italic); }

.gb-menu__standfirst{
  font-family:var(--gb-font-standfirst) !important; font-style:italic; font-size:20px; line-height:1.65;
  color:var(--gb-ink-muted) !important; margin-top:22px;
}
@media (max-width:767px){ .gb-menu__standfirst{ font-size:17.5px; line-height:1.6; margin-top:14px; } }

.gb-menu__list{
  position:relative; max-width:var(--gb-width-menu-list); margin:clamp(36px,4.5vw,56px) auto 0;
  display:flex !important; flex-direction:column !important;
  border-top:1px solid var(--gb-line-paper-section);
}
@media (max-width:767px){ .gb-menu__list{ margin-top:30px; } }

.gb-menu__row{
  display:flex !important; align-items:baseline; justify-content:space-between; gap:24px;
  padding:26px 12px;
  border-bottom:1px solid var(--gb-line-paper-internal);
  transition:background .5s ease;
}
.gb-menu__row:hover{ background:var(--gb-wash-paper-hover); }
@media (max-width:767px){ .gb-menu__row{ padding:17px 2px; gap:14px; } }

.gb-menu__fr{
  font-family:var(--gb-font-display); font-style:italic; font-weight:300;
  font-size:clamp(28px,3.4vw,40px); color:var(--gb-gold-italic); line-height:1.1;
}
@media (max-width:767px){ .gb-menu__fr{ font-size:27px; } }

.gb-menu__en{
  font-family:var(--gb-font-label); font-weight:300; font-size:11px;
  letter-spacing:.34em; text-transform:uppercase; color:var(--gb-ink-muted-2); white-space:nowrap;
}
@media (max-width:767px){ .gb-menu__en{ font-size:9.5px; letter-spacing:.28em; } }


/* ===== MARGIN-COLUMN ROW (dipakai bareng oleh Intro & About) ===== */
.gb-margin-row{
  display:flex !important;
  gap:0 clamp(24px,6vw,80px);
  align-items:start;
}
.gb-margin-row > *{ min-width:0; }
.gb-margin-row > :first-child{ flex:1 1 0 !important; }
.gb-margin-row > :last-child{ flex:3.4 1 0 !important; }
@media (max-width:900px){
  .gb-margin-row{ flex-direction:column !important; gap:20px; }
  .gb-margin-row > :empty{ display:none; }
}

.gb-margin-label{ display:flex !important; flex-direction:column !important; gap:18px; padding-top:18px; }
.gb-margin-label__text{
  font-family:var(--gb-font-label); font-weight:400; font-size:13px;
  letter-spacing:.3em; text-transform:uppercase; color:var(--gb-champagne); line-height:2;
}


/* ===== INTRO ===== */
.gb-intro{ background:var(--gb-noir); color:var(--gb-bone); padding:clamp(64px,8vw,110px) clamp(24px,6vw,60px) clamp(56px,6vw,84px); }
@media (max-width:767px){ .gb-intro{ padding:52px 24px 44px; } }

.gb-intro__wrap{ max-width:var(--gb-width-margin-col); margin:0 auto; display:flex !important; flex-direction:column !important; gap:clamp(48px,6vw,88px); }
@media (max-width:767px){ .gb-intro__wrap{ gap:26px; } }

.gb-intro__body{
  border-top:1px solid var(--gb-line-noir-section);
  padding-top:clamp(28px,3.5vw,42px);
  display:flex !important; flex-direction:column !important; gap:clamp(26px,3vw,38px);
}
@media (max-width:767px){ .gb-intro__body{ margin-top:26px; padding-top:26px; } }

.gb-intro__columns{
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important;
  gap:clamp(24px,4vw,64px);
}
@media (max-width:900px){ .gb-intro__columns{ grid-template-columns:1fr !important; } }

/* Headline mobile override — Intro pakai 40px tetap (bukan clamp generik) */
@media (max-width:767px){ .gb-intro .gb-h2{ font-size:40px; line-height:1.1; } }

/* Signature strip — desktop only, sesuai brief §3 & §6 */
.gb-sig-strip{
  display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  border-top:1px solid var(--gb-line-noir-section);
}
.gb-sig-strip__item{
  display:grid !important; gap:10px; padding:clamp(28px,3vw,44px) 24px 4px;
  border-left:1px solid var(--gb-line-noir-internal);
}
.gb-sig-strip__item:first-child{ border-left:none; padding-left:0; }
.gb-sig-strip__title{ font-family:var(--gb-font-display); font-style:italic; font-weight:400; font-size:clamp(23px,1.9vw,31px); line-height:1.15; color:var(--gb-bone-bright); }
.gb-sig-strip__caption{ font-family:var(--gb-font-label); font-weight:300; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gb-champagne); }
@media (max-width:900px){
  .gb-sig-strip{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .gb-sig-strip__item{ border-left:none !important; padding:22px 0; border-top:1px solid var(--gb-line-noir-internal); }
}
@media (max-width:520px){ .gb-sig-strip{ grid-template-columns:1fr !important; } }
@media (max-width:767px){ .gb-sig-strip{ display:none !important; } } /* mobile: pindah ke footer */


/* ===== ABOUT ===== */
.gb-about{ background:var(--gb-noir); color:var(--gb-bone); padding:clamp(56px,7vw,94px) clamp(24px,6vw,60px) clamp(64px,8vw,110px); }
@media (max-width:767px){ .gb-about{ padding:52px 24px 58px; } }

.gb-about__wrap{ max-width:var(--gb-width-margin-col); margin:0 auto; display:flex !important; flex-direction:column !important; gap:clamp(40px,5vw,72px); }

.gb-about-cols{
  column-count:2 !important; column-gap:clamp(24px,6vw,80px);
  border-top:1px solid var(--gb-line-noir-section);
  padding-top:clamp(28px,3.5vw,42px);
}
.gb-about-cols p{
  margin:0 0 20px; font-family:var(--gb-font-body); font-weight:400; font-size:21px; line-height:1.75;
  color:rgba(239,233,220,.72); break-inside:avoid;
}
@media (max-width:900px){ .gb-about-cols{ column-count:1 !important; } }
@media (max-width:767px){
  .gb-about-cols p{ font-size:16.5px; line-height:1.7; }
  .gb-about .gb-h2{ font-size:27px; line-height:1.24; }
}

.gb-dropcap{
  float:left; font-family:var(--gb-font-display); font-size:72px; line-height:.8;
  padding:8px 12px 0 0; color:var(--gb-champagne);
}
@media (max-width:767px){ .gb-dropcap{ font-size:50px; padding:6px 9px 0 0; } }


/* ===== GUEST EXPERIENCE ===== */
.gb-guest{
  background:var(--gb-paper);
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)) !important;
  align-items:stretch;
}
.gb-guest__photo{
  min-height:min(78vh,620px);
  background-size:cover; background-position:center;
  filter:saturate(.8);
}
@media (max-width:767px){ .gb-guest__photo{ min-height:300px; } }

.gb-guest__text{
  display:flex !important; flex-direction:column !important; justify-content:center;
  padding:clamp(48px,6vw,90px) clamp(28px,5vw,80px);
}
@media (max-width:767px){ .gb-guest__text{ padding:44px 24px 50px; align-items:flex-start; } }

.gb-guest__heading{
  font-family:var(--gb-font-display); font-weight:300;
  font-size:clamp(38px,4.8vw,62px); line-height:1.06; color:var(--gb-ink); margin:26px 0 0;
}
@media (max-width:767px){ .gb-guest__heading{ font-size:38px; line-height:1.06; margin-top:18px; } }
.gb-guest__heading em{ font-style:italic; color:var(--gb-gold-italic); }

.gb-guest__body{ display:flex !important; flex-direction:column !important; gap:22px; max-width:520px; }
.gb-guest__body p{ font-family:var(--gb-font-body); font-weight:400; color:var(--gb-ink-soft); font-size:20px; line-height:1.75; }
@media (max-width:767px){ .gb-guest__body p{ font-size:16.5px; line-height:1.8; } }


/* ===== VISIT ===== */
.gb-visit{ background:var(--gb-paper); color:var(--gb-ink); padding:clamp(62px,7vw,100px) clamp(24px,6vw,60px); }
@media (max-width:767px){ .gb-visit{ padding:50px 24px; } }

.gb-visit__grid{
  max-width:var(--gb-width-visit); margin:0 auto;
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important;
  gap:clamp(40px,6vw,70px); text-align:center;
}
@media (max-width:767px){
  .gb-visit__grid{ display:flex !important; flex-direction:column !important; gap:0; }
}

.gb-visit__col{ display:flex !important; flex-direction:column !important; align-items:center; gap:20px; }
@media (max-width:767px){
  .gb-visit__col{ gap:14px; padding-top:30px; border-top:1px solid rgba(26,23,19,.12); }
  .gb-visit__col:first-child{ border-top:none; padding-top:0; }
}

.gb-visit__label{
  font-family:var(--gb-font-label); font-weight:300; font-size:10.5px;
  letter-spacing:.46em; text-transform:uppercase; color:var(--gb-gold-deep); padding-left:.46em;
}
@media (max-width:767px){ .gb-visit__label{ font-size:9px; letter-spacing:.38em; padding-left:.38em; } }

.gb-visit__address{ color:var(--gb-ink-soft); font-size:18px; line-height:1.95; }
@media (max-width:767px){ .gb-visit__address{ font-size:16.5px; line-height:1.9; } }

.gb-visit__hours-big{ font-family:var(--gb-font-display); font-style:italic; font-weight:300; font-size:30px; line-height:1.2; color:var(--gb-ink); }
@media (max-width:767px){ .gb-visit__hours-big{ font-size:27px; } }
.gb-visit__hours-small{ color:var(--gb-ink-soft); font-size:18px; }
@media (max-width:767px){ .gb-visit__hours-small{ font-size:16.5px; } }

.gb-visit__contact{ display:flex !important; flex-direction:column !important; gap:14px; align-items:center; }
.gb-visit__link{
  font-family:var(--gb-font-label); font-weight:300; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--gb-ink-soft); border-bottom:1px solid rgba(26,23,19,.2);
  padding-bottom:5px; transition:color .4s ease,border-color .4s ease;
  display:inline-flex; align-items:center; justify-content:center;
}
.gb-visit__link:hover{ color:var(--gb-gold-deep); border-bottom-color:var(--gb-gold-deep); }
@media (max-width:767px){
  .gb-visit__contact{ width:100%; max-width:280px; }
  .gb-visit__link{
    width:100%; min-height:44px; box-sizing:border-box;
    border:1px solid rgba(26,23,19,.2) !important;
    padding:15px; font-size:10.5px; letter-spacing:.22em;
  }
}


/* ===== RESERVATIONS ===== */
.gb-reserve{ background:var(--gb-noir); padding:clamp(48px,5.5vw,72px) clamp(24px,6vw,60px); text-align:center; }
@media (max-width:767px){ .gb-reserve{ padding:46px 24px; } }
.gb-reserve__wrap{ max-width:760px; margin:0 auto; display:flex !important; flex-direction:column !important; align-items:center; }
.gb-reserve__heading{ font-family:var(--gb-font-display); font-weight:300; font-size:clamp(30px,3.6vw,50px); line-height:1.1; color:var(--gb-bone-bright); }
@media (max-width:767px){ .gb-reserve__heading{ font-size:30px; } }
.gb-reserve__standfirst{ font-family:var(--gb-font-standfirst) !important; font-style:italic; font-size:18px; line-height:1.65; color:rgba(239,233,220,.62) !important; max-width:480px; margin-top:18px; }
@media (max-width:767px){ .gb-reserve__standfirst{ font-size:16.5px; } }


/* ===== FOOTER ===== */
.gb-footer{ background:var(--gb-noir-deep); border-top:1px solid var(--gb-line-noir-footer); padding:clamp(46px,6vw,70px) clamp(24px,6vw,60px) 30px; text-align:center; }
@media (max-width:767px){ .gb-footer{ padding:42px 24px 26px; } }

.gb-footer__wrap{ max-width:var(--gb-width-visit); margin:0 auto; display:flex !important; flex-direction:column !important; align-items:center; }

.gb-footer__brand{ font-family:var(--gb-font-display); font-weight:300; font-size:28px; letter-spacing:.46em; text-transform:uppercase; color:var(--gb-bone); padding-left:.46em; }
@media (max-width:767px){ .gb-footer__brand{ font-size:22px; letter-spacing:.4em; padding-left:.4em; } }

.gb-footer__tagline{ font-family:var(--gb-font-label); font-weight:300; font-size:10px; letter-spacing:.4em; text-transform:uppercase; color:rgba(239,233,220,.45); margin-top:16px; padding-left:.4em; }
@media (max-width:767px){ .gb-footer__tagline{ font-size:9px; letter-spacing:.3em; padding-left:.3em; margin-top:12px; } }

.gb-footer__nav{ display:flex !important; justify-content:center; flex-wrap:wrap; gap:clamp(20px,3vw,38px); margin:34px 0 30px; }
@media (max-width:767px){ .gb-footer__nav{ flex-direction:column !important; align-items:center; gap:16px; margin:30px 0 26px; } }
.gb-footer__nav a{ font-family:var(--gb-font-label); font-weight:300; font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; color:rgba(239,233,220,.7); transition:color .4s ease; }
.gb-footer__nav a:hover{ color:var(--gb-champagne); }
@media (max-width:767px){ .gb-footer__nav a{ font-size:10px; } }

.gb-footer__credit{ width:100%; border-top:1px solid rgba(239,233,220,.1); padding-top:26px; font-family:var(--gb-font-label); font-weight:300; font-size:9.5px; letter-spacing:.28em; text-transform:uppercase; color:rgba(239,233,220,.34); }
@media (max-width:767px){ .gb-footer__credit{ padding-top:22px; font-size:9px; letter-spacing:.24em; } }

/* Signature run — MOBILE ONLY, muncul di footer (desktop-nya ada di Intro sebagai gb-sig-strip) */
.gb-footer__sig{ display:none; }
@media (max-width:767px){
  .gb-footer__sig{
    display:flex !important; flex-wrap:wrap; justify-content:center; align-items:center;
    gap:6px 10px; width:100%;
    font-family:var(--gb-font-label); font-weight:400; font-size:10px; letter-spacing:.26em;
    text-transform:uppercase; color:var(--gb-champagne); line-height:1.8; text-align:center;
    margin-top:22px; padding-top:22px; border-top:1px solid rgba(239,233,220,.1);
  }
  .gb-footer__sig span[data-dot]{ opacity:.55; }
}
