/* SomTamPattaya shared theme — BOLD FOODIE (light + vibrant + magazine) */

:root{
  /* Surfaces */
  --bg: #fff6ee;
  --surface: #ffffff;
  --surface-2: #fff0e6;
  --surface-3: #f2fffb;

  /* Text */
  --text: #15151a;
  --muted: rgba(21,21,26,.70);
  --line: rgba(21,21,26,.12);

  /* Foodie palette */
  --chili: #ff2d55;
  --mango: #ffb703;
  --lime: #20d3a9;
  --sky:  #3a86ff;
  --grape:#7b2cff;

  --shadow-sm: 0 10px 22px rgba(21,21,26,.08);
  --shadow:    0 18px 42px rgba(21,21,26,.12);

  --radius-xl: 26px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --radius-sm: 12px;

  --max: 1120px;
  --pad: 18px;

  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --font-display: "Plus Jakarta Sans", var(--font);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family: var(--font);
  color: var(--text);
  background:
    radial-gradient(900px 520px at 12% 0%, rgba(255,45,85,.18), transparent 60%),
    radial-gradient(900px 520px at 95% 6%, rgba(32,211,169,.18), transparent 62%),
    radial-gradient(900px 520px at 78% 96%, rgba(255,183,3,.16), transparent 62%),
    radial-gradient(900px 520px at 0% 95%, rgba(58,134,255,.14), transparent 64%),
    var(--bg);
  line-height: 1.6;
}

img{ max-width:100%; height:auto; display:block; }
a{ color: inherit; text-decoration: none; }

.container{
  width: min(var(--max), calc(100% - (var(--pad) * 2)));
  margin: 0 auto;
}

/* Top foodie ribbon (subtle confetti) */
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.55;
  background-image:
    radial-gradient(2px 2px at 8% 12%, rgba(255,45,85,.50) 50%, transparent 51%),
    radial-gradient(2px 2px at 18% 30%, rgba(255,183,3,.55) 50%, transparent 51%),
    radial-gradient(2px 2px at 30% 18%, rgba(32,211,169,.55) 50%, transparent 51%),
    radial-gradient(2px 2px at 70% 10%, rgba(58,134,255,.55) 50%, transparent 51%),
    radial-gradient(2px 2px at 92% 26%, rgba(123,44,255,.50) 50%, transparent 51%),
    radial-gradient(2px 2px at 82% 86%, rgba(255,45,85,.35) 50%, transparent 51%),
    radial-gradient(2px 2px at 14% 86%, rgba(255,183,3,.35) 50%, transparent 51%);
  background-repeat:no-repeat;
}

/* Header */
header{
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(10px);
  background: rgba(255,246,238,.82);
  border-bottom: 1px solid var(--line);
}

header .nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px 0;
}

.brand{
  display:flex;
  gap: 12px;
  align-items:center;
  min-width: 220px;
}

.logo{
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display:grid;
  place-items:center;
  font-size: 24px;
  background:
    radial-gradient(20px 20px at 30% 25%, rgba(255,255,255,.95), rgba(255,255,255,0)),
    linear-gradient(135deg, rgba(255,45,85,.98), rgba(255,183,3,.95));
  box-shadow: 0 14px 26px rgba(255,45,85,.20);
  transform: rotate(-3deg);
}

header h1{
  font-family: var(--font-display);
  margin: 0;
  font-size: 18px;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
header p{
  margin: 4px 0 0 0;
  color: var(--muted);
  font-size: 13px;
}

/* Buttons */
.actions{ display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.75);
  box-shadow: 0 10px 22px rgba(21,21,26,.08);
  font-weight: 900;
  font-size: 14px;
  letter-spacing: .01em;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(21,21,26,.14);
  filter: saturate(1.05);
}
.btn.primary{
  border-color: transparent;
  background: linear-gradient(135deg, var(--chili), var(--mango));
  color: #fff;
}
.btn.secondary{
  border-color: rgba(21,21,26,.10);
}
.btn.secondary:hover{
  border-color: rgba(21,21,26,.18);
}

/* Main */
main{ padding: 18px 0 64px; }

/* HERO — magazine style */
.hero .card{
  position: relative;
  background:
    radial-gradient(520px 260px at 10% 10%, rgba(255,45,85,.18), transparent 60%),
    radial-gradient(520px 260px at 90% 18%, rgba(32,211,169,.16), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78));
  border: 1px solid rgba(21,21,26,.10);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  padding: 22px;
  overflow:hidden;
}

.hero .card:after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: var(--radius-xl);
  pointer-events:none;
  background:
    linear-gradient(135deg, rgba(255,45,85,.20), rgba(32,211,169,.12), rgba(255,183,3,.18));
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  padding: 2px;
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity:.85;
}
.page-hero {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  height: 40vh;
min-height: 280px;
}

.page-hero img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
 /* background: rgba(0, 0, 0, 0.45);*/
}

.page-hero h1 {
  position: relative;
  color: #fff;
  font-size: 2.2rem;
  text-align: center;
  z-index: 2;
  padding: 0 20px;
}

.kicker{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 13px;
  font-weight: 1000;
  color: rgba(21,21,26,.78);
  text-transform: uppercase;
  letter-spacing: .10em;
  margin-bottom: 10px;
}
.dot{
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--lime), var(--sky));
  box-shadow: 0 0 0 7px rgba(32,211,169,.14);
}

h2, h3{
  font-family: var(--font-display);
  letter-spacing: -0.03em;
}
.hero h2{
  margin: 0 0 10px 0;
  font-size: clamp(26px, 3.6vw, 44px);
  line-height: 1.08;
}
p{
  margin: 0 0 14px 0;
  color: rgba(21,21,26,.86);
  font-size: 16px;
}
p strong{ color: var(--text); }

/* Fun highlight for links inside text (if any) */
main a:not(.btn):not(.card){
  color: rgba(21,21,26,.92);
  text-decoration: underline;
  text-decoration-color: rgba(255,45,85,.35);
  text-underline-offset: 4px;
}
main a:not(.btn):not(.card):hover{
  text-decoration-color: rgba(32,211,169,.55);
}

/* Section grids/cards */
.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 14px;
}

.card{
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(21,21,26,.10);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  padding: 20px;
}

a.card{
  position: relative;
  display:block;
  padding: 16px;
  overflow:hidden;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}

a.card:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity: .0;
  background:
    radial-gradient(420px 200px at 0% 0%, rgba(255,45,85,.20), transparent 60%),
    radial-gradient(420px 200px at 100% 0%, rgba(32,211,169,.18), transparent 62%),
    radial-gradient(420px 200px at 50% 120%, rgba(255,183,3,.16), transparent 62%);
  transition: opacity .12s ease;
}

a.card:hover{
  transform: translateY(-3px) rotate(-0.1deg);
  box-shadow: 0 22px 46px rgba(21,21,26,.16);
  filter: saturate(1.05);
}
a.card:hover:before{ opacity: 1; }

a.card h3{
  margin: 8px 0 6px 0;
  font-size: 18px;
}
a.card p{
  margin: 0;
  font-size: 14px;
  color: var(--muted);
}

/* Sticker badges (optional if markup uses .badges/.badge) */
.badges{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
  margin: 12px 0 0 0;
}
.badge{
  font-size: 13px;
  font-weight: 1000;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(21,21,26,.10);
  background: rgba(255,255,255,.78);
  box-shadow: 0 10px 20px rgba(21,21,26,.06);
}
.badge.brand{ border-color: rgba(255,45,85,.30); }
.badge.mint{ border-color: rgba(32,211,169,.30); }
.badge.mango{ border-color: rgba(255,183,3,.35); }
.badge.sky{ border-color: rgba(58,134,255,.25); }

/* FAQ accordion */
#faq{
  margin-top: 18px;
}
#faq h2{
  margin: 0 0 6px 0;
  font-size: clamp(20px, 2.6vw, 30px);
}
#faq details{
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(21,21,26,.10);
  border-radius: var(--radius-lg);
  padding: 12px 14px;
  margin: 10px 0;
  box-shadow: 0 12px 24px rgba(21,21,26,.08);
}
#faq summary{
  cursor:pointer;
  font-weight: 1000;
  list-style: none;
}
#faq summary::-webkit-details-marker{ display:none; }
#faq summary:after{
  content: "+";
  float:right;
  font-weight: 1000;
  color: rgba(21,21,26,.55);
}
#faq details[open] summary:after{ content: "–"; }
#faq details p{ margin: 10px 0 0 0; color: rgba(21,21,26,.82); }

/* Images */
.hero-image{
  width: 100%;
  border-radius: var(--radius-xl);
  margin: 14px 0 18px;
  border: 1px solid rgba(21,21,26,.10);
  box-shadow: var(--shadow);
}
.card-image{
  width: 100%;
  border-radius: var(--radius-lg);
  margin-bottom: 10px;
  border: 1px solid rgba(21,21,26,.10);
  box-shadow: 0 12px 26px rgba(21,21,26,.10);
}

/* Footer */
footer{
  margin-top: 26px;
  padding: 18px 0 24px;
  color: rgba(21,21,26,.70);
  border-top: 1px solid rgba(21,21,26,.10);
}
footer a{
  color: rgba(21,21,26,.82);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Responsive */
@media (max-width: 960px){
  .grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  header .nav{ align-items:flex-start; }
  .brand{ min-width: 0; }
  header h1{ font-size: 16px; }
  header p{ font-size: 12px; }
  .actions{ justify-content:flex-start; }
  .btn{ width: 100%; }
  .grid{ grid-template-columns: 1fr; }
  .hero .card{ padding: 16px; }
  p{ font-size: 16px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .btn, a.card{ transition:none; }
}
