/* JUNE Wedding Studio — Comprehensive Brand Theme & Dark Mode System */

/* --- 1. LIGHT MODE (halloween theme default) --- */
[data-theme=halloween] {
  color-scheme: light;
  --color-base-100: #FFFFFF;
  --color-base-200: #FFF6EA;
  --color-base-300: #EBDCC8;
  --color-base-content: #2E241B;
  --color-primary: #786552;
  --color-primary-content: #FFF2E2;
  --color-secondary: #B08D57;
  --color-secondary-content: #FFFFFF;
  --color-accent: #A07E5F;
  --color-accent-content: #FFFFFF;
  --color-neutral: #4A3B2E;
  --color-neutral-content: #FFF2E2;
  --color-info: #6B7F94;
  --color-success: #5F8A5E;
  --color-warning: #C9964A;
  --color-error: #B5534F;
}

[data-theme=halloween] html, 
[data-theme=halloween] body, 
html:not([data-theme=june-dark]), 
body:not([data-theme=june-dark]) {
  background: #FFFFFF;
  color: #2E241B;
}

[data-theme=halloween] .text-base-content\/60,
[data-theme=halloween] .text-base-content\/70,
[data-theme=halloween] .text-base-content\/80 {
  color: rgba(46,36,27,.82);
}

[data-theme=halloween] .text-gray-400,
[data-theme=halloween] .text-gray-500 {
  color: #6B5A4A;
}

.june-logo { height: 30px; width: auto; display: block; }
.navbar .june-logo { height: 26px; }
footer .june-logo { height: 40px; }

[data-theme=halloween] .from-black\/80, [data-theme=halloween] .from-black\/90 { --tw-gradient-from: rgba(46,36,27,.85) var(--tw-gradient-from-position); }
[data-theme=halloween] .via-black\/20, [data-theme=halloween] .via-black\/50 { --tw-gradient-via: rgba(46,36,27,.35) var(--tw-gradient-via-position); }
[data-theme=halloween] .bg-black, [data-theme=halloween] .bg-black\/50, [data-theme=halloween] .bg-black\/60, [data-theme=halloween] .bg-black\/80 { background-color: rgba(46,36,27,.85); }

.text-pink-500, .text-pink-400, .text-\[\#ff2d75\], .text-\[\#FF2D75\] { color: #786552 !important; }
.bg-pink-500, .bg-pink-600, .bg-\[\#ff2d75\], .bg-\[\#FF2D75\] { background-color: #786552 !important; }
.border-pink-500 { border-color: #786552 !important; }
[style*="Pattaya"] { font-family: "Playfair Display", Georgia, serif !important; font-weight: 600; letter-spacing: .04em; }

[data-theme=halloween] .opacity-60, [data-theme=halloween] .opacity-70 { opacity: .85 !important; }
[data-theme=halloween] [style*="opacity:0.3"] { opacity: .55 !important; }
[data-theme=halloween] [style*="opacity:0.75"] { opacity: .9 !important; }
[data-theme=halloween] .card, [data-theme=halloween] .rounded-box { box-shadow: 0 2px 12px rgba(74,59,46,.08); }


/* --- 2. DARK MODE (june-dark theme) --- */
[data-theme=june-dark] {
  color-scheme: dark;
  --color-base-100: #1C1917;          /* Nền chính */
  --color-base-200: #26221F;          /* Section xen kẽ */
  --color-base-300: #3D3631;          /* Viền */
  --color-base-content: #F5EBE1;      /* Chữ chính */
  --color-primary: #D4B294;           /* Vàng đồng / Nâu cát sáng */
  --color-primary-content: #1C1917;
  --color-secondary: #D4AF37;
  --color-secondary-content: #1C1917;
  --color-accent: #C29F80;
  --color-accent-content: #1C1917;
  --color-neutral: #332B25;
  --color-neutral-content: #F5EBE1;
  --color-info: #8FA3B8;
  --color-success: #7FAF7E;
  --color-warning: #D9B06A;
  --color-error: #D07570;
}

/* Force HTML & Body dark background & light text */
html[data-theme=june-dark],
html[data-theme=june-dark] body,
body[data-theme=june-dark] {
  background-color: #1C1917 !important;
  color: #F5EBE1 !important;
}

/* Base text contrast fixes for all opacity variants */
[data-theme=june-dark] h1,
[data-theme=june-dark] h2,
[data-theme=june-dark] h3,
[data-theme=june-dark] h4,
[data-theme=june-dark] h5,
[data-theme=june-dark] h6,
[data-theme=june-dark] .text-base-content {
  color: #F5EBE1 !important;
}

[data-theme=june-dark] .text-base-content\/90 { color: rgba(245, 235, 225, 0.94) !important; }
[data-theme=june-dark] .text-base-content\/80 { color: rgba(245, 235, 225, 0.88) !important; }
[data-theme=june-dark] .text-base-content\/70 { color: rgba(245, 235, 225, 0.80) !important; }
[data-theme=june-dark] .text-base-content\/60 { color: rgba(245, 235, 225, 0.70) !important; }
[data-theme=june-dark] .text-base-content\/50 { color: rgba(245, 235, 225, 0.60) !important; }
[data-theme=june-dark] .text-base-content\/40 { color: rgba(245, 235, 225, 0.50) !important; }
[data-theme=june-dark] .text-base-content\/30 { color: rgba(245, 235, 225, 0.40) !important; }

/* Text Gray Classes */
[data-theme=june-dark] .text-gray-300,
[data-theme=june-dark] .text-gray-400,
[data-theme=june-dark] .text-gray-500,
[data-theme=june-dark] .text-gray-600 {
  color: #D4C3B3 !important;
}

/* Footer Specific Fixes */
[data-theme=june-dark] footer {
  background-color: #171412 !important;
  border-top-color: #3D3631 !important;
}
[data-theme=june-dark] footer h3 {
  color: #F5EBE1 !important;
}
[data-theme=june-dark] footer p,
[data-theme=june-dark] footer ul,
[data-theme=june-dark] footer li,
[data-theme=june-dark] footer a {
  color: rgba(245, 235, 225, 0.78) !important;
}
[data-theme=june-dark] footer a:hover {
  color: #D4B294 !important;
}

/* Accordions / FAQ Collapses */
[data-theme=june-dark] .collapse {
  background-color: #26221F !important;
  border-color: #3D3631 !important;
}
[data-theme=june-dark] .collapse-title {
  color: #F5EBE1 !important;
}
[data-theme=june-dark] .collapse-content,
[data-theme=june-dark] .collapse-content p,
[data-theme=june-dark] .collapse-content li,
[data-theme=june-dark] .collapse-content span,
[data-theme=june-dark] .collapse-content div {
  color: rgba(245, 235, 225, 0.85) !important;
}

/* Cards & Blog Post Cards */
[data-theme=june-dark] .card {
  background-color: #26221F !important;
  border-color: #3D3631 !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
[data-theme=june-dark] .card-title,
[data-theme=june-dark] .card h3,
[data-theme=june-dark] .card p,
[data-theme=june-dark] article h3,
[data-theme=june-dark] article p {
  color: #F5EBE1 !important;
}

/* Background Utility Overrides in Dark Mode */
[data-theme=june-dark] .bg-base-100 { background-color: #1C1917 !important; }
[data-theme=june-dark] .bg-base-200 { background-color: #26221F !important; }
[data-theme=june-dark] .bg-base-300 { background-color: #3D3631 !important; }
[data-theme=june-dark] .bg-white {
  background-color: #26221F !important;
  color: #F5EBE1 !important;
}
[data-theme=june-dark] .bg-white\/90 {
  background-color: rgba(38, 34, 31, 0.9) !important;
  color: #F5EBE1 !important;
}

/* Borders */
[data-theme=june-dark] .border-base-300,
[data-theme=june-dark] .border-base-200,
[data-theme=june-dark] .border-gray-200,
[data-theme=june-dark] .border-gray-300 {
  border-color: #3D3631 !important;
}

/* Form Controls & Inputs */
[data-theme=june-dark] input,
[data-theme=june-dark] textarea,
[data-theme=june-dark] select {
  background-color: #26221F !important;
  color: #F5EBE1 !important;
  border-color: #3D3631 !important;
}
[data-theme=june-dark] input::placeholder,
[data-theme=june-dark] textarea::placeholder {
  color: rgba(245, 235, 225, 0.45) !important;
}

/* Modals & Dropdowns */
[data-theme=june-dark] .dropdown-content,
[data-theme=june-dark] .modal-box {
  background-color: #26221F !important;
  color: #F5EBE1 !important;
  border: 1px solid #3D3631 !important;
}

/* Navigation Bars */
[data-theme=june-dark] .navbar {
  background-color: #1C1917 !important;
}
[data-theme=june-dark] nav.fixed.bottom-0 {
  background-color: rgba(28, 25, 23, 0.95) !important;
  border-top-color: #3D3631 !important;
}
[data-theme=june-dark] .june-logo {
  filter: brightness(1.6) sepia(0.2) hue-rotate(15deg);
}

/* Buttons */
[data-theme=june-dark] .btn-ghost {
  color: #F5EBE1 !important;
}
[data-theme=june-dark] .btn-ghost:hover {
  background-color: rgba(245, 235, 225, 0.1) !important;
}

/* Floating Contact Button (Messenger) */
.june-contact-btn-wrapper {
  position: fixed;
  z-index: 9999;
  bottom: 80px;
  right: 16px;
  display: flex;
  align-items: center;
}

@media (min-width: 1024px) {
  .june-contact-btn-wrapper {
    bottom: 24px;
    right: 24px;
  }
}

.june-contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 9999px;
  background-color: #786552 !important;
  background: linear-gradient(135deg, #8E7864 0%, #685544 100%) !important;
  box-shadow: 0 8px 25px rgba(120, 101, 82, 0.45);
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
  cursor: pointer;
  text-decoration: none;
}

.june-contact-btn:hover {
  background: linear-gradient(135deg, #7D6855 0%, #5B4838 100%) !important;
  transform: scale(1.06);
  box-shadow: 0 10px 30px rgba(120, 101, 82, 0.6);
}

.june-contact-btn:active {
  transform: scale(0.95);
}

.june-contact-close {
  position: absolute;
  top: -2px;
  right: -2px;
  z-index: 10;
  width: 22px;
  height: 22px;
  border-radius: 9999px;
  background-color: #4A3B2E !important;
  color: #FFF2E2 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(74, 59, 46, 0.35);
  border: 1.5px solid #FFFFFF !important;
  cursor: pointer;
  padding: 0;
  transition: background-color 0.15s ease, transform 0.15s ease;
}

.june-contact-close:hover {
  background-color: #362A1F !important;
  transform: scale(1.1);
}

.june-contact-tooltip {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  background-color: #2E241B;
  color: #FFF2E2;
  font-size: 12px;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: 8px;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
}

@media (min-width: 1024px) {
  .june-contact-btn-wrapper:hover .june-contact-tooltip {
    opacity: 1;
  }
}


/* --- JUNE Wedding Login Modal System --- */
.june-login-modal-box {
  background-color: #FFFFFF !important;
  color: #2E241B !important;
  border-radius: 28px !important;
  max-width: 390px !important;
  width: 100% !important;
  padding: 0 !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25) !important;
  overflow: hidden !important;
}

.june-login-close-btn {
  position: absolute !important;
  right: 16px !important;
  top: 16px !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 9999px !important;
  background-color: #F8F3EC !important;
  color: #49423C !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, transform 0.15s ease !important;
  z-index: 10 !important;
}

.june-login-close-btn:hover {
  background-color: #EDE4D8 !important;
  transform: scale(1.05) !important;
}

.june-login-badge {
  width: 60px !important;
  height: 60px !important;
  border-radius: 20px !important;
  background-color: #FCEFE9 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 14px auto !important;
  box-shadow: 0 4px 12px rgba(252, 239, 233, 0.8) !important;
}

.june-login-badge-inner {
  width: 38px !important;
  height: 38px !important;
  background-color: #FFF6EA !important;
  border-radius: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.june-login-badge-text {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #786552 !important;
  line-height: 1 !important;
}

.june-login-title {
  font-size: 24px !important;
  font-weight: 700 !important;
  color: #2E241B !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 20px !important;
  text-align: center !important;
}

.june-btn-google {
  width: 100% !important;
  height: 50px !important;
  background-color: #FFFFFF !important;
  border: 1px solid #E5DED5 !important;
  border-radius: 16px !important;
  color: #2E241B !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

.june-btn-google:hover {
  background-color: #FAF7F2 !important;
  border-color: #C4B7AB !important;
}

.june-btn-apple {
  width: 100% !important;
  height: 50px !important;
  background-color: #49423C !important;
  border: 1px solid #49423C !important;
  border-radius: 16px !important;
  color: #FFFFFF !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
  margin-top: 10px !important;
}

.june-btn-apple:hover {
  background-color: #3B3530 !important;
}

.june-login-divider {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 18px 0 !important;
}

.june-login-divider-line {
  flex: 1 !important;
  height: 1px !important;
  background-color: #EBDCC8 !important;
}

.june-login-divider-text {
  font-size: 12px !important;
  color: #9C938A !important;
}

.june-login-label {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #49423C !important;
  margin-bottom: 6px !important;
  text-align: left !important;
}

.june-login-input {
  width: 100% !important;
  height: 50px !important;
  padding: 0 16px !important;
  background-color: #FFFAF3 !important;
  border: 1px solid #EBDCC8 !important;
  border-radius: 16px !important;
  font-size: 15px !important;
  color: #2E241B !important;
  outline: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  box-sizing: border-box !important;
}

.june-login-input:focus {
  border-color: #786552 !important;
  box-shadow: 0 0 0 3px rgba(120, 101, 82, 0.12) !important;
}

.june-login-input::placeholder {
  color: #BFB8AF !important;
}

.june-login-submit {
  width: 100% !important;
  height: 50px !important;
  border-radius: 16px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  border: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin-top: 14px !important;
  transition: all 0.2s ease !important;
}

.june-login-submit.disabled {
  background-color: #B6ACA3 !important;
  color: #FFFFFF !important;
  cursor: not-allowed !important;
  opacity: 0.95 !important;
}

.june-login-submit.active {
  background-color: #786552 !important;
  color: #FFF2E2 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(120, 101, 82, 0.25) !important;
}

.june-login-submit.active:hover {
  background-color: #685746 !important;
  transform: translateY(-1px) !important;
}

.june-login-hint {
  font-size: 12px !important;
  color: #9C938A !important;
  text-align: center !important;
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}

.june-login-features {
  margin-top: 20px !important;
  padding-top: 16px !important;
  border-top: 1px solid #F2EBE2 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.june-login-feature-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 13px !important;
  color: #706B66 !important;
}

.june-login-feature-icon {
  width: 16px !important;
  height: 16px !important;
  border-radius: 9999px !important;
  background-color: rgba(84, 127, 83, 0.12) !important;
  color: #547F53 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

/* --- JUNE Wedding Blog System --- */
.june-blog-featured {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 24px !important;
  align-items: center !important;
}

@media (min-width: 1024px) {
  .june-blog-featured {
    grid-template-columns: 1.2fr 1fr !important;
    gap: 40px !important;
  }
}

.june-blog-featured-img-wrap {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background-color: #F8F3EC !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06) !important;
}

.june-blog-featured-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.6s ease !important;
}

.group:hover .june-blog-featured-img {
  transform: scale(1.03) !important;
}

.june-blog-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 32px !important;
}

@media (min-width: 640px) {
  .june-blog-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (min-width: 1024px) {
  .june-blog-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

.june-blog-card-img-wrap {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background-color: #F8F3EC !important;
  margin-bottom: 14px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
}

.june-blog-card-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.5s ease !important;
}

.group:hover .june-blog-card-img {
  transform: scale(1.04) !important;
}

/* Bài viết tạo từ admin (nội dung HTML) */
.june-post-body h2 { font-size: 1.5rem; font-weight: 700; color: var(--color-base-content); padding-top: 1rem; }
.june-post-body h3 { font-size: 1.2rem; font-weight: 600; color: var(--color-base-content); padding-top: .5rem; }
.june-post-body ul { list-style: disc; padding-left: 1.5rem; } .june-post-body ol { list-style: decimal; padding-left: 1.5rem; }
.june-post-body li + li { margin-top: .5rem; }
.june-post-body img { border-radius: 1rem; max-width: 100%; height: auto; }
.june-post-body blockquote { border-left: 4px solid var(--color-primary); padding-left: 1rem; font-style: italic; }
.june-post-body a { color: var(--color-primary); text-decoration: underline; }
