:root {
  --c-bg:#FBF8F3;
  --c-bg-soft:#F3EEE4;
  --c-line:#E8E4DE;
  --c-ink:#1A1A1A;
  --c-ink-2:#4A4A4A;
  --c-primary:#3A5A40;
  --c-primary-d:#2A4230;
  --c-accent:#E8B4A0;
  --c-link:#2C4A6B;
  --c-gold:#a0742f;
  --f-jp-serif:"Noto Serif JP","Yu Mincho","游明朝",serif;
  --f-jp-sans:"Noto Sans JP","Yu Gothic","游ゴシック",sans-serif;
  --f-en-serif:"Cormorant Garamond",Georgia,serif;
  --f-en-sans:Inter,-apple-system,"Segoe UI",sans-serif;
  --f-zh-serif:"Noto Serif TC",PMingLiU,serif;
  --f-zh-sans:"Noto Sans TC","Microsoft JhengHei",sans-serif;
  --f-zhs-serif:"Noto Serif SC",SimSun,serif;
  --f-zhs-sans:"Noto Sans SC","Microsoft YaHei",sans-serif;
  --f-ko-serif:"Noto Serif KR","Nanum Myeongjo",serif;
  --f-ko-sans:"Noto Sans KR","Malgun Gothic",sans-serif;
  --max-w:1200px;
  --pad-x:24px;
  --radius:4px}
*,*::before,*::after {
  box-sizing:border-box}
html,body {
  margin:0;
  padding:0}
img {
  max-width:100%;
  height:auto;
  display:block}
a {
  color:var(--c-link);
  text-decoration:none}
a:hover {
  color:var(--c-ink)}
button {
  font:inherit;
  cursor:pointer}
body {
  background:var(--c-bg);
  color:var(--c-ink);
  font-family:var(--f-jp-sans);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased}
body[lang=en] {
  font-family:var(--f-en-sans)}
body[lang=zh-Hant] {
  font-family:var(--f-zh-sans)}
body[lang=zh-Hans] {
  font-family:var(--f-zhs-sans)}
body[lang=ko] {
  font-family:var(--f-ko-sans)}
h1,h2,h3,h4 {
  font-family:var(--f-jp-serif);
  font-weight:500;
  line-height:1.35;
  letter-spacing:0.02em;
  margin:0 0 0.6em 0}
body[lang=en] h1,body[lang=en] h2,body[lang=en] h3,body[lang=en] h4 {
  font-family:var(--f-en-serif)}
body[lang=zh-Hant] h1,body[lang=zh-Hant] h2,body[lang=zh-Hant] h3,body[lang=zh-Hant] h4 {
  font-family:var(--f-zh-serif)}
body[lang=zh-Hans] h1,body[lang=zh-Hans] h2,body[lang=zh-Hans] h3,body[lang=zh-Hans] h4 {
  font-family:var(--f-zhs-serif)}
body[lang=ko] h1,body[lang=ko] h2,body[lang=ko] h3,body[lang=ko] h4 {
  font-family:var(--f-ko-serif)}
h1 {
  font-size:32px}
h2 {
  font-size:24px}
h3 {
  font-size:20px}
p {
  margin:0 0 1em 0}
@media (min-width:768px) {
h1 {
  font-size:44px}
h2 {
  font-size:32px}
h3 {
  font-size:22px}
body {
  font-size:17px}
}
@media (min-width:1024px) {
h1 {
  font-size:56px}
h2 {
  font-size:40px}
body {
  font-size:18px}
}
.container {
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--pad-x)}
.site-header {
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(251,248,243,0.94);
  backdrop-filter:blur(6px)}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  height:64px}
.brand {
  font-family:var(--f-en-serif);
  font-size:20px;
  font-weight:500;
  letter-spacing:0.06em;
  color:var(--c-ink)}
.brand small {
  display:block;
  font-family:var(--f-jp-sans);
  font-size:10px;
  letter-spacing:0.12em;
  color:var(--c-ink-2);
  margin-top:2px}
.nav-primary {
  display:none;
  gap:24px;
  align-items:center}
.nav-primary a {
  color:var(--c-ink);
  font-size:14px;
  letter-spacing:0.06em}
.nav-primary a:hover {
  color:var(--c-primary)}
@media (min-width:1024px) {
.nav-primary {
  display:flex}
}
.header-right {
  display:flex;
  align-items:center;
  gap:12px}
.lang-switch {
  position:relative;
  font-size:13px;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  padding:6px 10px;
  background:#fff;
  color:var(--c-ink)}
.lang-switch summary {
  cursor:pointer;
  list-style:none;
  outline:none}
.lang-switch summary::-webkit-details-marker {
  display:none}
.lang-menu {
  position:absolute;
  right:0;
  top:calc(100%+4px);
  min-width:140px;
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  padding:6px 0;
  box-shadow:0 8px 24px rgba(0,0,0,0.08)}
.lang-menu a {
  display:block;
  padding:8px 14px;
  color:var(--c-ink);
  font-size:13px}
.lang-menu a:hover {
  background:var(--c-bg-soft)}
.lang-menu a.is-current {
  color:var(--c-primary);
  font-weight:600}
.menu-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  background:#fff;
  color:var(--c-ink)}
@media (min-width:1024px) {
.menu-toggle {
  display:none}
}
.mobile-nav {
  display:none;
  background:#fff;
  border-top:1px solid var(--c-line);
  padding:12px var(--pad-x) 20px}
.mobile-nav.is-open {
  display:block}
.mobile-nav a {
  display:block;
  padding:12px 0;
  color:var(--c-ink);
  font-size:15px}
.hero {
  position:relative;
  min-height:60vh;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#fff;
  text-align:center;
  padding:80px 24px;
  background:linear-gradient(135deg,#3A5A40 0%,#1F3226 60%,#0B140E 100%)}
.hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(232,180,160,0.28) 0%,transparent 55%),radial-gradient(circle at 70% 80%,rgba(176,141,87,0.2) 0%,transparent 55%);
  pointer-events:none}
.hero-inner {
  position:relative;
  z-index:2;
  max-width:880px;
  margin:0 auto}
.hero-eyebrow {
  font-size:12px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  opacity:0.85;
  margin-bottom:20px}
.hero h1 {
  color:#fff;
  font-size:32px;
  line-height:1.4}
.hero .lead {
  margin-top:20px;
  color:rgba(255,255,255,0.9);
  font-size:15px;
  line-height:1.9}
.hero-ctas {
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:32px}
@media (min-width:768px) {
.hero {
  min-height:72vh}
.hero h1 {
  font-size:48px}
.hero .lead {
  font-size:17px}
}
@media (min-width:1024px) {
.hero h1 {
  font-size:60px}
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 24px;
  border-radius:var(--radius);
  border:1px solid transparent;
  font-size:14px;
  letter-spacing:0.06em;
  transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease;
  cursor:pointer}
.btn-primary {
  background:var(--c-link);
  color:#fff}
.btn-primary:hover {
  background:var(--c-ink);
  color:#fff}
.btn-ghost {
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,0.6)}
.btn-ghost:hover {
  background:rgba(255,255,255,0.12);
  color:#fff}
.btn-outline {
  background:#fff;
  color:var(--c-ink);
  border-color:var(--c-line)}
.btn-outline:hover {
  background:var(--c-bg-soft)}
.section {
  padding:64px 0}
.section+.section {
  border-top:1px solid var(--c-line)}
.section-head {
  text-align:center;
  max-width:720px;
  margin:0 auto 40px}
.section-head .eyebrow {
  font-size:12px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--c-primary);
  margin-bottom:12px}
.section-head p {
  color:var(--c-ink-2)}
@media (min-width:768px) {
.section {
  padding:96px 0}
}
.grid {
  display:grid;
  gap:24px}
.grid-3 {
  grid-template-columns:1fr}
.grid-2 {
  grid-template-columns:1fr}
@media (min-width:768px) {
.grid-2 {
  grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px) {
.grid-3 {
  grid-template-columns:repeat(3,1fr)}
}
.card {
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform 200ms ease,box-shadow 200ms ease}
.card:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,0.08)}
.card-thumb {
  aspect-ratio:4 / 3;
  background:linear-gradient(135deg,#3A5A40 0%,#1F3226 100%);
  color:rgba(255,255,255,0.7);
  display:grid;
  place-items:center;
  font-family:var(--f-en-serif);
  font-size:14px;
  letter-spacing:0.14em;
  text-align:center;
  padding:24px}
.card-thumb.thumb-sakura {
  background:linear-gradient(135deg,#E8B4A0 0%,#B0745C 100%)}
.card-thumb.thumb-lake {
  background:linear-gradient(135deg,#4A6FA5 0%,#1F3D6B 100%)}
.card-thumb.thumb-machiya {
  background:linear-gradient(135deg,#a0742f 0%,#6A5029 100%)}
.card-body {
  padding:20px 20px 24px;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1}
.card-body h3 {
  font-size:20px;
  margin:0}
.card-body .meta {
  font-size:12px;
  color:var(--c-primary);
  letter-spacing:0.14em;
  text-transform:uppercase}
.card-body .desc {
  color:var(--c-ink-2);
  font-size:14px;
  margin:0}
.card-body .price {
  margin-top:auto;
  font-family:var(--f-en-sans);
  font-size:14px;
  color:var(--c-ink);
  letter-spacing:0.02em}
.card-body .cta {
  margin-top:12px;
  font-size:13px;
  color:var(--c-link);
  letter-spacing:0.06em}
.diff-list {
  display:grid;
  gap:24px;
  grid-template-columns:1fr}
@media (min-width:768px) {
.diff-list {
  grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px) {
.diff-list {
  grid-template-columns:repeat(4,1fr)}
}
.diff-item {
  padding:24px;
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--radius)}
.diff-item .num {
  font-family:var(--f-en-serif);
  font-size:28px;
  color:var(--c-accent);
  margin-bottom:8px}
.diff-item h3 {
  font-size:18px;
  margin-bottom:8px}
.diff-item p {
  font-size:14px;
  color:var(--c-ink-2);
  margin:0}
.breadcrumb {
  font-size:12px;
  color:var(--c-ink-2);
  padding:16px var(--pad-x);}
.breadcrumb a {
  color:var(--c-ink-2)}
.breadcrumb a:hover {
  color:var(--c-ink)}
.page-hero {
  background:linear-gradient(135deg,#3A5A40 0%,#1F3226 100%);
  color:#fff;
  padding:64px 0 80px;
  text-align:center}
.page-hero.hero-sakura {
  background:linear-gradient(135deg,#B0745C 0%,#6A3E2E 100%)}
.page-hero.hero-lake {
  background:linear-gradient(135deg,#4A6FA5 0%,#1F3D6B 100%)}
.page-hero.hero-machiya {
  background:linear-gradient(135deg,#6E5E3E 0%,#3A2E18 100%)}
.page-hero.hero-chapel {
  background:linear-gradient(135deg,#7A8E7C 0%,#3A5A40 100%)}
.page-hero h1 {
  color:#fff}
.page-hero .lead {
  color:rgba(255,255,255,0.9);
  max-width:720px;
  margin:16px auto 0}
.two-col {
  display:grid;
  gap:40px;
  grid-template-columns:1fr}
@media (min-width:900px) {
.two-col {
  grid-template-columns:1.4fr 1fr;
  align-items:start}
}
.info-table {
  width:100%;
  border-collapse:collapse;
  font-size:14px}
.info-table th,.info-table td {
  text-align:left;
  padding:12px 14px;
  vertical-align:top}
.info-table th {
  background:var(--c-bg-soft);
  color:var(--c-ink);
  font-weight:500;
  width:40%;
  white-space:nowrap}
.spots-list {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:16px}
.spots-list li {
  padding:16px 18px;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  background:#fff}
.spots-list h4 {
  margin:0 0 4px;
  font-size:15px}
.spots-list p {
  margin:0;
  font-size:13px;
  color:var(--c-ink-2)}
.plan-includes {
  padding:24px;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  background:#fff}
.plan-includes ul {
  list-style:none;
  padding:0;
  margin:0 0 16px;
  display:grid;
  gap:8px;
  font-size:14px}
.plan-includes .yes::before {
  content:"✓ ";
  color:var(--c-primary);
  font-weight:700}
.plan-includes .no::before {
  content:"× ";
  color:#B34747;
  font-weight:700}
.timeline {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:12px}
.timeline li {
  padding:12px 16px;
  border-left:3px solid var(--c-primary);
  background:#fff;
  border-radius:0 var(--radius) var(--radius) 0;
  font-size:14px}
.timeline .t {
  font-family:var(--f-en-sans);
  font-weight:600;
  margin-right:8px;
  color:var(--c-primary)}
.hero {
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat}
.page-hero {
  position:relative;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat}
.section-gallery {
  padding:72px 0;
  background:var(--c-bg-soft)}
.gallery {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px}
@media (min-width:640px) {
.gallery {
  grid-template-columns:repeat(3,1fr);
  gap:12px}
}
@media (min-width:1024px) {
.gallery {
  grid-template-columns:repeat(4,1fr);
  gap:12px}
}
.gallery-item {
  position:relative;
  display:block;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:#e8e4de;
  border-radius:var(--radius)}
.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 400ms ease,filter 400ms ease;
  filter:saturate(0.94)}
.gallery-item:hover img {
  transform:scale(1.04);
  filter:saturate(1)}
.section-mosaic {
  padding:48px 0 72px;
  background:var(--c-bg)}
.mosaic-eyebrow {
  text-align:center;
  font-size:12px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--c-primary);
  margin-bottom:12px}
.mosaic-lead {
  text-align:center;
  color:var(--c-ink-2);
  max-width:640px;
  margin:0 auto 32px;
  font-size:15px}
.mosaic {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px}
.mosaic a {
  display:block;
  overflow:hidden;
  background:#e8e4de;
  border-radius:var(--radius);
  aspect-ratio:1 / 1}
.mosaic a img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 500ms ease}
.mosaic a:hover img {
  transform:scale(1.03)}
@media (min-width:768px) {
.mosaic {
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:repeat(2,1fr);
  gap:12px;
  aspect-ratio:5 / 3}
.mosaic a {
  aspect-ratio:auto}
.mosaic a:nth-child(1) {
  grid-column:1;
  grid-row:1 / span 2}
.mosaic a:nth-child(2) {
  grid-column:2;
  grid-row:1}
.mosaic a:nth-child(3) {
  grid-column:3;
  grid-row:1}
.mosaic a:nth-child(4) {
  grid-column:2;
  grid-row:2}
.mosaic a:nth-child(5) {
  grid-column:3;
  grid-row:2}
}
@media (min-width:1024px) {
.mosaic {
  grid-template-columns:2fr 1fr 1fr 1fr;
  grid-template-rows:repeat(2,1fr);
  aspect-ratio:7 / 3}
.mosaic a:nth-child(1) {
  grid-column:1;
  grid-row:1 / span 2}
.mosaic a:nth-child(2) {
  grid-column:2;
  grid-row:1}
.mosaic a:nth-child(3) {
  grid-column:3;
  grid-row:1}
.mosaic a:nth-child(4) {
  grid-column:4;
  grid-row:1}
.mosaic a:nth-child(5) {
  grid-column:2;
  grid-row:2}
.mosaic a:nth-child(6) {
  grid-column:3;
  grid-row:2}
.mosaic a:nth-child(7) {
  grid-column:4;
  grid-row:2}
}
.card-photo {
  aspect-ratio:4 / 3;
  overflow:hidden;
  position:relative;
  background:#e8e4de}
.card-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 400ms ease,filter 400ms ease}
.card:hover .card-photo img {
  transform:scale(1.04)}
.card-photo .card-photo-kicker {
  position:absolute;
  top:12px;
  left:12px;
  padding:4px 10px;
  background:rgba(0,0,0,0.55);
  color:#fff;
  font-family:var(--f-en-serif);
  font-size:11px;
  letter-spacing:0.2em;
  border-radius:2px;
  backdrop-filter:blur(4px)}
.photo-strip {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:16px 0 24px}
@media (min-width:768px) {
.photo-strip {
  grid-template-columns:repeat(4,1fr)}
}
.strip-item {
  display:block;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border-radius:var(--radius);
  background:#e8e4de}
.strip-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 300ms ease}
.strip-item:hover img {
  transform:scale(1.04)}
.lightbox {
  position:fixed;
  inset:0;
  background:rgba(10,10,10,0.92);
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px}
.lightbox.is-open {
  display:flex}
.lightbox img {
  max-width:100%;
  max-height:92vh;
  object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,0.5)}
.lightbox-close {
  position:absolute;
  top:16px;
  right:20px;
  width:44px;
  height:44px;
  background:rgba(255,255,255,0.15);
  color:#fff;
  border:0;
  border-radius:50%;
  font-size:20px;
  cursor:pointer}
.lightbox-nav {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  background:rgba(255,255,255,0.15);
  color:#fff;
  border:0;
  border-radius:50%;
  font-size:22px;
  cursor:pointer}
.lightbox-prev {
  left:16px}
.lightbox-next {
  right:16px}
.video-cta {
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 18px;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.5);
  color:#fff;
  border-radius:999px;
  font-size:13px;
  letter-spacing:0.06em;
  backdrop-filter:blur(6px);
  transition:background-color 160ms}
.video-cta:hover {
  background:rgba(255,255,255,0.22);
  color:#fff}
.video-cta .play-icon {
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#fff;
  color:#14201A;
  font-size:10px}
.cta-band {
  background:var(--c-bg-soft);
  padding:48px 0;
  text-align:center}
.cta-band h2 {
  margin-bottom:24px}
.channel-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  max-width:720px;
  margin:0 auto}
@media (min-width:768px) {
.channel-list {
}
}
.channel-list a {
  padding:14px 12px;
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  text-align:center;
  color:var(--c-ink);
  transition:background-color 160ms}
.channel-list a:hover {
  background:var(--c-bg)}
.channel-list .name {
  display:block;
  font-weight:500;
  font-size:14px}
.channel-list .desc {
  display:block;
  font-size:11px;
  color:var(--c-ink-2);
  margin-top:4px}
.site-footer {
  font-size:14px;
  background:var(--c-ink-lvf);
  color:rgba(255,255,255,0.7);
  padding:72px 0 32px}
.footer-heading {
  color:var(--c-gold-lvf);
  font-family:var(--f-en-optic);
  font-style:italic;
  letter-spacing:0.24em;
  text-transform:uppercase;
  font-size:12px;
  margin-bottom:16px}
.footer-heading a {
  color:var(--c-gold-lvf)}
.footer-grid {
  display:grid;
  gap:32px;
  grid-template-columns:1fr}
@media (min-width:768px) {
.footer-grid {
  grid-template-columns:2fr 1fr 1fr 1fr}
}
.site-footer .footer-link {
  color:rgba(255,255,255,0.72);
  display:block;
  padding:4px 0}
.site-footer .footer-link:hover {
  color:#fff}
.footer-tagline {
  font-family:var(--f-jp-serif);
  color:#fff;
  font-size:17px;
  line-height:1.7;
  letter-spacing:0.04em;
  padding-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,0.12);
  margin-bottom:20px}
body[lang=en] .footer-tagline {
  font-family:var(--f-en-serif)}
body[lang=zh-Hant] .footer-tagline {
  font-family:var(--f-zh-serif)}
body[lang=zh-Hans] .footer-tagline {
  font-family:var(--f-zhs-serif)}
body[lang=ko] .footer-tagline {
  font-family:var(--f-ko-serif)}
.footer-copy {
  border-top:1px solid rgba(255,255,255,0.12);
  margin-top:40px;
  padding-top:20px;
  font-size:12px;
  text-align:center;
  color:rgba(255,255,255,0.4);
  letter-spacing:0.1em;
  font-family:var(--f-en-sans)}
.footer-copy {
}
.form {
  display:grid;
  gap:16px;
  max-width:640px;
  margin:0 auto}
.form label {
  display:block;
  font-size:13px;
  color:var(--c-ink-2);
  margin-bottom:6px}
.form input,.form select,.form textarea {
  width:100%;
  padding:12px 14px;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  background:#fff;
  font:inherit;
  color:var(--c-ink)}
.form textarea {
  min-height:140px;
  resize:vertical}
.form-row {
  display:grid;
  gap:16px}
@media (min-width:640px) {
.form-row.two {
  grid-template-columns:1fr 1fr}
}
.form .submit {
  justify-self:center;
  padding:14px 40px}
.text-center {
  text-align:center}
.mt-2 {
  margin-top:16px}
.mt-4 {
  margin-top:32px}
.mb-2 {
  margin-bottom:16px}
.lang-bar {
  background:linear-gradient(180deg,#FFF 0%,#F8F5EF 100%);
  padding:10px 0;
  font-size:13px;
  top:0;
  z-index:200;
  box-shadow:0 1px 4px rgba(0,0,0,0.03)}
.lang-bar-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap}
.lang-bar-left {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--c-ink);
  font-weight:600}
.lang-globe {
  font-size:16px}
.lang-bar-label {
  color:var(--c-ink);
  font-size:13px;
  letter-spacing:0.04em}
.lang-bar-right {
  display:inline-flex;
  align-items:center}
#google_translate_element {
  display:inline-block}
.lang-reset-btn {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  background:#fff;
  border:1px solid var(--c-primary);
  border-radius:20px;
  color:var(--c-primary);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.04em;
  cursor:pointer;
  transition:background 0.2s ease,color 0.2s ease}
.lang-reset-btn:hover {
  background:var(--c-primary);
  color:#fff}
.lang-reset-flag {
  font-size:14px}
@media (max-width:640px) {
.lang-bar-inner {
  justify-content:flex-start;
  padding:12px}
.lang-bar-label {
  font-size:12px}
.lang-reset-text {
  display:none}
.lang-reset-btn {
  padding:6px 8px}
}
.hero-slideshow {
  position:relative;
  width:100%;
  height:52vh;
  min-height:360px;
  max-height:720px;
  overflow:hidden;
  background:#111}
@media (min-width:768px) {
.hero-slideshow {
  height:72vh;
  min-height:480px}
}
@media (min-width:1024px) {
.hero-slideshow {
  height:82vh;
  max-height:840px}
}
.hero-slides {
  position:absolute;
  inset:0}
.hero-slide {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.2s ease-in-out;
  will-change:opacity}
.hero-slide.is-active {
  opacity:1;
  z-index:1}
.hero-slide-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0.10) 0%,rgba(0,0,0,0.05) 40%,rgba(0,0,0,0.25) 100%);
  z-index:2;
  pointer-events:none}
.hero-arrow {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:44px;
  height:44px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,0.75);
  color:var(--c-ink);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background 0.2s ease}
.hero-arrow:hover {
  background:#fff}
.hero-arrow-prev {
  left:16px}
.hero-arrow-next {
  right:16px}
.hero-dots {
  position:absolute;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  gap:8px}
.hero-dot {
  width:10px;
  height:10px;
  border-radius:50%;
  border:none;
  background:rgba(255,255,255,0.45);
  cursor:pointer;
  padding:0;
  transition:background 0.2s ease,transform 0.2s ease}
.hero-dot:hover {
  background:rgba(255,255,255,0.75)}
.hero-dot.is-active {
  background:#fff;
  transform:scale(1.3)}
.area-menu-strip {
  background:#fff;
  padding:20px 0;
  position:relative;
  z-index:5;
  box-shadow:0 4px 20px rgba(0,0,0,0.04)}
.area-menu {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:12px}
@media (min-width:640px) {
.area-menu {
  grid-template-columns:repeat(3,1fr);
  gap:16px}
}
.area-menu-item {
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 14px;
  border:1px solid var(--c-line);
  border-radius:6px;
  background:#FBF8F3;
  color:var(--c-ink);
  transition:transform 0.2s ease,box-shadow 0.2s ease,border-color 0.2s ease}
.area-menu-item:hover {
  border-color:var(--c-primary);
  box-shadow:0 6px 20px rgba(58,90,64,0.12);
  color:var(--c-ink)}
.area-menu-photo {
  flex-shrink:0;
  width:64px;
  height:64px;
  border-radius:4px;
  overflow:hidden;
  background:var(--c-bg-soft)}
.area-menu-photo img {
  width:100%;
  height:100%;
  object-fit:cover}
.area-menu-body {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0}
.area-menu-kicker {
  font-family:var(--f-en-sans);
  font-size:10px;
  letter-spacing:0.22em;
  color:var(--c-primary);
  font-weight:600}
.area-menu-name {
  font-family:var(--f-jp-serif);
  font-size:18px;
  font-weight:500;
  line-height:1.2}
.area-menu-tag {
  font-size:12px;
  color:var(--c-ink-2);
  line-height:1.4;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical}
.hero-copy-below {
  padding:56px 0 32px;
  text-align:center}
.hero-copy-inner {
  max-width:780px;
  margin:0 auto}
.hero-eyebrow-below {
  font-family:var(--f-en-sans);
  font-size:12px;
  letter-spacing:0.22em;
  color:var(--c-primary);
  margin-bottom:14px}
.hero-h1-below {
  font-size:32px;
  line-height:1.4;
  margin:0 0 20px}
@media (min-width:768px) {
.hero-h1-below {
  font-size:44px}
}
@media (min-width:1024px) {
.hero-h1-below {
  font-size:52px}
}
.hero-lead-below {
  font-size:15px;
  line-height:1.9;
  color:var(--c-ink-2);
  margin:0 auto 28px;
  max-width:640px}
@media (min-width:768px) {
.hero-lead-below {
  font-size:16px}
}
.hero-ctas-below {
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  align-items:center}
.hero-ctas-below .video-cta {
  font-size:13px;
  color:var(--c-ink-2);
  display:inline-flex;
  align-items:center;
  gap:6px}
.hero-ctas-below .video-cta:hover {
  color:var(--c-primary)}
.section-areas-intro {
  padding:60px 0 24px}
.area-showcase {
  padding-bottom:60px}
.area-showcase:last-of-type {
  border-bottom:none}
.area-hero {
  min-height:420px;
  padding:80px 0 60px;
  color:#fff;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  margin-bottom:40px}
@media (min-width:768px) {
.area-hero {
  min-height:520px;
  padding:120px 0 80px}
}
.area-hero-copy {
  max-width:720px;
  color:#fff}
.area-hero-copy .kicker {
  font-family:var(--f-en-sans);
  letter-spacing:0.24em;
  font-size:12px;
  color:rgba(255,255,255,0.9);
  margin-bottom:12px}
.area-hero-copy h2 {
  color:#fff;
  font-size:36px;
  margin:0 0 12px}
.area-hero-copy h2 .sub {
  display:block;
  font-size:18px;
  font-weight:400;
  opacity:0.85;
  margin-top:6px}
@media (min-width:768px) {
.area-hero-copy h2 {
  font-size:52px}
.area-hero-copy h2 .sub {
  font-size:20px}
}
.area-hero-copy .lead {
  color:rgba(255,255,255,0.92);
  font-size:15px;
  line-height:1.85;
  margin-bottom:24px;
  max-width:620px}
.area-venues-head {
  display:flex;
  align-items:baseline;
  gap:16px;
  margin:20px 0 20px;
  padding-bottom:12px}
.area-venues-head .eyebrow {
  font-family:var(--f-en-sans);
  letter-spacing:0.18em;
  font-size:11px;
  color:var(--c-primary)}
.area-venues-head h3 {
  margin:0;
  font-size:22px}
.venue-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  margin-bottom:40px}
@media (min-width:768px) {
.venue-grid {
  grid-template-columns:repeat(2,1fr);
  gap:28px}
}
.venue-card {
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--radius);
  overflow:hidden;
  color:var(--c-ink);
  transition:transform 0.25s ease,box-shadow 0.25s ease}
.venue-card:hover {
  transform:translateY(-3px);
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
  color:var(--c-ink)}
.venue-card-photo {
  aspect-ratio:16 / 10;
  overflow:hidden;
  background:var(--c-bg-soft)}
.venue-card-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.4s ease}
.venue-card:hover .venue-card-photo img {
  transform:scale(1.04)}
.venue-card-body {
  padding:20px 22px 22px}
.venue-card-body h4 {
  font-size:18px;
  margin:0 0 8px}
.venue-card-body p {
  font-size:14px;
  color:var(--c-ink-2);
  line-height:1.7;
  margin:0 0 14px}
.venue-card-body .cta {
  font-family:var(--f-en-sans);
  font-size:12px;
  letter-spacing:0.14em;
  color:var(--c-primary)}
.venue-card-body .cta.muted {
  color:var(--c-ink-2)}
.venue-card.is-placeholder {
  opacity:0.85;
  cursor:default}
.venue-card.is-placeholder:hover {
  transform:none;
  box-shadow:none}
.area-gallery {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px}
@media (min-width:768px) {
.area-gallery {
  grid-template-columns:repeat(3,1fr);
  gap:10px}
}
@media (min-width:1024px) {
.area-gallery {
  grid-template-columns:repeat(4,1fr);
  gap:12px}
}
.area-gal-item {
  display:block;
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:var(--c-bg-soft);
  border-radius:var(--radius)}
.area-gal-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 0.4s ease}
.area-gal-item:hover img {
  transform:scale(1.05)}
:root {
  --c-ink-lvf:#14171F;
  --c-ink-sub:#4C5058;
  --c-gold-lvf:#a0742f;
  --c-gold-soft:rgba(176,141,87,0.55);
  --c-gold-line:rgba(176,141,87,0.35);
  --c-pink-soft:#F4E5DE;
  --c-off-white:#FDFBF6;
  --c-panel:#FFF;
  --shadow-soft:0 10px 40px rgba(20,23,31,0.06);
  --f-en-optic:"Cormorant Garamond",Marcellus,Georgia,serif}
body {
  background:var(--c-off-white);
  color:var(--c-ink-lvf);
  letter-spacing:0.01em}
a {
  color:var(--c-ink-lvf)}
a:hover {
  color:var(--c-gold-lvf)}
h1,h2,h3,h4 {
  color:var(--c-ink-lvf);
  font-weight:500;
  letter-spacing:0.04em}
.section-head .eyebrow,.area-venues-head .eyebrow,.mosaic-eyebrow,.hero-eyebrow-below,.area-menu-kicker,.area-hero-copy .kicker,.card-body .meta,.card-photo .card-photo-kicker {
  font-family:var(--f-en-optic);
  font-style:italic;
  font-weight:500;
  color:var(--c-gold-lvf);
  letter-spacing:0.28em;
  font-size:12px;
  text-transform:uppercase}
.area-hero-copy .kicker,.card-photo .card-photo-kicker {
  color:rgba(255,255,255,0.92)}
.section-head h2 {
  position:relative;
  padding-bottom:22px}
.section-head h2::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:56px;
  height:1px;
  background:var(--c-gold-soft);
  transform:translateX(-50%)}
.section-head p {
  color:var(--c-ink-sub);
  font-size:15px;
  line-height:1.95}
.hero-h1-below {
  position:relative;
  padding-bottom:22px}
.hero-h1-below::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:56px;
  height:1px;
  background:var(--c-gold-soft);
  transform:translateX(-50%)}
.area-hero-copy h2 {
  position:relative;
  padding-bottom:18px;
  letter-spacing:0.03em}
.area-hero-copy h2::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:48px;
  height:1px;
  background:rgba(255,255,255,0.7)}
.area-hero-copy h2 .sub {
  letter-spacing:0.04em;
  font-family:var(--f-jp-sans);
  font-weight:400}
.section {
  padding:88px 0}
.section+.section {
  border-top:none}
@media (min-width:768px) {
.section {
  padding:120px 0}
}
.section-head {
  margin-bottom:56px}
.section-gallery {
  background:var(--c-panel)}
.section-mosaic {
  background:var(--c-off-white)}
.btn {
  padding:13px 30px;
  border-radius:999px;
  font-size:13px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-family:var(--f-en-sans);
  font-weight:500;
  transition:background 200ms ease,color 200ms ease,border-color 200ms ease,transform 200ms ease}
.btn-primary {
  background:var(--c-ink-lvf);
  color:#fff;
  border:1px solid var(--c-ink-lvf)}
.btn-primary:hover {
  background:transparent;
  color:var(--c-ink-lvf);
  border-color:var(--c-ink-lvf)}
.btn-outline {
  background:transparent;
  color:var(--c-ink-lvf);
  border:1px solid var(--c-ink-lvf)}
.btn-outline:hover {
  background:var(--c-ink-lvf);
  color:#fff}
.btn-ghost {
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,0.85)}
.btn-ghost:hover {
  background:#fff;
  color:var(--c-ink-lvf);
  border-color:#fff}
.site-header {
  background:rgba(253,251,246,0.85);
  border-bottom:1px solid var(--c-line)}
.brand {
  font-family:var(--f-en-optic);
  font-weight:500;
  letter-spacing:0.14em}
@media (max-width:640px) {
.brand {
  font-size:16px;
  line-height:1.2}
}
.brand small {
  letter-spacing:0.16em;
  color:var(--c-ink-sub)}
.nav-primary a {
  font-family:var(--f-en-sans);
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--c-ink-lvf);
  position:relative;
  padding:8px 0}
.nav-primary a::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:0;
  height:1px;
  background:var(--c-gold-lvf);
  transition:width 240ms ease,left 240ms ease}
.nav-primary a:hover {
  color:var(--c-ink-lvf)}
.nav-primary a:hover::after {
  width:100%;
  left:0}
.card {
  background:transparent;
  border:0;
  border-radius:0;
  overflow:visible;
  transition:transform 300ms ease}
.card:hover {
  transform:translateY(-4px);
  box-shadow:none}
.card-photo {
  border-radius:2px;
  overflow:hidden}
.card-body {
  padding:20px 4px 8px;
  gap:6px}
.card-body h3 {
  font-size:20px;
  letter-spacing:0.06em;
  margin:0 0 4px}
.card-body .desc {
  color:var(--c-ink-sub);
  font-size:14px;
  line-height:1.8}
.card-body .price {
  margin-top:12px;
  font-family:var(--f-en-optic);
  font-size:14px;
  color:var(--c-ink-lvf);
  letter-spacing:0.08em}
.card-body .cta {
  margin-top:14px;
  font-family:var(--f-en-optic);
  font-style:italic;
  font-size:13px;
  color:var(--c-gold-lvf);
  letter-spacing:0.16em;
  text-transform:uppercase;
  position:relative;
  padding-bottom:4px;
  display:inline-block;
  align-self:flex-start}
.card-body .cta::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:24px;
  height:1px;
  background:var(--c-gold-soft);
  transition:width 260ms ease}
.card:hover .card-body .cta::after {
  width:100%}
.card-thumb {
  aspect-ratio:4 / 3;
  background:linear-gradient(135deg,#EAE4D8 0%,#D9CFBA 100%);
  color:var(--c-ink-lvf);
  font-family:var(--f-en-optic);
  font-style:italic;
  font-size:15px;
  letter-spacing:0.22em}
.card-thumb.thumb-sakura {
  background:linear-gradient(135deg,#F4E5DE 0%,#E8B4A0 100%);
  color:#6A3E2E}
.card-thumb.thumb-lake {
  background:linear-gradient(135deg,#E4EAF2 0%,#A9BED8 100%);
  color:#253C5A}
.card-thumb.thumb-machiya {
  background:linear-gradient(135deg,#EFE3CC 0%,#C7A669 100%);
  color:#4A3818}
.diff-item {
  background:transparent;
  border:0;
  border-top:1px solid var(--c-gold-line);
  padding:28px 4px 8px;
  border-radius:0}
.diff-item .num {
  font-family:var(--f-en-optic);
  font-style:italic;
  color:var(--c-gold-lvf);
  font-size:32px;
  margin-bottom:10px}
.diff-item h3 {
  font-size:17px;
  letter-spacing:0.06em;
  margin-bottom:8px}
.diff-item p {
  color:var(--c-ink-sub);
  font-size:14px;
  line-height:1.85}
.venue-card {
  background:transparent;
  border:0;
  border-radius:0}
.venue-card:hover {
  transform:translateY(-3px);
  box-shadow:none}
.venue-card-photo {
  border-radius:2px}
.venue-card-body {
  padding:18px 2px 4px}
.venue-card-body h4 {
  font-size:19px;
  letter-spacing:0.05em;
  margin:0 0 6px}
.venue-card-body p {
  color:var(--c-ink-sub);
  line-height:1.85;
  margin:0 0 12px}
.venue-card-body .cta {
  font-family:var(--f-en-optic);
  font-style:italic;
  color:var(--c-gold-lvf);
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-size:12px}
.area-menu-strip {
  background:var(--c-off-white);
  box-shadow:none}
.area-menu-item {
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:2px;
  transition:border-color 240ms ease,transform 240ms ease}
.area-menu-item:hover {
  border-color:var(--c-gold-lvf);
  box-shadow:none}
.area-menu-name {
  font-family:var(--f-jp-serif);
  letter-spacing:0.06em}
.cta-band {
  background:linear-gradient(180deg,var(--c-off-white) 0%,var(--c-pink-soft) 100%);
  padding:96px 0 88px}
.cta-band h2 {
  margin-bottom:12px;
  letter-spacing:0.06em}
.cta-band h2::after {
  content:"";
  display:block;
  width:56px;
  height:1px;
  background:var(--c-gold-soft);
  margin:22px auto 32px}
.channel-list a {
  background:rgba(255,255,255,0.9);
  border:1px solid var(--c-line);
  border-radius:2px;
  padding:20px 12px;
  transition:border-color 220ms ease,transform 220ms ease}
.channel-list a:hover {
  border-color:var(--c-gold-lvf);
  background:#fff;
  transform:translateY(-2px)}
.channel-list .name {
  font-family:var(--f-en-optic);
  font-style:italic;
  font-size:17px;
  letter-spacing:0.14em;
  color:var(--c-ink-lvf)}
.channel-list .desc {
  font-size:11px;
  letter-spacing:0.06em;
  color:var(--c-ink-sub);
  margin-top:6px}
.lvf-sticky {
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:60;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
  pointer-events:none}
.lvf-sticky>* {
  pointer-events:auto}
.lvf-sticky-actions {
  display:flex;
  flex-direction:column;
  gap:8px;
  background:rgba(253,251,246,0.94);
  padding:12px;
  border:1px solid var(--c-gold-line);
  border-radius:4px;
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(6px)}
.lvf-sticky-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:168px;
  padding:11px 20px;
  font-family:var(--f-en-sans);
  font-size:12px;
  font-weight:500;
  letter-spacing:0.22em;
  text-transform:uppercase;
  border-radius:999px;
  transition:background 220ms ease,color 220ms ease,border-color 220ms ease}
.lvf-sticky-btn .jp {
  font-family:var(--f-jp-sans);
  font-size:11px;
  letter-spacing:0.14em;
  margin-left:8px;
  text-transform:none;
  opacity:0.85}
.lvf-sticky-btn.primary {
  background:var(--c-ink-lvf);
  color:#fff;
  border:1px solid var(--c-ink-lvf)}
.lvf-sticky-btn.primary:hover {
  background:var(--c-gold-lvf);
  border-color:var(--c-gold-lvf);
  color:#fff}
.lvf-sticky-btn.ghost {
  background:#fff;
  color:var(--c-ink-lvf);
  border:1px solid var(--c-ink-lvf)}
.lvf-sticky-btn.ghost:hover {
  background:var(--c-ink-lvf);
  color:#fff}
.lvf-sticky-icons {
  display:flex;
  gap:8px;
  padding:6px;
  background:rgba(253,251,246,0.94);
  border:1px solid var(--c-gold-line);
  border-radius:999px;
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(6px)}
.lvf-sticky-icons a {
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--c-ink-lvf);
  background:transparent;
  transition:background 200ms ease,color 200ms ease}
.lvf-sticky-icons a:hover {
  background:var(--c-ink-lvf);
  color:#fff}
.lvf-sticky-icons svg {
  width:18px;
  height:18px;
  fill:currentColor}
@media (max-width:640px) {
.lvf-sticky {
  right:12px;
  left:12px;
  bottom:12px;
  align-items:stretch}
.lvf-sticky-actions {
  flex-direction:row;
  padding:10px;
  gap:8px}
.lvf-sticky-btn {
  flex:1;
  min-width:0;
  padding:12px 8px;
  font-size:11px;
  letter-spacing:0.16em}
.lvf-sticky-btn .jp {
  display:none}
.lvf-sticky-icons {
  align-self:flex-end}
}
.reveal {
  opacity:0;
  transform:translateY(18px);
  transition:opacity 700ms ease,transform 700ms ease;
  will-change:opacity,transform}
.reveal.is-in {
  opacity:1;
  transform:none}
@media (prefers-reduced-motion:reduce) {
.reveal {
  opacity:1;
  transform:none;
  transition:none}
}
.gallery-item img,.area-gal-item img,.venue-card-photo img,.card-photo img,.card-body~img {
  filter:saturate(0.92) contrast(0.98)}
.gallery-item:hover img,.area-gal-item:hover img,.venue-card:hover .venue-card-photo img,.card:hover .card-photo img {
  filter:saturate(1.02) contrast(1)}
.lang-bar {
  background:#fff;
  box-shadow:none;
  padding:8px 0}
.lang-bar-label {
  font-family:var(--f-en-sans);
  font-size:11px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--c-ink-sub);
  font-weight:500}
.lang-reset-btn {
  border:1px solid var(--c-ink-lvf);
  color:var(--c-ink-lvf);
  font-family:var(--f-en-sans);
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase}
.lang-reset-btn:hover {
  background:var(--c-ink-lvf);
  color:#fff}
.form input,.form select,.form textarea {
  border:1px solid var(--c-line);
  border-radius:2px;
  padding:14px 16px;
  background:#fff;
  transition:border-color 200ms ease}
.form input:focus,.form select:focus,.form textarea:focus {
  outline:none;
  border-color:var(--c-gold-lvf)}
.form label {
  font-family:var(--f-en-sans);
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--c-ink-sub)}
.form .submit {
  padding:16px 48px;
  border-radius:999px;
  background:var(--c-ink-lvf);
  color:#fff;
  border:1px solid var(--c-ink-lvf);
  letter-spacing:0.22em}
.form .submit:hover {
  background:var(--c-gold-lvf);
  border-color:var(--c-gold-lvf)}
.hero-slide-overlay {
  background:linear-gradient(180deg,rgba(20,23,31,0.15) 0%,rgba(20,23,31,0.05) 40%,rgba(20,23,31,0.35) 100%)}
.page-hero {
  padding:80px 0 96px}
.page-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(20,23,31,0.20) 0%,rgba(20,23,31,0.55) 100%);
  z-index:1}
.page-hero>.container {
  position:relative;
  z-index:2}
.page-hero h1 {
  position:relative;
  padding-bottom:22px;
  letter-spacing:0.04em}
.page-hero h1::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:56px;
  height:1px;
  background:rgba(255,255,255,0.7)}
.section:nth-of-type(even) {
  background:var(--c-panel)}
.section:nth-of-type(odd) {
  background:var(--c-off-white)}
.section.section-gallery {
  background:var(--c-panel)}
.section.section-mosaic {
  background:var(--c-off-white)}
.timeline li {
  border-left:1px solid var(--c-gold-line);
  background:transparent;
  border-radius:0;
  padding:4px 16px 4px 20px;
  color:var(--c-ink-sub)}
.timeline .t {
  font-family:var(--f-en-optic);
  font-style:italic;
  font-weight:500;
  font-size:15px;
  color:var(--c-gold-lvf);
  letter-spacing:0.14em}
.info-table th,.info-table td {
  padding:16px 14px;
  font-size:14px}
.info-table th {
  background:transparent;
  font-family:var(--f-en-sans);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--c-ink-sub);
  font-weight:500}
main,.content,section {
  scroll-margin-top:96px}
.hero-slider {
  position:relative;
  width:100%;
  height:100vh;
  min-height:560px;
  overflow:hidden;
  background:#111;
  outline:none}
.hero-slider .slide {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 600ms ease;
  cursor:pointer}
.slide-hero-iwate {
  background-image:url(/assets/img/local/iwate/iwate_a01_hero.webp)}
.slide-hero-yamagata {
  background-image:url(/assets/img/local/yamagata/yamagata_y01_hero.webp)}
.slide-hero-ibaraki {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i01_hero.webp)}
.slide-hero-gifu {
  background-image:url(/assets/img/local/gifu/gifu_g01_hero.webp)}
.hero-slider .slide.is-active {
  opacity:1;
  z-index:1}
.hero-slider .slide::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0.55) 100%)}
.hero-slider .slide-inner {
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:0 min(8vw,80px);
  color:#fff;
  max-width:1200px;
  margin:0 auto}
.hero-slider .slide-kicker {
  font-family:var(--f-en-sans);
  font-size:13px;
  letter-spacing:0.32em;
  color:rgba(255,255,255,0.85);
  margin-bottom:14px}
.hero-slider .slide-h {
  font-family:var(--f-ja-serif);
  font-size:clamp(28px,5vw,54px);
  font-weight:500;
  line-height:1.28;
  margin:0 0 22px;
  color:#fff;
  max-width:780px;
  text-shadow:0 2px 20px rgba(0,0,0,0.25)}
.hero-slider .slide-cta {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 22px;
  border:1px solid rgba(255,255,255,0.8);
  border-radius:4px;
  color:#fff;
  text-decoration:none;
  font-size:13px;
  letter-spacing:0.14em;
  background:rgba(0,0,0,0.15);
  backdrop-filter:blur(4px);
  transition:background 0.2s ease,border-color 0.2s ease}
.hero-slider .slide-cta:hover {
  background:rgba(255,255,255,0.95);
  color:var(--c-ink);
  border-color:#fff}
.hero-slider .hero-nav {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  background:rgba(0,0,0,0.35);
  color:#fff;
  border:1px solid rgba(255,255,255,0.4);
  width:44px;
  height:44px;
  border-radius:50%;
  cursor:pointer;
  font-size:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background 0.15s ease}
.hero-slider .hero-nav:hover {
  background:rgba(0,0,0,0.6)}
.hero-slider .hero-prev {
  left:20px}
.hero-slider .hero-next {
  right:20px}
.hero-slider .hero-dots {
  position:absolute;
  bottom:32px;
  left:50%;
  transform:translateX(-50%);
  z-index:10;
  display:flex;
  gap:10px;
  padding:0;
  margin:0;
  list-style:none}
.hero-slider .hero-dot {
  width:10px;
  height:10px;
  border-radius:50%;
  background:rgba(255,255,255,0.4);
  border:1px solid rgba(255,255,255,0.6);
  cursor:pointer;
  padding:0;
  transition:background 0.2s ease,transform 0.2s ease}
.hero-slider .hero-dot[aria-selected=true] {
  background:#fff;
  transform:scale(1.2)}
@media (max-width:640px) {
.hero-slider .hero-nav {
  width:36px;
  height:36px;
  font-size:18px}
.hero-slider .hero-prev {
  left:8px}
.hero-slider .hero-next {
  right:8px}
}

.hero-video {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 560px;
  overflow: hidden;
  background: #111;
  outline: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.hero-video-bg {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translateX(-50%) translateY(-50%);
  object-fit: cover;
  z-index: 1;
}

.hero-video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 2;
}

.hero-video-content {
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 0 20px;
  max-width: 800px;
}

.hero-video-kicker {
  font-family: var(--f-en-serif, 'Cormorant Garamond', serif);
  font-size: 14px;
  letter-spacing: 0.2em;
  margin-bottom: 12px;
}

.hero-video-h {
  font-size: 32px;
  margin-bottom: 16px;
  line-height: 1.4;
  color: #fff;
}

.hero-video-sub {
  font-size: 16px;
  margin-bottom: 32px;
  opacity: 0.9;
}

.hero-video-cta-row {
  display: flex;
  gap: 16px;
  justify-content: center;
}

.hero-video-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  border-radius: 40px;
  background: #fff;
  color: var(--c-ink, #333);
  text-decoration: none;
  font-weight: 500;
  transition: opacity 0.2s;
}

.hero-video-cta:hover {
  opacity: 0.9;
}

.hero-video-cta.wa {
  background: #25D366;
  color: #fff;
}

.hero-video-cta.wa:hover {
  color: var(--c-ink);
}

@media (min-width: 720px) {
  .hero-video-h {
    font-size: 48px;
  }
  .hero-video-sub {
    font-size: 18px;
  }
}

@media (min-width:640px) {
.area-menu.area-menu-4col {
  grid-template-columns:repeat(2,1fr);
  gap:14px}
}
@media (min-width:960px) {
.area-menu.area-menu-4col {
  grid-template-columns:repeat(4,1fr);
  gap:16px}
}
.photo-coming-soon {
  background:#FBF8F3;
  border:2px solid #3A5A40;
  color:#3A5A40;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:240px;
  text-align:center;
  padding:32px 20px;
  font-family:var(--f-en-sans);
  gap:6px}
.photo-coming-soon .pcs-label {
  font-size:11px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  opacity:0.7}
.photo-coming-soon .pcs-title {
  font-size:18px;
  letter-spacing:0.06em;
  font-weight:600}
.photo-coming-soon .pcs-sub {
  font-size:12px;
  color:#3A5A40;
  opacity:0.65;
  margin-top:8px;
  font-family:var(--f-ja-sans);
  letter-spacing:0.02em}
.hero-coming-soon {
  height:70vh;
  min-height:420px;
  background:#FBF8F3;
  border-bottom:2px solid #3A5A40;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#3A5A40;
  text-align:center;
  padding:40px 20px}
.hero-coming-soon .hcs-inner {
  max-width:640px}
.hero-coming-soon .hcs-kicker {
  font-family:var(--f-en-sans);
  font-size:13px;
  letter-spacing:0.32em;
  color:#3A5A40;
  margin-bottom:18px}
.hero-coming-soon .hcs-h {
  font-family:var(--f-ja-serif);
  font-size:clamp(24px,4vw,40px);
  font-weight:500;
  margin:0 0 16px;
  color:#3A5A40}
.hero-coming-soon .hcs-note {
  font-size:13px;
  color:#3A5A40;
  opacity:0.7;
  letter-spacing:0.04em}
.nav-primary {
  position:relative}
.nav-item-wrap {
  position:relative;
  display:inline-block}
.nav-item-wrap>a {
  display:inline-block}
.nav-dropdown {
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%) translateY(4px);
  min-width:200px;
  background:#fff;
  border:1px solid var(--c-line);
  box-shadow:0 10px 30px rgba(0,0,0,0.10);
  padding:10px 0;
  display:none;
  z-index:100;
  border-radius:4px}
.nav-item-wrap:hover .nav-dropdown,.nav-item-wrap:focus-within .nav-dropdown {
  display:block}
.nav-dropdown a {
  display:block;
  padding:8px 20px;
  color:var(--c-ink);
  text-decoration:none;
  font-size:14px;
  white-space:nowrap;
  transition:background 0.15s ease}
.nav-dropdown a:hover {
  background:#FBF8F3;
  color:var(--c-primary)}
@media (prefers-reduced-motion:reduce) {
.hero-slider .slide {
  transition:none}
.area-menu-item {
  transition:none}
}
:root {
  --c-accent-warm:#b19e76;
  --c-accent-warm-soft:rgba(177,158,118,0.6);
  --c-accent-warm-line:rgba(177,158,118,0.35)}
.pref-hero-slider {
  height:100vh;
  min-height:560px;
  max-height:none}
.pref-hero-slider .slide {
  cursor:default}
.pref-hero-slider .slide::before {
  background:linear-gradient(180deg,rgba(0,0,0,0.20) 0%,rgba(0,0,0,0.45) 60%,rgba(0,0,0,0.55) 100%)}
.pref-hero-caption {
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  padding:0 24px;
  pointer-events:none}
.pref-hero-kicker {
  font-family:var(--f-en-optic);
  font-style:italic;
  font-size:13px;
  letter-spacing:0.32em;
  color:var(--c-accent-warm);
  margin-bottom:24px;
  text-shadow:0 2px 12px rgba(0,0,0,0.4)}
.pref-hero-h {
  font-family:var(--f-jp-serif);
  font-size:clamp(28px,5.5vw,60px);
  font-weight:500;
  color:#fff;
  line-height:1.35;
  margin:0;
  letter-spacing:0.08em;
  max-width:900px;
  text-shadow:0 2px 24px rgba(0,0,0,0.35);
  position:relative;
  padding-bottom:28px}
.pref-hero-h::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:64px;
  height:1px;
  background:var(--c-accent-warm-soft)}
.pref-message {
  background:var(--c-off-white);
  padding:88px 0 96px;
  text-align:center}
@media (min-width:768px) {
.pref-message {
  padding:120px 0 128px}
}
.pref-message-text {
  font-family:var(--f-jp-serif);
  font-size:clamp(20px,3.2vw,32px);
  font-weight:500;
  line-height:2.1;
  letter-spacing:0.24em;
  color:var(--c-ink-lvf);
  margin:0 auto;
  max-width:900px;
  position:relative;
  padding-bottom:40px}
.pref-message-text::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:48px;
  height:1px;
  background:var(--c-accent-warm-soft)}
.subtitle-en {
  font-family:var(--f-en-optic);
  font-style:italic;
  font-size:13px;
  letter-spacing:0.28em;
  color:var(--c-accent-warm);
  text-transform:uppercase;
  margin-bottom:12px;
  display:block}
.krs-section {
  padding:88px 0}
@media (min-width:768px) {
.krs-section {
  padding:120px 0}
}
.krs-section-head {
  text-align:center;
  max-width:720px;
  margin:0 auto 56px;
  padding:0 24px}
.krs-section-head .subtitle-en {
  color:var(--c-accent-warm)}
.krs-section-h {
  font-family:var(--f-jp-serif);
  font-size:clamp(24px,3.5vw,36px);
  font-weight:500;
  letter-spacing:0.08em;
  color:var(--c-ink-lvf);
  margin:0;
  position:relative;
  padding-bottom:22px}
.krs-section-h::after {
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:56px;
  height:1px;
  background:var(--c-accent-warm-soft)}
.krs-section-inner {
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
  display:flex;
  flex-direction:column;
  gap:72px}
@media (min-width:768px) {
.krs-section-inner {
  gap:96px}
}
.krs-row {
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:center}
@media (min-width:900px) {
.krs-row {
  grid-template-columns:1fr 1fr;
  gap:64px}
.krs-row-rev .krs-photo {
  order:2}
.krs-row-rev .krs-body {
  order:1}
}
.krs-photo {
  width:100%;
  aspect-ratio:4 / 3;
  max-width:640px;
  background-size:cover;
  background-position:center;
  border-radius:2px;
  filter:saturate(0.94) contrast(0.98);
  transition:filter 400ms ease;
  justify-self:center}
@media (min-width:900px) {
.krs-photo {
  max-width:none;
  aspect-ratio:4 / 3;
  min-height:420px}
}
.krs-row:hover .krs-photo {
  filter:saturate(1.02) contrast(1)}
.krs-body {
  padding:0 4px}
.krs-body-inner {
  max-width:480px;
  margin:0 auto}
@media (min-width:900px) {
.krs-body-inner {
  margin:0}
.krs-row-rev .krs-body-inner {
  margin-left:auto}
}
.krs-body .subtitle-en {
  margin-bottom:14px}
.krs-h {
  font-family:var(--f-jp-serif);
  font-size:clamp(22px,2.8vw,30px);
  font-weight:500;
  letter-spacing:0.08em;
  color:var(--c-ink-lvf);
  line-height:1.5;
  margin:0 0 24px;
  position:relative;
  padding-bottom:18px}
.krs-h::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:40px;
  height:1px;
  background:var(--c-accent-warm-soft)}
.krs-lead {
  color:var(--c-ink-sub);
  font-size:15px;
  line-height:2;
  margin-bottom:24px}
.krs-lead p {
  margin:0 0 12px}
.krs-lead p:last-child {
  margin-bottom:0}
.krs-btn {
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:12px 0;
  font-family:var(--f-en-sans);
  font-size:12px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--c-ink-lvf);
  text-decoration:none;
  border-bottom:1px solid var(--c-accent-warm);
  transition:color 220ms ease,border-color 220ms ease,gap 220ms ease;
  margin-top:8px}
.krs-btn:hover {
  color:var(--c-accent-warm);
  border-color:var(--c-accent-warm);
  gap:18px}
.krs-btn-arrow {
  font-family:var(--f-en-sans);
  font-size:14px;
  transition:transform 220ms ease}
.krs-section {
  background:var(--c-off-white)}
.krs-section-seasons,.krs-section-tourism {
  background:#FBF8F3}
.gallery-large {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px}
@media (min-width:640px) {
.gallery-large {
  grid-template-columns:repeat(2,1fr);
  gap:16px}
}
@media (min-width:900px) {
.gallery-large {
  grid-template-columns:repeat(3,1fr);
  gap:20px}
}
.gallery-large .gallery-item {
  aspect-ratio:4 / 3;
  border-radius:2px}
.gallery-large .gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover}
.area-menu-strip-large {
  padding:32px 0}
.area-menu-large {
  grid-template-columns:1fr;
  gap:20px}
@media (min-width:640px) {
.area-menu-large {
  grid-template-columns:repeat(2,1fr);
  gap:22px}
}
@media (min-width:960px) {
.area-menu-large {
  grid-template-columns:repeat(4,1fr);
  gap:24px}
}
.area-menu-item-large {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  padding:0;
  background:transparent;
  border:0;
  border-radius:2px;
  overflow:hidden}
.area-menu-item-large:hover {
  border:0;
  box-shadow:none}
.area-menu-photo-large {
  width:100%;
  height:260px;
  flex-shrink:0;
  border-radius:2px 2px 0 0;
  overflow:hidden;
  background:var(--c-bg-soft)}
.area-menu-photo-large img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 500ms ease,filter 500ms ease;
  filter:saturate(0.94) contrast(0.98)}
.area-menu-item-large:hover .area-menu-photo-large img {
  transform:scale(1.05);
  filter:saturate(1.02) contrast(1)}
.area-menu-item-large .area-menu-body {
  padding:20px 4px 8px;
  gap:6px;
  text-align:left}
.area-menu-item-large .area-menu-kicker {
  font-family:var(--f-en-optic);
  font-style:italic;
  font-size:12px;
  letter-spacing:0.24em;
  color:var(--c-accent-warm);
  font-weight:500}
.area-menu-item-large .area-menu-name {
  font-family:var(--f-jp-serif);
  font-size:22px;
  letter-spacing:0.08em}
.area-menu-item-large .area-menu-catch {
  font-size:13px;
  color:var(--c-ink-sub);
  line-height:1.7;
  letter-spacing:0.04em}
@media (max-width:640px) {
.area-menu-photo-large {
  height:220px}
}
.plan-card .plan-card-photo {
  min-height:320px}
.plan-photo-01 {
  background-image:url(/assets/img/local/yamagata/yamagata_y12_gallery.webp)}
.plan-photo-02 {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i13_gallery.webp)}
.plan-photo-03 {
  background-image:url(/assets/img/local/gifu/gifu_g07_gallery.webp)}
@media (max-width:720px) {
.plan-card .plan-card-photo {
  min-height:300px}
}
.plan-cards {
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  margin-top:40px}
.plan-card {
  background:#fff;
  border:1px solid var(--c-line,#ddd);
  border-radius:6px;
  overflow:hidden}
.plan-card-photo {
  background-size:cover;
  background-position:center;
  min-height:420px}
.plan-card-body {
  padding:32px 28px}
.plan-card-title {
  margin:10px 0 6px;
  font-size:22px}
.case-row {
  margin-bottom:46px}
@media (min-width: 1000px) {
.plan-cards {
  grid-template-columns:repeat(3,1fr)}
}
.pref-hero-brand {
  font-family:var(--f-jp-serif);
  font-size:clamp(48px,8vw,96px);
  font-weight:500;
  color:#fff;
  letter-spacing:0.14em;
  line-height:1.1;
  margin:8px 0 22px;
  text-shadow:0 2px 24px rgba(0,0,0,0.35)}
.krs-body .venue-mini-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:20px 0 24px}
.krs-body .venue-mini-gallery img {
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border-radius:2px;
  display:block}
.krs-section-plan {
  background:#fff}
.header-wa-btn {
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:#25d366;
  color:#fff;
  font-family:var(--f-en-sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:0.06em;
  padding:9px 16px;
  border-radius:999px;
  text-decoration:none;
  white-space:nowrap;
  transition:background 0.25s ease}
.header-wa-btn:hover {
  background:#1eb955;
  color: var(--c-ink);
}
.header-wa-btn svg {
  width:15px;
  height:15px;
  fill:currentColor}
@media (max-width:720px) {
.header-wa-btn span {
  display:none}
.header-wa-btn {
  padding:9px 11px}
}
.hero-slider .slide-sub {
  font-family:var(--f-jp-serif);
  font-size:clamp(14px,1.8vw,17px);
  color:rgba(255,255,255,0.92);
  letter-spacing:0.1em;
  line-height:1.9;
  margin:14px 0 26px;
  text-shadow:0 1px 14px rgba(0,0,0,0.45)}
.slide-cta-row {
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap}
.slide-cta {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 32px;
  border:1px solid rgba(255,255,255,0.85);
  color:#fff;
  font-family:var(--f-en-sans);
  font-size:13px;
  font-weight:500;
  letter-spacing:0.14em;
  text-decoration:none;
  border-radius:2px;
  backdrop-filter:blur(2px);
  background:rgba(20,23,31,0.18);
  transition:background 0.3s ease,border-color 0.3s ease}
.slide-cta:hover {
  background:rgba(255,255,255,0.16)}
.slide-cta.wa {
  background:#25d366;
  border-color:#25d366}
.slide-cta.wa:hover {
  background:#1eb955;
  border-color:#1eb955}
.slide-cta svg {
  width:16px;
  height:16px;
  fill:currentColor}
.pref-hero-cta {
  pointer-events:auto;
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:6px}
.pref-hero-cta a {
  pointer-events:auto}
.pref-cta-plan,.pref-cta-wa {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 30px;
  font-family:var(--f-en-sans);
  font-size:13px;
  font-weight:500;
  letter-spacing:0.12em;
  text-decoration:none;
  border-radius:2px;
  transition:background 0.3s ease}
.pref-cta-plan {
  border:1px solid rgba(255,255,255,0.85);
  color:#fff;
  background:rgba(20,23,31,0.18)}
  .pref-cta-plan:hover {
    background:rgba(255,255,255,0.16);
    color:#fff;
}
.pref-cta-wa {
  background:#25d366;
  border:1px solid #25d366;
  color:#fff}
.pref-cta-wa:hover {
  background:#1eb955;
  color: var(--c-ink);
}
.pref-cta-wa svg {
  width:16px;
  height:16px;
  fill:currentColor}
.trust-bar {
  background:var(--c-primary-d);
  padding:26px 24px}
.trust-grid {
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px 28px}
@media (min-width:860px) {
.trust-grid {
  grid-template-columns:repeat(3,1fr)}
}
.trust-item {
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  font-size:13px;
  letter-spacing:0.05em;
  line-height:1.5;
  justify-content:center}
.trust-ic {
  flex:0 0 auto;
  width:26px;
  height:26px;
  border:1px solid var(--c-gold);
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--c-gold);
  font-size:13px}
.gallery-square {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px}
@media (min-width:900px) {
.gallery-square {
  grid-template-columns:repeat(4,1fr)}
}
.gallery-square .gallery-item {
  margin:0}
.gallery-square .gallery-item img {
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  display:block;
  border-radius:2px}
.area-menu-season {
  display:inline-block;
  font-size:11px;
  letter-spacing:0.08em;
  color:#fff;
  background:var(--c-primary);
  border-radius:999px;
  padding:4px 12px;
  margin:8px 0 4px}
.area-menu-access {
  font-size:12px;
  color:var(--c-ink-sub);
  letter-spacing:0.04em;
  margin-top:6px}
.badge-wasou {
  display:inline-block;
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--c-gold);
  border:1px solid var(--c-gold);
  border-radius:999px;
  padding:3px 12px;
  margin-left:10px;
  vertical-align:middle}
.plan-price {
  font-family:var(--f-en-optic);
  font-size:26px;
  color:var(--c-primary-d);
  letter-spacing:0.04em;
  margin:10px 0 2px}
.plan-price small {
  font-size:13px;
  color:var(--c-ink-sub);
  font-family:var(--f-en-sans);
  letter-spacing:0.06em}
.plan-includes-list {
  list-style:none;
  margin:14px 0 20px;
  padding:0}
.plan-includes-list li {
  position:relative;
  padding-left:22px;
  font-size:13px;
  line-height:1.7;
  color:var(--c-ink-lvf);
  margin-bottom:6px}
.plan-includes-list li::before {
  content:"\2713";
  position:absolute;
  left:0;
  top:0;
  color:var(--c-primary);
  font-weight:700}
.season-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  max-width:1080px;
  margin:0 auto}
@media (min-width:900px) {
.season-grid {
  grid-template-columns:repeat(4,1fr)}
}
.season-card {
  background:var(--c-panel);
  border:1px solid var(--c-line);
  border-radius:2px;
  padding:22px 18px;
  text-align:center}
.season-card h3 {
  font-family:var(--f-jp-serif);
  font-size:17px;
  letter-spacing:0.12em;
  color:var(--c-primary-d);
  margin:0 0 4px}
.season-card .season-en {
  font-family:var(--f-en-sans);
  font-size:11px;
  letter-spacing:0.18em;
  color:var(--c-gold);
  display:block;
  margin-bottom:10px}
.season-desc {
  font-size:12.5px;
  line-height:1.8;
  color:var(--c-ink-lvf);
  margin:0 0 10px;
  text-align:left}
.season-hk {
  font-size:11.5px;
  line-height:1.7;
  color:var(--c-ink-sub);
  background:var(--c-bg-soft);
  border-radius:2px;
  padding:8px 10px;
  text-align:left;
  margin:0}
.case-row {
  display:grid;
  grid-template-columns:1fr;
  gap:26px;
  max-width:900px;
  margin:0 auto;
  align-items:center}
@media (min-width:820px) {
.case-row {
  grid-template-columns:5fr 6fr}
}
.case-photo img {
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border-radius:2px;
  display:block}
.case-name {
  font-family:var(--f-en-optic);
  font-size:18px;
  letter-spacing:0.08em;
  color:var(--c-primary-d);
  margin:0 0 12px}
.case-quote {
  font-family:var(--f-jp-serif);
  font-size:14.5px;
  line-height:2.1;
  color:var(--c-ink-lvf);
  border-left:2px solid var(--c-gold);
  padding-left:18px;
  margin:0}
.oneday-steps {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  max-width:1080px;
  margin:0 auto}
@media (min-width:680px) {
.oneday-steps {
  grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1024px) {
.oneday-steps {
  display:flex;
  justify-content:center;
  align-items:stretch}
.oneday-steps .oneday-step {
  flex:1 1 0;
  max-width:190px}
.oneday-steps .oneday-step:not(:last-child) {
  position:relative;
  margin-right:26px}
.oneday-steps .oneday-step:not(:last-child)::after {
  content:"\2192";
  position:absolute;
  right:-22px;
  top:50%;
  transform:translateY(-50%);
  color:var(--c-gold);
  font-size:16px}
}
.oneday-step {
  background:var(--c-panel);
  border:1px solid var(--c-line);
  border-radius:2px;
  padding:18px 14px;
  text-align:center}
.oneday-t {
  font-family:var(--f-en-sans);
  font-size:12px;
  letter-spacing:0.14em;
  color:var(--c-gold);
  display:block;
  margin-bottom:8px}
.oneday-step h3 {
  font-family:var(--f-jp-serif);
  font-size:14.5px;
  letter-spacing:0.08em;
  color:var(--c-primary-d);
  margin:0 0 8px}
.oneday-step p {
  font-size:12px;
  line-height:1.75;
  color:var(--c-ink-sub);
  margin:0}
.spots-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  max-width:1080px;
  margin:0 auto}
@media (min-width:820px) {
.spots-grid {
  grid-template-columns:repeat(2,1fr)}
}
.spot-item {
  display:flex;
  gap:16px;
  align-items:center;
  background:var(--c-panel);
  border:1px solid var(--c-line);
  border-radius:2px;
  padding:14px}
.spot-item img {
  flex:0 0 132px;
  width:132px;
  height:92px;
  object-fit:cover;
  border-radius:2px;
  display:block}
.spot-item h3 {
  font-family:var(--f-jp-serif);
  font-size:14.5px;
  letter-spacing:0.06em;
  color:var(--c-primary-d);
  margin:0 0 6px}
.spot-item p {
  font-size:12px;
  line-height:1.7;
  color:var(--c-ink-sub);
  margin:0}
.spot-note {
  font-size:12px;
  color:var(--c-ink-sub);
  line-height:1.8;
  background:var(--c-bg-soft);
  border-left:2px solid var(--c-gold);
  padding:12px 16px;
  border-radius:2px;
  max-width:1080px;
  margin:26px auto 0}
.access-route {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px;
  max-width:1080px;
  margin:0 auto 26px}
.route-node {
  background:var(--c-panel);
  border:1px solid var(--c-line);
  border-radius:2px;
  padding:12px 18px;
  text-align:center;
  font-size:13px;
  letter-spacing:0.05em;
  color:var(--c-ink-lvf);
  line-height:1.5}
.route-node strong {
  display:block;
  font-family:var(--f-jp-serif);
  font-size:14.5px;
  color:var(--c-primary-d);
  letter-spacing:0.08em}
.route-node small {
  display:block;
  font-size:11px;
  color:var(--c-ink-sub);
  margin-top:2px}
.route-leg {
  font-size:11.5px;
  color:var(--c-ink-sub);
  text-align:center;
  line-height:1.5;
  white-space:nowrap}
.route-leg::before {
  content:"\2192";
  display:block;
  color:var(--c-gold);
  font-size:16px}
.access-route-alt {
  font-size:12px;
  color:var(--c-ink-sub);
  line-height:1.8;
  text-align:center;
  max-width:780px;
  margin:0 auto 30px}
.hotel-list {
  list-style:none;
  margin:14px 0 0;
  padding:0}
.hotel-list li {
  position:relative;
  padding-left:20px;
  font-size:13px;
  line-height:1.9;
  color:var(--c-ink-lvf)}
.hotel-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:0.75em;
  width:8px;
  height:1px;
  background:var(--c-gold)}
.faq-wrap {
  max-width:860px;
  margin:0 auto}
.faq-item {
  background:var(--c-panel);
  border:1px solid var(--c-line);
  border-radius:2px;
  margin-bottom:12px}
.faq-q {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  background:none;
  border:none;
  cursor:pointer;
  text-align:left;
  padding:18px 20px;
  font-family:var(--f-jp-serif);
  font-size:14.5px;
  letter-spacing:0.06em;
  line-height:1.7;
  color:var(--c-ink-lvf)}
.faq-q:hover {
  color:var(--c-primary-d)}
.faq-icon {
  flex:0 0 auto;
  font-family:var(--f-en-sans);
  font-size:18px;
  font-weight:300;
  color:var(--c-gold);
  transition:transform 0.3s ease;
  line-height:1}
.faq-item.is-open .faq-icon {
  transform:rotate(45deg)}
.faq-a {
  display:none;
  padding:0 20px 20px;
  font-size:13px;
  line-height:2;
  color:var(--c-ink-sub)}
.faq-item.is-open .faq-a {
  display:block}
.cta-band-sub {
  font-size:12.5px;
  letter-spacing:0.06em;
  margin-top:14px;
  line-height:1.9}
.channel-list a.is-primary {
  border:2px solid #25d366;
  padding:12px 26px;
  border-radius:2px}
.goog-te-banner-frame.skiptranslate {
  display:none !important}
body {
  top:0 !important}
.goog-tooltip,.goog-tooltip:hover {
  display:none !important}
.goog-text-highlight {
  background:transparent !important;
  box-shadow:none !important}
#google_translate_element .goog-te-gadget {
  font-size:0;
  color:transparent}
#google_translate_element .goog-te-gadget .goog-te-combo {
  margin:0;
  padding:6px 10px;
  border:1px solid var(--c-line,#ddd);
  border-radius:6px;
  background:#fff;
  font-size:13px;
  color:#333;
  cursor:pointer;
  max-width:160px}
#google_translate_element .goog-te-gadget span {
  display:none}
#google_translate_element .goog-logo-link {
  display:none !important}
.section-light {
  background:#FBF8F3}
.custom-lang-btn {
  cursor:pointer}
.custom-lang-btn:hover {
  text-decoration:underline}
.skiptranslate {
  display:none !important}
#goog-gt-tt {
  display:none !important}
.goog-text-highlight {
  background-color:transparent !important;
  box-shadow:none !important}
.showcase-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  margin-top:32px}
.showcase-card {
  display:block;
  background:#fff;
  border:1px solid var(--c-line,#ddd);
  border-radius:6px;
  overflow:hidden;
  color:var(--c-ink,#333);
  text-decoration:none;
  transition:transform 0.2s ease,box-shadow 0.2s ease}
.showcase-card:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,0.08);
  color:var(--c-ink,#333)}
.sc-photo {
  height:240px;
  background-size:cover;
  background-position:center}
.sc-photo-iwate {
  background-image:url(/assets/img/local/iwate/iwate_009_gallery.webp)}
.sc-photo-yamagata {
  background-image:url(/assets/img/local/yamagata/yamagata_004_gallery.webp)}
.sc-photo-ibaraki {
  background-image:url(/assets/img/local/ibaraki/ibaraki_001_gallery.webp)}
.sc-photo-gifu {
  background-image:url(/assets/img/local/gifu/gifu_001_gallery.webp)}
.sc-body {
  padding:22px 24px}
.sc-body h3 {
  margin:8px 0 10px;
  font-size:22px}
.sc-catch {
  font-weight:500;
  color:var(--c-primary,#b79b6c);
  margin:0 0 8px}
.sc-lead {
  color:var(--c-ink-sub,#666);
  line-height:1.75;
  margin:0 0 12px}
.sc-cta {
  font-family:var(--f-en-sans,Inter,sans-serif);
  font-size:13px;
  letter-spacing:.14em;
  color:var(--c-primary,#b79b6c)}
@media (min-width:720px) {
.showcase-grid {
  grid-template-columns:1fr 1fr}
}
.google-translate-note {
  font-size:10px}
.page-contact .hero-contact {
  height:40vh;
  min-height:280px;
  background-image:linear-gradient(180deg,rgba(0,0,0,0.28) 0%,rgba(0,0,0,0.55) 100%),url(/assets/img/photos/hero/p250.webp)}
.page-contact .hero-contact .hero-title {
  color:#fff}
.page-contact .hero-contact .hero-desc {
  color:#fff;
  opacity:0.9}
.page-contact .contact-container {
  max-width:780px}
.page-contact .contact-lead {
  color:var(--c-ink-sub,#666);
  line-height:1.9}
.page-contact .contact-channel-list {
  margin-top:24px}
.area-page .bg-light {
  background-color:#FBF8F3}
.area-page .bg-white {
  background-color:#fff}
.area-page .area-access-container {
  max-width:760px;
  margin:0 auto}
.area-page .hotel-list-title {
  font-family:var(--f-jp-serif,serif);
  font-size:16px;
  letter-spacing:0.08em;
  color:var(--c-primary-d,#333);
  margin:0 0 4px}
.area-page .hero-bg-image,.area-page .krs-photo {
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat}
.area-iwate .hero-bg-image {
  background-image:url(/assets/img/local/iwate/iwate_a01_hero.webp)}
/* .area-iwate .venue-photo-01 {
  background-image:url(/assets/img/local/iwate/iwate_a10_gallery.webp)} */
/* .area-iwate .venue-photo-02 {
  background-image:url(/assets/img/local/iwate/iwate_a11_gallery.webp)} */
.area-iwate .charm-photo-01 {
  background-image:url(/assets/img/local/iwate/iwate_a14_gallery.webp)}
.area-iwate .charm-photo-03 {
  background-image:url(/assets/img/local/iwate/iwate_a16_gallery.webp)}
.area-yamagata .hero-bg-image {
  background-image:url(/assets/img/local/yamagata/yamagata_y01_hero.webp)}
/* .area-yamagata .venue-photo-01 {
  background-image:url(/assets/img/local/yamagata/yamagata_y10_gallery.webp)} */
/* .area-yamagata .venue-photo-02 {
  background-image:url(/assets/img/local/yamagata/yamagata_y11_gallery.webp)} */
.area-yamagata .charm-photo-01 {
  background-image:url(/assets/img/local/yamagata/yamagata_y14_gallery.webp)}
.area-yamagata .charm-photo-02 {
  background-image:url(/assets/img/local/yamagata/yamagata_y15_gallery.webp)}
.area-yamagata .charm-photo-03 {
  background-image:url(/assets/img/local/yamagata/yamagata_y16_gallery.webp)}
.area-ibaraki .hero-bg-image {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i01_hero.webp)}
/* .area-ibaraki .venue-photo-01 {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i10_gallery.webp)} */
/* .area-ibaraki .venue-photo-02 {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i11_gallery.webp)} */
.area-ibaraki .charm-photo-01 {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i14_gallery.webp)}
.area-ibaraki .charm-photo-02 {
  background-image:url(/assets/img/local/ibaraki/ibaraki_i15_gallery.webp)}
.area-ibaraki .charm-photo-03 {
  background-image:url(/assets/img/local/ibaraki/ibaraki_001_gallery.webp)}
.area-ibaraki .bg-light {
  background:#FBF8F3}
.area-ibaraki .bg-white {
  background:#fff}
.area-ibaraki .area-access-container {
  max-width:760px}
.area-ibaraki .hotel-list-title {
  font-family:var(--f-jp-serif);
  font-size:16px;
  letter-spacing:0.08em;
  color:var(--c-primary-d);
  margin:0 0 4px}
.area-gifu .hero-bg-image {
  background-image:url(/assets/img/local/gifu/gifu_g01_hero.webp)}
/* .area-gifu .venue-photo-01 {
  background-image:url(/assets/img/local/gifu/gifu_g10_gallery.webp)}
.area-gifu .venue-photo-02 {
  background-image:url(/assets/img/local/gifu/gifu_g11_gallery.webp)} */
.area-gifu .charm-photo-01 {
  background-image:url(/assets/img/local/gifu/gifu_g14_gallery.webp)}
.area-gifu .charm-photo-02 {
  background-image:url(/assets/img/local/gifu/gifu_g15_gallery.webp)}
.area-gifu .charm-photo-03 {
  background-image:url(/assets/img/local/gifu/gifu_g16_gallery.webp)}
