@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================================
   全ページ共通スタイル（ヘッダー・フッター・ボタンなど）
   ========================================================================== */

:root {
  --color-bg:        #FBF6F0;
  --color-bg-alt:    #F4ECE2;
  --color-text:      #3A2D1F;
  --color-text-sub:  #6E5A45;
  --color-accent:    #A07246;
  --color-accent-dk: #6E4A28;
  --color-brand:     #776553;
  --color-line:      #D7C7B3;
  --font-jp-serif:   "Shippori Mincho", "游明朝", "YuMincho", serif;
  --font-jp-sans:    "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  --font-en-serif:   "Playfair Display", serif;
  --font-en-sans:    "Inter", sans-serif;
  --max-w: 1280px;
  /* ヘッダーSNSアイコンサイズ（任意調整可） */
  --header-instagram-size: 34px;
  --header-line-size: 34px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity .2s; }
a:hover { opacity: .7; }

/* --- 共通ボタン --- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 36px;
  font-size: 16px;
  letter-spacing: 0.08em;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all .25s;
  white-space: nowrap;
}
.btn--primary { background: var(--color-accent); color: #fff; }
.btn--primary:hover { background: var(--color-accent-dk); opacity: 1; }
.btn--outline { background: #fff; color: var(--color-accent-dk); border-color: var(--color-accent); }
.btn--outline:hover { background: var(--color-accent); color: #fff; opacity: 1; }
.btn--ghost {
  position: relative;
  justify-content: flex-start;
  padding: 12px 56px 12px 28px;
  min-width: 200px;
  background: var(--color-brand, #776553);
  color: #fff;
  border: none;
  font-size: 16px;
  letter-spacing: 0.06em;
  transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}
.btn--ghost::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 34px;
  height: 34px;
  margin-top: -17px;
  background: #fff;
  border-radius: 50%;
}
.btn--ghost::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 21px;
  z-index: 1;
  width: 8px;
  height: 8px;
  margin-top: -5px;
  border-top: 2px solid var(--color-brand, #776553);
  border-right: 2px solid var(--color-brand, #776553);
  transform: rotate(45deg);
}
.btn--ghost:hover {
  background: #645446;
  color: #fff;
  opacity: 1;
}
@media (min-width: 901px) {
  .btn--ghost:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(58, 45, 31, 0.22);
  }
}

/* --- 共通ユーティリティ：PCのみ改行・スマホでは改行しない <br> ---
   （.page-with-dogs 配下は既存の専用ルール(980px切替)が優先されるため無変更） */
.u-br-pc { display: block; }
@media (max-width: 600px) {
  .u-br-pc { display: none; }
}

/* ==========================================================================
   サイトヘッダー
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgb(251 246 240 / 84%);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(160, 114, 70, 0.15);
}
.site-header__inner {
  width: 100%;
  padding: 18px 0 18px 32px;
  display: flex;
  align-items: center;
  gap: 36px;
}
.site-header__logo {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  line-height: 0;
}
.site-header__logo-img {
  display: block;
  width: auto;
  height: 80px;
}
.site-header__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}
.site-header__utility {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  margin-left: auto;
  padding-right: 0;
}
.site-header__sns {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-right: 4px;
}
.site-header__sns-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  flex-shrink: 0;
}
.site-header__sns-link:hover { opacity: .75; }
.site-header__sns-icon {
  display: block;
  object-fit: contain;
}
.site-header__sns-icon--instagram {
  width: var(--header-instagram-size);
  height: var(--header-instagram-size);
  object-fit: contain;
}
.site-header__sns-icon--line {
  width: var(--header-line-size);
  height: var(--header-line-size);
  flex-shrink: 0;
}
.site-header__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.2;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: opacity .2s, background .2s, color .2s;
}
.site-header__btn:hover { opacity: .85; }
.site-header__btn-icon {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  flex-shrink: 0;
}
.site-header__btn-icon img {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}
.site-header__btn--contact {
  background: #fff;
  color: var(--color-brand);
  border-color: var(--color-brand);
}
.site-header__btn--contact:hover {
  opacity: 1;
  background: var(--color-bg-alt);
}
.site-header__btn--reserve {
  background: var(--color-brand);
  color: #fff;
  border-color: var(--color-brand);
}
.site-header__btn--reserve:hover {
  opacity: 1;
  background: #665647;
  border-color: #665647;
}
.site-header__lower {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.site-header__nav {
  flex: 1;
  min-width: 0;
}
.site-header__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  /* PCでは折り返さず1行のまま、フォントサイズで横幅を吸収する（下の clamp 参照） */
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px clamp(14px, 1.6vw, 28px);
}
.site-header__nav a {
  font-family: var(--font-jp-serif);
  /* 画面幅に応じて縮小。折り返しの代わりにフォントを詰めてバランス調整（最小16px） */
  font-size: clamp(16px, 1.05vw, 17px);
  color: var(--color-text);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.site-header__nav a:hover { color: var(--color-accent-dk); opacity: 1; }
.site-header__tel {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  padding-right: 0;
  font-family: var(--font-jp-serif);
  font-size: 24px;
  font-weight: 500;
  color: var(--color-brand);
  letter-spacing: 0.04em;
  line-height: 1;
}
.site-header__tel:hover { opacity: .75; }
.site-header__tel-icon {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}
.site-header__tel-icon img {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
}
/* スマホ用バー＋ハンバーガー（PCでは非表示） */
.site-header__mobile { display: none; }
.site-header__toggle {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
  width: 40px; height: 40px; padding: 8px; border: 0; background: none; cursor: pointer; flex-shrink: 0;
}
.site-header__toggle-bar { display: block; width: 24px; height: 2px; background: var(--color-brand); transition: transform .25s, opacity .25s; }
.site-header__m-tel { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-jp-serif); font-weight: 500; font-size: 16px; color: var(--color-brand); white-space: nowrap; }
.site-header__m-tel img { display: block; width: 18px; height: 18px; object-fit: contain; }
.site-header__m-sns { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.site-header__m-sns img { display: block; width: 28px; height: 28px; object-fit: contain; }

/* ==========================================================================
   お問合せ（全ページ共通・site-footer.php 先頭で出力）
   ========================================================================== */
.section--contact {
  background: var(--color-bg);
  padding-top: 120px;
  padding-bottom: 0;
}
/* home.css / home_top.css の `.section { padding:120px 0 }` が後勝ちで下余白を復活させるため、
   詳細度を上げて contact 直下（tel-band 下）に余白が出ないようにする */
.section.section--contact { padding-bottom: 0; }
.section--contact .section__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.section--contact .heading {
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  line-height: 1.3;
  align-items: center;
  text-align: center;
}
.section--contact .heading__jp--xl {
  font-family: var(--font-jp-serif);
  font-size: 38px;
  font-weight: 500;
  color: var(--color-text);
}
.section--contact .heading__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 15px;
  letter-spacing: 0.18em;
  color: var(--color-accent);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
}
.section--contact .heading__en::before {
  content: "";
  display: block;
  width: 200px;
  height: 1px;
  background: var(--color-line);
}
.contact__links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: min(100%, 520px);
  margin-top: 0;
}
.contact__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 8px 24px;
  color: var(--color-text);
  transition: opacity .2s;
}
.contact__link + .contact__link { border-left: 1px solid var(--color-line); }
.contact__link:hover { opacity: 0.5; }
.contact__icon { color: var(--color-accent-dk); line-height: 0; }
.contact__icon img {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.contact__link-label {
  font-family: var(--font-jp-serif);
  font-size: 18px;
  letter-spacing: 0.06em;
}
.contact__tel-band {
  margin-top: 64px;
  background: var(--color-bg-alt);
  padding: 15px 20px;
  text-align: center;
}
.contact__tel-num {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-jp-serif);
  font-size: 35px;
  font-weight: 500;
  color: var(--color-brand, #776553);
  letter-spacing: 0.04em;
}
.contact__tel-icon {
  margin-right: 10px;
  line-height: 0;
  display: inline-flex;
  flex-shrink: 0;
}
.contact__tel-icon img {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
}
@media (max-width: 900px) {
  .section--contact { padding-top: 72px; }
  .section--contact .heading__jp--xl { font-size: 28px; }
  .contact__tel-num { font-size: 35px; }
}
@media (max-width: 600px) {
  .section--contact .heading__en::before { width: 160px; }
  .contact__link { padding: 8px 28px; }
}

/* ==========================================================================
   共通フッター（全ページ・site-footer.php 末尾で出力）
   ========================================================================== */
.home-footer {
  border-top: 1px solid var(--color-line);
  padding: 56px 0 0;
}
.home-footer__inner {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 32px 40px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 30px;
  align-items: stretch;
}
.home-footer__divider {
  display: block;
  width: 1px;
  align-self: stretch;
  background: var(--color-accent-dk);
  min-height: 140px;
}
/* ブランド部: ロゴの横に会社情報（名称・住所・SNS）／SNSは情報の下 */
.home-footer__brand {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  flex-wrap: nowrap;   /* PCで会社情報がロゴ下に折り返さないよう常に横並び */
}
.home-footer__info { min-width: 0; }
.home-footer__logo-link { display: block; flex: 0 0 auto; }
.home-footer__logo-link:hover { opacity: .85; }
.home-footer__logo { width: 150px; height: auto; margin: 0; display: block; }
.home-footer__addr .access__pin {
  display: inline-block;
  vertical-align: middle;
  line-height: 0;
  margin-right: 6px;
}
.home-footer__addr .access__pin:hover { opacity: .75; }
.home-footer__name {
  font-family: var(--font-en-serif);
  font-size: 20px;
  line-height: 1.4;
  margin: 0 0 14px;
  color: var(--color-text);
  letter-spacing: 0.04em;
}
.home-footer__addr {
  font-size: 16px;
  line-height: 1.8;
  color: var(--color-text-sub);
  margin: 0 0 18px;
}
.home-footer__addr .access__pin img {
  width: var(--footer-pin-size, 16px);
  height: var(--footer-pin-size, 16px);
}
.home-footer__sns { display: flex; gap: 10px; flex-wrap: wrap; }
.home-footer__sns-btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border: 2px solid transparent;
  border-radius: 50px;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      135deg,
      #f58529 0%,
      #dd2a7b 45%,
      #8134af 100%
    ) border-box;
  background-clip: padding-box, border-box;
  -webkit-background-clip: padding-box, border-box;
  font-size: 16px;
  color: var(--color-text);
  line-height: 1.2;
}
.home-footer__sns-icon {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
  flex-shrink: 0;
}
.home-footer__sns-label {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.home-footer__sns-label-main {
  font-size: 17px;
}
.home-footer__sns-btn small { font-size: 13px; color: var(--color-text-sub); }
.home-footer__sns-btn--line {
  justify-content: center;
  min-width: 150px;
  color: var(--color-text);
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(#06c755, #06c755) border-box;
  background-clip: padding-box, border-box;
  -webkit-background-clip: padding-box, border-box;
}
.home-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding-top: 8px;
}
.home-footer__nav ul { list-style: none; margin: 0; padding: 0; }
.home-footer__nav li { margin: 0 0 14px; }
.home-footer__nav a {
  font-size: 16px;
  color: var(--color-text);
}
.home-footer__nav a:hover { color: var(--color-accent-dk); }
.home-footer__copy {
  margin: 0;
  padding: 22px 20px;
  text-align: center;
  font-size: 14px;
  color: var(--color-text-sub);
  background: var(--color-bg-alt);
}
.home-footer__copy p { margin: 0; }
.home-footer__legal { margin-bottom: 8px; }
.home-footer__legal a {
  color: var(--color-text-sub);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.home-footer__legal a:hover { color: var(--color-accent-dk); }
@media (min-width: 901px) {
  .home-footer__sns-btn--line { font-size: 18px; }
  .home-footer__sns-icon {
    width: 30px;
    height: 30px;
  }
}
@media (max-width: 900px) {
  .home-footer__inner { grid-template-columns: 1fr; gap: 28px; }
  .home-footer__divider { display: none; }
  .home-footer__nav { grid-template-columns: repeat(2, 1fr); order: 1; }
  /* スマホ：ブランド（ロゴ＋会社情報）を縦積みにして nav の下へ */
  .home-footer__brand { flex-direction: column; gap: 20px; order: 2; }
}
@media (max-width: 600px) {
  .home-footer__nav { grid-template-columns: 1fr; }
}

/* ==========================================================================
   レスポンシブ（ヘッダー）
   ========================================================================== */
@media (min-width: 901px) {
  .site-header__tel { margin-right: 15px; }
}

@media (max-width: 1100px) {
  .site-header__inner {
    flex-wrap: wrap;
    gap: 16px 24px;
  }
  .site-header__body { flex: 1 1 100%; order: 3; }
  .site-header__utility { flex-wrap: wrap; justify-content: flex-end; }
  .site-header__lower { flex-wrap: wrap; gap: 12px; }
  .site-header__nav ul { gap: 6px 18px; }
}

@media (max-width: 900px) {
  .site-header__inner { padding: 14px 0 14px 20px; }
  .site-header__logo-img { height: 56px; }
  .site-header__utility { gap: 10px; }
  .site-header__btn { padding: 8px 14px; font-size: 16px; }
  .site-header__tel { font-size: 20px; }
  .site-header__nav a { font-size: 16px; }
}

/* スマホ：ヘッダーをハンバーガーメニュー化（≤900） */
@media (max-width: 900px) {
  .site-header__inner { flex-wrap: wrap; align-items: center; gap: 0; padding: 12px 16px; }
  .site-header__logo { margin-right: auto; }
  .site-header__logo-img { height: 48px; }

  /* バー右側：電話番号・SNS・ハンバーガーを表示 */
  .site-header__mobile { display: flex; align-items: center; gap: 12px; }

  /* 本体をドロップダウンパネル化（既定は閉、is-openで開） */
  .site-header__body { display: none; flex: 1 1 100%; order: 3; gap: 0; }
  .site-header.is-open {
    background: rgb(251 246 240 / 91%);
  }
  .site-header.is-open .site-header__body {
    display: flex; flex-direction: column; gap: 20px;
    margin-top: 14px; padding: 20px 4px 8px; border-top: 1px solid rgba(160, 114, 70, 0.2);
  }
  /* ラッパーを透過し、孫要素を直接 順序付け：nav→sns→reserve→contact→tel */
  .site-header.is-open .site-header__utility,
  .site-header.is-open .site-header__lower { display: contents; }
  .site-header.is-open .site-header__nav { order: 1; }
  .site-header.is-open .site-header__sns { order: 2; justify-content: flex-start; margin: 0; }
  .site-header.is-open .site-header__btn--reserve { order: 3; }
  .site-header.is-open .site-header__btn--contact { order: 4; }
  .site-header.is-open .site-header__tel { order: 5; margin: 0; justify-content: flex-start; font-size: 22px; }

  /* パネル内：ナビ縦積み・ボタン全幅 */
  .site-header.is-open .site-header__nav { width: 100%; }
  .site-header.is-open .site-header__nav ul {
    flex-direction: column;
    gap: 0;
    align-items: stretch;
    width: 100%;
  }
  .site-header.is-open .site-header__nav li {
    width: 100%;
    border-bottom: 1px solid rgba(160, 114, 70, 0.12);
  }
  .site-header.is-open .site-header__nav a { display: block; padding: 14px 6px; font-size: 16px; }
  .site-header.is-open .site-header__btn { width: 100%; padding: 13px; font-size: 16px; }

  /* ハンバーガー → ×（is-open） */
  .site-header.is-open .site-header__toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .site-header.is-open .site-header__toggle-bar:nth-child(2) { opacity: 0; }
  .site-header.is-open .site-header__toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
@media (max-width: 600px) {
  .site-header__logo-img { height: 42px; }
  .site-header__mobile { gap: 9px; }
  .site-header__m-tel { font-size: 16px; }
  .site-header__m-tel img { width: 16px; height: 16px; }
  .site-header__m-sns img { width: 24px; height: 24px; }
}

@media (max-width: 600px) {
  .site-header__logo-img { height: 48px; }
  .site-header__sns { margin-right: 0; }
  .site-header__utility { justify-content: flex-end; }
  .site-header__lower { flex-direction: column; align-items: flex-start; }
  .site-header__tel { align-self: flex-end; }
  .site-header__nav ul { gap: 8px 14px; }
  .site-header__nav a { font-size: 16px; }
}

/* ヘッダー（PC） */
@media (min-width: 901px) {
  .site-header {
    --header-instagram-size: 35px;
    --header-line-size: 35px;
  }
  .site-header__inner {
    padding: 10px 0 10px 32px;
  }
  .site-header__body {
    gap: 5px;
  }
  .site-header__nav ul {
    gap: 45px;
  }
  .site-header__nav a {
    font-size: 17px;
  }
  .site-header__tel {
    font-size: 23px;
    font-weight: bold;
  }
  .site-header__tel-icon img {
    width: 20px;
    height: 20px;
  }
  .site-header__btn {
    font-size: 16px;
  }
  .site-header__btn-icon img {
    width: 27px;
    height: 27px;
  }
}

/* ==========================================================================
   「愛犬と過ごす」ページ（page-with-dogs.php）専用スタイル
   ※ Figma「ギャラクシー愛犬」より起こし。すべて .page-with-dogs 配下にスコープ
   ========================================================================== */
/* --wd-* 変数は周辺観光・客室ページの FAQ（wd-faq）でも共用するため
   .page-sightseeing / .page-room にも展開する（wd-* クラスは FAQ セクションのみで使用） */
.page-with-dogs,
.page-sightseeing,
.page-room {
  --wd-accent:   #9e6a43; /* 英字見出し・番号 */
  --wd-heading:  #3f3f3f; /* 和文大見出し */
  --wd-text:     #515150; /* 本文 */
  --wd-brown:    #72665b; /* バッジ・リンク文字 */
  --wd-plum:     #7c606b; /* サブラベル */
  --wd-tint:     #e8e0dc; /* プラム15%をクリーム地に重ねた淡色 */
  --wd-maxw:     1180px;
  --wd-sideblock-main-w: 980px; /* ギャラリー・FAQ 左コンテンツ幅（任意指定） */
  --wd-features-max-w: 1500px;  /* wd-features 最大幅（任意指定・最大1500px程度） */
  --wd-sidehead-w: 104px;       /* サイド見出し幅（ギャラリー・FAQ 共通） */
  --wd-sidehead-min-h: 220px;   /* サイド見出し高さ（ギャラリー・FAQ 共通） */
}
.page-with-dogs { color: var(--wd-text); }
:is(.page-with-dogs, .page-sightseeing) .wd-inner {
  max-width: var(--wd-maxw);
  margin: 0 auto;
  padding: 0 32px;
}
.page-with-dogs .wd-en { font-family: var(--font-en-serif); }
.page-with-dogs .wd-jp { font-family: var(--font-jp-serif); }

/* セクション共通 */
:is(.page-with-dogs, .page-sightseeing) .wd-section { padding: 110px 0; }
.page-with-dogs .wd-section--tint { background: var(--wd-tint); }

/* セクション見出し（中央・和文大＋英字小） */
.page-with-dogs .wd-secttl { text-align: center; margin: 0 0 18px; line-height: 1.2; }
.page-with-dogs .wd-secttl__jp {
  display: block;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(24px, 3.6vw, 37px);
  color: var(--wd-heading);
  letter-spacing: 0.04em;
}
.page-with-dogs .wd-secttl__en {
  display: block;
  font-family: var(--font-en-serif);
  font-weight: 500;
  font-size: 26px;
  color: var(--wd-accent);
  margin-top: 8px;
}
.page-with-dogs .wd-subhead {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 28px;
  color: var(--wd-text);
  margin: 0 0 20px;
}
.page-with-dogs .wd-lead {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 19px;
  line-height: 2;
  margin: 0 auto 56px;
  max-width: 760px;
}

/* 内部リンクバッジ（客室について 等） */
.page-with-dogs .wd-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 30px;
  background: #fff;
  border-radius: 999px;
  font-family: var(--font-jp-sans);
  font-size: 16px;
  color: var(--wd-brown);
  box-shadow: 0 2px 14px rgba(58,45,31,0.06);
}
.page-with-dogs .wd-badge:hover { background: var(--wd-brown); color: #fff; opacity: 1; }

/* ---------- ヒーロー（ページタイトル） ---------- */
/* ==========================================================================
   共通ページヒーロー（wd-hero）— 全ページ共通パーツ（template-parts/page-hero.php）
   ※ .page-with-dogs スコープを外し、愛犬/お料理/お風呂/お部屋/周辺観光/お問い合わせ で共用。
     色・最大幅は var フォールバックで、page-with-dogs 以外でも同じ見た目になる。
   ========================================================================== */
.wd-hero { padding: 56px 0 0; }
/* タイトル＋リードの左に一本の縦線を通す（②=①: __main を基準にする） */
.wd-hero__main {
  position: relative;
  max-width: var(--wd-maxw, 1180px);
  margin: 0 auto;
  padding: 0 32px;
}
.wd-hero__main::before {
  content: "";
  position: absolute;
  left: 32px;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: var(--wd-accent, #9e6a43);
}
.wd-hero__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}
.wd-hero__title { padding-left: 26px; }
.wd-hero__en {
  display: block;
  text-align: left;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 58px;
  line-height: 1.1;
  color: var(--wd-accent, #9e6a43);
}
.wd-hero__jp {
  display: block;
  text-align: left;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 25px;
  color: var(--wd-text, #515150);
  margin-top: 10px;
}
.wd-breadcrumb {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 15px;
  color: var(--wd-text, #515150);
  padding-top: 14px;
}
.wd-hero__lead {
  margin: 28px 0 40px;
  padding-left: 26px;
  font-family: var(--font-jp-serif);
  font-size: 17px;
  line-height: 2;
}
/* ② 画像: PC は 85%・スマホは 100%・常に中央 */
.wd-hero__img { width: 85%; margin: 0 auto; }
.wd-hero__img img {
  width: 100%;
  max-height: 520px;
  object-fit: cover;
}

/* ---------- イントロ（今日から、愛犬と一緒の旅へ） ---------- */
.page-with-dogs .wd-intro .wd-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.page-with-dogs .wd-intro__title {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.6;
  color: var(--wd-text);
  margin: 0 0 28px;
}
.page-with-dogs .wd-intro__text p { margin: 0; font-size: 18px; line-height: 2.1; }
.page-with-dogs .wd-intro__imgs { position: relative; margin-bottom: 60px; }
.page-with-dogs .wd-intro__imgs img { border-radius: 0; }
.page-with-dogs .wd-intro__imgs .wd-intro__img-main { width: 100%; margin: 0; }

/* ---------- ドッグラン ---------- */
.page-with-dogs .wd-dogrun__gallery {
  display: grid;
  grid-template-columns: 68fr 32fr;
  gap: 6px;
  width: calc(100% - 64px);
  max-width: var(--wd-maxw);
  margin: 48px auto 64px;
  padding: 6px;
  background: #e8e0dc;
  box-sizing: border-box;
}
.page-with-dogs .wd-dogrun__main {
  min-height: 0;
}
.page-with-dogs .wd-dogrun__main img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  border-radius: 0;
  display: block;
  pointer-events: none;
}
.page-with-dogs .wd-dogrun__side {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: 6px;
  min-height: 0;
}
.page-with-dogs .wd-dogrun__thumb {
  min-height: 0;
  overflow: hidden;
  cursor: pointer;
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.page-with-dogs .wd-dogrun__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  display: block;
  pointer-events: none;
}
.page-with-dogs .wd-dogrun__thumb:not(.is-active) {
  opacity: 0.45;
}
.page-with-dogs .wd-dogrun__thumb.is-active {
  opacity: 1;
}

/* ドッグランギャラリー：お部屋ページ rm-gallery と「全く同じ」スライダーデザイン。
   値・クラス・JS を rm-gallery と共通化（--rm-maxw→--wd-maxw・--rm-text→--wd-text は同値）。
   旧 wd-dogrun__gallery/main/side/thumb のCSSは未使用（残置・無害）。 */
.page-with-dogs .rm-gallery {
  --rm-gallery-gap: 100px;
  --rm-gallery-slide-w: min(680px, 62vw);
  margin: 0 0 56px;
}
.page-with-dogs .rm-gallery__viewport { overflow: hidden; width: 100vw; margin-left: calc(50% - 50vw); touch-action: pan-y; cursor: grab; }
.page-with-dogs .rm-gallery.is-dragging .rm-gallery__viewport { cursor: grabbing; }
.page-with-dogs .rm-gallery__track { display: flex; gap: var(--rm-gallery-gap); align-items: stretch; will-change: transform; }
.page-with-dogs .rm-gallery__item { flex: 0 0 var(--rm-gallery-slide-w); margin: 0; }
.page-with-dogs .rm-gallery__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; -webkit-user-drag: none; user-select: none; }
.page-with-dogs .rm-gallery .story-gallery__nav { max-width: var(--wd-maxw); margin: 18px auto 0; padding: 0 40px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.page-with-dogs .rm-gallery .story-gallery__controls { display: flex; align-items: center; gap: 18px; grid-column: 3; justify-self: end; }
.page-with-dogs .rm-gallery .story-gallery__dots { display: flex; align-items: center; justify-content: center; gap: 10px; grid-column: 2; justify-self: center; }
.page-with-dogs .rm-gallery .story-gallery__dot { width: 8px; height: 8px; border-radius: 50%; background: #c9bfb2; cursor: pointer; flex-shrink: 0; transition: background .25s, width .25s, height .25s; }
.page-with-dogs .rm-gallery .story-gallery__dot.is-active { width: 12px; height: 12px; background: var(--color-brand, #776553); }
.page-with-dogs .rm-gallery .story-gallery__arrow { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: none; border-radius: 0; background: none; box-shadow: none; font-size: 0; line-height: 0; color: transparent; cursor: pointer; position: relative; flex-shrink: 0; transition: opacity .2s; }
.page-with-dogs .rm-gallery .story-gallery__arrow::before { content: ""; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; border-top: 2px solid var(--color-brand, #776553); border-right: 2px solid var(--color-brand, #776553); }
.page-with-dogs .rm-gallery .story-gallery__arrow--prev::before { transform: translate(-35%, -50%) rotate(-135deg); }
.page-with-dogs .rm-gallery .story-gallery__arrow--next::before { transform: translate(-65%, -50%) rotate(45deg); }
.page-with-dogs .rm-gallery .story-gallery__arrow:hover { opacity: .6; }
.page-with-dogs .rm-gallery .story-gallery__counter { min-width: 3.2em; text-align: center; line-height: 1; font-family: var(--font-en-sans); font-size: 14px; color: var(--wd-text); }
@media (max-width: 980px) {
  .page-with-dogs .rm-gallery { --rm-gallery-slide-w: min(480px, 72vw); --rm-gallery-gap: 48px; }
  .page-with-dogs .rm-gallery .story-gallery__nav { padding: 0 32px; }
}
@media (max-width: 600px) {
  .page-with-dogs .rm-gallery { --rm-gallery-slide-w: min(300px, 88vw); --rm-gallery-gap: 24px; margin-bottom: 40px; }
  .page-with-dogs .rm-gallery__item img { aspect-ratio: 16 / 10; }
  .page-with-dogs .rm-gallery .story-gallery__nav { padding: 0 20px; gap: 16px; }
}

/* 3つの特長 */
.page-with-dogs .wd-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: min(var(--wd-features-max-w), calc(100vw - 64px));
  max-width: var(--wd-features-max-w);
  margin: 0 0 56px;
}
.page-with-dogs .wd-feature {
  text-align: center;
  padding: 0 32px;
}
.page-with-dogs .wd-feature:not(:last-child) {
  border-right: 1px solid var(--wd-accent);
}
.page-with-dogs .wd-feature__icon {
  width: 86px; height: 86px;
  margin: 0 auto 18px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 14px rgba(58,45,31,0.06);
}
.page-with-dogs .wd-feature__icon img { width: 50%; height: auto; }
.page-with-dogs .wd-feature__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 22px;
  color: var(--wd-text);
  margin: 0 0 12px;
}
.page-with-dogs .wd-feature__txt { font-size: 17px; line-height: 1.9; margin: 0; }
.page-with-dogs .u-br-pc { display: block; } /* PCのみ改行（wd-featuresが1カラム化する980px以下で解除） */

/* 料金カード */
.page-with-dogs .wd-price {
  max-width: 560px;
  margin: 0 auto;
  background: #fff;
  border-radius: 8px;
  padding: 36px 44px;
  box-shadow: 0 4px 22px rgba(58,45,31,0.06);
}
.page-with-dogs .wd-price__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 21px;
  margin: 0 0 20px;
  text-align: center;
}
.page-with-dogs .wd-price__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-top: 1px solid var(--color-line);
}
.page-with-dogs .wd-price__row:last-child { border-bottom: 1px solid var(--color-line); }
.page-with-dogs .wd-price__label { font-family: var(--font-jp-serif); font-size: 18px; }
.page-with-dogs .wd-price__val {
  font-family: var(--font-jp-serif);
  font-size: 28px;
  color: var(--wd-text);
}
.page-with-dogs .wd-price__unit { font-size: 16px; color: var(--wd-text); }
/* 料金ブロック内の注記（追加要素・色は変数のみ） */
.page-with-dogs .wd-price__note { margin: 14px 0 0; font-family: var(--font-jp-serif); font-size: 14px; line-height: 1.7; color: var(--wd-text); text-align: center; }
/* ドッグランご利用上のお願い（wd-faq の意匠を流用・追加要素） */
.page-with-dogs .wd-dogrun__notice { max-width: 880px; margin: 40px auto 0; padding-bottom: 50px; }
.page-with-dogs .wd-dogrun__notice .wd-faq__item[open] .wd-faq__q {
  margin-bottom: 60px;
}
.page-with-dogs .wd-dogrun__notice .wd-faq__a.is-open {
  padding-top: 0;
}
.page-with-dogs .wd-dogrun__rules { margin: 0; padding-left: 0; list-style: none; font-family: var(--font-jp-serif); }
.page-with-dogs .wd-dogrun__rules li {
  position: relative;
  margin: 0 0 10px;
  padding-left: 1.1em;
  font-size: 16px;
  line-height: 1.9;
  color: var(--wd-text);
}
.page-with-dogs .wd-dogrun__rules li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--wd-accent);
}
.page-with-dogs .wd-dogrun__rules li:last-child { margin-bottom: 0; }

/* ドッグラン内フック（料金の下） */
.page-with-dogs .wd-dogrun .wd-day__hook {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.7;
  color: var(--wd-brown);
  margin: 56px 0 0;
}

/* ---------- 愛犬との一日（タイムライン） ---------- */
.page-with-dogs .wd-day__row {
  display: grid;
  grid-template-columns: 1.3fr 1.1fr;
  gap: 48px;
  align-items: start;
  padding: 56px 0;
}
.page-with-dogs .wd-day__col {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.page-with-dogs .wd-day__photo {
  align-self: start;
}
.page-with-dogs .wd-day__photo img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.page-with-dogs .wd-day__num {
  font-family: var(--font-en-serif);
  font-weight: 500;
  font-size: 60px;
  line-height: 1;
  color: var(--wd-accent);
  margin: 0 0 6px;
}
.page-with-dogs .wd-day__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 24px;
  color: var(--wd-text);
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-line);
}
.page-with-dogs .wd-day__desc { font-size: 17px; line-height: 1.95; margin: 0 0 22px; }
/* 「お食事の時」の変更予定注記（追加要素・色は変数のみ） */
.page-with-dogs .wd-day__note { margin: -12px 0 18px; font-family: var(--font-jp-serif); font-size: 13px; line-height: 1.6; color: var(--wd-text); }
.page-with-dogs .wd-day__sub { display: flex; flex-direction: column; gap: 26px; }

@media (min-width: 981px) {
  .page-with-dogs .wd-day__photo {
    position: sticky;
    top: var(--wd-day-sticky-top, 15vh);
    z-index: 1;
  }
}
.page-with-dogs .wd-timecard { display: flex; gap: 16px; align-items: flex-start; }
.page-with-dogs .wd-timecard__img {
  flex: 0 0 40%;
  max-width: 40%;
}
.page-with-dogs .wd-timecard__img img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 4px;
}
.page-with-dogs .wd-timecard__body {
  flex: 1;
  min-width: 0;
}
.page-with-dogs .wd-timecard__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-jp-serif);
  font-size: 20px;
  color: var(--wd-text);
  margin: 0 0 8px;
}
.page-with-dogs .wd-timecard__label img { width: 26px; height: 26px; }
.page-with-dogs .wd-timecard__txt { font-size: 16px; line-height: 1.8; margin: 0; }

/* ---------- アメニティ ---------- */
.page-with-dogs .wd-subttl {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 28px;
  color: var(--wd-text);
  margin: 0 0 28px;
}
.page-with-dogs .wd-subttl::before {
  content: "";
  width: 16px; height: 16px;
  border-radius: 50px;
  background: var(--wd-accent);
  flex: none;
}
.page-with-dogs .wd-subttl + .wd-amenity__grid,
.page-with-dogs .wd-subttl + .wd-amenity-slider { padding-bottom: 64px; }
.page-with-dogs .wd-amenity__slide-note {
  display: none;
}
/* ---------- アメニティの実際の様子（写真紹介） ---------- */
.page-with-dogs .wd-spots { margin: 0 0 56px; }
.page-with-dogs .wd-spots__lead {
  font-size: 15px;
  line-height: 1.9;
  color: var(--wd-text);
  margin: -14px 0 28px;
}
.page-with-dogs .wd-photos__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.page-with-dogs .wd-photo { margin: 0; }
.page-with-dogs .wd-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}
.page-with-dogs .wd-photo figcaption {
  margin: 12px 0 0;
  font-family: var(--font-jp-serif);
  font-size: 14px;
  line-height: 1.6;
  color: var(--wd-text);
  text-align: center;
}
.page-with-dogs .wd-spot__noimg {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--color-line, #d8d0c8);
  border-radius: 10px;
  font-family: var(--font-jp-serif);
  font-size: 13px;
  color: var(--wd-plum);
  box-sizing: border-box;
}

/* 置き場のご案内（アメニティの補充・使用済みシートの回収＝どちらもフロント前。カード群とは別トーンの案内パネル） */
.page-with-dogs .wd-frontguide {
  margin: 40px 0 0;
  border: 1px solid var(--color-line, #d7c7b3);
  border-radius: 14px;
  padding: 32px;
}
.page-with-dogs .wd-frontguide__note {
  text-align: center;
  font-size: 15px;
  line-height: 1.8;
  color: var(--wd-text);
  margin: 0 0 26px;
}
.page-with-dogs .wd-frontguide__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
}
.page-with-dogs .wd-frontguide__item { flex: 0 1 200px; margin: 0; text-align: center; }
.page-with-dogs .wd-frontguide__item img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.page-with-dogs .wd-frontguide__item .wd-spot__noimg { aspect-ratio: 1; border-radius: 50%; }
.page-with-dogs .wd-frontguide__item figcaption {
  margin: 12px 0 0;
  font-family: var(--font-jp-serif);
  font-size: 14px;
  color: var(--wd-text);
}
.page-with-dogs .wd-frontguide__divider { flex: none; width: 1px; height: 80px; background: var(--color-line, #d7c7b3); }

/* ---------- ケージについて（SWELLブログパーツ埋め込み・コンパクト表示。中身は管理画面「ブログパーツ」で編集） ---------- */
.page-with-dogs .wd-cage { margin: 0 0 48px; }
.page-with-dogs .wd-cage .p-blogParts {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 24px;
  align-items: center;
  max-width: 720px;
}
.page-with-dogs .wd-cage .p-blogParts img,
.page-with-dogs .wd-cage .p-blogParts figure {
  grid-column: 1;
  grid-row: 1 / -1;
  margin: 0;
  border-radius: 6px;
  overflow: hidden;
}
.page-with-dogs .wd-cage .p-blogParts img { width: 100%; max-width: 100%; height: auto; display: block; }
.page-with-dogs .wd-cage .p-blogParts p {
  grid-column: 2;
  color: var(--wd-text);
  font-size: 16px;
  line-height: 1.8;
  margin: 0 0 8px;
}
.page-with-dogs .wd-cage .p-blogParts p:last-child { margin-bottom: 0; }
.page-with-dogs .wd-gallery .event-grid-wrap {
  position: relative;
}
.page-with-dogs .wd-gallery .event-grid-wrap > .plan-slider__arrow {
  display: none;
}
/* スマホ表示時に responsive.css で display:block にする前提のベース（home_top.css 非読込のため自前定義） */
.page-with-dogs .wd-gallery .event-grid-wrap .plan-slider__arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--color-accent);
  background: #fff;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  transition: background 0.2s;
  font-size: 0;
  line-height: 0;
  color: transparent;
}
.page-with-dogs .wd-gallery .event-grid-wrap .plan-slider__arrow:hover {
  background: var(--color-bg-alt);
}
.page-with-dogs .wd-gallery .event-grid-wrap .plan-slider__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--color-accent-dk);
  border-right: 2px solid var(--color-accent-dk);
}
.page-with-dogs .wd-gallery .event-grid-wrap .plan-slider__arrow--prev::before {
  transform: translate(-30%, -50%) rotate(-135deg);
}
.page-with-dogs .wd-gallery .event-grid-wrap .plan-slider__arrow--next::before {
  transform: translate(-70%, -50%) rotate(45deg);
}
@media (min-width: 901px) {
  .page-with-dogs .wd-rulegroup > summary.wd-rulegroup__ttl {
    pointer-events: none;
    cursor: default;
    list-style: none;
  }
  .page-with-dogs .wd-rulegroup > summary.wd-rulegroup__ttl::-webkit-details-marker {
    display: none;
  }
}
.page-with-dogs .wd-amenity__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 22px;
}
.page-with-dogs .wd-acard {
  background: #fff;
  border-radius: 10px;
  padding: 26px 14px 10px;
  text-align: center;
  box-shadow: 0 2px 14px rgba(58,45,31,0.05);
}
.page-with-dogs .wd-acard__icon { height: 64px; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.page-with-dogs .wd-acard__icon img { max-width: 64px; max-height: 64px; width: auto; }
.page-with-dogs .wd-acard__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 17px;
  margin: 0 0 8px;
  padding-top: 12px;
  border-top: 1px solid var(--color-line);
  color: var(--wd-text);
}
.page-with-dogs .wd-acard__sub { font-family: var(--font-jp-serif); font-size: 15px; color: var(--wd-plum); margin: 0; }

/* ---------- 愛犬と心地よく過ごすために（ルール）／客室ページ「ご利用案内」でも wd-rules を共用 ---------- */
:is(.page-with-dogs, .page-room) .wd-rules { max-width: 1020px; margin: 0 auto; padding-bottom: 50px; }
.page-with-dogs .wd-rulegroup { margin-bottom: 40px; }
.page-with-dogs .wd-rulegroup__ttl {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 30px;
  color: var(--wd-text);
  margin: 0 0 8px;
}
.page-with-dogs .wd-rulegroup__ttl::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50px;
  background: var(--wd-accent);
  flex: none;
}
:is(.page-with-dogs, .page-room) .wd-rule {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 20px;
  align-items: start;
  padding: 26px 4px;
  border-top: 1px solid #c6b194;
}
.page-with-dogs .wd-rulegroup .wd-rule:last-child { border-bottom: none; }
:is(.page-with-dogs, .page-room) .wd-rule__icon {
  width: 59px; height: 59px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 10px rgba(58,45,31,0.05);
}
:is(.page-with-dogs, .page-room) .wd-rule__icon img { width: 50%; height: auto; }
:is(.page-with-dogs, .page-room) .wd-rule__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 23px;
  color: var(--wd-text);
  margin: 4px 0 8px;
}
:is(.page-with-dogs, .page-room) .wd-rule__txt { font-size: 17px; line-height: 1.9; margin: 0; color: var(--wd-text); }
/* ルール文中の電話リンク（お問い合わせページ .cf-tel-notice a と同じ配色） */
.page-room .wd-rule__txt a { color: var(--color-accent-dk); border-bottom: 1px solid var(--color-line); }
/* ルール内の小さな注記（追加要素・色は変数のみ） */
.page-with-dogs .wd-rule__note { display: inline-block; margin-top: 4px; font-size: 14px; color: var(--wd-text); }

/* ドッグランギャラリー：PC のみ最大幅 800px */
@media (min-width: 981px) {
  .page-with-dogs .wd-dogrun__gallery {
    max-width: 800px;
  }
}

/* ---------- 右寄せサイド見出し（ギャラリー・FAQ 共通） ---------- */
/* .wd-sideblock / .wd-sidehead は全ページ共通（愛犬ギャラリー・FAQ／お料理ギャラリー で共用）。
   ※ .page-with-dogs スコープを外しただけで見た目の値は不変。var は page-with-dogs 以外でも
     同一表示になるよう既定値フォールバックを付与（愛犬ページは従来どおりの値を使用）。 */
.wd-sideblock {
  display: grid;
  grid-template-columns: minmax(0, var(--wd-sideblock-main-w, 980px)) auto;
  gap: 40px;
  align-items: start;
  justify-content: space-between;
}
.wd-sideblock__main {
  min-width: 0;
  width: 100%;
  max-width: var(--wd-sideblock-main-w, 980px);
}
.wd-sidehead {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  margin: 0;
  flex-shrink: 0;
  width: var(--wd-sidehead-w, 104px);
  min-height: var(--wd-sidehead-min-h, 220px);
}
.wd-sidehead__en {
  position: relative;
  align-self: flex-start;
  writing-mode: vertical-rl;
  font-family: var(--font-en-serif);
  font-size: 34px;
  letter-spacing: 0.06em;
  color: var(--wd-heading, #3f3f3f);
  line-height: 1;
  padding-right: 18px;
  margin-right: 18px;
}
.wd-sidehead__en::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: -160px;
  right: 0;
  width: 1px;
  background: var(--wd-heading, #3f3f3f);
}
.wd-sidehead__jp {
  align-self: flex-start;
  writing-mode: vertical-rl;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 22px;
  color: var(--wd-heading, #3f3f3f);
  line-height: 1;
}

/* ==========================================================================
   お料理ギャラリー: WordPress ギャラリーブロックを 5/3/2 列・正方形(1:1)で表示
   （.cz-gallery スコープ＝お料理ページのみ。.wd-sidehead には手を加えない）
   ========================================================================== */
.cz-gallery .wp-block-gallery.has-nested-images {
  display: grid !important;            /* コアの is-layout-flex(display:flex) を打ち消す */
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin: 0;
}
/* コアの `figure.wp-block-image:not(#individual-image){width:calc(50% - …)}` は :not(#id) で
   ID級詳細度(1,3,1)のため、!important で打ち消してセル幅いっぱい(1fr)に広げる。
   ※ 直下のグリッド画像のみを対象にする子結合子(>)。ライトボックス拡大画像
     (.wp-lightbox-overlay 内の .wp-block-image img) を巻き込んで歪めないため。 */
.cz-gallery .wp-block-gallery.has-nested-images > .wp-block-image {
  margin: 0;
  width: auto !important;
  max-width: none !important;
}
.cz-gallery .wp-block-gallery.has-nested-images > .wp-block-image > img {
  display: block;
  width: 100%;
  height: auto;            /* height:100% だと aspect-ratio が無効化されるため auto に */
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
/* タブレット: ギャラリー3列（sideblock は横並びを維持） */
@media (max-width: 980px) {
  .cz-gallery .wp-block-gallery.has-nested-images { grid-template-columns: repeat(3, 1fr); }
}
/* スマホ: sidehead をギャラリーの上に・縦積み／ギャラリーは2列 */
@media (max-width: 600px) {
  .page-cuisine .wd-sideblock {
    grid-template-columns: 1fr;
    gap: 20px;
    justify-content: stretch;
  }
  .page-cuisine .wd-sideblock__main { max-width: none; }
  .page-cuisine .wd-sideblock .wd-sidehead {
    order: -1;
    width: auto;
    min-height: 0;
    justify-content: flex-start;
  }
  .cz-gallery .wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, 1fr); }
}
/* ギャラリー画像はクリックで拡大できることを示す */
.cz-gallery .wp-block-gallery.has-nested-images > .wp-block-image > img {
  cursor: zoom-in;
}

/* ==========================================================================
   お料理ギャラリー: 自前ライトボックス（前後矢印つき・.cz-lb）
   WP標準ライトボックス（前後送りなし）を page-cuisine.php で無効化し、これに置換。
   オーバーレイは body 直下に生成＝.cz-gallery スコープから独立。クラスは一意 cz-lb。
   ========================================================================== */
.cz-lb[hidden] { display: none; }
.cz-lb {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cz-lb__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(15 18 16 / 69%);
  cursor: zoom-out;
}
.cz-lb__stage {
  position: relative;
  margin: 0;
  max-width: 90vw;
  max-height: 86vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cz-lb__img {
  display: block;
  max-width: 90vw;
  max-height: 86vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}
.cz-lb__btn {
  position: absolute;
  z-index: 1;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  -webkit-appearance: none;
          appearance: none;
}
/* 閉じる × */
.cz-lb__close {
  top: max(16px, env(safe-area-inset-top));
  right: max(16px, env(safe-area-inset-right));
  width: 44px;
  height: 44px;
  font-size: 34px;
  line-height: 1;
  color: #fff;
  opacity: 0.85;
}
.cz-lb__close:hover { opacity: 1; }
/* 前後矢印（border でシェブロンを自作＝グリフ依存なし） */
.cz-lb__prev,
.cz-lb__next {
  top: 50%;
  width: 56px;
  height: 56px;
  margin-top: -28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  transition: background 0.2s;
}
.cz-lb__prev:hover,
.cz-lb__next:hover { background: rgba(255, 255, 255, 0.28); }
.cz-lb__prev { left: 16px; }
.cz-lb__next { right: 16px; }
.cz-lb__prev::before,
.cz-lb__next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 13px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.cz-lb__next::before { transform: translate(-65%, -50%) rotate(45deg); }
.cz-lb__prev::before { transform: translate(-35%, -50%) rotate(-135deg); }
/* カウンター */
.cz-lb__counter {
  position: absolute;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  margin: 0;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.08em;
  opacity: 0.85;
}
/* ライトボックス表示中は背面スクロールを止める */
body.cz-lb-open { overflow: hidden; }
/* スマホ */
@media (max-width: 600px) {
  .cz-lb__prev,
  .cz-lb__next { width: 44px; height: 44px; margin-top: -22px; }
  .cz-lb__prev { left: 8px; }
  .cz-lb__next { right: 8px; }
  .cz-lb__stage,
  .cz-lb__img { max-width: 94vw; max-height: 80vh; }
}

/* ---------- ワンちゃんギャラリー ---------- */
.page-with-dogs .wd-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.page-with-dogs .wd-gcard {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.25s ease;
}
.page-with-dogs .wd-gcard:hover {
  opacity: 0.7;
}
.page-with-dogs .wd-gcard__img img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 6px;
}
.page-with-dogs .wd-gcard__name {
  font-family: var(--font-jp-serif);
  font-size: 17px;
  color: var(--wd-text);
  margin: 18px 0 0;
}
.page-with-dogs .wd-gallery__more { margin-top: 44px; display: flex; justify-content: center; }

/* ---------- よくある質問（アコーディオン：愛犬と過ごす・周辺観光・アクセス 共通） ---------- */
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__list { display: flex; flex-direction: column; gap: 16px; }
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__item {
  background: #fff;
  border: 1px solid var(--wd-accent);
  border-radius: 8px;
  box-shadow: 0 2px 14px rgba(58,45,31,0.05);
  overflow: hidden;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__q {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 28px;
  font-family: var(--font-jp-serif);
  font-size: 18px;
  color: var(--wd-text);
  position: relative;
  transition: border-color 0.3s ease;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__item[open] .wd-faq__q::after {
  content: "";
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 0;
  height: 1px;
  background: #e5d2c6;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__q::-webkit-details-marker { display: none; }
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__badge {
  flex: none;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #e5d2c6;
  color: #444;
  font-family: var(--font-en-sans);
  font-size: 24px;
  display: flex; align-items: center; justify-content: center;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__item[open] .wd-faq__badge:not(.wd-faq__badge--a) { background: #634a36; color: #fff; }
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__sign {
  margin-left: auto;
  flex: none;
  font-family: var(--font-jp-serif);
  font-size: 34px;
  color: var(--wd-accent);
  line-height: 1;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__sign::before { content: "＋"; }
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__item[open] .wd-faq__sign::before { content: "−"; }
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__a {
  display: flex;
  gap: 18px;
  padding: 0 28px;
  overflow: hidden;
  box-sizing: border-box;
  transition: height 380ms ease, padding 380ms ease, opacity 0.3s ease;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__a.is-open {
  padding: 15px 28px 28px;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__badge--a {
  background: #d7c2b1;
  color: #645748;
}
:is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__a p { font-size: 17px; line-height: 1.9; margin: 6px 0 0; }

/* ==========================================================================
   「愛犬と過ごす」ページ レスポンシブ
   ========================================================================== */
@media (max-width: 980px) {
  :is(.page-with-dogs, .page-sightseeing) .wd-section { padding: 72px 0; }
  .page-with-dogs .wd-secttl__en { font-size: 22px; }
  .wd-hero__en { font-size: 44px; }

  .page-with-dogs .wd-intro .wd-inner { grid-template-columns: 1fr; gap: 40px; }
  .page-with-dogs .wd-intro__imgs .wd-intro__img-main { width: 100%; }

  .page-with-dogs .wd-dogrun__gallery {
    grid-template-columns: 1fr;
    width: calc(100% - 40px);
    max-width: none;
    padding: 6px;
    margin: 36px auto 48px;
  }
  .page-with-dogs .wd-dogrun__main img {
    aspect-ratio: 4 / 3;
    height: auto;
  }
  .page-with-dogs .wd-dogrun__side {
    display: flex;
    flex-direction: row;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--wd-accent, #9e6a43) rgba(58, 45, 31, 0.12);
    grid-template-rows: none;
    background: transparent;
    padding: 0 0 8px;
  }
  .page-with-dogs .wd-dogrun__side::-webkit-scrollbar {
    display: block;
    height: 8px;
  }
  .page-with-dogs .wd-dogrun__side::-webkit-scrollbar-track {
    background: rgba(58, 45, 31, 0.1);
    border-radius: 4px;
  }
  .page-with-dogs .wd-dogrun__side::-webkit-scrollbar-thumb {
    background: var(--wd-accent, #9e6a43);
    border-radius: 4px;
  }
  .page-with-dogs .wd-dogrun__thumb {
    flex: 0 0 72%;
    scroll-snap-align: center;
    transition: opacity 0.45s ease, transform 0.45s ease;
    opacity: 0.45;
    transform: scale(0.92);
    cursor: pointer;
  }
  .page-with-dogs .wd-dogrun__thumb.is-active {
    opacity: 1;
    transform: scale(1);
  }
  .page-with-dogs .wd-dogrun__thumb img {
    aspect-ratio: 4 / 3;
    height: auto;
  }

  .page-with-dogs .wd-features {
    grid-template-columns: 1fr;
    gap: 0;
    width: min(var(--wd-features-max-w), calc(100vw - 40px));
    max-width: var(--wd-features-max-w);
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 56px;
  }
  .page-with-dogs .wd-feature {
    padding: 0 0 32px;
    margin-bottom: 32px;
  }
  .page-with-dogs .wd-feature:not(:last-child) {
    border-right: none;
    border-bottom: 1px solid var(--wd-accent);
  }
  .page-with-dogs .wd-feature:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
  }
  .page-with-dogs .u-br-pc { display: none; }

  .page-with-dogs .wd-day__row { grid-template-columns: 1fr; gap: 28px; }
  .page-with-dogs .wd-day__col { gap: 28px; }
  .page-with-dogs .wd-day__sub { flex-direction: row; flex-wrap: wrap; gap: 24px; }
  .page-with-dogs .wd-timecard { flex: 1 1 260px; }

  .page-with-dogs .wd-amenity__grid { grid-template-columns: repeat(3, 1fr); }
  .page-with-dogs .wd-photos__grid { gap: 20px; }

  .page-with-dogs .wd-gallery__grid { grid-template-columns: 1fr; max-width: none; margin: 0; }
  :is(.page-with-dogs, .page-sightseeing) .wd-sideblock {
    grid-template-columns: 1fr;
    gap: 28px;
    justify-content: stretch;
  }
  :is(.page-with-dogs, .page-sightseeing) .wd-sideblock__main {
    max-width: none;
  }
  :is(.page-with-dogs, .page-sightseeing) .wd-sideblock .wd-sidehead {
    order: -1;
    justify-content: flex-start;
    align-items: flex-start;
    width: auto;
    min-height: 0;
  }
}

@media (max-width: 600px) {
  :is(.page-with-dogs, .page-sightseeing) .wd-inner { padding: 0 20px; }
  .wd-hero__main { padding: 36px 20px 0; }
  .wd-hero__main::before { left: 20px; }
  .wd-hero__head { flex-direction: column; gap: 10px; }
  .wd-hero__en { font-size: 38px; }
  .wd-hero__lead {
    margin: 5px 0 20px;
    padding-left: 26px;
    padding-right: 20px;
    font-size: 17px;
  }
  .wd-hero__img { width: 100%; }
  .page-with-dogs .wd-secttl__jp { font-size: 30px; }
  .page-with-dogs .wd-amenity__grid { grid-template-columns: repeat(2, 1fr); }
  .page-with-dogs .wd-photos__grid { grid-template-columns: 1fr; gap: 20px; }
  .page-with-dogs .wd-frontguide { padding: 24px 20px; }
  .page-with-dogs .wd-frontguide__row { flex-direction: column; gap: 20px; }
  .page-with-dogs .wd-frontguide__item { flex-basis: auto; max-width: 160px; }
  .page-with-dogs .wd-frontguide__divider { width: 40px; height: 1px; }
  .page-with-dogs .wd-dogrun__thumb { flex-basis: 78%; }
  .page-with-dogs .wd-dogrun .wd-day__hook { margin-top: 40px; font-size: 17px; }
  :is(.page-with-dogs, .page-room) .wd-rule { grid-template-columns: 48px 1fr; gap: 14px; }
  :is(.page-with-dogs, .page-room) .wd-rule__ttl { font-size: 20px; }
  :is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__q { font-size: 18px; padding: 18px 18px; gap: 12px; }
  :is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__item[open] .wd-faq__q::after { left: 18px; right: 18px; }
  :is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__a { padding: 0 18px; }
  :is(.page-with-dogs, .page-sightseeing, .page-access) .wd-faq__a.is-open { padding: 15px 18px 22px; }
  .page-with-dogs .wd-rulegroup__ttl { font-size: 16px; }
  .page-with-dogs .wd-cage .p-blogParts { grid-template-columns: 1fr; max-width: 300px; margin: 0 auto; gap: 16px; }
  .page-with-dogs .wd-cage .p-blogParts img,
  .page-with-dogs .wd-cage .p-blogParts figure { grid-column: 1; grid-row: auto; }
  .page-with-dogs .wd-cage .p-blogParts p { grid-column: 1; text-align: left; }
}

/* ==========================================================================
   ページトップへ戻るボタン（全ページ共通・SWELL風 / site-footer.php で出力）
   ========================================================================== */
.to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 50px;
  height: 50px;
  border: 0;
  border-radius: 50%;
  background: var(--color-brand, #776553);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s ease, background-color .25s;
  z-index: 90;
  -webkit-appearance: none;
  appearance: none;
}
.to-top.is-show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: var(--color-accent-dk, #5d4f40); }
.to-top__arrow {
  display: block;
  width: 11px;
  height: 11px;
  margin-top: 4px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
}
@media (max-width: 600px) {
  .to-top { right: 14px; bottom: 14px; width: 44px; height: 44px; }
}
