/* =========================================================
   Full Moon Party - HOBO-YA
   Scoped content styles only.
   Site frame / menu / spacing remain controlled by Tour-base-2024,
   Project Seven and samui.css.
   ========================================================= */

.fm-content {
  --fm-ink:#253041;
  --fm-muted:#697386;
  --fm-line:#dfe4ec;
  --fm-purple:#6d28d9;
  --fm-purple-dark:#4c1d95;
  --fm-pink:#db2777;
  --fm-orange:#f97316;
  --fm-blue:#087aa8;
  --fm-green:#117a65;
  --fm-red:#b42318;
  --fm-radius:16px;
  --fm-shadow:0 7px 24px rgba(24,28,42,.08);
  color:var(--fm-ink);
  line-height:1.75;
}

.fm-content,
.fm-content *,
.fm-content *::before,
.fm-content *::after {
  box-sizing:border-box;
}

.fm-content a {
  text-underline-offset:3px;
}

/* HERO */
.fm-content .fm-hero {
  position:relative;
  min-height:390px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  margin:8px 0 26px;
  border-radius:18px;
  background:
    linear-gradient(180deg,rgba(15,12,30,.02) 0%,rgba(30,9,39,.86) 100%),
    linear-gradient(135deg,#52217a 0%,#bd246b 58%,#e27738 100%);
  box-shadow:var(--fm-shadow);
}

.fm-content .fm-hero::after {
  content:"🌕";
  position:absolute;
  right:28px;
  top:18px;
  font-size:76px;
  opacity:.17;
  pointer-events:none;
}

.fm-content .fm-hero-inner {
  position:relative;
  z-index:1;
  width:100%;
  padding:34px 30px 30px;
  color:#fff;
}

.fm-content .fm-eyebrow {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:.82rem;
  font-weight:800;
}

.fm-content .fm-hero h1 {
  margin:13px 0 10px;
  color:#fff;
  font-size:clamp(2rem,4.8vw,3.25rem);
  line-height:1.12;
}

.fm-content .fm-hero-lead {
  max-width:800px;
  margin:0;
  color:#fff;
  font-size:1.05rem;
  line-height:1.8;
}

.fm-content .fm-hero-badges {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.fm-content .fm-hero-badges span {
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.27);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:.8rem;
  font-weight:800;
}

.fm-content .fm-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:19px;
}

.fm-content .fm-actions-center {
  justify-content:center;
}

.fm-content .fm-btn {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  padding:10px 19px;
  border-radius:999px;
  text-decoration:none!important;
  font-weight:900;
  transition:transform .16s ease,box-shadow .16s ease;
}

.fm-content .fm-btn:hover {
  transform:translateY(-1px);
}

.fm-content .fm-btn-primary {
  color:var(--fm-purple-dark)!important;
  background:#fff;
  box-shadow:0 6px 15px rgba(0,0,0,.12);
}

.fm-content .fm-btn-accent {
  color:#fff!important;
  background:var(--fm-pink);
}

.fm-content .fm-btn-outline {
  color:#fff!important;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(0,0,0,.12);
}

/* SECTIONS */
.fm-content .fm-section {
  margin:24px 0;
  padding:20px;
  border:1px solid #e0e5eb;
  border-radius:15px;
  background:#fff;
  box-shadow:0 3px 13px rgba(30,55,74,.045);
}

.fm-content .fm-section-title {
  display:flex;
  align-items:center;
  gap:7px;
  margin:0 0 15px;
  padding:10px 13px;
  border-left:5px solid var(--fm-pink);
  border-radius:0 9px 9px 0;
  background:linear-gradient(90deg,#fff0f7,#fff);
  color:var(--fm-purple-dark);
  font-size:clamp(1.25rem,2.8vw,1.65rem);
  line-height:1.35;
}

.fm-content .fm-section-price .fm-section-title {
  border-left-color:#f08a26;
  background:linear-gradient(90deg,#fff4e8,#fff);
}

.fm-content .fm-section-advantage .fm-section-title {
  border-left-color:#329175;
  background:linear-gradient(90deg,#ecfaf5,#fff);
}

.fm-content .fm-section-timetable .fm-section-title {
  border-left-color:#3589b8;
  background:linear-gradient(90deg,#edf8ff,#fff);
}

.fm-content .fm-lead {
  margin:0;
  font-size:1rem;
  line-height:1.9;
}

.fm-content .fm-small {
  font-size:.87rem;
  line-height:1.65;
}

.fm-content .fm-muted {
  color:var(--fm-muted);
}

/* CARDS */
.fm-content .fm-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
  margin-top:16px;
}

.fm-content .fm-grid-2 {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}

.fm-content .fm-card {
  position:relative;
  padding:17px;
  border:1px solid var(--fm-line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 12px rgba(24,28,42,.04);
}

.fm-content .fm-card h3,
.fm-content .fm-card h4 {
  margin-top:0;
  color:var(--fm-purple-dark);
}

.fm-content .fm-card p:last-child {
  margin-bottom:0;
}

.fm-content .fm-card-icon {
  padding-top:20px;
  border-top:4px solid #e6afd0;
}

.fm-content .fm-card-emoji {
  position:absolute;
  top:10px;
  right:13px;
  font-size:1.35rem;
}

.fm-content .fm-card-info {
  border-color:#c9e0f2;
  background:#f3f9ff;
}

.fm-content .fm-card-warning {
  border-color:#efd08a;
  background:#fff8e8;
}

.fm-content .fm-card-safety {
  border-color:#c9e5d7;
  background:#f4fbf7;
}

.fm-content .fm-stat {
  margin:3px 0 5px;
  color:var(--fm-pink);
  font-size:1.5rem;
  font-weight:900;
}

.fm-content .fm-label {
  color:var(--fm-muted);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.03em;
}

/* DATES */
.fm-content .fm-next {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:17px;
  align-items:center;
  margin:16px 0;
  padding:19px;
  border:1px solid #ead4f8;
  border-radius:15px;
  background:linear-gradient(135deg,#faf5ff,#fff1f6);
}

.fm-content .fm-next-date {
  color:var(--fm-purple-dark);
  font-size:clamp(1.55rem,4vw,2.15rem);
  font-weight:900;
}

.fm-content .fm-next-note {
  color:var(--fm-muted);
  line-height:1.6;
}

.fm-content .fm-date-list {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

.fm-content .fm-date-list li {
  padding:10px 5px;
  border:1px solid var(--fm-line);
  border-radius:11px;
  background:#fff;
  text-align:center;
}

.fm-content .fm-date-list strong {
  display:block;
  color:var(--fm-purple-dark);
}

/* PRICE */
.fm-content .fm-price-hero {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  overflow:hidden;
  border:1px solid #efd7bb;
  border-radius:17px;
  background:#fff;
  box-shadow:0 5px 17px rgba(73,47,18,.07);
}

.fm-content .fm-price-main {
  padding:23px;
  background:linear-gradient(135deg,#fff3e6,#fffaf4);
}

.fm-content .fm-price-big {
  margin:5px 0 6px;
  color:#c64e16;
  font-size:clamp(2.15rem,5vw,3.35rem);
  font-weight:900;
  line-height:1;
}

.fm-content .fm-price-big small {
  color:#734a36;
  font-size:.34em;
  font-weight:900;
}

.fm-content .fm-price-main p {
  margin:8px 0 0;
  color:#654637;
  font-weight:800;
}

.fm-content .fm-price-side {
  padding:23px;
  background:#4f246e;
  color:#fff;
}

.fm-content .fm-price-side p,
.fm-content .fm-price-side span {
  color:#fff;
}

.fm-content .fm-fee-row {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}

.fm-content .fm-fee-row strong {
  color:#fff;
  white-space:nowrap;
}

.fm-content .fm-fee-total {
  border-bottom:0;
  font-size:1.1rem;
}

.fm-content .fm-fee-total strong {
  color:#ffe171;
}

.fm-content .fm-price-notes {
  margin-top:13px;
}

/* PETCHERAT ADVANTAGE */
.fm-content .fm-advantage {
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  gap:20px;
  align-items:center;
  padding:20px;
  border:1px solid #cbe5d8;
  border-radius:15px;
  background:linear-gradient(135deg,#f0fbf6,#fff);
}

.fm-content .fm-advantage-icon {
  display:flex;
  min-height:120px;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:#def6e9;
  font-size:2rem;
  letter-spacing:-8px;
}

.fm-content .fm-advantage h3 {
  margin:0 0 7px;
  color:#17634d;
  font-size:1.2rem;
}

.fm-content .fm-advantage p {
  margin:6px 0;
}

/* TIMETABLE */
.fm-content .fm-timetable-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}

.fm-content .fm-time-card {
  padding:19px;
  border-radius:15px;
  color:#fff;
  box-shadow:0 5px 15px rgba(25,46,68,.1);
}

.fm-content .fm-time-card-go {
  background:linear-gradient(135deg,#236b9c,#2f91ba);
}

.fm-content .fm-time-card-return {
  background:linear-gradient(135deg,#57307a,#9d3c83);
}

.fm-content .fm-time-card h3,
.fm-content .fm-time-card p {
  color:#fff;
}

.fm-content .fm-time-card h3 {
  margin:5px 0 4px;
}

.fm-content .fm-time-icon {
  font-size:1.35rem;
}

.fm-content .fm-time-range {
  margin:5px 0;
  font-size:clamp(1.55rem,3vw,2rem);
  font-weight:900;
}

.fm-content .fm-time-chips {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.fm-content .fm-time-chips span {
  min-width:55px;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.13);
  color:#fff;
  text-align:center;
  font-size:.79rem;
  font-weight:800;
}

.fm-content .fm-notice {
  margin-top:13px;
  padding:13px 15px;
  border-radius:11px;
}

.fm-content .fm-notice p {
  margin:5px 0 0;
}

.fm-content .fm-notice-blue {
  border:1px solid #bcdcec;
  background:#eef8fd;
  color:#315769;
}

/* TIMELINE */
.fm-content .fm-timeline {
  display:grid;
  gap:8px;
}

.fm-content .fm-step {
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  gap:12px;
  align-items:start;
}

.fm-content .fm-step-time {
  display:flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  padding:6px 4px;
  border-radius:50%;
  background:var(--fm-purple-dark);
  color:#fff;
  font-weight:900;
}

.fm-content .fm-step-body {
  padding:6px 0 13px 12px;
  border-left:3px solid #e5d6f6;
}

.fm-content .fm-note-list,
.fm-content .fm-safety-list {
  margin:0;
  padding-left:1.25em;
  line-height:1.85;
}

/* CTA */
.fm-content .fm-cta {
  position:relative;
  overflow:hidden;
  margin:26px 0 8px;
  padding:27px 23px;
  border-radius:18px;
  background:linear-gradient(135deg,var(--fm-purple-dark),var(--fm-pink));
  color:#fff;
  text-align:center;
  box-shadow:var(--fm-shadow);
}

.fm-content .fm-cta-moon {
  position:absolute;
  top:-15px;
  right:20px;
  font-size:78px;
  opacity:.13;
}

.fm-content .fm-cta h2,
.fm-content .fm-cta p {
  color:#fff;
}

.fm-content .fm-cta h2 {
  margin:0 0 7px;
}

/* FORM */
.fm-content .fm-form-back {
  margin:4px 0 12px;
  font-size:.88rem;
}

.fm-content .fm-form-shell {
  overflow:hidden;
  margin:0;
  border:1px solid var(--fm-line);
  border-radius:17px;
  background:#fff;
  box-shadow:var(--fm-shadow);
}

.fm-content .fm-form-head {
  padding:24px;
  background:linear-gradient(135deg,var(--fm-purple-dark),var(--fm-pink));
  color:#fff;
}

.fm-content .fm-form-head h1,
.fm-content .fm-form-head p {
  color:#fff;
}

.fm-content .fm-form-head h1 {
  margin:5px 0 8px;
  font-size:clamp(1.55rem,3.8vw,2.25rem);
  line-height:1.35;
}

.fm-content .fm-form-head p {
  margin:0;
}

.fm-content .fm-form-body {
  padding:22px;
}

.fm-content .fm-form-section {
  margin:0 0 23px;
  padding:0 0 21px;
  border:0;
  border-bottom:1px solid var(--fm-line);
}

.fm-content .fm-form-section:last-of-type {
  border-bottom:0;
}

.fm-content .fm-form-section h2 {
  margin:0 0 14px;
  color:var(--fm-purple-dark);
  font-size:1.2rem;
}

.fm-content .fm-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}

.fm-content .fm-field {
  display:flex;
  flex-direction:column;
  gap:5px;
}

.fm-content .fm-field-full {
  grid-column:1 / -1;
}

.fm-content .fm-field label,
.fm-content .fm-field .fm-field-label {
  color:#2d3748;
  font-size:.92rem;
  font-weight:800;
}

.fm-content .fm-required {
  margin-left:4px;
  color:var(--fm-red);
  font-size:.76rem;
}

.fm-content .fm-field input[type="text"],
.fm-content .fm-field input[type="email"],
.fm-content .fm-field input[type="tel"],
.fm-content .fm-field input[type="date"],
.fm-content .fm-field input[type="time"],
.fm-content .fm-field input[type="number"],
.fm-content .fm-field select,
.fm-content .fm-field textarea {
  width:100%!important;
  min-width:0!important;
  min-height:44px;
  padding:9px 10px;
  border:1px solid #cbd3dc;
  border-radius:8px;
  background:#fff;
  color:#253041;
  font:inherit;
}

.fm-content .fm-field textarea {
  min-height:120px;
  resize:vertical;
}

.fm-content .fm-field input:focus,
.fm-content .fm-field select:focus,
.fm-content .fm-field textarea:focus {
  outline:3px solid rgba(109,40,217,.12);
  border-color:#8b5cf6;
}

.fm-content .fm-help {
  margin:0;
  color:var(--fm-muted);
  font-size:.8rem;
  line-height:1.55;
}

.fm-content .fm-form-alert {
  padding:13px 14px;
  border:1px solid #efd598;
  border-radius:11px;
  background:#fff8e6;
  line-height:1.7;
}

.fm-content .fm-check-row {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.fm-content .fm-check-row label {
  display:flex;
  gap:8px;
  align-items:flex-start;
  font-weight:500;
  line-height:1.65;
}

.fm-content .fm-check-row input {
  margin-top:.3em;
}

.fm-content .fm-companion-list {
  display:grid;
  gap:11px;
}

.fm-content .fm-companion-row {
  padding:13px;
  border:1px solid #e0e5eb;
  border-radius:11px;
  background:#fafbfd;
}

.fm-content .fm-companion-title {
  margin-bottom:9px;
  color:var(--fm-purple-dark);
  font-weight:900;
}

.fm-content .fm-form-submit {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}

.fm-content .fm-form-submit input[type="submit"],
.fm-content .fm-form-submit input[type="reset"],
.fm-content .fm-form-submit button {
  min-width:180px;
  min-height:47px;
  padding:10px 22px;
  border:0;
  border-radius:999px;
  font:inherit;
  font-weight:900;
  cursor:pointer;
  text-shadow:none!important;
  filter:none!important;
}

.fm-content .fm-submit {
  background:var(--fm-purple-dark);
  color:#fff;
}

.fm-content .fm-reset {
  background:#eceef2;
  color:#344054;
}

.fm-content .fm-honeypot {
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

.fm-content .fm-turnstile-wrap {
  display:flex;
  justify-content:center;
  margin:18px 0 4px;
}

/* RESPONSIVE */
@media only screen and (max-width:760px) {
  .fm-content .fm-hero {
    min-height:350px;
    border-radius:14px;
  }

  .fm-content .fm-hero-inner {
    padding:24px 18px 21px;
  }

  .fm-content .fm-section {
    padding:15px 12px;
  }

  .fm-content .fm-grid,
  .fm-content .fm-grid-2,
  .fm-content .fm-form-grid,
  .fm-content .fm-timetable-grid,
  .fm-content .fm-price-hero {
    grid-template-columns:1fr;
  }

  .fm-content .fm-date-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .fm-content .fm-next {
    grid-template-columns:1fr;
  }

  .fm-content .fm-next .fm-btn {
    width:100%;
  }

  .fm-content .fm-advantage {
    grid-template-columns:1fr;
  }

  .fm-content .fm-advantage-icon {
    min-height:82px;
  }

  .fm-content .fm-form-body {
    padding:15px;
  }

  .fm-content .fm-field-full {
    grid-column:auto;
  }
}

@media only screen and (max-width:460px) {
  .fm-content .fm-date-list {
    grid-template-columns:1fr;
  }

  .fm-content .fm-step {
    grid-template-columns:44px minmax(0,1fr);
  }

  .fm-content .fm-actions .fm-btn,
  .fm-content .fm-form-submit input,
  .fm-content .fm-form-submit button {
    width:100%;
  }

  .fm-content .fm-price-big {
    font-size:2.25rem;
  }
}

/* =========================================================
   FINAL FIX: Full-width remarks textarea
   Override MailformPro / legacy form textarea sizing.
   ========================================================= */
.fm-content #mailformpro .fm-form-section .fm-form-grid .fm-field.fm-field-full {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

.fm-content #mailformpro .fm-field.fm-field-full textarea#remarks,
.fm-content #mailformpro textarea[name="remarks"] {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 140px !important;
  min-height: 140px !important;
  padding: 10px 11px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  resize: vertical !important;
}

/* =========================================================
   2026 Full Moon Party date selector
   ========================================================= */
.fm-content .fm-event-date-guide {
  margin-top:10px;
  padding:13px 14px;
  border:1px solid #e5d4f3;
  border-radius:12px;
  background:linear-gradient(135deg,#faf5ff,#fff9fc);
}

.fm-content .fm-event-date-title {
  margin:0 0 3px;
  color:#4c1d95;
  font-size:.95rem;
  font-weight:900;
}

.fm-content .fm-event-date-guide > p {
  margin:3px 0 9px;
  color:#687386;
  font-size:.8rem;
  line-height:1.55;
}

.fm-content .fm-event-date-buttons {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
}

.fm-content .fm-event-date-button {
  position:relative;
  display:flex;
  min-width:0;
  min-height:58px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:7px 5px;
  border:1px solid #d9c7e9;
  border-radius:10px;
  background:#fff;
  color:#4c1d95;
  font:inherit;
  line-height:1.25;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}

.fm-content .fm-event-date-button strong {
  display:block;
  color:#4c1d95;
  font-size:.9rem;
}

.fm-content .fm-event-date-button span {
  display:block;
  margin-top:3px;
  color:#697386;
  font-size:.72rem;
}

.fm-content .fm-event-date-button:hover {
  transform:translateY(-1px);
  border-color:#a875d0;
  background:#fbf5ff;
}

.fm-content .fm-event-date-button.is-selected {
  border-color:#7c3aed;
  background:#f2e8ff;
  box-shadow:0 0 0 2px rgba(124,58,237,.10);
}

.fm-content .fm-event-date-button.is-selected::before {
  content:"✓";
  position:absolute;
  top:4px;
  right:7px;
  color:#6d28d9;
  font-size:.72rem;
  font-weight:900;
}

.fm-content .fm-event-date-note {
  margin-top:9px!important;
  color:#735c7d!important;
  font-size:.74rem!important;
}

@media only screen and (max-width:760px) {
  .fm-content .fm-event-date-buttons {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media only screen and (max-width:420px) {
  .fm-content .fm-event-date-buttons {
    grid-template-columns:1fr;
  }

  .fm-content .fm-event-date-button {
    min-height:50px;
  }
}

