@charset "UTF-8";

@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&family=Noto+Sans+JP:wght@300;400;500;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&display=swap");

@import url("./reset.css");
@import url("./base.css");
@import url("./component.css");

:root {
--green-deep: #2d4a2b;
--green-grass: #6b8e4e;
--green-light: #c8d5b0;
--green-pale: #eef2e4;
--tateyama: #4a6b8a;
--tateyama-light: #9eb4c8;
--cream: #f5f1e8;
--paper: #faf7f0;
--ink: #1f1f1c;
--ink-soft: #5a5a52;
--accent: #d97742;
--accent-coral: #c85a3e;
--border: #d8d2c4;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
font-family: 'Noto Sans JP', sans-serif;
font-weight: 300;
color: var(--ink);
background: var(--paper);
line-height: 1.7;
font-feature-settings: "palt";
/* padding-bottom: 80px; */
}

.serif {
font-family: 'Noto Serif JP', serif;
font-feature-settings: "palt";
}

.latin {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
}

/* ========= HEADER ========= */
header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: rgba(250, 247, 240, 0.92);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border);
}
.home header {
	width: 100%;
	max-width: unset;
}

.header-inner {
max-width: 1400px;
margin: 0 auto;
padding: 15px 25px;
display: flex;
justify-content: space-between;
align-items: flex-start;
}

.logo {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 12px;
}

.logo-mark {
font-family: 'Noto Serif JP', serif;
font-weight: 600;
font-size: 1.15rem;
letter-spacing: 0.04em;
color: var(--green-deep);
white-space: nowrap;
}

.logo-sub {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 0.85rem;
color: var(--ink-soft);
letter-spacing: 0.05em;
white-space: nowrap;
}

nav ul {
list-style: none;
display: flex;
flex-wrap: wrap;
gap: 36px;
align-items: center;
}
nav.nw {
    width: 210px;
}
nav.nw ul {
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: unset;
    padding: 0;
    margin: 0;
}
nav.nw ul li {
    margin-left: 12px;
}

nav a {
color: var(--ink);
text-decoration: none;
font-size: 0.88rem;
font-weight: 400;
position: relative;
white-space: nowrap;
transition: color 0.3s;
}
nav a:hover { color: var(--green-grass); }
nav a::after {
content: '';
position: absolute;
bottom: -6px;
left: 0;
width: 0;
height: 1px;
background: var(--green-grass);
transition: width 0.3s;
}
nav a:hover::after { width: 100%; }
nav.nw a img {
    width: auto;
    height: 26px;
}

.reserve-btn {
background: var(--green-deep);
color: var(--paper) !important;
padding: 10px 22px;
border-radius: 2px;
font-size: 0.85rem;
letter-spacing: 0.05em;
}

.reserve-btn:hover {
background: var(--green-grass);
color: var(--paper) !important;
}

.reserve-btn::after { display: none; }



/* ========= HERO ========= */
.hero {
aspect-ratio: 16 / 7;
	/* min-height: 70vh; */
position: relative;
overflow: hidden;
/* background: */
/*     linear-gradient(180deg, transparent 0%, transparent 50%, rgba(250,247,240,0.4) 90%, var(--paper) 100%), */
/*     linear-gradient(180deg, #b8c8d4 0%, #d4dbcc 40%, #a8c08c 65%, #7a9659 90%); */
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 112px;
	background-color: #000;
}
.hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.7;
}

/* 立山連峰のシルエット */
.mountains {
position: absolute;
top: 30%;
left: 0;
right: 0;
width: 100%;
height: 50%;
opacity: 0.55;
}

/* 芝生のテクスチャ */
.grass-field {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 45%;
background:
    radial-gradient(ellipse at 20% 100%, rgba(107, 142, 78, 0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(90, 120, 70, 0.5) 0%, transparent 60%),
    linear-gradient(180deg, transparent 0%, rgba(90, 120, 70, 0.3) 100%);
}

.hero-content {
	position: absolute;
/* position: relative; */
/* z-index: 2; */
max-width: 1400px;
margin: 0 auto;
/* padding: 180px 40px 100px; */
	padding: 0;
}

.hero-eyebrow {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 1.15rem;
color: var(--green-deep);
letter-spacing: 0.15em;
/* margin-bottom: 24px; */
opacity: 0;
animation: fadeUp 1s 0.2s forwards;
}

.hero-eyebrow::before {
content: '— ';
color: var(--accent);
}

.hero h1 {
font-family: 'Noto Serif JP', serif;
font-weight: 500;
font-size: clamp(2.2rem, 5.5vw, 4.1rem);
line-height: 1.2;
/* color: var(--ink); */
	color: var(--paper);
letter-spacing: 0.02em;
margin-bottom: 20px;
opacity: 0;
animation: fadeUp 1s 0.4s forwards;
}

.hero h1 .accent {
	color: var(--paper);
/* color: var(--green-deep); */
position: relative;
}

.hero h1 .pillar {
display: inline-block;
padding: 0 8px;
}

.hero-tagline {
font-size: 1.05rem;
	color: var(--paper);
/* color: var(--ink-soft); */
/* max-width: 560px; */
line-height: 1.5;
margin-bottom: 0;
opacity: 0;
animation: fadeUp 1s 0.6s forwards;
	display: inline-block;
	background-color: var(--green-deep);
	padding: 3px;
/* 	text-align: center; */
}

@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}

/* ========= TODAY BAR ========= */
.today-bar {
position: fixed;
top: 90px;
right: calc(5% - 20px);
z-index: 9999;
/* max-width: 1400px; */
/* margin: -40px auto 0; */
/* padding: 0 40px; */
}

.today-card {
background: var(--paper);
border: 2px solid #34492e;
padding: 20px 36px;
display: flex;
justify-content: space-between;
align-items: flex-start;
/* display: grid; */
/* grid-template-columns: auto 1fr 1fr 1fr 1fr 1fr; */
/* gap: 36px; */
/* align-items: center; */
/* box-shadow: 0 30px 60px -20px rgba(45, 74, 43, 0.15); */
}

.today-label {
font-family: 'Noto Serif JP', serif;
font-size: 0.85rem;
color: var(--green-deep);
border-right: 1px solid var(--border);
padding-right: 15px;
line-height: 1.4;
}

.today-label .date {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 1.5rem;
color: var(--accent);
display: block;
margin-top: 4px;
}

.today-item {
display: flex;
flex-direction: column;
/* gap: 4px; */
margin-left: 20px;
}

.today-item-label {
font-size: 0.7rem;
color: var(--ink-soft);
letter-spacing: 0.1em;
text-transform: uppercase;
}

.today-item-value {
font-family: 'Noto Serif JP', serif;
font-size: 1.05rem;
color: var(--ink);
font-weight: 500;
	margin-top: 4px;
}
.today-item-value i {
    font-style: normal;
}
.status-open { color: var(--green-grass); }
.status-warn { color: var(--accent-coral); }

.pulse {
display: inline-block;
width: 8px;
height: 8px;
background: var(--green-grass);
border-radius: 50%;
margin-right: 6px;
animation: pulse 2s infinite;
}

@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}

.weather25,
.weather_widget_placeholder .weather_title,
.weather_widget_placeholder .weather_days_wrap,
.weather_widget_placeholder .weather_temp_type,
.weather_widget_placeholder .weather_description {
	display: none;
}
.weather_center_wrap {
    margin-top: 0;
    height: unset;
    padding-left: 0;
	align-items: center;
}
.weather_widget_wrap {
    border: unset;
}
.main_wrap {
    width: unset;
    padding-bottom: 0;
}
.weather_image_wrap {
    width: unset;
}
.weather_image {
	width: 25px;
/*     vertical-align: text-top; */
/*     max-height: 60px; */
}
.weather_temp_wrap {
    margin-left: 10px;
	line-height: unset;
}
.weather_temp {
    font-size: 1.4rem;
    line-height: unset;
}

/* ========= THREE DOORS ========= */
.doors {
max-width: 1400px;
margin: 140px auto 0;
padding: 0 40px;
}

.section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 60px;
    padding-bottom: 24px;
    padding-left: 20px;
    padding-right: 20px;
    border-bottom: 1px solid var(--border);
}

.section-title-jp {
font-family: 'Noto Serif JP', serif;
font-size: 2rem;
color: var(--ink);
font-weight: 500;
letter-spacing: 0.05em;
}

.section-title-en {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
color: var(--ink-soft);
font-size: 1.1rem;
letter-spacing: 0.1em;
}

.doors-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 4px;
}

.door {
position: relative;
aspect-ratio: 3 / 4;
overflow: hidden;
cursor: pointer;
transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.door-1 {
background:
    radial-gradient(circle at 30% 70%, rgba(255,255,255,0.15) 0%, transparent 50%),
    linear-gradient(135deg, #6b8e4e 0%, #2d4a2b 100%);
}

.door-2 {
background:
    radial-gradient(circle at 70% 30%, rgba(255,200,150,0.25) 0%, transparent 50%),
    linear-gradient(135deg, #d97742 0%, #8a4520 100%);
}

.door-3 {
background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.15) 0%, transparent 60%),
    linear-gradient(135deg, #4a6b8a 0%, #1f3548 100%);
}

.door::before {
content: '';
position: absolute;
inset: 0;
background:
    repeating-linear-gradient(
    45deg,
    transparent,
    transparent 20px,
    rgba(255,255,255,0.03) 20px,
    rgba(255,255,255,0.03) 21px
    );
}

.door-content {
position: absolute;
inset: 0;
padding: 48px 40px;
display: flex;
flex-direction: column;
justify-content: space-between;
color: var(--paper);
}

.door-num {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 5rem;
line-height: 1;
opacity: 0.35;
transition: opacity 0.5s;
}

.door:hover .door-num { opacity: 0.7; }

.door:hover { transform: translateY(-8px); }

.door-label {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 1rem;
letter-spacing: 0.15em;
opacity: 0.7;
margin-bottom: 12px;
}

.door-title {
font-family: 'Noto Serif JP', serif;
font-size: 2rem;
font-weight: 500;
letter-spacing: 0.05em;
line-height: 1.4;
margin-bottom: 16px;
}

.door-desc {
font-size: 0.92rem;
line-height: 1.9;
opacity: 0.85;
margin-bottom: 24px;
}

.door-arrow {
display: inline-flex;
align-items: center;
gap: 12px;
font-size: 0.85rem;
letter-spacing: 0.1em;
border-bottom: 1px solid rgba(255,255,255,0.4);
padding-bottom: 4px;
width: fit-content;
transition: all 0.3s;
}

.door:hover .door-arrow {
border-bottom-color: var(--paper);
gap: 18px;
}

/* ========= CONCEPT STORY ========= */
.concept {
max-width: 1400px;
margin: 160px auto 0;
padding: 0 40px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: center;
}

.concept-visual {
aspect-ratio: 4 / 5;
background:
    linear-gradient(135deg, rgba(45, 74, 43, 0.1), rgba(45, 74, 43, 0.3)),
    radial-gradient(ellipse at 30% 80%, #a8c08c 0%, #6b8e4e 60%, #2d4a2b 100%);
position: relative;
overflow: hidden;
}

.concept-visual::after {
content: '常願寺川公園';
position: absolute;
top: 40px;
left: 40px;
font-family: 'Noto Serif JP', serif;
font-size: 0.85rem;
color: var(--paper);
letter-spacing: 0.2em;
writing-mode: vertical-rl;
opacity: 0.8;
}

.concept-visual::before {
content: 'A LIFE WITH NATURE';
position: absolute;
bottom: 40px;
right: 40px;
font-family: 'Cormorant Garamond', serif;
font-style: italic;
color: var(--paper);
letter-spacing: 0.2em;
font-size: 0.9rem;
opacity: 0.7;
}

.concept-text .eyebrow {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
color: var(--accent);
letter-spacing: 0.15em;
font-size: 1rem;
margin-bottom: 20px;
}

.concept-text h2 {
font-family: 'Noto Serif JP', serif;
font-size: 2.4rem;
line-height: 1.6;
font-weight: 500;
margin-bottom: 32px;
letter-spacing: 0.03em;
}

.concept-text h2 .highlight {
color: var(--green-deep);
border-bottom: 2px solid var(--accent);
padding-bottom: 2px;
}

.concept-text p {
color: var(--ink-soft);
line-height: 2.1;
margin-bottom: 20px;
font-size: 0.98rem;
}

.concept-pillars {
display: flex;
gap: 24px;
margin-top: 40px;
flex-wrap: wrap;
}

.pillar-tag {
font-family: 'Noto Serif JP', serif;
font-size: 0.9rem;
color: var(--green-deep);
padding: 8px 18px;
border: 1px solid var(--green-grass);
border-radius: 30px;
background: var(--green-pale);
}

/* ========= FACILITIES ========= */
.facilities {
max-width: 1400px;
margin: 160px auto 0;
padding: 0 40px;
}

.facility-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 28px;
}

.facility-item {
cursor: pointer;
transition: transform 0.4s;
}

.facility-item:hover { transform: translateY(-6px); }

.facility-image {
aspect-ratio: 4 / 5;
margin-bottom: 16px;
position: relative;
overflow: hidden;
}

.facility-image::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%);
}
.facility-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fi-1 { background: linear-gradient(135deg, #a8c08c 0%, #4a6b3a 100%); }
.fi-2 { background: linear-gradient(135deg, #6b8e4e 0%, #2d4a2b 100%); }
.fi-3 { background: linear-gradient(135deg, #c8a878 0%, #6a5030 100%); }
.fi-4 { background: linear-gradient(135deg, #d97742 0%, #8a4520 100%); }
.fi-5 { background: linear-gradient(135deg, #9eb4c8 0%, #4a6b8a 100%); }
.fi-6 { background: linear-gradient(135deg, #c8d5b0 0%, #6b8e4e 100%); }
.fi-7 { background: linear-gradient(135deg, #d4c4a0 0%, #8a7050 100%); }
.fi-8 { background: linear-gradient(135deg, #b8c8d4 0%, #6a8aa8 100%); }

.facility-tag {
position: absolute;
top: 16px;
left: 16px;
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 0.95rem;
	color: var(--accent);
/* color: var(--paper); */
letter-spacing: 0.1em;
z-index: 2;
}

.facility-name {
font-family: 'Noto Serif JP', serif;
font-size: 1.15rem;
font-weight: 500;
color: var(--ink);
margin-bottom: 4px;
}

.facility-meta {
font-size: 0.8rem;
color: var(--ink-soft);
letter-spacing: 0.05em;
}

/* ========= ps_reserv ========= */
.ps_reserv {
    max-width: 1400px;
    margin: 80px auto 0;
    padding: 0 40px;
}
.ps_reserv .section-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
.ps_reserv .section-header a {
    margin: 0 2% 25px;
    font-size: 1.2rem;
    min-width: 300px;
    text-align: center;
}


/* ========= BBQ FEATURED ========= */
.bbq-feature {
max-width: 1400px;
margin: 160px auto 0;
padding: 0 40px;
}

.bbq-card {
background: linear-gradient(135deg, #2d4a2b 0%, #1a2e18 100%);
color: var(--paper);
padding: 80px;
position: relative;
overflow: hidden;
display: grid;
grid-template-columns: 1.2fr 1fr;
gap: 60px;
align-items: center;
}

.bbq-card::before {
content: 'BBQ';
position: absolute;
bottom: -40px;
right: -20px;
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 18rem;
line-height: 1;
color: rgba(217, 119, 66, 0.15);
font-weight: 400;
}

.bbq-card-content {
position: relative;
z-index: 2;
}

.bbq-card .eyebrow {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
color: var(--accent);
letter-spacing: 0.2em;
font-size: 1rem;
margin-bottom: 20px;
}

.bbq-card h2 {
font-family: 'Noto Serif JP', serif;
font-size: 2.6rem;
line-height: 1.5;
font-weight: 500;
margin-bottom: 28px;
letter-spacing: 0.03em;
}

.bbq-card p {
line-height: 2;
opacity: 0.85;
margin-bottom: 36px;
font-size: 0.98rem;
}

.bbq-stats {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
}

.bbq-stat {
border-left: 1px solid rgba(245, 241, 232, 0.3);
padding-left: 24px;
}

.bbq-stat-num {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 3.5rem;
color: var(--accent);
line-height: 1;
margin-bottom: 8px;
}

.bbq-stat-label {
font-size: 0.85rem;
opacity: 0.8;
letter-spacing: 0.05em;
}

.btn-line {
display: inline-flex;
align-items: center;
gap: 14px;
background: var(--accent);
color: var(--paper);
padding: 16px 32px;
text-decoration: none;
font-size: 0.95rem;
letter-spacing: 0.05em;
transition: all 0.3s;
}

.btn-line:hover {
background: var(--accent-coral);
gap: 22px;
}

/* ========= EVENTS ========= */
.events {
max-width: 1400px;
margin: 160px auto 0;
padding: 0 40px;
position: relative;
}
.events .section-header {
margin-bottom: 0;
/* padding-bottom: 24px; */
border-bottom: none;
}

.events-list {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0;
border-top: 1px solid var(--border);
}

.event-row {
display: grid;
grid-template-columns: auto 1fr auto;
gap: 32px;
padding: 32px 24px;
border-bottom: 1px solid var(--border);
align-items: center;
cursor: pointer;
transition: background 0.3s;
}

.event-row:hover { background: var(--green-pale); }

.event-row:nth-child(odd) { border-right: 1px solid var(--border); }

.event-date {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
color: var(--accent);
font-size: 1.2rem;
line-height: 1.2;
min-width: 80px;
}

.event-date .year {
font-size: 0.75rem;
color: var(--ink-soft);
display: block;
margin-top: 2px;
}

.event-tag {
display: inline-block;
font-size: 0.7rem;
padding: 3px 10px;
background: var(--green-pale);
color: var(--green-deep);
margin-bottom: 6px;
letter-spacing: 0.05em;
}

.event-tag.alert { background: #fce8e0; color: var(--accent-coral); }

.event-title {
font-family: 'Noto Serif JP', serif;
font-size: 1.05rem;
color: var(--ink);
line-height: 1.5;
}

.event-arrow { color: var(--ink-soft); font-size: 1.2rem; }
.events .reserve-btn {
    position: absolute;
    right: 40px;
    margin-top: 20px;
}


/* ========= SEASONAL ========= */
.seasonal {
max-width: 1400px;
margin: 160px auto 0;
padding: 0 40px;
}

.seasonal-quote {
font-family: 'Noto Serif JP', serif;
font-size: 2rem;
line-height: 1.8;
color: var(--ink);
text-align: center;
max-width: 800px;
margin: 0 auto 80px;
font-weight: 400;
}

.seasonal-quote .latin {
color: var(--accent);
font-size: 1.5rem;
}

.seasons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 2px;
}

.season {
aspect-ratio: 3 / 4;
position: relative;
overflow: hidden;
cursor: pointer;
}
.season img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.season-spring { background: linear-gradient(180deg, #f4d4d8 0%, #e89eaa 50%, #c47080 100%); }
.season-summer { background: linear-gradient(180deg, #a8d8a8 0%, #6ba85a 50%, #3a6830 100%); }
.season-autumn { background: linear-gradient(180deg, #f0c890 0%, #d4844a 50%, #8a4830 100%); }
.season-winter { background: linear-gradient(180deg, #d8e0e8 0%, #98a8b8 50%, #586878 100%); }

.season-label {
position: absolute;
bottom: 32px;
left: 32px;
/* color: var(--paper); */
	color: var(--accent);
}

.season-label .latin {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-size: 1.4rem;
letter-spacing: 0.1em;
display: block;
opacity: 0.9;
}

.season-label .jp {
font-family: 'Noto Serif JP', serif;
font-size: 1.1rem;
letter-spacing: 0.15em;
margin-top: 4px;
}

/* ========= FOOTER ========= */
footer {
background: var(--ink);
color: var(--paper);
margin-top: 160px;
padding: 100px 40px 40px;
}

.footer-inner {
    max-width: 1400px;
    margin: 0 auto 15px;
    padding-bottom: 15px;
    text-align: left;

    display: flex;
    /* flex-wrap: wrap; */
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 1px solid rgba(245, 241, 232, 0.15);
    }

.footer-top {
display: grid;
grid-template-columns: 1.5fr 1fr 1fr 1fr;
gap: 60px;
padding-bottom: 60px;
border-bottom: 1px solid rgba(245, 241, 232, 0.15);
}

.footer-brand {
}
.footer-brand h3 {
font-family: 'Noto Serif JP', serif;
font-size: 1.4rem;
margin-bottom: 12px;
font-weight: 500;
}

.footer-brand .latin {
color: var(--accent);
font-size: 1rem;
letter-spacing: 0.15em;
margin-bottom: 24px;
display: block;
}

.footer-brand p {
font-size: 0.88rem;
line-height: 1.9;
opacity: 0.7;
}

.footer-col h4 {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
color: var(--accent);
margin-bottom: 20px;
letter-spacing: 0.1em;
font-size: 1rem;
font-weight: 500;
}

.footer-col ul {
list-style: none;
}

.footer-col li {
margin-bottom: 12px;
}

.footer-col a {
color: var(--paper);
text-decoration: none;
font-size: 0.88rem;
opacity: 0.7;
transition: opacity 0.3s;
}

.footer-col a:hover { opacity: 1; }

.footer-txtlink {
    display: inline-block;
}
.footer-txtlink ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}
.footer-txtlink ul li {
    margin: 0 10px 20px;
}
.footer-txtlink ul li a {}
.footer-txtlink ul li img {
    width: auto;
    height: 23px;
}




.footer-bottom {
    max-width: 1400px;
    margin: 0 auto;
    padding-top: 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8rem;
    opacity: 0.5;
}



.partners {
    max-width: 1400px;
    margin: 0 auto;
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	font-family: 'Noto Serif JP', serif;
	font-size: 0.85rem;
	opacity: 0.6;
	margin-top: 12px;
}
.partners a {
	text-align: left;
}
.partners a span {
	white-space: nowrap;
}
.partners a span:nth-child(1)::after {
	content: '：';
}
.partners a span:nth-child(3)::before {
	content: '（';
}
.partners a span:nth-child(3)::after {
	content: '、';
}
.partners a span:nth-child(4)::after {
	content: '、';
}
.partners a span:nth-child(5)::after {
	content: '）';
}


/* ========= MOBILE FIXED TAB ========= */
.mobile-tab {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: var(--paper);
border-top: 1px solid var(--border);
z-index: 99;
padding: 12px 0 16px;
box-shadow: 0 -10px 30px -10px rgba(0,0,0,0.1);
}

.mobile-tab-inner {
display: grid;
grid-template-columns: repeat(4, 1fr);
}

.mobile-tab a {
text-align: center;
text-decoration: none;
color: var(--ink);
font-size: 0.7rem;
font-family: 'Noto Serif JP', serif;
}

.mobile-tab .icon {
display: block;
font-size: 1.4rem;
margin-bottom: 4px;
color: var(--green-deep);
}



#header-title {
    width: 90%;
    padding: 0;
}
#header-title .section-header {
    padding-top: 50px;
}




table {
    border-collapse:  collapse;
    width: 100%;
    font-size: 1.2rem;
    margin: 12px auto;
}
th, td {
    border: solid 1px #000;
    padding: 3px;
}
th {
    background-color: #6b8e4e;
    color: #fff;
    text-align: center;
}
td.txr {
    text-align: right;
}


.circle, .number {
    color: var(--ink-soft);
    font-size: 1.2rem;
    padding: 0;
    margin: 15px 0;
}
.circle {
}
.number {
    list-style: decimal;
    margin-left: 25px;
}
.circle li {
    padding-left: 25px;
    position: relative;
}
.circle li::before, .circle dt::before {
    content: '〇';
    margin-right: 4px;
}
.circle li::before {
    position: absolute;
    left: 0;
}
.circle li p {
    line-height: 1.45em;
}
.circle li span.linkslv {
    display: inline-block;
    min-width: 300px;
    margin-right: 25px;
}
.circle a, .circle a, .number a {
    border-bottom: 1px dotted #000;
}



/* ========= RESPONSIVE ========= */
@media (max-width: 1024px) {
    nav { display: none; }
    .header-inner { padding: 16px 20px; }
    .today-bar {
        top: 5px;
        right: 5%;
        padding: 0;
    }

    #header-title .section-header {
        padding-top: 0px;
    }

    .hero-content { padding: 140px 20px 80px; }

    .doors-grid,
    .facility-grid,
    .events-list {
        grid-template-columns: repeat(2, 1fr);
    }
    .seasons { grid-template-columns: repeat(2, 1fr); }
    .concept, .bbq-card {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .bbq-card { padding: 50px 40px; }
    .footer-top { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
    /* body { padding-bottom: 80px; } */

    .header-inner {
        padding: 16px 20px;
        margin: 0 auto;
    }
    #header-title .section-header {
        padding-top: 50px;
    }
    .today-bar {
        top: 100px;
        right: 0;
        padding: 0;
    }
    .today-card {
        border-right: none;
        padding: 12px;
        display: block;
    }
    .today-label {
        border-right: none;
        padding-right: 0;
        border-bottom: 1px solid var(--border);
        padding-bottom: 12px;
    }
    .today-item {
        margin-left: 0;
    }
    .today-item-label {
        letter-spacing: normal;
    }
    .today-item-value {
    font-size: 1rem;
    }
    .today-item-value i {
        display: none;
    }


    .section-header { flex-direction: column; align-items: flex-start; gap: 8px; }
    .doors, .concept, .facilities, .bbq-feature, .events, .seasonal {
        padding: 0 20px;
        margin-top: 100px;
    }
    .doors-grid, .facility-grid, .events-list, .seasons {
        grid-template-columns: 1fr;
    }
	.events-list {
		display: block;
	}
	.event-row {
		padding: 32px 0;
	}
	.event-row:nth-child(odd) { border-right: unset; }

	.bbq-card { padding: 40px 24px; }
    .bbq-card h2 { font-size: 1.8rem; }

	.ps_reserv {
		padding: 0;
	}
	.ps_reserv .section-header a {
		margin: 0 auto 25px;
		font-size: 1.2rem;
		min-width: unset;
		width: 100%;
		max-width: 380px;
	}

    footer {
        padding-top: 50px;
    }
    .footer-inner {
        flex-wrap: wrap;
        justify-content: center;
    }
    .footer-top { grid-template-columns: 1fr; }
    .footer-brand { text-align: center; }
    .footer-txtlink {
        display: none;
    }
    footer .partners a {
        margin: 0 auto;
		text-align: center;
    }
    footer .partners span {
        display: block;
		white-space: nowrap;
    }
	.partners a span:nth-child(1)::before {
		content: '【';
	}
	.partners a span:nth-child(1)::after {
		content: '】';
	}
	.partners a span:nth-child(2)::after {
		content: '';
		display: block;
/* 		width: 80px; */
		height: 10px;
		border-bottom: 1px dashed rgba(255,255,255,0.3);
		margin-bottom: 10px;
	}
	.partners a span:nth-child(3)::before {
		content: '';
	}
	.partners a span:nth-child(3)::after {
		content: '';
	}
	.partners a span:nth-child(4)::after {
		content: '';
	}
	.partners a span:nth-child(5)::after {
		content: '';
	}


    .mobile-tab { display: block; }
    .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
    .seasonal-quote { font-size: 1.3rem; }
    .concept-text h2 { font-size: 1.6rem; }

    .circle li span.linkslv {
        min-width: 250px;
    }
}

