/* ==========================================================
   Website Designer 共通リセット v1（2026-08-10）
   使い方: 新案件の style.css の【先頭】にこの内容を貼り込む。
   <link>で別ファイル読み込みにはしない（納品物は1CSSにまとめる）。
   変更したくなったら、このファイルを直してバージョンを上げること。
   案件側だけ直して満足しない（次の案件に伝わらない）。
   ========================================================== */

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

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%; /* iPhone横向きで文字が勝手に拡大されるのを防ぐ */
}

body {
  margin: 0;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd {
  margin: 0; /* 余白はブラウザ任せにせず、必ず自分のクラスで指定する */
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none; /* 点付きリストが必要な箇所だけ個別に戻す */
}

img, picture, video {
  display: block;
  max-width: 100%;
  height: auto; /* width/height属性を書いても比率が崩れないように */
}

a {
  color: inherit;
  text-decoration: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

th {
  text-align: left;
  font-weight: inherit;
}

/* フォーム部品はフォント・色を継承しない初期値なので必ず揃える */
input, button, textarea, select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

textarea {
  resize: vertical;
}

/* アニメーション酔いしやすい人への配慮（アクセシビリティ） */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ========== リセットここまで。以下に案件のスタイルを書く ========== */

:root{--paper:#fbf6ed;--ink:#382c29;--red:#963e48;--line:#ddcfc0;--sage:#dfe4d9}body{background:var(--paper);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #1b675f;outline-offset:6px}a:hover{opacity:.8}section[id]{scroll-margin-top:100px}.preview{background:#382c29;color:#fff;font-size:16px;text-align:center;padding:7px 16px;letter-spacing:.08em}.preview span{margin-left:20px;color:#eaded3}header{height:98px;margin:0 auto;max-width:1340px;padding:0 42px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;font-weight:700;font-size:19px;letter-spacing:.04em}.brand small{display:block;font-size:16px;font-weight:400;letter-spacing:.12em}nav{display:flex;gap:32px;align-items:center;font-size:16px}.nav-cta{border-bottom:1px solid var(--red);padding:10px 0;color:var(--red)}.nav-cta span{margin-left:20px}.hero{max-width:1440px;margin:auto;position:relative;display:grid;grid-template-columns:1fr 1fr;padding:30px 70px 75px;align-items:center;gap:40px}.eyebrow{font-size:16px;letter-spacing:.12em;font-weight:600;margin-bottom:24px;color:var(--red)}h1,h2{font-weight:600;letter-spacing:.045em;line-height:1.55}h1{font-size:clamp(36px,4vw,61px);margin-bottom:24px}h1 span{color:var(--red)}.lead{line-height:2.1;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;background:var(--red);color:white;border-radius:4px;padding:17px 25px;font-size:16px;font-weight:600}.sub{font-size:16px;color:#71645c;margin-top:13px}.hero-photo{position:relative;padding:0 16px 16px 0}.hero-photo>img{width:100%;height:625px;object-fit:cover;border-radius:48% 48% 4px 4px;object-position:50% 48%}.photo-note{position:absolute;bottom:7px;right:-18px;background:var(--sage);width:164px;height:164px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(9deg);font-size:16px;line-height:1.7}.photo-note b{font-size:23px}.photo-note span{font-size:16px;letter-spacing:.06em;margin-top:8px}.vertical{position:absolute;right:15px;top:190px;writing-mode:vertical-rl;font-size:16px;letter-spacing:.24em}.ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 20px;display:flex;justify-content:center;gap:48px;font-size:16px;letter-spacing:.1em}.ribbon i{font-style:normal;color:var(--red)}.wrap{max-width:1180px;margin:auto;padding-left:40px;padding-right:40px}h2{font-size:38px;margin-bottom:28px}.intro{text-align:center;padding-top:110px;padding-bottom:110px}.intro p:not(.eyebrow){margin-top:24px;line-height:2.2}.intro .support{font-size:16px;color:#78675c}.cats-section{background:#f0e8dd;padding:95px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:45px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:16px;line-height:2}.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.cat-card{background:var(--paper);border-radius:140px 140px 6px 6px;overflow:hidden}.cat-photo{position:relative;height:290px;overflow:hidden}.cat-photo img{width:100%;height:100%;object-fit:cover}.cat-photo.rio img,.cat-photo.yuki img{max-width:none;width:200%;object-fit:cover}.cat-photo.yuki img{transform:translateX(-50%)}.cat-photo>span{position:absolute;bottom:15px;left:20px;background:var(--paper);border-radius:20px;padding:5px 13px;font-size:16px;letter-spacing:.12em}.cat-body{padding:25px}.cat-tag{font-size:16px;color:var(--red);letter-spacing:.06em}.cat-body h3{font-size:30px;letter-spacing:.1em;margin:5px 0 16px}.cat-body h3 span{font-size:16px;margin-left:5px}.cat-body>p:not(.cat-tag){font-size:16px;line-height:1.9}.cat-body .little{border-top:1px solid var(--line);padding-top:16px;margin-top:20px;font-size:16px!important}.source-note{font-size:16px;line-height:1.9;color:#76675e;max-width:840px;margin:25px 0}.source-note a{text-decoration:underline}.text-link{display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid var(--ink);padding:10px 0;font-size:16px}.text-link svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5}.visit{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:110px;padding-bottom:100px;align-items:center}.visit-image{position:relative}.visit-image img{width:100%;height:680px;object-fit:cover;border-radius:4px 4px 140px 4px}.visit-image>span{position:absolute;left:20px;bottom:35px;background:var(--paper);padding:10px 18px;font-size:16px}.visit-copy>p{line-height:2}.experience{display:flex;gap:20px;border-bottom:1px solid var(--line);padding:25px 0}.experience>span{font:italic 27px Georgia,serif;color:var(--red)}h3{font-size:18px}.experience p{font-size:16px;margin-top:8px}.special{background:#ede5d9;padding:24px;margin-top:25px;border-left:3px solid var(--red)}.special .eyebrow{font-size:16px;margin-bottom:10px}.special h3{font-size:19px}.special p:not(.eyebrow){font-size:16px;margin:12px 0}.special small{display:block;font-size:16px;line-height:1.8;color:#695c52}.room{display:grid;grid-template-columns:1.25fr 1fr;gap:65px;align-items:center;padding-bottom:110px}.room img{border-radius:5px;aspect-ratio:1.4;object-fit:cover}.room p{font-size:16px}.join{background:var(--red);color:#fff;padding:90px 0}.join-inner{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.join .eyebrow{color:#fff0df}.join-note{font-size:16px;margin-top:26px}.event{background:var(--paper);color:var(--ink);padding:32px 36px;border-radius:5px;box-shadow:8px 8px 0 #772f38}.event dl>div{display:grid;grid-template-columns:85px 1fr;border-bottom:1px solid var(--line);padding:13px 0;font-size:16px}.event dt{color:#79685c}.event dd small{display:block;font-size:16px}#schedule-action{text-align:center;margin-top:25px}.pending{background:#e8ded2;color:#66544b;padding:16px 10px;border:1px dashed #a89380;font-size:16px}.access{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;padding-top:100px;padding-bottom:100px}.access h2 span{font-size:26px}.access p{font-size:16px;margin-bottom:15px}.access .eyebrow{font-size:16px}.faq h3{font-size:24px;margin-bottom:16px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-size:16px;padding-right:10px}.faq details p{font-size:16px;margin:15px 0 0;line-height:2}footer{text-align:center;background:#ece5da;padding:45px 20px}footer img{margin:0 auto 12px}footer p{font-size:19px;font-weight:600}footer small{display:block;font-size:16px;color:#79685c;margin:15px 0}footer>a{font-size:16px}.mobile-cta{display:none}
@media(min-width:1500px){.hero{padding-top:45px;padding-bottom:85px}}
@media(max-width:1000px){header{padding:0 30px}nav{gap:20px}.hero{padding:25px 40px 65px;gap:25px}.hero-photo>img{height:560px}.hero h1{font-size:44px}.vertical{right:8px}.photo-note{width:133px;height:133px;right:-12px}.photo-note b{font-size:21px}.cat-grid{gap:18px}.cat-photo{height:230px}.cat-body{padding:20px}.visit{gap:35px}.visit-image img{height:660px}.room{gap:35px}.join-inner{gap:35px}.event{padding:25px}.access{gap:45px}}
@media(max-width:700px){body{font-size:16px}.preview{font-size:16px;padding:6px 10px}.preview span{margin-left:8px}header{height:79px;padding:0 20px}.brand{font-size:16px;gap:8px}.brand img{width:28px}.brand small{font-size:16px}nav>a:not(.nav-cta){display:none}nav{font-size:16px}.nav-cta span{margin-left:8px}.hero{display:flex;flex-direction:column;padding:20px 24px 35px;gap:30px;align-items:stretch}.hero-copy{position:relative}.hero .eyebrow{font-size:16px;letter-spacing:.05em;margin-bottom:17px}.hero h1{font-size:39px;line-height:1.55;margin-bottom:20px}.hero .lead{font-size:16px;line-height:2;margin-bottom:22px}.hero .button{width:100%;font-size:16px}.hero .sub{text-align:center;font-size:16px}.hero-photo{padding:0 14px 8px 0;width:100%}.hero-photo>img{height:420px;border-radius:48% 48% 4px 4px;object-position:center 42%}.photo-note{right:-4px;bottom:-4px;width:126px;height:126px;font-size:16px}.photo-note b{font-size:20px}.photo-note span{font-size:16px}.vertical{display:none}.ribbon{gap:13px;font-size:16px;letter-spacing:0;padding:19px 10px}.wrap{padding-left:24px;padding-right:24px}h2{font-size:29px;line-height:1.65;margin-bottom:22px}.eyebrow{font-size:16px;letter-spacing:.06em;margin-bottom:18px}.intro{padding-top:65px;padding-bottom:65px}.intro p:not(.eyebrow){font-size:16px;text-align:left;margin-top:20px}.intro .support{font-size:16px!important}.pc{display:none}.cats-section{padding:65px 0}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:18px;font-size:16px}.cat-grid{grid-template-columns:1fr;gap:28px;max-width:400px;margin:auto}.cat-photo{height:300px}.cat-card{border-radius:140px 140px 5px 5px}.cat-body{padding:23px 25px}.cat-body h3{font-size:29px}.cat-body>p:not(.cat-tag){font-size:16px}.source-note{font-size:16px}.text-link{font-size:16px;gap:8px}.visit{grid-template-columns:1fr;gap:35px;padding-top:65px;padding-bottom:60px}.visit-image img{height:410px;border-radius:4px 4px 95px 4px}.visit-image>span{font-size:16px;bottom:25px;left:12px}.visit-copy>p{font-size:16px}.special{padding:21px}.special h3{font-size:17px}.room{grid-template-columns:1fr;gap:26px;padding-bottom:65px}.room img{aspect-ratio:1.35}.room h2 br{display:none}.room h2{font-size:25px}.join{padding:60px 0}.join-inner{grid-template-columns:1fr;gap:30px}.join p{font-size:16px}.join .eyebrow{font-size:16px}.event{padding:24px 20px}.event dl>div{grid-template-columns:70px 1fr;font-size:16px}.event .sub{font-size:16px}.access{grid-template-columns:1fr;padding-top:65px;padding-bottom:65px;gap:48px}.faq summary{font-size:16px}footer{padding-bottom:105px}.mobile-cta{display:flex;position:fixed;bottom:12px;left:16px;right:16px;background:var(--red);color:white;padding:15px 22px;justify-content:space-between;align-items:center;border-radius:4px;font-size:16px;box-shadow:0 4px 22px #382c2930;z-index:5}.join .pending{font-size:16px}}
@media(max-width:370px){.hero h1{font-size:35px}.preview span{font-size:16px}.hero .eyebrow{font-size:16px}.hero-photo>img{height:385px}.cat-photo{height:280px}.special h3{font-size:16px}}

.cat-photo.rio img,.cat-photo.yuki img{object-position:center top}

.shop-story{padding-bottom:85px}.room-tour{display:grid;grid-template-columns:1.35fr 1fr;gap:55px;align-items:center;margin-bottom:55px}.room-tour img{width:100%;height:auto;border-radius:5px}.room-tour figure>figcaption{font-size:16px;color:#71645c;margin-top:10px}.room-tour h3{font-size:27px;line-height:1.65;margin-bottom:20px}.room-tour p:not(.eyebrow){font-size:16px;line-height:2;margin-top:18px}.scene-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.scene-grid figure>img{width:100%;height:520px;object-fit:cover;object-position:center 30%;border-radius:5px}.scene-grid figcaption{padding:24px 4px 0}.scene-grid figcaption>span{font-size:16px;color:var(--red);letter-spacing:.06em}.scene-grid h3{font-size:23px;margin:10px 0 14px}.scene-grid p{font-size:16px;line-height:2}.scene-grid small{font-size:16px;color:#71645c;display:block;margin-top:12px}@media(max-width:1000px){.room-tour{gap:30px}.room-tour h3{font-size:24px}.scene-grid figure>img{height:420px}}@media(max-width:700px){.shop-story{padding-bottom:60px}.room-tour{grid-template-columns:1fr;gap:24px;margin-bottom:35px}.room-tour h3{font-size:24px}.room-tour p:not(.eyebrow){font-size:16px}.scene-grid{grid-template-columns:1fr;gap:35px}.scene-grid figure>img{height:auto;aspect-ratio:3/4;object-fit:cover}.scene-grid h3{font-size:21px}.scene-grid figcaption{padding-top:18px}}

/* 記事4枚組の左下の店内写真だけを表示 */
.sofa-photo{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:5px}
.room .sofa-photo img{position:absolute;width:200%;max-width:none;height:200%;left:0;top:-100%;object-fit:fill;border-radius:0;aspect-ratio:auto}

/* v4: 写真を主役にし、情報と導線の重複を整理 */
.cat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.cat-photo{height:235px}.cat-body{padding:22px 18px}.cat-body h3{font-size:26px}.cat-photo.cream img{object-position:center 36%}.cat-source{display:block;font-size:16px}.intro{padding-top:80px;padding-bottom:80px}.scene-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.scene-grid figure>img{height:370px}.scene-grid h3{font-size:20px}.scene-grid figcaption{padding-top:18px}.photo-source{display:inline-block;font-size:16px;text-decoration:underline;margin-top:12px}.mobile-cta{visibility:hidden;opacity:0;transition:opacity .2s}.mobile-cta.is-visible{visibility:visible;opacity:1}
@media(min-width:701px) and (max-width:1000px){.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.cat-photo{height:280px}.scene-grid figure>img{height:280px}.scene-grid h3{font-size:17px}}
@media(max-width:700px){.hero{display:grid;grid-template-columns:1fr;gap:22px;padding-top:12px}.hero-copy{display:contents}.hero-title{grid-row:1}.hero-photo{grid-row:2;padding-right:8px}.hero-invite{grid-row:3}.hero h1{font-size:36px;line-height:1.4;margin-bottom:0}.hero h1 br:last-of-type{display:block}.hero .eyebrow{margin-bottom:12px}.hero-photo>img{height:325px;border-radius:44% 44% 4px 4px;object-position:50% 42%}.photo-note{width:106px;height:106px;font-size:16px}.photo-note b{font-size:17px}.photo-note span{font-size:16px}.hero .lead{margin-bottom:18px}.intro{padding-top:55px;padding-bottom:55px}.cat-grid{grid-template-columns:1fr;gap:20px;max-width:none}.cat-card{display:grid;grid-template-columns:42% 58%;border-radius:75px 5px 5px 5px;align-items:stretch}.cat-photo{height:100%;min-height:240px}.cat-photo>span{left:8px;bottom:12px;font-size:16px;padding:4px 8px}.cat-body{padding:18px 14px}.cat-tag{font-size:16px}.cat-body h3{font-size:24px;margin:6px 0 12px}.cat-body h3 span{font-size:16px;margin-left:2px}.cat-body>p:not(.cat-tag){font-size:16px;line-height:1.9}.cat-body .little{font-size:16px!important;margin-top:12px;padding-top:12px}.cat-photo.cream img{object-position:center 35%}.scene-grid{grid-template-columns:1fr;gap:30px}.scene-grid figure{display:grid;grid-template-columns:46% 1fr;gap:18px;align-items:center}.scene-grid figure>img{height:215px;aspect-ratio:auto}.scene-grid figcaption{padding:0}.scene-grid figcaption>span{font-size:16px}.scene-grid h3{font-size:17px;line-height:1.6;margin:8px 0}.scene-grid p{font-size:16px;line-height:1.9}.scene-grid small{font-size:16px}.room h2{font-size:24px}.shop-story{padding-bottom:55px}}
@media(max-width:370px){.hero h1{font-size:32px}.hero-photo>img{height:295px}.cat-body{padding:16px 12px}.cat-body h3{font-size:21px}}

.cat-card:first-child .cat-photo img{object-position:30% center}.cat-photo.yuki img{object-position:right top}

/* 読みやすさ: 本文16px、補足14px以上。狭い画面でも文字を縮めない */
body{font-size:16px}.lead,.hero .lead,.intro p:not(.eyebrow),.section-heading>p,.cat-body>p:not(.cat-tag),.visit-copy>p,.experience p,.special p:not(.eyebrow),.room p,.scene-grid p,.join p,.event dl>div,.access p,.faq summary,.faq details p{font-size:16px;line-height:1.9}
.source-note,.sub,.special small,footer small,.event dt,.intro .support{color:#62554d}.source-note,.special small,footer small,.event dd small,.photo-source,.scene-grid small,.cat-body .little{font-size:16px!important;line-height:1.85}
.photo-note span{display:none}.photo-note{transform:none}.brand small{letter-spacing:.03em}.preview{font-size:16px}.preview span{font-size:16px}.event dl>div{grid-template-columns:90px minmax(0,1fr)}.event dd small{margin-top:6px}.cat-body{padding:24px 20px}.cat-body .little{margin-top:18px}.text-link{font-size:16px}.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.cat-card{display:grid;grid-template-columns:43% minmax(0,1fr);border-radius:70px 6px 6px 6px}.cat-photo{height:100%;min-height:325px}.cat-photo>span{left:10px;padding:5px 10px;letter-spacing:.04em}.cat-body h3{font-size:28px}.cat-body h3 span{font-size:16px}.scene-grid figcaption>span{font-size:16px}
@media(max-width:1000px) and (min-width:701px){.cat-card{display:block;border-radius:95px 95px 6px 6px}.cat-photo{height:280px;min-height:0}.hero .eyebrow{letter-spacing:.03em}}
@media(max-width:700px){.preview span{display:block;margin-left:0;font-size:16px}.preview{padding:8px 15px;letter-spacing:0}.brand small{font-size:16px}.brand{font-size:16px}.brand img{display:none}header{height:auto;min-height:88px;gap:14px;padding:14px 20px}nav{font-size:16px;flex-shrink:0}.nav-cta span{margin-left:2px}.hero .eyebrow{font-size:16px;letter-spacing:0}.hero .sub,.event .sub{font-size:16px}.ribbon{flex-wrap:wrap;gap:8px 14px;font-size:16px;padding:20px}.ribbon span{white-space:nowrap}.ribbon i{font-size:16px}.cat-grid{grid-template-columns:1fr;gap:25px}.cat-card{grid-template-columns:43% minmax(0,1fr);padding:20px;gap:0 18px;border-radius:26px 6px 6px 6px}.cat-body{display:contents}.cat-photo{grid-row:1 / 3;min-height:0;height:175px;border-radius:45px 4px 4px 4px;margin-bottom:18px}.cat-tag{grid-column:2;align-self:end;font-size:16px;line-height:1.7}.cat-body h3{grid-column:2;align-self:start;font-size:25px;margin-top:10px;letter-spacing:.02em}.cat-body h3 span{font-size:16px;white-space:nowrap}.cat-body>p:not(.cat-tag),.cat-body .little{grid-column:1 / -1}.cat-photo>span{font-size:16px;left:6px;bottom:8px;padding:3px 6px;letter-spacing:0}.intro .support{font-size:16px!important}.photo-note{width:120px;height:120px;font-size:16px}.photo-note b{font-size:19px}.scene-grid figure{display:block}.scene-grid figure>img{height:320px;width:100%;object-position:center 30%}.scene-grid figcaption{padding-top:18px}.scene-grid h3{font-size:22px}.scene-grid small{font-size:16px}.event{padding:24px 18px}.event dl>div{grid-template-columns:72px minmax(0,1fr);font-size:16px}.join .eyebrow,.special .eyebrow,.access .eyebrow{font-size:16px}.join .pending{font-size:16px}.mobile-cta{font-size:16px}.visit-image>span{font-size:16px;right:12px;padding:10px 12px}.room h2{line-height:1.6}}

.access-map{margin:24px 0 14px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#ece5da}.access-map iframe{display:block;width:100%;height:360px;border:0}.access{grid-template-columns:1.25fr 1fr;gap:55px}@media(max-width:700px){.access{grid-template-columns:1fr;gap:48px}.access-map iframe{height:330px}}

/* アクセスは独立した全幅セクション。FAQは次の段に分離 */
.access{display:block;padding-top:90px;padding-bottom:90px}.access-heading{margin-bottom:36px}.access-heading h2{font-size:36px;margin-bottom:18px}.access .access-invite{font-size:16px;line-height:1.9;margin-bottom:0}.access-place{border-top:1px solid var(--line);padding-top:28px;display:flex;align-items:center;justify-content:space-between;gap:28px}.access-place h3{font-size:23px;margin-bottom:10px}.access-place p{margin-bottom:0}.map-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;flex-shrink:0;border:1px solid var(--red);color:var(--red);padding:14px 22px;border-radius:4px;font-size:16px}.access-map{margin:30px 0 0;border-radius:8px}.access-map iframe{height:440px}.faq-section{background:#f0e8dd;padding:75px 0 85px}.faq-heading{margin-bottom:25px}.faq-heading h2{font-size:32px;margin-bottom:0}.faq-section .faq{max-width:none}.faq details{padding:23px 0}.faq summary{font-size:17px}.faq details p{max-width:850px}.faq details:first-child{border-top:1px solid var(--line)}
@media(max-width:700px){.access{padding-top:60px;padding-bottom:60px}.access-heading{margin-bottom:28px}.access-heading h2{font-size:27px;letter-spacing:.02em}.access-place{display:block;padding-top:24px}.access-place h3{font-size:22px}.map-button{margin-top:22px;width:100%;padding:13px 18px}.access-map{margin-top:24px}.access-map iframe{height:350px}.faq-section{padding:55px 0 65px}.faq-heading h2{font-size:28px}.faq summary{font-size:16px}.faq details{padding:21px 0}}

/* 全セクションへのナビゲーションと、本文を締めるフッター */
.site-header{max-width:1440px;height:auto;min-height:108px;gap:28px;padding:22px 40px}.site-header .brand{flex-shrink:0}.site-header .brand small{font-size:16px}.site-header nav{gap:22px;flex-wrap:wrap;justify-content:flex-end;font-size:16px}.site-header nav a{display:block;padding:9px 0;border-bottom:1px solid transparent}.site-header nav a:hover{border-color:var(--red);opacity:1;color:var(--red)}.site-header nav a[href="#join"]{background:var(--red);color:#fff;padding:10px 17px;border-radius:4px}.menu-toggle{display:none}.site-footer{background:#71323c;color:#fff8ed;text-align:left;padding:65px 0 28px}.site-footer a:focus-visible{outline-color:#fff8ed}.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding-bottom:42px}.footer-home{display:inline-flex;align-items:center;gap:14px;font-size:25px;font-weight:600}.site-footer .footer-home img{margin:0;background:#fff8ed;border-radius:50%;padding:6px;width:45px;height:45px}.site-footer p{font-size:16px;font-weight:400;line-height:1.9}.footer-brand>p{margin-top:14px}.site-footer .footer-message{margin-top:22px;color:#f0dce0}.site-footer .footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 28px;align-content:start;font-size:16px}.footer-nav a{display:block;padding:10px 0;border-bottom:1px solid #ffffff30}.footer-info{border-top:1px solid #ffffff40;padding-top:32px;display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:35px}.site-footer .footer-label{font-size:16px;color:#eed2d7;margin-bottom:10px}.footer-info p+p{margin-top:8px}.footer-social{display:flex;flex-direction:column;gap:18px}.footer-social a{display:flex;justify-content:space-between;gap:20px;font-size:16px;padding:10px 0;border-bottom:1px solid #ffffff50}.footer-bottom{border-top:1px solid #ffffff40;margin-top:38px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:16px}.site-footer .footer-bottom small{color:#f0dce0;margin:0;font-size:16px}
@media(max-width:1150px){.site-header{flex-wrap:wrap;gap:12px}.site-header nav{justify-content:flex-start;gap:18px}}
@media(max-width:1180px){.site-header{padding:18px 24px;min-height:88px;position:relative;justify-content:space-between;gap:0}.site-header .brand{font-size:17px}.site-header .brand img{display:none}.site-header .brand small{font-size:16px;letter-spacing:0}.menu-toggle{display:flex;align-items:center;gap:8px;padding:10px 0 10px 12px;font-size:16px;min-height:44px}.menu-icon{font-size:22px}.menu-toggle:focus-visible{outline:3px solid var(--red);outline-offset:4px}.site-header #site-nav{display:none;flex-basis:100%;margin-top:18px;padding-top:12px;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px 20px}.site-header #site-nav.is-open{display:grid}.site-header #site-nav>a{display:block;padding:12px 0;font-size:16px}.site-header #site-nav>a[href="#join"]{padding:12px;text-align:center}.site-header .brand small{max-width:235px}.footer-main{grid-template-columns:1fr;gap:30px}.footer-info{grid-template-columns:1fr 1fr;gap:30px}.footer-social{grid-column:1/-1;max-width:360px;width:100%}.site-footer{padding-top:48px;padding-bottom:105px}.footer-bottom{display:block}.footer-bottom>span{display:block;margin-top:12px}.site-footer .footer-nav{gap:4px 24px}}
@media(max-width:400px){.site-header{padding-left:18px;padding-right:18px}.site-header .brand{font-size:16px}.site-header .brand small{max-width:215px}.menu-toggle{gap:5px;padding-left:5px}.footer-info{grid-template-columns:1fr}.footer-home{font-size:23px}}

@media(max-width:1180px){.brand-event{display:block}.site-header .brand small{line-height:1.6}.site-header .brand{max-width:calc(100% - 90px)}}

.site-footer .footer-nav>a{display:block}

.special{background:#f5e6dc;border:1px solid #c99e8b;border-left:5px solid var(--red);padding:28px}.special .special-badge{display:inline-block;background:var(--red);color:#fff;padding:6px 13px;border-radius:3px;font-size:16px;margin-bottom:17px;letter-spacing:.04em}.special h3{font-size:28px;color:var(--red);line-height:1.5}.special small{border-top:1px solid #cdb5a6;padding-top:15px;margin-top:18px}.brand-title{display:block;font-size:19px;letter-spacing:0}.site-header{flex-wrap:wrap}.footer-home{line-height:1.6}.footer-home>span{max-width:390px}@media(max-width:1180px){.brand-title{font-size:18px;max-width:235px}.special{padding:24px 20px}.special h3{font-size:25px}.footer-home>span{font-size:23px;max-width:260px}}

/* スマホの開閉ボタンとドロップダウンを明確に */
@media(max-width:1180px){
.site-header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line);padding:14px 20px;flex-wrap:nowrap}
.menu-toggle{border:1px solid #b78b84;border-radius:8px;min-width:68px;min-height:64px;padding:8px;display:flex;flex-direction:column-reverse;justify-content:center;gap:7px;color:var(--red);background:#fffaf2}
.menu-label{font-size:16px;line-height:1.2}.menu-icon{position:relative;display:block;width:24px;height:18px}.menu-icon i{position:absolute;left:0;width:24px;height:2px;background:currentColor;border-radius:2px;transition:transform .18s,opacity .18s}.menu-icon i:nth-child(1){top:0}.menu-icon i:nth-child(2){top:8px}.menu-icon i:nth-child(3){top:16px}
.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.site-header #site-nav{position:absolute;top:100%;left:0;right:0;margin:0;padding:12px 24px 24px;background:var(--paper);border-top:0;border-bottom:1px solid var(--line);box-shadow:0 16px 22px #382c2924;grid-template-columns:1fr;gap:0;max-height:calc(100dvh - 135px);overflow-y:auto}
.site-header #site-nav>a{font-size:16px;padding:15px 4px;border-bottom:1px solid var(--line)}.site-header #site-nav>a::after{content:'↓';float:right;color:var(--red)}.site-header #site-nav>a[href="#join"]{order:1;margin-top:16px;padding:14px 18px}.site-header #site-nav>a[href="#join"]::after{color:white}
section[id]{scroll-margin-top:135px}
}

/* ヘッダーは画面全幅、ヒーローは短いコピー専用の比率に */
.site-header{width:100%;max-width:none;margin:0;display:flex;flex-wrap:nowrap;justify-content:space-between;gap:30px;padding:20px 3.5%;min-height:100px}.site-header #site-nav{flex-wrap:nowrap;gap:22px}.site-header #site-nav>a{white-space:nowrap}.site-header .brand small{letter-spacing:0}.hero{grid-template-columns:1fr 1.05fr;gap:55px;padding:35px 70px 55px;max-width:1360px}.hero h1.hero-headline{margin-bottom:26px;line-height:1.35;font-size:clamp(52px,4.7vw,68px);letter-spacing:.035em}.hero-headline .hero-kicker{display:block;font-size:.53em;line-height:1.4;margin-bottom:13px;color:var(--ink)}.hero-headline .hero-main{display:block;color:var(--red)}.hero-photo>img{height:550px}.hero .eyebrow{margin-bottom:25px}.hero .lead{margin-bottom:24px}.hero .vertical{right:18px}.photo-note{right:-8px}
@media(min-width:701px) and (max-width:1180px){.hero{padding:30px 45px 50px;gap:35px}.hero h1.hero-headline{font-size:52px}.hero-photo>img{height:500px}}
@media(max-width:1180px){.site-header{padding:14px 24px;gap:20px;min-height:94px}.site-header #site-nav{gap:0}.site-header .brand{max-width:calc(100% - 90px)}.menu-toggle{flex-shrink:0}}
@media(max-width:700px){.site-header{padding:12px 20px}.hero{grid-template-columns:1fr;gap:22px;padding:25px 24px 35px}.hero h1.hero-headline{font-size:46px;line-height:1.3;margin-bottom:0;letter-spacing:.02em}.hero-headline .hero-kicker{font-size:25px;margin-bottom:10px}.hero .eyebrow{margin-bottom:18px}.hero-photo>img{height:325px}.hero-photo{padding-right:8px}.photo-note{right:-4px}.hero .lead{margin-bottom:18px}}

.hero h1.hero-invitation{font-size:clamp(40px,4.1vw,59px);line-height:1.5;color:var(--ink);letter-spacing:.035em}@media(min-width:701px) and (max-width:1180px){.hero h1.hero-invitation{font-size:42px}}@media(max-width:700px){.hero h1.hero-invitation{font-size:37px;line-height:1.5;letter-spacing:.02em}}@media(max-width:370px){.hero h1.hero-invitation{font-size:34px}}

/* ヘッダーとメインビジュアルの境界 */
.site-header{background:#fffdf9;border-bottom:1px solid #d8c8b8;box-shadow:0 3px 10px #382c2908;position:relative;z-index:20}@media(max-width:1180px){.site-header{position:sticky;top:0}.site-header #site-nav{background:#fffdf9}}

/* 全画面幅でヘッダーを上端に追従 */
.site-header{position:sticky;top:0;z-index:20}section[id],#top{scroll-margin-top:125px}@media(max-width:1180px){section[id],#top{scroll-margin-top:140px}}

/* 写真中心の一枚ページ: ヘッダーはコンパクトな通常配置 */
.site-header{position:relative;top:auto;min-height:76px;padding-top:12px;padding-bottom:12px}.site-header .brand{gap:10px}.site-header .brand small{line-height:1.5}.site-header .brand-title{line-height:1.5}section[id],#top{scroll-margin-top:24px}
@media(max-width:1180px){.site-header{position:relative;top:auto;min-height:78px;padding:12px 20px}.site-header .brand-event{display:inline}.site-header .brand small{font-size:16px;max-width:245px}.menu-toggle{min-height:54px;min-width:62px;padding:6px;gap:5px}.site-header #site-nav{max-height:calc(100dvh - 120px)}section[id],#top{scroll-margin-top:24px}}
@media(max-width:700px){.site-header .brand small{max-width:235px}.site-header .brand-title{font-size:17px}.site-header .brand-event{display:block}.site-header .brand small{line-height:1.35}.site-header{padding-top:10px;padding-bottom:10px}}

/* 公開版: コンパクトな高さを維持して追従 */
.site-header{position:sticky;top:0}section[id],#top{scroll-margin-top:100px}@media(max-width:1180px){section[id],#top{scroll-margin-top:110px}}

@font-face{font-family:"Neko Zen Maru";src:url("assets/zen-maru-headline.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}.hero h1.hero-gentle{font-family:"Neko Zen Maru","Hiragino Maru Gothic ProN",sans-serif;font-weight:400;font-size:clamp(40px,3.7vw,54px);line-height:1.85;letter-spacing:0;margin-bottom:23px}.hero-gentle ruby{ruby-position:over}.hero-gentle rt{font-size:.32em;font-weight:400;letter-spacing:0}.hero-gentle span{color:var(--red)}@media(min-width:701px) and (max-width:1180px){.hero h1.hero-gentle{font-size:38px}}@media(max-width:700px){.hero h1.hero-gentle{font-size:39px;line-height:1.85;margin-bottom:0}}@media(max-width:370px){.hero h1.hero-gentle{font-size:36px}}

/* 小さい注記・リンクを再調整: 本文17px、補足も16px */
body{font-size:17px}.lead,.hero .lead,.intro p:not(.eyebrow),.section-heading>p,.cat-body>p:not(.cat-tag),.visit-copy>p,.experience p,.special p:not(.eyebrow),.room p,.scene-grid p,.join p,.event dl>div,.access p,.faq details p{font-size:17px;line-height:1.95}.source-note,.sub,.special small,.event dt,.intro .support,.scene-grid small{color:#544740}.source-note,.special small,.event dd small,.scene-grid small,.cat-body .little,.intro .support{font-size:16px!important}.site-footer p,.footer-social a,.site-footer .footer-bottom small{font-size:16px}.site-header #site-nav{gap:18px}.site-header .brand small{font-size:16px}.photo-note{min-width:140px;min-height:140px}.site-footer .footer-bottom small{color:#fff1e5}.hero-gentle rt{font-size:.36em}.cat-body .little{line-height:1.8}@media(max-width:700px){.site-header .brand small{font-size:16px}.site-header .brand-title{font-size:18px}.site-header .brand small{max-width:235px}.event dl>div{grid-template-columns:78px minmax(0,1fr)}.photo-note{min-width:130px;min-height:130px}.hero .eyebrow{font-size:16px}.visit-image>span{font-size:16px}.site-header #site-nav{gap:0}.site-header #site-nav>a{font-size:17px}.footer-info p{font-size:16px}.ribbon{font-size:16px}.hero h1.hero-gentle{font-size:39px}}@media(max-width:370px){.hero h1.hero-gentle{font-size:36px}}

/* 企画の所属・案内見出しを本文よりはっきり見せる */
.hero .event-heading{font-size:22px;line-height:1.65;letter-spacing:.03em;font-weight:600;border-left:0;padding-left:0;margin-bottom:26px}.event-heading span{display:inline-block}.site-header .brand small{font-size:17px;font-weight:500}.eyebrow{font-size:18px}.cat-tag{font-size:17px}.text-link,.photo-source{font-size:17px}.site-footer .footer-brand>p:first-of-type{font-size:18px;font-weight:500}.site-footer .footer-label{font-size:17px}.event dt{font-size:17px}@media(max-width:700px){.hero .event-heading{font-size:20px;line-height:1.55;margin-bottom:24px}.hero .event-heading span{display:block}.site-header .brand small{font-size:17px}.eyebrow{font-size:17px}.cat-tag{font-size:17px}.site-header .brand small{line-height:1.35}.text-link{font-size:17px}.hero-gentle rt{font-size:16px}}


/* ルビ専用描画のブラウザ差を避け、親文字のボックスへ配置 */
.hero-gentle .ruby-word{display:inline-block;position:relative;line-height:1}.hero-gentle .ruby-letter{display:block}.hero-gentle .ruby-reading{position:absolute;left:0;bottom:calc(100% - .12em);width:100%;font-size:.36em;line-height:1;text-align:center;letter-spacing:0;white-space:nowrap}@media(max-width:700px){.hero-gentle .ruby-reading{font-size:16px}}
