/* Bright Thai styles */
:root{
  --leaf:#1E4A2C;        /* banana leaf */
  --leaf-2:#143521;
  --mint:#EEF3E6;        /* pale leaf */
  --lime:#C5D86D;        /* fresh lime */
  --chili:#D2311F;       /* brand chili red */
  --turmeric:#E9A825;    /* turmeric */
  --paper:#FFFFFF;
  --ink:#18261C;
  --ink-2:#55635A;
  --line:#DCE3D3;
  --sans:"Bricolage Grotesque", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --wrap:1200px;
  --header-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom,0px)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--sans);margin:0;line-height:1.02;font-optical-sizing:auto}
p{margin:0 0 1em}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--turmeric);outline-offset:3px;border-radius:4px}
.wrap{width:min(100% - 40px, var(--wrap));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--turmeric);color:var(--ink);padding:10px 14px;z-index:100;border-radius:6px;font-weight:700}
.skip:focus{top:12px}
svg.chili{width:1em;height:1em;vertical-align:-.12em}

/* ---------- Header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:24px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.12em;font-weight:800;font-stretch:85%;font-size:1.75rem;letter-spacing:.01em;text-transform:uppercase;text-decoration:none;color:var(--chili);line-height:1}
.brand svg{width:1.1em;height:1.1em;transform:rotate(12deg)}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{text-decoration:none;padding:9px 15px;border-radius:10px;font-weight:600;color:var(--ink-2)}
.nav a:hover{color:var(--leaf);background:var(--mint)}
.nav a[aria-current="page"]{color:var(--leaf);background:var(--mint);box-shadow:inset 0 -3px 0 var(--leaf)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;padding:13px 22px;border-radius:12px;border:2px solid transparent;font-weight:700;font-size:.97rem;text-decoration:none;cursor:pointer;line-height:1.1;transition:background .15s,color .15s,border-color .15s}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn-leaf{background:var(--leaf);color:#fff}
.btn-leaf:hover{background:var(--leaf-2)}
.btn-lime{background:var(--lime);color:var(--leaf-2)}
.btn-lime:hover{background:#D5E58A}
.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff;background:transparent}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-outline{border-color:var(--leaf);color:var(--leaf);background:#fff}
.btn-outline:hover{background:var(--mint)}
.head-print{padding:10px 16px}
@media (max-width:760px){
  .site-head .wrap{gap:8px}
  .brand{font-size:1.35rem}
  .head-print{display:none}
  .nav a{padding:8px 10px;font-size:.95rem}
  .menu-section {
      padding: 0px 0 32px !important;
  }
  .contact-main {
      padding: 30px 0 20px !important;
  }
  #contact .bt-contact-form #wpforms-37 {
    margin-bottom: 0px !important;
  }
  #about .story {
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-bottom: 10px !important;
  }
  #about .story:nth-of-type(1) {
    padding-top: 30px !important;
  }
  #about .welcome {
      padding: 10px 20px 30px !important;
  }
}

/* ---------- Hero ---------- */

/* =========================================
   HOME HERO
========================================= */

.hero {
    background: var(--leaf);
    color: #fff;
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: "";
    position: absolute;
    right: -180px;
    top: -200px;
    width: 620px;
    height: 620px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(197, 216, 109, .22),
        transparent 65%
    );
}

.hero .wrap {
    position: relative;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 40px;
    align-items: center;
    padding: 42px 0 38px;
}

.hero h1 {
    font-weight: 800;
    font-stretch: 78%;
    font-size: clamp(2.5rem, 5.2vw, 4.8rem);
    letter-spacing: -.035em;
    line-height: .98;
    margin-bottom: 16px;
}

.hero-lede {
    font-family: var(--serif);
    font-size: 1.2rem;
    line-height: 1.4;
    max-width: 30ch;
    color: #E3ECD9;
    margin-bottom: 18px;
}

/* Hero promises */

.promise {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    list-style: none;
    padding: 0;
    margin: 14px 0 20px;
}

.promise li {
    position: relative;
    padding-left: 20px;
    background: none;
    border: 0;
    border-radius: 0;
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.4;
    color: inherit;
}

.promise li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--lime, #c5d99a);
    font-weight: 700;
}

/* Hero buttons */

.cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* Hero image */

.hero-figure {
    margin: 0;
    position: relative;
    justify-self: end;
    max-width: 320px;
}

.hero-figure img {
    border-radius: 20px;
    box-shadow: 0 24px 55px rgba(0, 0, 0, .35);
    transform: rotate(2deg);
    height: auto;
    width: 100%;
    display: block;
}

.hero-figure figcaption {
    margin-top: 12px;
    font-size: .88rem;
    color: #CFDCC4;
    text-align: center;
    line-height: 1.5;
}

.hero-figure figcaption a {
    color: var(--lime);
    font-weight: 600;
}

/* =========================================
   FACTS BAR
========================================= */

.facts {
    background: var(--leaf-2);
    color: #E3ECD9;
    font-size: .9rem;
}

.facts .wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 28px;
    padding: 13px 0;
}

.facts .wrap > span {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    line-height: 1.5;
}

.facts b {
    color: #fff;
    font-weight: 700;
    white-space: nowrap;
}

/* Open / closed status */

.status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
}

.status::before {
    content: "";
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    border-radius: 50%;
    background: #9AA0A6;
}

.status.open::before {
    background: var(--lime);
    box-shadow: 0 0 0 4px rgba(197, 216, 109, .2);
}

.status.closed::before {
    background: #E58B78;
}

/* Facts address link */

.facts a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}

.facts a:hover {
    color: var(--lime);
    text-decoration: underline;
}

/* =========================================
   TABLET
========================================= */

@media (max-width: 900px) {
    .hero .wrap {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 36px 0 38px;
    }

    .hero-figure {
        justify-self: center;
        max-width: 280px;
    }

    .facts .wrap {
        justify-content: flex-start;
        gap: 12px 24px;
    }
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 600px) {
    .hero .wrap {
        padding: 30px 0;
        gap: 24px;
    }

    .hero h1 {
        font-size: clamp(2.6rem, 11vw, 4rem);
        margin-bottom: 14px;
    }

    .hero-lede {
        font-size: 1.1rem;
        margin-bottom: 14px;
    }

    .promise {
        flex-direction: column;
        gap: 7px;
        margin: 12px 0 18px;
    }

    .hero-figure {
        max-width: 240px;
    }

    .facts {
        font-size: .85rem;
    }

    .facts .wrap {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 16px 0;
    }

    .facts .wrap > span {
        width: 100%;
    }
}

/* ---------- Menu ---------- */
.menu-section{padding:72px 0 32px}
.menu-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:56px;align-items:start}
.menu-aside{position:sticky;top:calc(var(--header-h) + 24px)}
.menu-aside h2{font-weight:800;font-stretch:80%;font-size:3.4rem;letter-spacing:-.02em;color:var(--leaf);margin-bottom:18px}
.jump{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:2px}
.jump a{display:flex;justify-content:space-between;text-decoration:none;padding:9px 12px;border-radius:10px;font-weight:600;color:var(--ink-2)}
.jump a:hover{background:var(--mint);color:var(--leaf)}
.aside-block{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.aside-block h3{font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:10px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;font-size:.88rem;font-weight:600;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--leaf);border-color:var(--leaf);color:#fff}
.chip[aria-pressed="true"]::before{content:"✓ "}
.chip:hover{border-color:var(--leaf)}
.legend{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:.88rem;color:var(--ink-2)}
.legend li{display:flex;align-items:center;gap:8px}
.aside-print{width:100%;margin-top:22px}
@media (max-width:900px){
  .menu-layout{grid-template-columns:1fr;gap:0}
  .menu-aside{position:sticky;top:calc(var(--header-h) + env(safe-area-inset-top,0px));z-index:20;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);margin:0 -20px 28px;padding:12px 20px;border-bottom:1px solid var(--line)}
  .menu-aside h2,.aside-legend,.aside-print,.aside-block h3{display:none}
  .jump{display:flex;flex-wrap:wrap;overflow-x:auto;scrollbar-width:none;margin:0 0 8px}
  .jump::-webkit-scrollbar{display:none}
  .jump a{white-space:nowrap;padding:7px 11px;font-size:.92rem}
  .aside-block{border:0;padding:0;margin:0}
  .menu-title-m{display:block!important}
}
.menu-title-m{display:none;font-weight:800;font-stretch:80%;font-size:2.8rem;color:var(--leaf);margin-bottom:6px}

.cat{margin-bottom:56px}
.cat h3{font-weight:800;font-stretch:85%;font-size:clamp(1.8rem,3.4vw,2.4rem);letter-spacing:-.015em;color:var(--leaf);margin-bottom:6px}
.cat-sub{font-family:var(--serif);font-style:italic;color:var(--ink-2);font-size:1.08rem;margin:0 0 20px}

.pricing{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;background:var(--mint);border-radius:18px;padding:18px 24px;margin-bottom:24px}
.pricing .tier{display:flex;align-items:baseline;gap:10px}
.pricing .tier small{font-weight:600;color:var(--ink-2);font-size:.95rem}
.pricing .tier strong{font-size:2rem;font-weight:800;font-stretch:85%;color:var(--chili);font-variant-numeric:lining-nums}
.pricing p{margin:0;font-size:.93rem;color:var(--ink-2);flex:1 1 220px}

.dishes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dish{padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;flex-direction:column;gap:8px}
.dish-top{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.dish h4{font-size:1.22rem;font-weight:700;letter-spacing:-.01em;line-height:1.15}
.dish .price{font-weight:800;color:var(--chili);font-size:1.15rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.dish-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.heat{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.heat .icons{display:inline-flex;gap:1px;font-size:.95rem}
.heat .off{opacity:.18;filter:grayscale(1)}
.tags{display:inline-flex;gap:5px}
.tag{font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:3px 7px;border-radius:6px;line-height:1}
.tag-gf{color:#2B6A3A;background:#E2F0DF}
.tag-vegan{color:#1D5FA8;background:#E6F0FB}
.tag-nuts{color:#9A4708;background:#FDEBD5}
.dish .desc{font-family:var(--serif);font-size:1.04rem;line-height:1.45;color:var(--ink-2);margin:0}
@media (max-width:1060px){ .dishes{grid-template-columns:1fr} }

.pricelist{list-style:none;margin:0;padding:0;columns:2;column-gap:40px}
.pricelist li{display:flex;align-items:baseline;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);break-inside:avoid}
.pricelist .n{flex:1;font-weight:500}
.pricelist .p{font-weight:800;color:var(--chili);font-variant-numeric:tabular-nums}
@media (max-width:640px){ .pricelist{columns:1} }
.empty-note{padding:16px 18px;background:var(--mint);border-radius:12px;color:var(--ink-2);margin-top:12px}
.fine{font-size:.86rem;color:var(--ink-2);border-top:1px solid var(--line);padding-top:18px}

.visit-band{background:var(--mint);padding:52px 0}
.visit-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.visit-band h2{font-weight:800;font-stretch:80%;font-size:clamp(2.2rem,5vw,3.2rem);color:var(--leaf)}
.visit-band p{margin:6px 0 0;color:var(--ink-2);font-size:1.05rem}

/* ---------- About ---------- */
.about-hero{background:var(--leaf);color:#fff;padding:72px 0 0;overflow:hidden}
.about-hero h1{font-weight:800;font-stretch:78%;font-size:clamp(3rem,8vw,6.4rem);letter-spacing:-.025em;line-height:.9;max-width:12ch}
.about-hero .intro{font-family:var(--serif);font-size:1.35rem;color:#E3ECD9;max-width:40ch;margin:22px 0 44px}
.wall{display:flex;gap:18px;overflow-x:auto;padding:0 0 44px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--lime) transparent}
.panel{flex:0 0 auto;width:min(270px,70vw);scroll-snap-align:start;background:none;border:0;padding:0;cursor:zoom-in;text-align:left;color:#CFDCC4}
.panel img{border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.35);transition:transform .2s}
.panel:hover img{transform:translateY(-4px)}
.panel span{display:block;margin-top:10px;font-size:.86rem}
.wall-note{font-size:.9rem;color:#CFDCC4;margin:-28px 0 0;padding-bottom:40px}
.story{max-width:680px;margin:0 auto;padding:80px 20px 40px}
.story h2{font-weight:800;font-stretch:85%;font-size:clamp(1.9rem,4vw,2.5rem);color:var(--leaf);letter-spacing:-.015em;margin:56px 0 18px}
.story h2:first-child{margin-top:0}
.story p{font-family:var(--serif);font-size:1.25rem;line-height:1.7}
.pull{margin:44px -40px;padding:28px 40px;border-left:6px solid var(--chili);background:var(--mint);border-radius:0 18px 18px 0;font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3.2vw,2rem);line-height:1.3;color:var(--leaf)}
@media (max-width:760px){ .pull{margin:36px 0;padding:22px 24px} }
.welcome{text-align:center;padding:40px 20px 96px}
.welcome p{font-weight:800;font-stretch:80%;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1;color:var(--chili);letter-spacing:-.02em;margin:0 0 10px}
.welcome .sub{font-family:var(--serif);font-style:italic;font-weight:400;font-stretch:100%;font-size:1.4rem;color:var(--leaf);letter-spacing:0;margin-bottom:30px}
dialog.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,620px);overflow:visible}
dialog.lightbox::backdrop{background:rgba(10,30,18,.88)}
dialog.lightbox img{border-radius:16px;width:100%}
dialog.lightbox button{position:absolute;top:-14px;right:-14px;width:42px;height:42px;border-radius:50%;border:0;background:var(--lime);color:var(--leaf-2);font-size:1.4rem;font-weight:700;cursor:pointer}

/* ---------- Contact ---------- */
.contact-top{background:var(--leaf);color:#fff;padding:56px 0}
.contact-top .wrap{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
.qr-card{background:#fff;padding:20px;border-radius:22px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.qr{position:relative;width:210px;height:210px;color:var(--leaf-2)}
.qr svg{width:100%;height:100%}
.qr .qr-mark{position:absolute;inset:0;margin:auto;width:48px;height:48px;background:#fff;border-radius:12px;display:grid;place-items:center}
.qr .qr-mark svg{width:32px;height:32px}
.contact-top .qr-caption{text-align:center;color:var(--ink-2);font-family:var(--sans);font-size:.85rem;margin:10px 0 0;font-weight:600}
.contact-top h1{font-weight:800;font-stretch:78%;font-size:clamp(2.8rem,7vw,5rem);letter-spacing:-.025em;line-height:.92;margin-bottom:14px}
.contact-top p{color:#E3ECD9;font-family:var(--serif);font-size:1.25rem;margin:0}
.social{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:28px 0 0;padding:0;list-style:none;max-width:520px}
.social a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);text-decoration:none;font-weight:700;color:#fff}
.social a[href]:hover{background:var(--lime);color:var(--leaf-2);border-color:var(--lime)}
.social .ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;color:var(--leaf)}
.social .ico svg{width:18px;height:18px}
.social a.pending{opacity:.7}
.social a.pending small{font-weight:500;opacity:.8;margin-left:auto;white-space:nowrap;font-size:.78rem}
@media (max-width:760px){
  .contact-top .wrap{grid-template-columns:1fr;justify-items:center;text-align:center;gap:32px}
  .social{margin-inline:auto;width:100%}
}
@media (max-width:420px){ .social{grid-template-columns:1fr} }
.contact-main{display:grid;grid-template-columns:1.45fr 1fr;gap:64px;padding:72px 0 88px}
.contact-main h2{font-weight:800;font-stretch:85%;font-size:2.4rem;letter-spacing:-.015em;color:var(--leaf);margin-bottom:8px}
.form-intro{color:var(--ink-2);font-family:var(--serif);font-size:1.12rem}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:22px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-weight:700;font-size:.95rem}
.field label abbr{color:var(--chili);text-decoration:none}
.field input,.field textarea{border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;background:#FAFCF7;font-size:1rem;width:100%}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--leaf);background:#fff;box-shadow:0 0 0 4px rgba(30,74,44,.12)}
.field [aria-invalid="true"]{border-color:var(--chili);background:#FFF7F6}
.err{color:var(--chili);font-size:.86rem;min-height:1.1em;font-weight:500}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.form-status{font-weight:700}
.form-status.ok{color:var(--leaf)}
.form-status.bad{color:var(--chili)}
.info-card{border:1px solid var(--line);border-radius:18px;padding:26px;align-self:start}
.info-card h3{font-weight:800;font-stretch:85%;font-size:1.6rem;color:var(--leaf);margin-bottom:12px}
.info-card + .info-card{margin-top:16px}
.hours{width:100%;border-collapse:collapse;font-size:.98rem}
.hours td{padding:8px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.hours tr.today td{font-weight:800;color:var(--chili)}
@media (max-width:860px){ .contact-main{grid-template-columns:1fr;gap:40px} }
@media (max-width:560px){ .form{grid-template-columns:1fr} }

/* Full-width Google Map on the contact page */
.contact-map {
  width: 100%;
  margin: 48px 0 0;
  padding: 0;
  line-height: 0;
}

.contact-map iframe {
  display: block;
  width: 100%;
  height: 450px;
  border: 0;
}

/* ---------- Bright Thai WPForms contact form ---------- */

#contact .bt-contact-form {
  margin-top: 22px;
}

#contact .bt-contact-form #wpforms-37 {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

/* Match the old form's two-column layout */
#contact .bt-contact-form #wpforms-37 .wpforms-field-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
}

#contact .bt-contact-form #wpforms-37 .wpforms-field {
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* Name and phone share the first row */
#contact .bt-contact-form #wpforms-37 .bt-field-name,
#contact .bt-contact-form #wpforms-37 .bt-field-phone {
  grid-column: span 1;
}

/* Email and message use the full width */
#contact .bt-contact-form #wpforms-37 .bt-field-email,
#contact .bt-contact-form #wpforms-37 .bt-field-message {
  grid-column: 1 / -1;
}

/* Labels */
#contact .bt-contact-form #wpforms-37 .wpforms-field-label {
  display: block;
  margin: 0 0 6px;
  color: var(--ink, #18261c);
  font-family: var(--sans, Arial, sans-serif);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.4;
}

/* Inputs and textarea */
#contact .bt-contact-form #wpforms-37 input[type="text"],
#contact .bt-contact-form #wpforms-37 input[type="email"],
#contact .bt-contact-form #wpforms-37 input[type="tel"],
#contact .bt-contact-form #wpforms-37 input[type="number"],
#contact .bt-contact-form #wpforms-37 textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 13px 15px;
  border: 1.5px solid var(--line, #dce3d3);
  border-radius: 12px;
  background: #fafcf7;
  color: var(--ink, #18261c);
  font-family: var(--sans, Arial, sans-serif);
  font-size: 1rem;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color 0.15s, background-color 0.15s,
    box-shadow 0.15s;
}

/* Message area */
#contact .bt-contact-form #wpforms-37 textarea {
  min-height: 150px;
  height: 150px;
  resize: vertical;
}

/* Focus states */
#contact .bt-contact-form #wpforms-37 input:focus,
#contact .bt-contact-form #wpforms-37 textarea:focus {
  border-color: var(--leaf, #1e4a2c);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(30, 74, 44, 0.12);
  outline: none;
}

/* Required markers and validation */
#contact .bt-contact-form #wpforms-37 .wpforms-required-label {
  color: var(--chili, #d2311f);
}

#contact .bt-contact-form #wpforms-37 label.wpforms-error,
#contact .bt-contact-form #wpforms-37 em.wpforms-error {
  color: var(--chili, #d2311f);
  font-size: 0.86rem;
  font-style: normal;
}

/* Submit button */
#contact .bt-contact-form #wpforms-37 .wpforms-submit-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
  padding: 0;
}

#contact .bt-contact-form #wpforms-37 button.wpforms-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin: 0;
  padding: 13px 22px;
  border: 2px solid transparent;
  border-radius: 12px;
  background: var(--leaf, #1e4a2c);
  color: #fff;
  font-family: var(--sans, Arial, sans-serif);
  font-size: 0.97rem;
  font-weight: 700;
  line-height: 1.1;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 0.15s, color 0.15s;
}

#contact .bt-contact-form #wpforms-37 button.wpforms-submit:hover {
  background: var(--leaf-2, #143521);
  color: #fff;
}

/* Keep keyboard focus visible */
#contact .bt-contact-form #wpforms-37 button.wpforms-submit:focus-visible {
  outline: 3px solid var(--turmeric, #e9a825);
  outline-offset: 3px;
}

/* Mobile layout */
@media (max-width: 560px) {
  #contact .bt-contact-form #wpforms-37 .wpforms-field-container {
    grid-template-columns: 1fr;
  }

  #contact .bt-contact-form #wpforms-37 .bt-field-name,
  #contact .bt-contact-form #wpforms-37 .bt-field-phone,
  #contact .bt-contact-form #wpforms-37 .bt-field-email,
  #contact .bt-contact-form #wpforms-37 .bt-field-message {
    grid-column: 1 / -1;
  }
}

/* Responsive map height on mobile */
@media (max-width: 600px) {
  .contact-map {
    margin-top: 32px;
  }

  .contact-map iframe {
    height: 350px;
  }
}

/* WooCommerce products inside the existing Bright Thai menu */
#menu-body .dish-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 12px;
    margin-bottom: 10px;
    background: #f5f3ec;
}

#menu-body .dish-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Bright Thai menu ordering buttons */
#menu-body .bright-thai-add-to-cart,
#menu-body .bright-thai-choose-dish {
    display: inline-block;
    margin-top: 12px;
    padding: 10px 18px;
    border: 0;
    border-radius: 4px;
    background: #285943;
    color: #fff;
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

#menu-body .bright-thai-add-to-cart:hover,
#menu-body .bright-thai-choose-dish:hover {
    background: #1d4232;
    color: #fff;
}

/* ---------- Bright Thai plate builder Fancybox modal ---------- */

/* Modal container */
#bright-thai-plate-builder {
    width: min(100%, 520px);
    max-width: 520px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 18px;
    background: var(--paper);
    color: var(--ink);
    overflow: hidden;
}

/* Inner panel */
#bright-thai-plate-builder .plate-builder-panel {
    display: grid;
    gap: 16px;
    padding: 30px;
}

/* Heading */
#bright-thai-plate-builder .plate-builder-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

#bright-thai-plate-builder h3 {
    margin: 0 0 8px;
    color: var(--leaf);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.05;
}

#bright-thai-plate-builder .plate-builder-heading p {
    margin: 0;
    color: var(--ink-2);
    font-size: 0.98rem;
    line-height: 1.5;
}

/* Close button */
#bright-thai-plate-builder .plate-builder-close,
#plate-builder-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--mint);
    color: var(--leaf);
    font-size: 1.7rem;
    line-height: 1;
    cursor: pointer;
}

#bright-thai-plate-builder .plate-builder-close:hover,
#plate-builder-close:hover {
    background: var(--lime);
    color: var(--leaf-2);
}

/* Rice information */
#bright-thai-plate-builder .plate-builder-rice {
    margin: 0;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--mint);
    color: var(--leaf-2);
    font-size: 0.92rem;
}

/* Form fields */
#bright-thai-plate-builder .plate-builder-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

#bright-thai-plate-builder .plate-builder-field label,
#bright-thai-plate-builder .plate-builder-panel > label {
    color: var(--ink);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
}

#bright-thai-plate-builder .plate-builder-field label span {
    color: var(--ink-2);
    font-weight: 400;
}

/* Match the contact form input styling */
#bright-thai-plate-builder select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 13px 15px;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    background-color: #FAFCF7;
    color: var(--ink);
    font-family: var(--sans);
    font-size: 1rem;
    line-height: 1.5;
    box-shadow: none;
    transition: border-color 0.15s, background-color 0.15s,
        box-shadow 0.15s;
}

#bright-thai-plate-builder select:focus {
    border-color: var(--leaf);
    background-color: #fff;
    box-shadow: 0 0 0 4px rgba(30, 74, 44, 0.12);
    outline: none;
}

/* Total */
#bright-thai-plate-builder .plate-builder-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

#bright-thai-plate-builder .plate-builder-total > span {
    color: var(--ink-2);
    font-weight: 600;
}

#plate-builder-price {
    color: var(--chili);
    font-size: 2rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* Match the contact form's submit button */
#bright-thai-plate-builder #plate-add-to-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 13px 22px;
    border: 2px solid transparent;
    border-radius: 12px;
    background: var(--leaf);
    color: #fff;
    font-family: var(--sans);
    font-size: 0.97rem;
    font-weight: 700;
    line-height: 1.1;
    cursor: pointer;
    box-shadow: none;
    transition: background-color 0.15s, color 0.15s;
}

#bright-thai-plate-builder #plate-add-to-cart:hover {
    background: var(--leaf-2);
    color: #fff;
}

#bright-thai-plate-builder #plate-add-to-cart:disabled {
    opacity: 0.65;
    cursor: wait;
}

#bright-thai-plate-builder #plate-add-to-cart:focus-visible,
#bright-thai-plate-builder .plate-builder-close:focus-visible {
    outline: 3px solid var(--turmeric);
    outline-offset: 3px;
}

/* Validation / AJAX feedback */
#plate-builder-message {
    margin: 0;
    color: var(--ink-2);
    font-size: 0.9rem;
    line-height: 1.5;
}

#plate-builder-message:empty {
    display: none;
}

/* Fancybox presentation */
.fancybox__backdrop {
    background: rgba(10, 30, 18, 0.78);
}

.fancybox__content:has(#bright-thai-plate-builder) {
    padding: 0;
    background: transparent;
    overflow: visible;
    border-radius: 18px;
}

/* Mobile */
@media (max-width: 560px) {
    #bright-thai-plate-builder .plate-builder-panel {
        gap: 14px;
        padding: 24px 20px;
    }

    #bright-thai-plate-builder h3 {
        font-size: 1.7rem;
    }

    #plate-builder-price {
        font-size: 1.7rem;
    }
}

:root :where(.wp-element-button, .wp-block-button__link) {
    background-color: var(--leaf) !important;
}

/* Bright Thai: loading state for normal Order buttons */
.bright-thai-add-to-cart.loading,
.bright-thai-add-to-cart.bright-thai-is-loading {
    opacity: 0.85;
    pointer-events: none;
    cursor: wait;
}

.bright-thai-add-to-cart.loading::after,
.bright-thai-add-to-cart.bright-thai-is-loading::after {
    content: "";
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-left: 9px;
    vertical-align: -2px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: bright-thai-cart-spin 0.65s linear infinite;
}

.dish .desc p{
    font-family: var(--serif);
    font-size: 1.04rem;
    line-height: 1.45;
    color: var(--ink-2);
    margin: 0;
}

@keyframes bright-thai-cart-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .bright-thai-add-to-cart.loading::after {
        animation-duration: 1.5s;
    }
}

/* ---------- Footer ---------- */
.site-foot{background:var(--leaf-2);color:#CFDCC4;padding:52px 0 calc(32px + env(safe-area-inset-bottom,0px));font-size:.95rem}
.site-foot .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.site-foot .fbrand{font-weight:800;font-stretch:85%;font-size:1.9rem;text-transform:uppercase;color:#fff;margin-bottom:10px;display:flex;align-items:center;gap:.12em}
.site-foot .fbrand svg{width:1em;height:1em}
.site-foot h2{font-size:1rem;font-weight:700;color:var(--lime);margin-bottom:10px}
.site-foot a{color:#fff;text-underline-offset:3px}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.site-foot .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;font-size:.85rem;color:#9FB39A}
@media (max-width:760px){ .site-foot .wrap{grid-template-columns:1fr} }

.print-head,.print-fresh{display:none}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{transition:none!important} }

/* ---------- Print: the menu only ---------- */
@media print{
  @page{size:letter;margin:.45in .5in}
  body{background:#fff;font-size:10.5pt;line-height:1.35;color:#000;padding:0}
  .site-head,.hero,.facts,.menu-aside,.visit-band,.site-foot,.skip,#about,#contact,dialog,.menu-title-m{display:none!important}
  #home{display:block!important}
  .wrap{width:100%}
  .menu-section{padding:0}
  .menu-layout{display:block}
  .print-head{display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:16px;border-bottom:3px solid var(--leaf);padding:0 0 10px;margin-bottom:10px}
  .print-head .pn{font-weight:800;font-stretch:85%;font-size:30pt;color:var(--chili);line-height:1;text-transform:uppercase}
  .print-head .pt{font-family:var(--serif);font-style:italic;font-size:11pt;color:var(--leaf);margin:2px 0 6px}
  .print-head .pa{font-size:9pt}
  .print-head .pq{width:76px;text-align:center;font-size:7pt;color:#555}
  .print-head .pq svg{width:76px;height:76px}
  .print-fresh{display:block!important;color:var(--leaf);font-weight:700;text-align:center;margin:0 0 10px}
  .cat{margin-bottom:12px}
  .cat h3{font-size:16pt;margin-bottom:4px;break-after:avoid}
  .cat-sub{font-size:9pt;margin-bottom:6px}
  .pricing{padding:6px 14px;margin-bottom:8px;break-inside:avoid}
  .pricing .tier strong{font-size:14pt}
  .pricing p{font-size:8.5pt}
  .dishes{gap:5px 10px;grid-template-columns:1fr 1fr!important}
  .dish{padding:6px 10px;gap:2px;border-radius:8px;break-inside:avoid}
  .dish h4{font-size:11pt}
  .dish .desc{font-size:9pt}
  .heat{font-size:7.5pt}
  .pricelist{break-inside:avoid}
  .pricelist li{padding:3px 0}
  .bright-thai-add-to-cart,
  .bright-thai-choose-dish,
  .plate-builder-close,
  #plate-add-to-cart {
      display: none !important;
  }
  .xoo-wsc-basket{
    display:none!important
  }
  .dish[hidden],.cat[hidden]{display:flex!important}
  .empty-note{display:none!important}
  .fine{font-size:8pt}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important}
}

/* Bright Thai WordPress / WooCommerce additions */
.bt-standard-page { padding-top: 48px; padding-bottom: 64px; }
.bt-standard-page .entry-content { max-width: 78ch; }
.bt-ordering { padding-top: 52px; padding-bottom: 64px; }
.bt-ordering-heading { margin-bottom: 24px; }
.bt-ordering-heading h2 { margin-top: 4px; }
.bt-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.bt-product-card { overflow: hidden; border: 1px solid var(--line, #d8ded5); border-radius: 16px; background: #fff; }
.bt-product-image { display: block; aspect-ratio: 4 / 3; background: #f5f3ec; overflow: hidden; }
.bt-product-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bt-product-copy { padding: 16px; }
.bt-product-copy h3 { margin: 0 0 8px; }
.bt-product-copy h3 a { color: inherit; text-decoration: none; }
.bt-product-price { margin-bottom: 14px; font-weight: 700; }
.bt-product-price del { opacity: .65; font-weight: 400; }
.bt-product-price ins { text-decoration: none; }
.bt-add-to-cart, .bt-product-copy .button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.bt-cart-link { margin-top: 28px; text-align: center; }
.bt-unavailable { color: #7a3327; font-weight: 700; }
.bt-woocommerce .woocommerce-breadcrumb { margin: 18px 0 28px; }
.bt-woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.bt-woocommerce ul.products::before, .bt-woocommerce ul.products::after { display: none !important; }
.bt-woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; }
.bt-woocommerce .button, .bt-woocommerce button.button, .bt-woocommerce a.button, .bt-woocommerce input.button { border-radius: 999px; padding: 12px 18px; background: #1e4a2c; color: #fff; }
.bt-woocommerce .button:hover, .bt-woocommerce button.button:hover, .bt-woocommerce a.button:hover { background: #163820; color: #fff; }
.bt-woocommerce input.input-text, .bt-woocommerce select, .bt-woocommerce textarea { max-width: 100%; }
.bt-woocommerce .woocommerce-message, .bt-woocommerce .woocommerce-info, .bt-woocommerce .woocommerce-error { border-top-color: #1e4a2c; }
.contact-map { width: 100%; margin: 48px 0 0; padding: 0; line-height: 0; }
.contact-map iframe { display: block; width: 100%; min-height: 450px; border: 0; }
.form-status.ok { color: #1e4a2c; }
.form-status.bad { color: #9b2418; }
@media (max-width: 760px) {
  .bt-product-grid, .bt-woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .bt-product-grid, .bt-woocommerce ul.products { grid-template-columns: 1fr; }
  .contact-map { margin-top: 32px; }
  .contact-map iframe { min-height: 350px; }
}

.nav-menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav-menu li { margin: 0; padding: 0; }
@media (max-width: 760px) { .nav-menu { gap: 0; } }
