/* StackRamen — animations & micro-interactions */

/* ============ PAGE-LOAD CURTAIN ============ */
.page-curtain{position:fixed;inset:0;background:var(--maroon);z-index:9999;pointer-events:none;display:flex;align-items:center;justify-content:center;animation:curtain-up 1.4s cubic-bezier(.83,0,.17,1) .6s forwards}
.page-curtain .pc-mark{font-family:'Fraunces',serif;font-weight:300;font-style:italic;font-size:clamp(40px,7vw,96px);color:var(--champagne);letter-spacing:-.02em;opacity:0;animation:fade-zoom .8s ease .15s forwards}
@keyframes curtain-up{0%{transform:translateY(0)}100%{transform:translateY(-101%)}}
@keyframes fade-zoom{from{opacity:0;transform:scale(.92)}50%{opacity:1}to{opacity:0;transform:scale(1.05)}}

/* ============ SCROLL PROGRESS ============ */
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--maroon),var(--champagne),var(--terracotta));width:0%;z-index:60;transition:width .08s linear;box-shadow:0 0 14px rgba(107,18,24,.45)}

/* ============ CUSTOM CURSOR ============ */
.cursor-ring{position:fixed;top:0;left:0;width:36px;height:36px;border:1.5px solid var(--maroon);border-radius:50%;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);transition:width .25s ease,height .25s ease,background .25s ease,border-color .25s ease,opacity .25s ease;mix-blend-mode:difference;backdrop-filter:invert(1)}
.cursor-ring.hovering{width:62px;height:62px;background:rgba(255,255,255,.08);border-color:#fff}
.cursor-ring.click{width:24px;height:24px}
.cursor-dot{position:fixed;top:0;left:0;width:5px;height:5px;background:var(--maroon);border-radius:50%;pointer-events:none;z-index:10001;transform:translate(-50%,-50%);transition:opacity .25s ease}
@media (max-width:1024px),(hover:none){.cursor-ring,.cursor-dot{display:none!important}}

/* ============ BUTTONS — fill-from-bottom hover ============ */
.btn{position:relative;overflow:hidden;z-index:1;will-change:transform}
.btn::before{content:"";position:absolute;left:0;bottom:-100%;width:100%;height:100%;background:linear-gradient(180deg,var(--burgundy-deep),#2a050a);transition:bottom .45s cubic-bezier(.7,0,.3,1);z-index:-1}
.btn:hover::before{bottom:0}
.btn.gold::before{background:linear-gradient(180deg,#fff,#fff5dc)}
.btn.invert::before{background:linear-gradient(180deg,var(--champagne),#ecc78b)}
.btn.outline::before{background:var(--maroon)}

/* ============ NAV LINK lift ============ */
.nav-inner a.link{transition:color .3s ease, transform .3s ease}
.nav-inner a.link:hover{transform:translateY(-2px)}

/* ============ HERO RISE STAGGER ============ */
@keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.slide.active .slide-inner > *{opacity:0;animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
.slide.active .slide-inner > *:nth-child(1){animation-delay:.2s}
.slide.active .slide-inner > *:nth-child(2){animation-delay:.4s}
.slide.active .slide-inner > *:nth-child(3){animation-delay:.6s}
.slide.active .slide-inner > *:nth-child(4){animation-delay:.8s}

/* ============ STEAM PARTICLES ============ */
.steam-wrap{position:absolute;left:50%;bottom:30%;transform:translateX(-50%);width:200px;height:300px;pointer-events:none;z-index:2;opacity:.6}
.steam{position:absolute;bottom:0;width:8px;height:90px;background:linear-gradient(to top,transparent,rgba(255,255,255,.55),transparent);border-radius:8px;filter:blur(4px);animation:steam-rise 4s ease-in-out infinite}
.steam:nth-child(1){left:10%;animation-delay:0s}
.steam:nth-child(2){left:35%;animation-delay:.6s;animation-duration:5s}
.steam:nth-child(3){left:60%;animation-delay:1.2s}
.steam:nth-child(4){left:85%;animation-delay:1.8s;animation-duration:4.5s}
@keyframes steam-rise{0%{transform:translateY(60px) scale(.7);opacity:0}30%{opacity:.7}100%{transform:translateY(-220px) scale(1.4);opacity:0}}

/* ============ MARQUEE BAND ============ */
.marquee-band{background:#6b1218;padding:28px 0;overflow:hidden;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);position:relative}
.marquee-track{display:flex;gap:60px;width:max-content;animation:marquee 38s linear infinite;will-change:transform}
.marquee-band:hover .marquee-track{animation-play-state:paused}
.marquee-item{font-family:'Fraunces',serif;font-style:italic;font-weight:300;font-size:clamp(30px,4vw,52px);white-space:nowrap;display:inline-flex;align-items:center;gap:60px;color:#fff;letter-spacing:-.01em}
.marquee-item .dot{width:10px;height:10px;background:var(--champagne);border-radius:50%;display:inline-block;flex-shrink:0}
.marquee-item .kor{color:var(--champagne);font-style:normal;font-family:'Cormorant Garamond',serif;font-weight:500}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============ CARD TILT (3D) ============ */
.dish,.why-card,.info-card,.review,.v-card,.perk{transform-style:preserve-3d;will-change:transform;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease,border-color .5s ease}

/* ============ IMAGE REVEAL MASK ============ */
.img-mask{position:relative;overflow:hidden}
.img-mask::after{content:"";position:absolute;inset:0;background:var(--maroon);transform:translateX(0);transform-origin:right;transition:transform 1.4s cubic-bezier(.85,0,.15,1) .15s;z-index:3}
.img-mask.in::after{transform:scaleX(0)}
.img-mask img{transform:scale(1.1);transition:transform 2s cubic-bezier(.2,.7,.2,1) .3s}
.img-mask.in img{transform:scale(1)}

/* ============ EM UNDERLINE GROW ============ */
.section-head h2 em,
.intro-text h2 em,
.chef-text h2 em,
.eh-text h1 em{position:relative;display:inline-block}
.section-head.in h2 em::after,
.intro-text.in h2 em::after,
.chef-text.in h2 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:2px;background:currentColor;opacity:.35;transform:scaleX(0);transform-origin:left;animation:line-in 1.2s cubic-bezier(.7,0,.3,1) .4s forwards}
@keyframes line-in{to{transform:scaleX(1)}}

/* ============ FORM FIELD float-label & focus underline ============ */
.form-card input,.form-card select,.form-card textarea,
.contact-bottom input,.contact-bottom select,.contact-bottom textarea,
.res-form input,.res-form select,.res-form textarea{position:relative;background-image:linear-gradient(var(--maroon),var(--maroon));background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .5s ease}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus,
.contact-bottom input:focus,.contact-bottom select:focus,.contact-bottom textarea:focus,
.res-form input:focus,.res-form select:focus,.res-form textarea:focus{background-size:100% 1px}

/* ============ PULSE DOT ============ */
.pulse{position:relative;width:10px;height:10px;background:var(--maroon);border-radius:50%;display:inline-block}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--maroon);animation:pulse-wave 2s ease-out infinite}
@keyframes pulse-wave{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.5);opacity:0}}

/* ============ STAGGERED REVEAL CHILDREN ============ */
.stagger > *{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}
.stagger.in > *{opacity:1;transform:none}
.stagger.in > *:nth-child(1){transition-delay:.05s}
.stagger.in > *:nth-child(2){transition-delay:.15s}
.stagger.in > *:nth-child(3){transition-delay:.25s}
.stagger.in > *:nth-child(4){transition-delay:.35s}
.stagger.in > *:nth-child(5){transition-delay:.45s}
.stagger.in > *:nth-child(6){transition-delay:.55s}

/* ============ FLOATING DECORATIONS (svg-as-bg) ============ */
.float-deco{position:absolute;pointer-events:none;opacity:.08;animation:float 8s ease-in-out infinite}
@keyframes float{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(-12px,-18px) rotate(-3deg)}}

/* ============ NUMBER COUNTER ============ */
.count-up{font-variant-numeric:tabular-nums;display:inline-block}

/* ============ HOVER GROW ON LINKS / DOTS ============ */
.slider-dots button{transition:background .3s ease,width .3s ease,transform .3s ease}
.slider-dots button:hover{transform:scaleY(2)}
.slider-arrow{transition:background .3s ease,transform .3s ease,box-shadow .3s ease}
.slider-arrow:hover{transform:translateY(-50%) scale(1.1)}

/* ============ DISH CARDS — ribbon swipe on hover ============ */
.dish .pic{position:relative}
.dish .pic::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(107,18,24,.0) 0%,rgba(107,18,24,.0) 50%,rgba(107,18,24,.45) 100%);opacity:0;transition:opacity .6s ease}
.dish:hover .pic::after{opacity:1}

/* ============ GALLERY tile zoom-in entrance ============ */
.tile{animation:tile-in .8s cubic-bezier(.2,.7,.2,1) both}
.tile:nth-child(2n){animation-delay:.05s}
.tile:nth-child(3n){animation-delay:.1s}
@keyframes tile-in{from{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:none}}

/* ============ TIMELINE dot pulse ============ */
.tl-item::before{transition:transform .5s ease,box-shadow .5s ease}
.tl-item:hover::before{transform:scale(1.3);box-shadow:0 0 0 4px rgba(107,18,24,.18)}

/* ============ TYPED CARET ============ */
.caret{display:inline-block;width:3px;height:.9em;background:currentColor;margin-left:4px;animation:blink 1s steps(2) infinite;vertical-align:-2px}
@keyframes blink{50%{opacity:0}}

/* ============ SMOOTH SECTION FADE-IN ============ */
section{position:relative}
section.in{animation:section-fade .9s ease both}
@keyframes section-fade{from{opacity:.6}to{opacity:1}}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .cursor-ring,.cursor-dot,.steam-wrap,.marquee-track{display:none!important}
}

/* ============ FORMS — FANCY ============ */
.form-card,.contact-bottom .form,.res-form{position:relative}
.form-card::before,.contact-bottom .form::before,.res-form::before{
  content:"";position:absolute;top:18px;right:18px;width:24px;height:24px;
  border-top:1px solid var(--maroon);border-right:1px solid var(--maroon);
  opacity:.55;pointer-events:none;
}
.form-card::after,.contact-bottom .form::after,.res-form::after{
  content:"";position:absolute;bottom:18px;left:18px;width:24px;height:24px;
  border-bottom:1px solid var(--maroon);border-left:1px solid var(--maroon);
  opacity:.55;pointer-events:none;
}
.res-form::before,.res-form::after{display:none}

/* Animated gradient underline on focus */
.form-card input,.form-card select,.form-card textarea,
.contact-bottom input,.contact-bottom select,.contact-bottom textarea,
.res-form input,.res-form select,.res-form textarea{
  background-image:linear-gradient(90deg,var(--maroon),var(--terracotta),var(--gold));
  background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .55s cubic-bezier(.2,.7,.2,1);
}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus,
.contact-bottom input:focus,.contact-bottom select:focus,.contact-bottom textarea:focus,
.res-form input:focus,.res-form select:focus,.res-form textarea:focus{background-size:100% 2px}

/* Required asterisk pulse */
.req,label .req{display:inline-block;color:var(--maroon);animation:req-pulse 2s ease-in-out infinite}
@keyframes req-pulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.18);opacity:1}}

/* Submit button with arrow */
.btn[type="submit"]::after{
  content:"\2192";display:inline-block;margin-left:4px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.btn[type="submit"]:hover::after{transform:translateX(8px)}

/* Label hover lift */
.form-card label,.contact-bottom label,.res-form label{transition:color .3s ease,letter-spacing .3s ease}
.form-card div:focus-within > label,.contact-bottom div:focus-within > label,.res-form div:focus-within > label{color:var(--maroon);letter-spacing:3.2px}

/* Animated check on success */
.form-msg.show{animation:msg-in .55s cubic-bezier(.2,.7,.2,1)}
@keyframes msg-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.form-msg .fa-circle-check{animation:check-pop .6s cubic-bezier(.2,1.6,.4,1) .15s both}
@keyframes check-pop{from{transform:scale(0) rotate(-30deg)}60%{transform:scale(1.25) rotate(8deg)}to{transform:scale(1)}}

/* Soft inner shadow on form card */
.form-card,.contact-bottom .form{box-shadow:inset 0 0 0 1px rgba(107,18,24,.05),0 30px 60px -30px rgba(31,20,18,.18)}

/* Select arrow */
.form-card select,.contact-bottom select,.res-form select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:linear-gradient(90deg,var(--maroon),var(--terracotta),var(--gold)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%236b1218' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/></svg>");
  background-size:0% 2px,12px 8px;
  background-position:0 100%,right 8px center;
  background-repeat:no-repeat,no-repeat;
  padding-right:28px;
}
.form-card select:focus,.contact-bottom select:focus,.res-form select:focus{background-size:100% 2px,12px 8px}

/* Reservation form (dark) override for selects */
.res-form select{
  background-image:linear-gradient(90deg,var(--champagne),#fff,var(--champagne)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%23f3d7a3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/></svg>");
}

/* ============ WHATSAPP FLOAT BUTTON — fancy ============ */
.wa-float{
  position:fixed;bottom:80px;right:30px;
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,#25D366 0%,#128C7E 100%);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:30px;text-decoration:none;
  box-shadow:0 14px 32px rgba(18,140,126,.45),0 4px 10px rgba(18,140,126,.3);
  z-index:80;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease;
  animation:wa-enter 1.1s cubic-bezier(.2,1.6,.4,1) 1.6s both, wa-bob 4s ease-in-out 3s infinite;
}
.wa-float i{filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));transition:transform .4s cubic-bezier(.2,1.6,.4,1)}
.wa-float:hover{transform:scale(1.12) translateY(-4px);box-shadow:0 22px 50px rgba(18,140,126,.55),0 6px 14px rgba(18,140,126,.35);color:#fff}
.wa-float:hover i{animation:wa-wiggle .65s ease}
.wa-float:active{transform:scale(.96)}
@keyframes wa-enter{
  0%{transform:scale(0) rotate(-90deg);opacity:0}
  60%{transform:scale(1.15) rotate(15deg);opacity:1}
  100%{transform:scale(1) rotate(0);opacity:1}
}
@keyframes wa-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes wa-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-18deg)}50%{transform:rotate(14deg)}75%{transform:rotate(-8deg)}}

/* Dual pulse rings */
.wa-float::before,.wa-float::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:#25D366;opacity:.45;z-index:-1;pointer-events:none;
}
.wa-float::before{animation:wa-pulse 2.4s ease-out infinite}
.wa-float::after{animation:wa-pulse 2.4s ease-out 1.2s infinite}
@keyframes wa-pulse{
  0%{transform:scale(1);opacity:.5}
  70%{opacity:0}
  100%{transform:scale(1.9);opacity:0}
}

/* Notification dot */
.wa-float .wa-dot{
  position:absolute;top:2px;right:2px;
  width:18px;height:18px;border-radius:50%;
  background:#FF3B30;color:#fff;
  font-size:10px;font-weight:700;font-family:'Inter',sans-serif;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #fff;
  animation:wa-dot-pop 2s ease-in-out infinite;
}
@keyframes wa-dot-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* Tooltip */
.wa-float .wa-tip{
  position:absolute;right:78px;top:50%;transform:translateY(-50%) translateX(8px);
  background:#fff;color:var(--ink);font-family:'Inter',sans-serif;
  font-size:13.5px;letter-spacing:.3px;font-weight:500;
  padding:11px 18px;border-radius:24px;
  white-space:nowrap;box-shadow:0 10px 28px rgba(31,20,18,.16),0 2px 6px rgba(31,20,18,.08);
  opacity:0;pointer-events:none;
  transition:opacity .35s ease,transform .35s cubic-bezier(.2,1.6,.4,1);
}
.wa-float .wa-tip strong{color:#128C7E;font-weight:700}
.wa-float:hover .wa-tip{opacity:1;transform:translateY(-50%) translateX(0)}
.wa-float .wa-tip::after{content:"";position:absolute;top:50%;right:-5px;transform:translateY(-50%) rotate(45deg);width:10px;height:10px;background:#fff;box-shadow:2px -2px 4px rgba(31,20,18,.04)}

/* Auto-show tooltip on first load */
.wa-float .wa-tip.auto-show{
  animation:wa-tip-greet 7s ease 3s 1 normal forwards;
}
@keyframes wa-tip-greet{
  0%{opacity:0;transform:translateY(-50%) translateX(8px)}
  10%,80%{opacity:1;transform:translateY(-50%) translateX(0)}
  100%{opacity:0;transform:translateY(-50%) translateX(8px)}
}

@media (max-width:600px){
  .wa-float{bottom:20px;right:20px;width:56px;height:56px;font-size:26px}
  .wa-float .wa-tip{display:none}
  .wa-float .wa-dot{width:16px;height:16px}
}

/* ============ WHOLESALE CATEGORIES (cards-as-tiles) ============ */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cat-card{position:relative;aspect-ratio:4/5;overflow:hidden;background:#1a120e;display:block;cursor:pointer}
.cat-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .5s ease;filter:saturate(.95)}
.cat-card:hover img{transform:scale(1.08);filter:saturate(1.15)}
.cat-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(20,12,8,.85));z-index:1;transition:opacity .4s}
.cat-card .cat-body{position:absolute;left:0;right:0;bottom:0;padding:32px 30px;color:#fff;z-index:2;transform:translateY(0);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.cat-card:hover .cat-body{transform:translateY(-6px)}
.cat-card .cat-tag{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--champagne);margin-bottom:10px;display:inline-block}
.cat-card h4{font-family:'Fraunces',serif;font-weight:400;font-size:30px;line-height:1.05;margin-bottom:8px}
.cat-card h4 em{font-style:italic;color:var(--champagne);font-weight:400}
.cat-card p{color:rgba(255,255,255,.85);font-size:14px;max-width:90%}
.cat-card .arrow{position:absolute;top:24px;right:24px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;backdrop-filter:blur(6px);transition:background .35s ease,transform .35s ease;z-index:2}
.cat-card:hover .arrow{background:var(--champagne);color:var(--burgundy-deep);transform:rotate(-45deg)}
@media (max-width:1024px){.cat-grid{grid-template-columns:1fr}}

/* ============ GOOGLE-STYLE REVIEWS ============ */
.greviews{background:#fff;border-top:1px solid var(--line-soft)}
.gr-summary{display:flex;align-items:center;justify-content:center;gap:32px;flex-wrap:wrap;margin-bottom:60px;padding:40px 48px;background:var(--cream-2);border-radius:24px;max-width:860px;margin-left:auto;margin-right:auto;box-shadow:0 24px 60px rgba(31,20,18,.08)}
.gr-logo{display:flex;align-items:center;gap:18px}
.gr-logo .g{font-family:'Fraunces',serif;font-size:42px;line-height:1;font-weight:500;background:linear-gradient(135deg,#4285F4 0%,#EA4335 35%,#FBBC04 65%,#34A853 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.gr-logo b{font-family:'Fraunces',serif;font-weight:500;font-size:17px;color:var(--ink);line-height:1.1;display:block}
.gr-logo span{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:600}
.gr-rating{display:flex;align-items:center;gap:18px;border-left:1px solid rgba(31,20,18,.12);padding-left:28px}
.gr-rating .num{font-family:'Fraunces',serif;font-weight:600;font-size:46px;color:var(--ink);line-height:1}
.gr-rating .stars{color:#FBBC04;letter-spacing:.05em;font-size:18px}
.gr-rating .count{font-size:14px;color:var(--muted);margin-top:4px;letter-spacing:.1px}
.gr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.gr-card{padding:30px 28px;background:#fff;border:1px solid var(--line-soft);display:flex;flex-direction:column;gap:16px;transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease;position:relative}
.gr-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(31,20,18,.08);border-color:var(--maroon)}
.gr-head{display:flex;align-items:center;gap:14px}
.gr-avatar{width:48px;height:48px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:20px;font-weight:500;flex-shrink:0}
.gr-meta b{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:16px;color:var(--ink)}
.gr-meta span{font-size:12px;color:var(--muted);letter-spacing:.3px}
.gr-stars{color:#FBBC04;letter-spacing:3px;font-size:15px}
.gr-card q{font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.55;color:var(--ink);font-weight:500;font-style:italic;quotes:"\201C" "\201D"}
.gr-card q::before{content:open-quote;color:var(--maroon);font-size:32px;line-height:0;vertical-align:-10px;margin-right:2px}
.gr-foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:14px;border-top:1px dashed var(--line-soft);font-size:12px;color:var(--muted);letter-spacing:.3px}
.gr-foot .gicon{font-family:'Fraunces',serif;font-weight:500;font-size:14px;background:linear-gradient(135deg,#4285F4 0%,#EA4335 35%,#FBBC04 65%,#34A853 100%);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.gr-cta{text-align:center;margin-top:50px}
@media (max-width:1024px){.gr-grid{grid-template-columns:1fr}.gr-summary{padding:24px}.gr-rating{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:18px;width:100%;justify-content:center}}

/* ============ ELFSIGHT WIDGET WRAPPER ============ */
.gr-elfsight{position:relative}
.gr-elfsight [class^="elfsight-app-"]{min-height:0}
/* Hide fallback when widget renders content */
.gr-elfsight [class^="elfsight-app-"]:not(:empty) ~ .gr-fallback{display:none}
.gr-fallback-note{
  display:flex;align-items:flex-start;gap:14px;
  padding:18px 24px;margin-bottom:36px;
  background:linear-gradient(90deg,rgba(107,18,24,.06),rgba(184,137,58,.06));
  border-left:3px solid var(--maroon);
  font-size:13.5px;color:var(--ink-soft);line-height:1.5;
}
.gr-fallback-note i{color:var(--maroon);font-size:16px;margin-top:2px;flex-shrink:0}
.gr-fallback-note strong{color:var(--ink);font-weight:600}
.gr-fallback-note a{color:var(--maroon);font-weight:600;border-bottom:1px solid currentColor}
.gr-fallback-note code{background:#fff;padding:2px 8px;border:1px solid var(--line);font-family:'Fira Code',monospace;font-size:12.5px;color:var(--maroon)}
