/* GoThaiMassage — Thai Design System */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Gold palette */
  --gold:#C8903A;--gold-light:#E8B860;--gold-pale:#FBF3E4;--gold-deep:#A06820;--gold-bg:#FBF0D8;
  /* Neutral */
  --cream:#FAF6EE;--ivory:#FFFDF8;
  /* Earth */
  --earth:#5C3D2E;--earth-light:#8B6355;
  /* Thai accent */
  --ruby:#8B1A1A;--ruby-light:#B02020;
  --teal:#1A6B6B;--teal-light:#2A9090;
  /* Sage */
  --sage:#4A6741;--sage-light:#6B8F63;
  /* Neutrals */
  --dark:#1A1208;--muted:#7A6A5A;--white:#FFFFFF;
  /* System */
  --danger:#C0392B;--success:#27AE60;--info:#2980B9;
  --radius:14px;--radius-sm:8px;--radius-lg:22px;
  --shadow:0 4px 24px rgba(90,50,20,0.09);
  --shadow-md:0 6px 32px rgba(90,50,20,0.12);
  --shadow-lg:0 12px 48px rgba(90,50,20,0.16);
}
body{font-family:'Sarabun',sans-serif;background:var(--cream);color:var(--dark);line-height:1.65;min-height:100vh}

/* ── NAV ── */
nav{background:rgba(250,246,238,0.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(200,144,58,0.15);padding:0 5%;display:flex;align-items:center;justify-content:space-between;height:64px;position:sticky;top:0;z-index:50}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--gold),var(--gold-deep));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 3px 12px rgba(200,144,58,0.3)}
.logo-text{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:var(--earth)}
.logo-text span{color:var(--gold)}
.nav-right{display:flex;align-items:center;gap:8px}
.btn-login{color:var(--muted);font-size:14px;text-decoration:none;padding:7px 14px;border-radius:8px;border:1px solid rgba(200,144,58,0.22);transition:all .2s;font-weight:500}
.btn-login:hover{border-color:var(--gold);color:var(--earth);background:var(--gold-pale)}
.lang-toggle{background:none;border:1.5px solid rgba(200,144,58,0.35);border-radius:20px;padding:5px 13px;font-family:'Sarabun',sans-serif;font-size:13px;font-weight:700;color:var(--earth);cursor:pointer;transition:all .2s;letter-spacing:.3px}
.lang-toggle:hover{border-color:var(--gold);background:var(--gold-pale);color:var(--gold)}
.btn-nav-primary{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--white);font-size:14px;text-decoration:none;padding:8px 18px;border-radius:20px;font-weight:700;transition:all .2s;box-shadow:0 3px 10px rgba(200,144,58,0.3)}
.btn-nav-primary:hover{box-shadow:0 5px 16px rgba(200,144,58,0.42);transform:translateY(-1px)}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:50px;font-size:15px;font-weight:600;font-family:'Sarabun',sans-serif;cursor:pointer;text-decoration:none;border:none;transition:all .25s}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--white);box-shadow:0 4px 16px rgba(200,144,58,0.32)}
.btn-gold:hover{box-shadow:0 6px 22px rgba(160,104,32,0.42);transform:translateY(-1px)}
.btn-earth{background:var(--earth);color:var(--white)}
.btn-earth:hover{background:var(--dark);transform:translateY(-1px)}
.btn-ruby{background:linear-gradient(135deg,var(--ruby),#6B1010);color:var(--white)}
.btn-ruby:hover{box-shadow:0 4px 16px rgba(139,26,26,0.35);transform:translateY(-1px)}
.btn-sage{background:var(--sage);color:var(--white)}
.btn-sage:hover{background:#2d4428}
.btn-teal{background:var(--teal);color:var(--white)}
.btn-teal:hover{background:#115555}
.btn-outline{background:none;color:var(--earth);border:1.5px solid rgba(92,61,46,0.25)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);background:var(--gold-pale)}
.btn-sm{padding:8px 18px;font-size:13px}
.btn-full{width:100%}

/* ── FORMS ── */
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:12px;font-weight:700;color:var(--earth-light);margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=time],input[type=date],select,textarea{width:100%;padding:11px 14px;border:1.5px solid rgba(200,144,58,0.22);border-radius:10px;font-family:'Sarabun',sans-serif;font-size:14px;color:var(--dark);background:var(--cream);transition:border .2s,box-shadow .2s;outline:none;line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:var(--gold);background:var(--white);box-shadow:0 0 0 3px rgba(200,144,58,0.12)}
textarea{resize:vertical;min-height:80px}
.form-hint{font-size:12px;color:var(--muted);margin-top:4px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ── CARDS ── */
.card{background:var(--white);border-radius:var(--radius-lg);border:1px solid rgba(200,144,58,0.1);padding:24px}
.card-shadow{box-shadow:var(--shadow)}
.card-hover{transition:all .3s}
.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(200,144,58,0.25)}

/* ── THAI SECTION HEADER ── */
.thai-section-head{text-align:center;margin-bottom:48px}
.thai-section-label{font-size:11px;font-weight:700;letter-spacing:2.5px;color:var(--gold);text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:10px}
.thai-section-label::before,.thai-section-label::after{content:'';width:28px;height:1px;background:var(--gold);opacity:.5}
.thai-section-title{font-family:'Playfair Display',serif;font-size:clamp(1.7rem,2.8vw,2.4rem);color:var(--earth);margin-bottom:12px}
.thai-section-sub{font-size:15px;color:var(--muted);max-width:520px;margin:0 auto;line-height:1.75}

/* ── THAI ORNAMENT DIVIDER ── */
.thai-divider{display:flex;align-items:center;gap:16px;padding:20px 0}
.thai-divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(200,144,58,0.3),transparent)}

/* ── BADGES ── */
.badge{display:inline-block;border-radius:20px;padding:3px 12px;font-size:11px;font-weight:700}
.badge-gold{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--white)}
.badge-ruby{background:var(--ruby);color:var(--white)}
.badge-sage{background:var(--sage);color:var(--white)}
.badge-teal{background:var(--teal);color:var(--white)}
.badge-muted{background:var(--cream);color:var(--muted);border:1px solid rgba(200,144,58,0.2)}
.badge-success{background:#e8f5e9;color:var(--success);border:1px solid rgba(39,174,96,0.2)}
.badge-danger{background:#fdecea;color:var(--danger);border:1px solid rgba(192,57,43,0.2)}
.badge-info{background:#e3f2fd;color:var(--info);border:1px solid rgba(41,128,185,0.2)}

/* ── STATUS DOTS ── */
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot-green{background:var(--success)}
.dot-yellow{background:#F39C12}
.dot-red{background:var(--danger)}
.dot-gray{background:#BDC3C7}

/* ── DIVIDER ── */
.divider{height:1px;background:rgba(200,144,58,0.12);margin:20px 0}

/* ── SECTION ── */
.section{padding:72px 5%}
.section-label{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,2.5vw,2.2rem);color:var(--earth);margin-bottom:12px}
.section-sub{font-size:15px;color:var(--muted);max-width:500px}

/* ── PAGE WRAPPER ── */
.page-wrap{max-width:900px;margin:0 auto;padding:36px 20px}
.page-wrap-wide{max-width:1200px;margin:0 auto;padding:36px 24px}

/* ── PAGE HERO BAND (for inner pages) ── */
.page-hero-band{background:linear-gradient(135deg,var(--earth) 0%,#7A4030 60%,var(--gold-deep) 100%);color:var(--white);padding:48px 5% 44px;position:relative;overflow:hidden}
.page-hero-band::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Ccircle cx='20' cy='20' r='1.5' fill='rgba(255,255,255,0.05)'/%3E%3C/svg%3E")}
.page-hero-band h1{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,3vw,2.4rem);color:var(--gold-light);margin-bottom:6px;position:relative}
.page-hero-band p{font-size:15px;color:rgba(255,255,255,0.7);position:relative}

/* ── STAR RATING ── */
.stars{color:var(--gold);letter-spacing:1px}
.rating-row{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--dark)}
.rating-count{font-weight:400;color:var(--muted)}

/* ── TOAST ── */
#toast{position:fixed;bottom:24px;right:24px;background:var(--dark);color:var(--white);padding:14px 20px;border-radius:12px;font-size:14px;font-weight:500;opacity:0;transform:translateY(10px);transition:all .3s;z-index:9999;pointer-events:none;max-width:320px;box-shadow:0 8px 32px rgba(0,0,0,0.25)}
#toast.show{opacity:1;transform:translateY(0)}
#toast.toast-error{background:var(--ruby)}
#toast.toast-success{background:var(--sage)}

/* ── THAI LOTUS CARD ACCENT ── */
.lotus-accent{position:relative;overflow:hidden}
.lotus-accent::after{content:'';position:absolute;bottom:-20px;right:-20px;width:80px;height:80px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cellipse cx='40' cy='40' rx='8' ry='18' fill='%23C8903A' opacity='.08'/%3E%3Cellipse cx='40' cy='40' rx='8' ry='18' transform='rotate(36 40 40)' fill='%23C8903A' opacity='.06'/%3E%3Cellipse cx='40' cy='40' rx='8' ry='18' transform='rotate(72 40 40)' fill='%23C8903A' opacity='.08'/%3E%3Cellipse cx='40' cy='40' rx='8' ry='18' transform='rotate(108 40 40)' fill='%23C8903A' opacity='.06'/%3E%3Cellipse cx='40' cy='40' rx='8' ry='18' transform='rotate(144 40 40)' fill='%23C8903A' opacity='.08'/%3E%3C/svg%3E") no-repeat center/contain;pointer-events:none}

/* ── LOADING SPINNER ── */
.spinner{width:36px;height:36px;border:3px solid var(--cream);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-state{display:flex;align-items:center;justify-content:center;gap:12px;padding:60px;color:var(--muted);font-size:15px}

/* ── EMPTY STATE ── */
.empty-state{text-align:center;padding:72px 24px;color:var(--muted)}
.empty-icon{font-size:56px;margin-bottom:16px;display:block;opacity:.5}
.empty-state h3{font-size:18px;font-weight:600;color:var(--earth);margin-bottom:8px}
.empty-state p{font-size:14px}

/* ── MAP COMPONENTS (Leaflet integration) ── */
.loc-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(200,144,58,0.15);margin-bottom:20px}
.loc-card-header{padding:16px 20px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(200,144,58,0.1)}
.loc-card-title{font-weight:700;color:var(--earth);font-size:15px}
.nav-btn{background:linear-gradient(135deg,var(--teal),#115555);color:var(--white);padding:7px 16px;border-radius:20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:all .2s}
.nav-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(26,107,107,0.35)}
.loc-map{height:220px}
.loc-address{padding:12px 20px;font-size:13px;color:var(--muted);border-top:1px solid rgba(200,144,58,0.08)}

/* ── RESPONSIVE ── */
@media(max-width:640px){
  .form-row{grid-template-columns:1fr}
  .nav-right .btn-login{display:none}
  .section{padding:52px 5%}
}
