/**
Theme Name: TOFU-PHOTO
Author: Brainstorm Force
Template: astra
Version: 1.0.0
Text Domain: tofu-photo
*/

/* =========================================================
   Luciace 共通カラー
========================================================= */

:root {
  --lc-blue: #6ACEE1;
  --lc-blue-text: #1AAFC7;
  --lc-pink: #FF847C;
  --lc-pink-text: #FF6F68;
  --lc-cream: #FFFDF8;
  --lc-date-bg: #F5EFDF;
  --lc-gold: #D6B26E;
  --lc-brown: #7A4E22;
  --lc-brown-dark: #5F3718;
  --lc-text: #222;
}

/* =========================================================
   Astra 白ヘッダー
========================================================= */

/* ヘッダー全体 */
.site-header,
.ast-primary-header-bar,
.main-header-bar {
  background: var(--lc-cream) !important;
  border-bottom: 1px solid var(--lc-gold) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.05) !important;
}

/* ロゴ周り */
.site-branding,
.ast-site-identity,
.site-logo-img {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* ロゴ画像 */
.custom-logo-link,
.custom-logo-link img,
.site-logo-img img,
.ast-site-identity img {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.custom-logo-link img,
.site-logo-img img,
.ast-site-identity img {
  max-width: 280px !important;
  width: auto !important;
  height: auto !important;
}

/* ハンバーガーメニュー */
.menu-toggle,
.ast-button-wrap .menu-toggle,
.ast-mobile-menu-trigger-minimal {
  color: var(--lc-blue) !important;
  background: transparent !important;
}

/* ハンバーガー線 */
.menu-toggle .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon::before,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon::after,
.ast-mobile-svg,
.ast-mobile-svg svg {
  color: var(--lc-blue) !important;
  fill: var(--lc-blue) !important;
}

/* スマホ用ヘッダー */
@media (max-width: 544px) {
  .custom-logo-link img,
  .site-logo-img img,
  .ast-site-identity img {
    max-width: 230px !important;
  }

  .site-branding,
  .ast-site-identity,
  .site-logo-img {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}

/* =========================================================
   Luciace Event Card 基本
========================================================= */

.luciace-card {
  width: 100%;
  max-width: 390px;
  margin: 0 auto 28px;
  background: var(--lc-cream);
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 8px 24px rgba(0,0,0,.16);
  font-family: "Noto Sans JP", sans-serif;
}

.luciace-card,
.luciace-card * {
  box-sizing: border-box;
}

/* Elementor余白リセット */
.luciace-card .elementor-widget,
.luciace-card .elementor-widget-container,
.luciace-card p,
.luciace-card h1,
.luciace-card h2,
.luciace-card h3,
.luciace-card h4,
.luciace-card h5,
.luciace-card h6 {
  margin: 0 !important;
  padding: 0 !important;
}

/* =========================================================
   カード上部ヘッダー
========================================================= */

.luciace-card .lc-header {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  gap: 0 !important;
  overflow: hidden !important;
  border-radius: 14px 14px 0 0 !important;
}

.luciace-card .lc-area,
.luciace-card .lc-shop {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 5px 8px !important;
  color: #fff !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  text-align: center !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  overflow: hidden !important;
  text-shadow: 0 1px 1px rgba(0,0,0,.12) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25) !important;
}

.luciace-card .lc-area {
  width: 30% !important;
  flex: 0 0 30% !important;
  font-size: 15px !important;
  background: linear-gradient(135deg, #6ACEE1 0%, #4EBFD2 55%, #32AFC3 100%) !important;
  border-right: 1px solid rgba(255,255,255,.25) !important;
}

.luciace-card .lc-shop {
  width: 70% !important;
  flex: 0 0 70% !important;
  font-size: 12.5px !important;
  letter-spacing: -0.04em !important;
  background: linear-gradient(135deg, #FF9A91 0%, #FF847C 55%, #F06F68 100%) !important;
}

/* ヘッダー内の改行防止 */
.luciace-card .lc-area *,
.luciace-card .lc-shop * {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  line-height: 1.15 !important;
}

.luciace-card .lc-area br,
.luciace-card .lc-shop br {
  display: none !important;
}

/* ヘッダーアイコン */
.luciace-card .lc-area i,
.luciace-card .lc-shop i,
.luciace-card .lc-area svg,
.luciace-card .lc-shop svg {
  color: #fff !important;
  fill: #fff !important;
  margin-right: 5px !important;
  flex-shrink: 0 !important;
}

/* =========================================================
   日付・時間
========================================================= */

.luciace-card .lc-date-wrap {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: center !important;
  gap: 0 !important;
  padding: 12px 0 !important;
  background: var(--lc-date-bg) !important;
}

.luciace-card .lc-date,
.luciace-card .lc-time {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  color: var(--lc-text) !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.luciace-card .lc-date i,
.luciace-card .lc-time i,
.luciace-card .lc-date svg,
.luciace-card .lc-time svg {
  width: 18px !important;
  height: 18px !important;
  font-size: 18px !important;
  color: var(--lc-text) !important;
  fill: var(--lc-text) !important;
  flex-shrink: 0 !important;
}

/* Elementor内部のズレ対策 */
.luciace-card .lc-date .elementor-widget-container,
.luciace-card .lc-time .elementor-widget-container,
.luciace-card .lc-date .elementor-icon-box-wrapper,
.luciace-card .lc-time .elementor-icon-box-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  white-space: nowrap !important;
}

/* =========================================================
   募集状況・タイトル
========================================================= */

.luciace-card .lc-event-title,
.luciace-card .lc-title,
.luciace-card .lc-status {
  background: #fff;
  color: var(--lc-pink-text) !important;
  text-align: center;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.45;
  padding: 12px 18px !important;
  letter-spacing: .02em;
}

/* =========================================================
   画像
========================================================= */

.luciace-card .lc-image,
.luciace-card .lc-image .elementor-widget-container,
.luciace-card .lc-image figure,
.luciace-card .lc-image picture {
  width: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 0 !important;
}

.luciace-card .lc-image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 640 / 250 !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.luciace-card .lc-image::before,
.luciace-card .lc-image::after {
  display: none !important;
  content: none !important;
}

/* =========================================================
   説明文
========================================================= */

.luciace-card .lc-description {
  background: var(--lc-cream);
  color: #333;
  font-size: 12.8px !important;
  line-height: 1.75 !important;
  text-align: left !important;
  padding: 10px 12px !important;
}

.luciace-card .lc-description p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 12.8px !important;
  line-height: 1.75 !important;
}

/* =========================================================
   男女カード全体
========================================================= */

.luciace-card .lc-price-wrap {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  padding: 0 12px 13px !important;
  background: var(--lc-cream);
}

.luciace-card .lc-male-card,
.luciace-card .lc-female-card {
  background: #fff !important;
  border-radius: 12px !important;
  padding: 8px 8px 10px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  min-width: 0 !important;
  box-shadow: none !important;
}

.luciace-card .lc-male-card {
  border: 1.5px solid var(--lc-blue) !important;
}

.luciace-card .lc-female-card {
  border: 1.5px solid var(--lc-pink) !important;
}

/* 男女カード内の余計な枠・背景を消す */
.luciace-card .lc-male-card > .elementor-element,
.luciace-card .lc-female-card > .elementor-element,
.luciace-card .lc-male-card .elementor-widget-container,
.luciace-card .lc-female-card .elementor-widget-container {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: 100% !important;
}

/* =========================================================
   男性・女性タイトル
========================================================= */

.luciace-card .lc-gender-title {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 0 7px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  border-bottom-width: 1.5px !important;
  border-bottom-style: dashed !important;
}

.luciace-card .lc-male-card .lc-gender-title {
  color: var(--lc-blue-text) !important;
  border-bottom-color: var(--lc-blue) !important;
}

.luciace-card .lc-female-card .lc-gender-title {
  color: var(--lc-pink-text) !important;
  border-bottom-color: var(--lc-pink) !important;
}

.luciace-card .lc-gender-title .elementor-widget-container,
.luciace-card .lc-gender-title .elementor-heading-title,
.luciace-card .lc-gender-title p,
.luciace-card .lc-gender-title span {
  margin: 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.2 !important;
  text-align: center !important;
}

.luciace-card .lc-gender-title i,
.luciace-card .lc-gender-title svg {
  margin-right: 5px !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

/* =========================================================
   参加年齢
========================================================= */

.luciace-card .lc-info-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: center !important;
  gap: 0 !important;
  width: 100% !important;
  padding: 6px 0 8px !important;
  border-bottom-width: 1.5px !important;
  border-bottom-style: dashed !important;
}

.luciace-card .lc-male-card .lc-info-row {
  border-bottom-color: var(--lc-blue) !important;
}

.luciace-card .lc-female-card .lc-info-row {
  border-bottom-color: var(--lc-pink) !important;
}

.luciace-card .lc-label,
.luciace-card .lc-value,
.luciace-card .lc-price {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

.luciace-card .lc-label {
  width: 100% !important;
  text-align: center !important;
  justify-self: center !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

.luciace-card .lc-value,
.luciace-card .lc-price {
  width: 100% !important;
  color: var(--lc-text) !important;
  text-align: center !important;
  justify-self: center !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

.luciace-card .lc-male-card .lc-label {
  color: var(--lc-blue-text) !important;
}

.luciace-card .lc-female-card .lc-label {
  color: var(--lc-pink-text) !important;
}

/* =========================================================
   参加費・オプション
   推奨構造：
   料金コンテナ：lc-price-row
     ├ 料金見出し：lc-label
     ├ 料金：lc-price
     └ 料金オプション：lc-option
========================================================= */

.luciace-card .lc-price-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  width: 100% !important;
  gap: 3px 0 !important;
  padding: 6px 0 8px !important;
  border-bottom-width: 1.5px !important;
  border-bottom-style: dashed !important;
}

.luciace-card .lc-male-card .lc-price-row {
  border-bottom-color: var(--lc-blue) !important;
}

.luciace-card .lc-female-card .lc-price-row {
  border-bottom-color: var(--lc-pink) !important;
}

/* 左50%：参加費 */
.luciace-card .lc-price-row > .lc-label,
.luciace-card .lc-price-row > .elementor-element.lc-label {
  grid-column: 1 / 2 !important;
  grid-row: 1 / 2 !important;
  width: 100% !important;
  text-align: center !important;
  justify-self: center !important;
  align-self: center !important;
}

/* 右50%：金額 */
.luciace-card .lc-price-row > .lc-price,
.luciace-card .lc-price-row > .elementor-element.lc-price {
  grid-column: 2 / 3 !important;
  grid-row: 1 / 2 !important;
  width: 100% !important;
  text-align: center !important;
  justify-self: center !important;
  align-self: center !important;
  color: var(--lc-text) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

/* 2行目：オプション */
.luciace-card .lc-price-row > .lc-option,
.luciace-card .lc-price-row > .elementor-element.lc-option {
  grid-column: 1 / 3 !important;
  grid-row: 2 / 3 !important;
  width: 100% !important;
  text-align: center !important;
  justify-self: center !important;
  font-size: 10.5px !important;
  font-weight: 800 !important;
  color: #555 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}

/* Elementor内側の余白を消す */
.luciace-card .lc-price-row > .elementor-element,
.luciace-card .lc-price-row > .elementor-element > .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}

/* オプションが空なら非表示 */
.luciace-card .lc-option:empty,
.luciace-card .lc-option p:empty {
  display: none !important;
}

/* =========================================================
   空席ありボタン
========================================================= */

.luciace-card .lc-seat,
.luciace-card .lc-seat a {
  width: 100% !important;
  min-height: 30px !important;
  padding: 7px 8px !important;
  border-radius: 7px !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.luciace-card .lc-male-card .lc-seat,
.luciace-card .lc-male-card .lc-seat a {
  background: var(--lc-blue) !important;
}

.luciace-card .lc-female-card .lc-seat,
.luciace-card .lc-female-card .lc-seat a {
  background: var(--lc-pink) !important;
}

/* =========================================================
   詳細を見るボタン
========================================================= */

.luciace-card .lc-button {
  width: calc(100% - 130px) !important;
  max-width: 230px !important;
  min-height: 36px !important;
  margin: 0 auto 16px !important;
  padding: 0 !important;
  background: linear-gradient(135deg, #C49A5A 0%, #A97835 50%, #7A4E22 100%) !important;
  border-radius: 8px !important;
  box-shadow: 0 3px 8px rgba(90,55,20,.22) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.luciace-card .lc-button a,
.luciace-card .lc-button .jet-listing-dynamic-link__link,
.luciace-card .lc-button .elementor-button {
  width: 100% !important;
  height: 100% !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 8px 18px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  color: #fff !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

.luciace-card .lc-button .jet-listing-dynamic-link__label,
.luciace-card .lc-button .elementor-button-text {
  color: #fff !important;
  text-align: center !important;
  white-space: nowrap !important;
  line-height: 1.2 !important;
}

/* 不要アイコン削除 */
.luciace-card .lc-button .jet-listing-dynamic-link__icon,
.luciace-card .lc-button .jet-listing-dynamic-link__icon-wrap,
.luciace-card .lc-button .elementor-button-icon,
.luciace-card .lc-button i,
.luciace-card .lc-button svg {
  display: none !important;
}

/* ホバー時 */
.luciace-card .lc-button:hover,
.luciace-card .lc-button a:hover,
.luciace-card .lc-button .elementor-button:hover {
  background: linear-gradient(135deg, #D0A766 0%, #B1833E 50%, #835527 100%) !important;
}

/* =========================================================
   スマホ調整
========================================================= */

@media (max-width: 480px) {
  .luciace-card {
    max-width: 100%;
    border-radius: 14px;
  }

  .luciace-card .lc-area,
  .luciace-card .lc-shop {
    min-height: 40px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  .luciace-card .lc-area {
    font-size: 14px !important;
  }

  .luciace-card .lc-shop {
    font-size: 11.5px !important;
    letter-spacing: -0.06em !important;
  }

  .luciace-card .lc-date-wrap {
    padding: 11px 0 !important;
  }

  .luciace-card .lc-date,
  .luciace-card .lc-time {
    font-size: 16px !important;
    gap: 6px !important;
  }

  .luciace-card .lc-date i,
  .luciace-card .lc-time i,
  .luciace-card .lc-date svg,
  .luciace-card .lc-time svg {
    width: 18px !important;
    height: 18px !important;
    font-size: 18px !important;
  }

  .luciace-card .lc-event-title,
  .luciace-card .lc-title,
  .luciace-card .lc-status {
    font-size: 16px !important;
    padding: 11px 16px !important;
  }

  .luciace-card .lc-description {
    padding: 10px 12px !important;
    font-size: 12.5px !important;
    line-height: 1.7 !important;
  }

  .luciace-card .lc-description p {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
  }

  .luciace-card .lc-price-wrap {
    gap: 8px !important;
    padding: 0 11px 12px !important;
  }

  .luciace-card .lc-male-card,
  .luciace-card .lc-female-card {
    padding: 8px 7px 9px !important;
    gap: 7px !important;
  }

  .luciace-card .lc-gender-title {
    font-size: 17px !important;
    padding-bottom: 7px !important;
  }

  .luciace-card .lc-label {
    font-size: 10.5px !important;
  }

  .luciace-card .lc-value,
  .luciace-card .lc-price,
  .luciace-card .lc-price-row > .lc-price,
  .luciace-card .lc-price-row > .elementor-element.lc-price {
    font-size: 13.5px !important;
  }

  .luciace-card .lc-option,
  .luciace-card .lc-price-row > .lc-option,
  .luciace-card .lc-price-row > .elementor-element.lc-option {
    font-size: 10px !important;
  }

  .luciace-card .lc-seat,
  .luciace-card .lc-seat a {
    min-height: 29px !important;
    font-size: 15px !important;
  }

  .luciace-card .lc-button {
    width: calc(100% - 140px) !important;
    max-width: 220px !important;
    min-height: 35px !important;
    margin-bottom: 14px !important;
  }

  .luciace-card .lc-button a,
  .luciace-card .lc-button .jet-listing-dynamic-link__link,
  .luciace-card .lc-button .elementor-button {
    min-height: 35px !important;
    padding: 7px 16px !important;
    font-size: 14.5px !important;
  }
}

/* かなり狭いスマホ */
@media (max-width: 360px) {
  .luciace-card .lc-shop {
    font-size: 10.5px !important;
    letter-spacing: -0.08em !important;
  }

  .luciace-card .lc-price-wrap {
    gap: 7px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
  }

  .luciace-card .lc-male-card,
  .luciace-card .lc-female-card {
    padding-left: 7px !important;
    padding-right: 7px !important;
  }

  .luciace-card .lc-label {
    font-size: 10px !important;
  }

  .luciace-card .lc-value,
  .luciace-card .lc-price,
  .luciace-card .lc-price-row > .lc-price,
  .luciace-card .lc-price-row > .elementor-element.lc-price {
    font-size: 12.5px !important;
  }

  .luciace-card .lc-option,
  .luciace-card .lc-price-row > .lc-option,
  .luciace-card .lc-price-row > .elementor-element.lc-option {
    font-size: 9.5px !important;
  }
}

/* =========================
   Astraヘッダー ロゴを大きく表示
   ハンバーガー色も調整
========================= */

/* ヘッダーの高さを少し確保 */
.site-header,
.ast-primary-header-bar,
.main-header-bar {
  background: #FFFDF8 !important;
  min-height: 86px !important;
  border-bottom: 1px solid #D6B26E !important;
}

/* ロゴ周りの余白 */
.site-branding,
.ast-site-identity,
.site-logo-img {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

/* ロゴ画像を大きく */
.custom-logo-link img,
.site-logo-img img,
.ast-site-identity img {
  max-width: 360px !important;
  width: 360px !important;
  height: auto !important;
  display: block !important;
}

/* ハンバーガーメニューを茶色寄りに変更 */
.menu-toggle,
.ast-button-wrap .menu-toggle,
.ast-mobile-menu-trigger-minimal {
  color: #7A4E22 !important;
  background: transparent !important;
}

/* ハンバーガーの線 */
.menu-toggle .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon::before,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon::after,
.ast-mobile-svg,
.ast-mobile-svg svg {
  color: #7A4E22 !important;
  fill: #7A4E22 !important;
}

/* スマホ */
@media (max-width: 544px) {
  .site-header,
  .ast-primary-header-bar,
  .main-header-bar {
    min-height: 78px !important;
  }

  .custom-logo-link img,
  .site-logo-img img,
  .ast-site-identity img {
    max-width: 285px !important;
    width: 285px !important;
  }
}

/* かなり狭いスマホ */
@media (max-width: 380px) {
  .custom-logo-link img,
  .site-logo-img img,
  .ast-site-identity img {
    max-width: 260px !important;
    width: 260px !important;
  }
}


/* =========================
   Astra PCメニュー文字色
========================= */

/* PCメニュー通常時 */
.main-header-menu .menu-link,
.ast-builder-menu-1 .menu-item > .menu-link {
  color: #5F3718 !important;
  font-weight: 700 !important;
}

/* PCメニューホバー時 */
.main-header-menu .menu-link:hover,
.ast-builder-menu-1 .menu-item:hover > .menu-link {
  color: #A97835 !important;
}

/* 現在のページ */
.main-header-menu .current-menu-item > .menu-link,
.ast-builder-menu-1 .current-menu-item > .menu-link {
  color: #A97835 !important;
}

