/*
Theme Name: Astra Child - Nidra
Template: astra
Version: 1.0
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500&family=Cormorant+Garamond:wght@300;400&display=swap');

:root {
  --nidra-black:  #333333;
  --nidra-green:  #5a7a52;
  --nidra-gold:   #c8a96e;
  --nidra-bg:     #ffffff;
  --nidra-bg-sub: #f0ece0;
  --nidra-muted:  #7a7a6a;
  --nidra-border: #ddd8cc;
}

/* ── リセット ── */
html, body {
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif !important;
  color: #333333 !important;
  background: #ffffff !important;
  line-height: 1.9 !important;
  font-size: 15px !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Noto Serif JP', 'Yu Mincho', serif !important;
  font-weight: 400 !important;
  color: #333333 !important;
}

a { color: #5a7a52 !important; text-decoration: none !important; }
a:hover { opacity: 0.7 !important; }
p { color: #333333 !important; line-height: 1.9 !important; }

/* ── コンテナ余白削除 ── */
#page, #content, #primary,
.site-content, .entry-content,
.ast-article-single,
.post-type-page .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.entry-header, .ast-page-title-area { display: none !important; }

/* ── Astraヘッダー・フッター非表示 ── */
#masthead { display: none !important; }
#colophon, .site-footer, footer#colophon { display: none !important; }

/* ── ヒーロー ── */
.nidra-hero-scroll {
  font-size: 16px !important;
  letter-spacing: 0.25em !important;
}

/* ── ニュース ── */
.news-list-item {
  display: flex !important;
  gap: 16px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #ddd8cc !important;
  font-size: 13px !important;
}
.news-date { color: #7a7a6a !important; min-width: 80px !important; font-size: 12px !important; }
.news-tag-onomichi { background: #333333 !important; color: #f0ece0 !important; font-size: 10px !important; padding: 2px 8px !important; }
.news-tag-kurashiki { background: #5a7a52 !important; color: #eef4ec !important; font-size: 10px !important; padding: 2px 8px !important; }
.news-tag-common { background: #c8a96e !important; color: #ffffff !important; font-size: 10px !important; padding: 2px 8px !important; }

/* ── ヘッダーバー（スクロール追従なし） ── */
#nidra-header-bar {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  z-index: 99999 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  padding: 20px 80px 20px 40px !important;
  box-sizing: border-box !important;
}
body.admin-bar #nidra-header-bar { top: 32px !important; }

#nidra-header-nav {
  display: flex !important;
  align-items: center !important;
  gap: 28px !important;
  margin-right: 48px !important;
}
#nidra-header-nav a {
  font-size: 11px !important;
  color: #ffffff !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap !important;
  border-bottom: none !important;
  opacity: 1 !important;
  text-decoration: none !important;
}
#nidra-header-nav a:hover { opacity: 0.7 !important; }

/* ── ハンバーガー：縦三本線・上端揃え・短→長 ── */
#nidra-hamburger {
  position: fixed !important;
  top: 48px !important;
  right: 56px !important;
  z-index: 99999 !important;
  cursor: pointer !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 4px !important;
  padding: 4px !important;
  background: transparent !important;
}
#nidra-hamburger span {
  display: block !important;
  width: 1.5px !important;
  background: #ffffff !important;
  margin: 0 !important;
  transition: background 0.3s !important;
}
#nidra-hamburger span:nth-child(1) { height: 12px !important; }
#nidra-hamburger span:nth-child(2) { height: 18px !important; }
#nidra-hamburger span:nth-child(3) { height: 24px !important; }

/* ── ドロワーメニュー ── */
#nidra-drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 99998;
}
#nidra-drawer-overlay.open { display: block; }
#nidra-drawer {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  max-width: 900px;
  height: 100vh;
  background: #ffffff;
  z-index: 999999;
  transition: right 0.4s ease;
  overflow-y: auto;
}
#nidra-drawer.open { right: 0; }
#nidra-drawer-close {
  position: absolute;
  top: 28px;
  right: 40px;
  font-size: 20px;
  cursor: pointer;
  background: none;
  border: none;
  color: #333333 !important;
  padding: 8px;
  line-height: 1;
  z-index: 10;
}
.nidra-drawer-inner {
  display: grid !important;
  grid-template-columns: 200px 200px 240px !important;
  gap: 0 40px !important;
  padding: 80px 60px 60px !important;
  min-height: 100vh !important;
  align-items: start !important;
}
.nidra-drawer-main { grid-column: 1; grid-row: 1; padding-top: 0; }
.nidra-drawer-main-link {
  display: block !important;
  font-family: 'Noto Serif JP', serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: #333333 !important;
  letter-spacing: 0.08em !important;
  padding: 10px 0 !important;
  border-bottom: none !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  opacity: 1 !important;
}
.nidra-drawer-main-link:hover { opacity: 0.5 !important; }
.nidra-drawer-sub { grid-column: 2; grid-row: 1; padding-top: 0; }
.nidra-drawer-sub a {
  display: block !important;
  font-family: 'Noto Serif JP', serif !important;
  font-size: 13px !important;
  color: #333333 !important;
  letter-spacing: 0.1em !important;
  padding: 10px 0 !important;
  border-bottom: none !important;
  text-decoration: none !important;
  opacity: 1 !important;
}
.nidra-drawer-sub a:hover { opacity: 0.5 !important; }
.nidra-drawer-rsv { grid-column: 3; grid-row: 1; padding-top: 0; }
.nidra-drawer-rsv-label {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 16px !important;
  letter-spacing: 0.25em !important;
  color: #9a9080 !important;
  margin-bottom: 24px !important;
}
.nidra-drawer-rsv-link {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  font-family: 'Noto Serif JP', serif !important;
  font-size: 14px !important;
  color: #333333 !important;
  letter-spacing: 0.1em !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid #ddd8cc !important;
  text-decoration: none !important;
  opacity: 1 !important;
}
.nidra-drawer-rsv-link:hover { opacity: 0.6 !important; }
.nidra-drawer-rsv-link span { font-size: 18px !important; color: #333333 !important; }
.nidra-drawer-rsv-soon { color: #9a9080 !important; }
.nidra-drawer-rsv-soon span { color: #9a9080 !important; }

/* ── 各セクション英語ラベル ── */
.nidra-concept-sp-en,
.nidra-split-en,
.nidra-news-en,
.nidra-access-en,
.nidra-rsv-en,
.nidra-section-en {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em !important;
  color: #9a9080 !important;
}

/* ── 各セクション英語ラベル色（背景色別） ── */
#onomichi-section .nidra-split-en { color: #c8b8a0 !important; }
#kurashiki-section .nidra-split-en { color: #c8d8c0 !important; }

/* ── フローティングボタン ── */
.nidra-float {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1px;
  width: 64px;
}
.nidra-float-toggle {
  background: rgba(30,30,30,0.82);
  color: #ffffff;
  padding: 28px 0;
  font-size: 11px;
  letter-spacing: 0.25em;
  cursor: pointer;
  width: 100%;
  transition: background 0.2s;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  line-height: 1;
  gap: 10px;
}
.nidra-float-toggle:hover { background: rgba(120,120,120,0.95); }
.nidra-float-en {
  font-size: 9px !important;
  letter-spacing: 0.15em;
  color: #ffffff;
  writing-mode: vertical-rl;
  display: block;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.3);
}
.nidra-float-menu { display: none; flex-direction: column; gap: 1px; }
.nidra-float-menu.open { display: flex; }
.nidra-float-menu a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px 0 !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  width: 100% !important;
  border: none !important;
  transition: background 0.2s !important;
  writing-mode: vertical-rl !important;
  line-height: 1 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  opacity: 1 !important;
}
.nidra-float-menu a:hover { opacity: 1 !important; }
.nidra-float-onomichi { background: rgba(30,30,30,0.82) !important; }
.nidra-float-onomichi:hover { background: rgba(120,120,120,0.95) !important; }
.nidra-float-kurashiki { background: rgba(90,122,82,0.85) !important; }
.nidra-float-kurashiki:hover { background: rgba(138,170,130,0.95) !important; }
.nidra-float *, .nidra-float a, .nidra-float a:link,
.nidra-float a:visited, .nidra-float a:hover, .nidra-float span {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* ── reCAPTCHAバッジ非表示 ── */
.grecaptcha-badge { visibility: hidden !important; opacity: 0 !important; }

/* ── レスポンシブ ── */
@media (max-width: 768px) {
  #nidra-header-bar { padding: 16px 20px !important; }
  #nidra-header-nav { gap: 12px !important; margin-right: 40px !important; }
  #nidra-header-nav a { font-size: 9px !important; }
  #nidra-hamburger { top: 20px !important; right: 20px !important; }
  .nidra-drawer-inner { grid-template-columns: 1fr !important; padding: 70px 32px 40px !important; gap: 32px !important; }
  .nidra-drawer-main { grid-column: 1 !important; grid-row: 1 !important; }
  .nidra-drawer-sub  { grid-column: 1 !important; grid-row: 2 !important; }
  .nidra-drawer-rsv  { grid-column: 1 !important; grid-row: 3 !important; }
  .nidra-drawer-main-link { font-size: 22px !important; white-space: normal !important; }
  .nidra-float { top: auto !important; bottom: 80px !important; transform: none !important; width: 52px !important; }
}

/* ── 固定ページのコンテンツ上部余白を削除 ── */
.page .entry-content > *:first-child,
.post-type-page .entry-content > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.page .entry-content,
.post-type-page .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.ast-article-single {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* ── ページ上部余白を強制削除 ── */
.site-content,
.content-area,
.ast-container,
#primary,
#content,
.entry-content,
.ast-article-single,
.ast-page-builder-template,
main#main {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

#page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.page {
  padding-top: 0 !important;
}

/* ── Astraヘッダー分の余白を強制削除 ── */
body,
body.ast-header-break-point,
.ast-header-break-point #page,
.ast-header-break-point .site-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.ast-below-header-section,
.ast-masthead-custom-menu-items,
.main-header-bar-wrap {
  display: none !important;
}

#masthead,
.site-header,
.ast-primary-header-bar {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
}

/* ── ページ右端余白を削除 ── */
body {
  overflow-x: hidden !important;
}

/* ── ホームページ以外はヘッダーナビを非表示 ── */
body:not(.home) #nidra-header-nav {
  display: none !important;
}

/* ── アイキャッチ画像を非表示（ホーム以外） ── */
body:not(.home) .post-thumbnail,
body:not(.home) .wp-post-image,
body:not(.home) .ast-post-thumbnail-wrap {
  display: none !important;
}

/* ── 右端余白を削除 ── */
html {
  overflow-x: hidden !important;
}
.wp-site-blocks,
.entry-content > * {
  padding-right: 0 !important;
  margin-right: 0 !important;
}
.entry-content > section[style*="100vw"] {
  max-width: 100vw !important;
  width: 100vw !important;
}

/* ── 右余白・スクロールバー幅を解消 ── */
html, body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

/* ── ヒーロー下の余白を削除 ── */
.entry-content > .wp-block-html:first-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.wp-block-html + .wp-block-html {
  margin-top: 0 !important;
}

/* ── スクロールバー幅による右余白を解消 ── */
html {
  overflow-x: hidden !important;
}

.entry-content > .nidra-hero {
  max-width: 100vw !important;
  width: 100vw !important;
}

/* ── 予約CTAセクション（暗背景）── */
.nidra-rsv-section .nidra-rsv-title {
  font-family: 'Noto Serif JP', serif !important;
  color: #f0ece0 !important;
}
.nidra-rsv-section .nidra-rsv-en {
  color: #9a9080 !important;
}
.nidra-rsv-btn {
  display: inline-block !important;
  background: #f0ece0 !important;
  color: #333333 !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  padding: 16px 48px !important;
  font-family: sans-serif !important;
  text-decoration: none !important;
  opacity: 1 !important;
}
.nidra-rsv-btn:hover {
  background: #ffffff !important;
  opacity: 1 !important;
}

/* ── Astra ast-containerのpadding削除 ── */
.ast-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
}

/* ── 全親要素をフル幅に ── */
#page,
.hfeed,
.site-content,
#content,
#primary,
main#main,
.ast-article-single,
.entry-content {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}


/* ── Dog First グリッド ── */
#dogfirst-section {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  width: 100% !important;
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.dogfirst-img-wrap {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  min-height: 400px !important;
}
.dogfirst-text {
  background: #f0ece0 !important;
  padding: clamp(40px, 6vw, 80px) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

/* ── カスタムHTMLブロックのラッパーを全幅に ── */
.wp-block-html {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  max-width: 100vw !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* ── お知らせタグ幅を統一 ── */
.nidra-news-tag {
  display: inline-block !important;
  width: 52px !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}