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

:root {
    --color-ink:#2d211c;
    --color-deep:#1b110e;
    --color-brown:#3b241d;
    --color-gold:#b99255;
    --color-gold-light:#d4ba87;
    --color-ivory:#f4ecdf;
    --color-ivory-deep:#e8dbc6;
    --font-serif:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
}

body{
    font-family:"Yu Gothic",sans-serif;
    line-height:1.8;
    background:
        radial-gradient(circle at top left, rgba(212, 177, 117, 0.2), transparent 34%),
        linear-gradient(145deg, #50372d 0%, #34231d 55%, #463027 100%);
    color:var(--color-ink);
}


/* 共通 */

.section{
    width:90%;
    max-width:1100px;
    margin:80px auto;
    padding:60px;
    background:var(--color-ivory);
    border:1px solid rgba(185, 146, 85, 0.38);
    border-radius:18px;
    box-shadow:0 22px 55px rgba(0, 0, 0, 0.28);
}

.section h2{
    text-align:center;
    font-size:32px;
    margin-bottom:40px;
    color:var(--color-brown);
    letter-spacing:0.08em;
}

.section h2::after{
    content:"";
    display:block;
    width:52px;
    height:3px;
    margin:14px auto 0;
    border-radius:999px;
    background:linear-gradient(90deg, transparent, var(--color-gold), transparent);
}

/* 和食店らしい品を出す見出し書体 */
body:not(.admin-page) .header-inner h1,
.section h2,
.introduction-text h3,
.menu-button span,
.menu-page-hero h2,
.food-menu-heading h2,
.drink-menu-heading h2,
.menu-category h3,
.daily-special-content h2,
.subpage-hero h2,
.content-page-heading h2,
.news-archive-item h3,
.phone-reservation-card h2,
.phone-reservation-info h3 {
    font-family:var(--font-serif);
    font-weight:600;
    letter-spacing:0.06em;
}
/* ヘッダー */

header{

    background:linear-gradient(90deg, #53372d 0%, #31201b 55%, #493027 100%);
    color:white;

    padding:20px 0;
}

.header-inner{

    width:90%;
    max-width:1100px;

    margin:auto;

    display:flex;

    justify-content:space-between;

    align-items:center;
}

nav a{

    color:white;

    text-decoration:none;

    margin-left:30px;

    font-weight:bold;

    transition:color 0.25s;
}

nav a:hover{
    color:var(--color-gold-light);
}
.hero{

    height:650px;

    background-image:
        linear-gradient(180deg, rgba(17, 10, 8, 0.28), rgba(17, 10, 8, 0.58)),
        url("../images/exterior-new.jpg?v=20260808-2");
    background-size:cover;
    background-position:center 35%;
    background-repeat:no-repeat;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:white;

    text-shadow:0 2px 12px rgba(0, 0, 0, 0.65);
}

.hero h2{
    margin-bottom:12px;
    color:#fff8e8;
    font-family:var(--font-serif);
    font-size:56px;
    font-weight:600;
    letter-spacing:0.16em;
}

.hero p{
    color:#e6d2aa;
    font-family:var(--font-serif);
    font-size:18px;
    font-weight:600;
    letter-spacing:0.12em;
}

.hero-text {
    min-width:min(90%, 720px);
    padding:34px 56px 30px;
    border-top:1px solid rgba(212, 186, 135, 0.8);
    border-bottom:1px solid rgba(212, 186, 135, 0.8);
    background:linear-gradient(90deg, transparent, rgba(29, 18, 14, 0.62) 14%, rgba(29, 18, 14, 0.62) 86%, transparent);
    text-shadow:0 2px 10px rgba(0, 0, 0, 0.72);
}

.mobile-break {
    display:none;
}
/* メニュー */

.menu-section {
    text-align: center;
    background:
        radial-gradient(circle at top, rgba(212, 177, 117, 0.2), transparent 48%),
        linear-gradient(145deg, #50372e, #30211c);
    border-color:rgba(212, 186, 135, 0.48);
}

.menu-section h2 {
    color:#f4ead9;
}

.menu-buttons {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}

.menu-button {
    position: relative;

    display: flex;
    justify-content: center;
    align-items: center;

    width: 400px;
    height: 440px;

    background-color: #8a5a3b;
    background-size: cover;
    background-position: center;

    color: white;
    text-decoration: none;

    border-radius: 10px;
    border:1px solid rgba(212, 186, 135, 0.55);
    overflow: hidden;
    box-shadow:0 16px 34px rgba(0, 0, 0, 0.38);

    transition: 0.3s;
}

/* 写真を少し暗くする */
.menu-button::before {
    content: "";

    position: absolute;
    inset: 0;

    background:linear-gradient(180deg, rgba(15, 9, 7, 0.22), rgba(15, 9, 7, 0.58));
}

/* 文字を写真より前に表示 */
.menu-button span {
    position: relative;
    z-index: 1;

    font-size: 26px;
    font-weight: bold;
    letter-spacing:0.08em;
    text-shadow:0 2px 10px rgba(0, 0, 0, 0.85);
}

/* フード写真 */
.food-button {
    background-image: url("../images/food-blurred.png");
}

/* ドリンク写真 */
.drink-button {
    background-image: url("../images/drink.jpg");
}

.menu-button:hover {
    transform: translateY(-5px);
    border-color:var(--color-gold-light);
    box-shadow:0 20px 42px rgba(0, 0, 0, 0.48);
}

.menu-button:hover::before {
    background-color: rgba(0, 0, 0, 0.25);
}
/* ==========================
   店舗紹介
========================== */

.shop-introduction{

    margin-top:100px;
    background:linear-gradient(145deg, #f8f1e6, #eee2d0);

}

.introduction-inner{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:60px;

}

/* 写真 */

.slider{

    width:50%;

    height:420px;

    position:relative;

    overflow:hidden;

    border-radius:12px;
    border:1px solid rgba(185, 146, 85, 0.45);
    box-shadow:0 14px 32px rgba(43, 27, 21, 0.2);

}

.slide{

    position:absolute;

    width:100%;

    height:100%;

    object-fit:cover;

    opacity:0;

    transition:1s;

}

.slide.active{

    opacity:1;

}

/* 文章 */

.introduction-text{

    width:50%;

}

.introduction-text h3{

    font-size:34px;

    color:#4b2e2b;

    margin-bottom:30px;

    line-height:1.5;

}

.introduction-text p{

    font-size:18px;

    line-height:2;

    margin-bottom:20px;

}
/* ==========================
   お知らせ
========================== */

.news-section {
    text-align: center;
    background:linear-gradient(145deg, #f5ecdf, #e9dbc6);
}

.news-list {
    max-width: 850px;
    margin: 0 auto 35px;
    border-top: 1px solid rgba(131, 96, 62, 0.32);
}

.news-item {
    display: flex;
    align-items: center;
    gap: 40px;

    padding: 22px 15px;

    border-bottom: 1px solid rgba(131, 96, 62, 0.32);

    color: #333;
    text-decoration: none;
    text-align: left;

    transition: 0.3s;
}

.news-item time {
    min-width: 120px;
    color: #7a6258;
    font-weight: bold;
}

.news-item p {
    margin: 0;
}

.news-item:hover {
    background-color: rgba(185, 146, 85, 0.11);
    padding-left: 25px;
}

.detail-link {
    display: inline-block;

    padding: 12px 30px;

    border: 1px solid var(--color-gold);
    border-radius: 4px;

    color: var(--color-brown);
    text-decoration: none;

    transition: 0.3s;
}

.detail-link:hover {
    background-color: var(--color-brown);
    color: white;
}

/* スマホ表示 */

@media screen and (max-width: 768px) {

    .news-item {
        display: block;
    }

    .news-item time {
        display: block;
        margin-bottom: 8px;
    }
}
/* ==========================
   店舗情報
========================== */

.shop-information {
    background:linear-gradient(145deg, #f6eee2, #eadcc8);
}

.shop-information-box {
    max-width: 850px;
    margin: 0 auto;
    padding: 40px;

    background:rgba(255, 250, 242, 0.62);
    border:1px solid rgba(185, 146, 85, 0.34);
    border-radius: 10px;
    box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.shop-info-list {
    margin: 0;
}

.shop-info-list div {
    display: flex;
    padding: 16px 0;

    border-bottom: 1px solid #d8d1cc;
    text-align: left;
}

.shop-info-list dt {
    width: 30%;
    font-weight: bold;
    color: #4b2e2b;
}

.shop-info-list dd {
    width: 70%;
    margin: 0;
}

.shop-name-part {
    white-space: nowrap;
}

.business-note {
    margin-top: 30px;
    padding: 20px;

    background-color: #fffaf1;
    border-left: 4px solid var(--color-gold);

    line-height: 1.9;
    text-align: left;
}


/* ==========================
   アクセス
========================== */

.access-inner {
    display: flex;
    align-items: center;
    gap: 50px;
}

.access-section {
    background:linear-gradient(145deg, #eadcc7, #ddc9aa);
}

.access-inner .map {
    width: 60%;
    height: 380px;

    display: flex;
    justify-content: center;
    align-items: center;

    background-color: #ddd;
    color: #666;

    border-radius: 10px;
}

.access-text {
    width: 40%;
}

.address {
    font-size: 18px;
    line-height: 2;
}

.phone-label {
    margin-top: 25px;
    font-weight: bold;
}

.phone-number {
    margin: 10px 0 20px;
}

.phone-number a {
    color: #4b2e2b;
    font-size: 30px;
    font-weight: bold;
    text-decoration: none;
}

.phone-number a:hover {
    text-decoration: underline;
}

.contact-page-link {
    margin-top:18px;
}


/* スマホ表示 */

@media screen and (max-width: 768px) {

    .shop-information-box {
        padding: 25px;
    }

    .shop-info-list div {
        display: block;
    }

    .shop-info-list dt,
    .shop-info-list dd {
        width: 100%;
    }

    .shop-info-list dt {
        margin-bottom: 5px;
    }

    .access-inner {
        flex-direction: column;
        gap: 30px;
    }

    .access-inner .map,
    .access-text {
        width: 100%;
    }

    .access-inner .map {
        height: 280px;
    }
}
.map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 10px;
}
/* ヘッダー */

header {
    position: sticky;
    top: 0;
    z-index: 1000;

    background:linear-gradient(90deg, #53372d 0%, #31201b 55%, #493027 100%);
    color: white;
    padding: 20px 0;
    border-bottom:2px solid var(--color-gold);
    box-shadow:0 6px 18px rgba(0, 0, 0, 0.38);
}

#menu,
#news,
#access{

    scroll-margin-top:120px;

}

#food,
#drink,
#daily-special {
    scroll-margin-top:120px;
}

footer {
    padding:35px 20px;
    background:linear-gradient(90deg, #3f2a23, #241713, #3f2a23);
    color:#f7ead8;
    text-align:center;
    border-top:1px solid rgba(185, 146, 85, 0.55);
}

@media screen and (max-width: 768px) {
    .header-inner {
        flex-direction:column;
        gap:10px;
    }

    .header-inner h1 {
        font-size:24px;
        line-height:1.35;
        white-space:nowrap;
    }

    nav {
        display:flex;
        justify-content:center;
        flex-wrap:wrap;
        gap:4px 18px;
    }

    nav a {
        margin-left:0;
        font-size:13px;
    }

    .hero {
        height:560px;
    }

    .hero-text {
        width:92%;
        min-width:0;
        padding:27px 12px 24px;
    }

    .hero h2 {
        font-size:clamp(34px, 9.5vw, 42px);
        letter-spacing:0.1em;
        line-height:1.25;
    }

    .hero p {
        font-size:14px;
        letter-spacing:0.06em;
        line-height:1.9;
    }

    .mobile-break {
        display:block;
    }

    .section {
        width:92%;
        margin:50px auto;
        padding:38px 22px;
        border-radius:14px;
    }

    .section h2 {
        font-size:27px;
        margin-bottom:30px;
    }

    .introduction-inner {
        flex-direction:column;
        gap:30px;
    }

    .slider,
    .introduction-text {
        width:100%;
    }

    .introduction-text h3 {
        font-size:28px;
        word-break:keep-all;
        overflow-wrap:normal;
    }

    .slider {
        height:420px;
    }

    .menu-button {
        width:100%;
        max-width:400px;
        height:380px;
    }
}

/* ==========================
   お品書きページ
========================== */

.site-title-link {
    color:#fff;
    text-decoration:none;
}

.menu-page main {
    padding-bottom:80px;
}

.menu-page-hero {
    min-height:360px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:70px 20px;
    color:#fffaf0;
    text-align:center;
    background-image:
        linear-gradient(180deg, rgba(25, 14, 10, 0.42), rgba(25, 14, 10, 0.72)),
        url("../images/food-blurred.png?v=20260808-1");
    background-size:cover;
    background-position:center 46%;
}

.menu-page-hero-inner {
    padding:32px 46px;
    border:1px solid rgba(212, 186, 135, 0.58);
    background:rgba(37, 23, 18, 0.62);
    box-shadow:0 18px 45px rgba(0, 0, 0, 0.34);
    backdrop-filter:blur(3px);
}

.menu-page-kicker {
    color:var(--color-gold-light);
    font-size:13px;
    font-weight:bold;
    letter-spacing:0.28em;
}

.menu-page-hero h2 {
    margin:8px 0 12px;
    font-size:46px;
    letter-spacing:0.16em;
}

.food-menu-section,
.drink-menu-section {
    width:90%;
    max-width:1100px;
    margin:70px auto 0;
    padding:60px;
    border:1px solid rgba(185, 146, 85, 0.42);
    border-radius:18px;
    background:linear-gradient(145deg, #f8f1e6, #e9dcc8);
    box-shadow:0 22px 55px rgba(0, 0, 0, 0.24);
}

.daily-special-section {
    width:90%;
    max-width:1100px;
    margin:46px auto 0;
    padding:38px 52px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:32px;
    border:1px solid rgba(212, 186, 135, 0.56);
    border-radius:14px;
    color:#fff8ec;
    background:
        radial-gradient(circle at top left, rgba(212, 177, 117, 0.18), transparent 38%),
        linear-gradient(135deg, #573c31, #30211c);
    box-shadow:0 18px 40px rgba(0, 0, 0, 0.22);
}

.daily-special-mark {
    width:76px;
    height:76px;
    flex:0 0 76px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--color-gold-light);
    border-radius:50%;
    color:var(--color-gold-light);
    font-family:serif;
    font-size:34px;
}

.daily-special-content h2 {
    margin:5px 0 8px;
    font-size:29px;
    letter-spacing:0.12em;
}

.daily-special-content > p:last-child {
    color:#eee1cf;
}

.food-menu-heading,
.drink-menu-heading {
    text-align:center;
}

.food-menu-heading h2,
.drink-menu-heading h2 {
    margin:7px 0 8px;
    color:var(--color-brown);
    font-size:34px;
    letter-spacing:0.1em;
}

.food-menu-heading > p:last-child,
.drink-menu-heading > p:last-child {
    color:#766258;
}

.food-menu-grid,
.drink-menu-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:34px;
    margin-top:42px;
}

.menu-category {
    padding:34px 38px;
    border:1px solid rgba(185, 146, 85, 0.35);
    border-radius:12px;
    background:rgba(255, 252, 246, 0.76);
    box-shadow:0 12px 28px rgba(69, 43, 33, 0.11);
}

.menu-category h3 {
    margin-bottom:22px;
    padding-bottom:13px;
    border-bottom:1px solid rgba(185, 146, 85, 0.48);
    color:var(--color-brown);
    font-size:25px;
    letter-spacing:0.12em;
    text-align:center;
}

.menu-price-list {
    list-style:none;
}

.menu-price-list li {
    display:flex;
    align-items:baseline;
    gap:16px;
    padding:12px 2px;
    border-bottom:1px dotted rgba(95, 69, 56, 0.27);
}

.menu-price-list li:last-child {
    border-bottom:0;
}

.menu-item-name {
    flex:1;
    font-size:17px;
    font-weight:600;
}

.menu-item-price {
    min-width:72px;
    color:#714d37;
    font-size:17px;
    font-weight:bold;
    text-align:right;
    white-space:nowrap;
}

.drink-menu-section {
    background:linear-gradient(145deg, #f1e5d3, #e2cfb3);
}

.back-home-wrap {
    margin-top:48px;
    text-align:center;
}

.back-home-link {
    display:inline-block;
    padding:13px 34px;
    border:1px solid var(--color-gold-light);
    color:#fff6e8;
    text-decoration:none;
    transition:background-color 0.25s, color 0.25s;
}

.back-home-link:hover {
    background:var(--color-gold-light);
    color:var(--color-brown);
}

@media screen and (max-width: 768px) {
    .menu-page header {
        position:relative;
    }

    .menu-page .header-inner {
        flex-direction:column;
        gap:10px;
    }

    .menu-page nav a {
        margin:0 9px;
        font-size:14px;
    }

    .menu-page-hero {
        min-height:310px;
        padding:48px 18px;
    }

    .menu-page-hero-inner {
        width:100%;
        padding:27px 18px;
    }

    .menu-page-hero h2 {
        font-size:34px;
    }

    .food-menu-section,
    .drink-menu-section {
        width:92%;
        margin-top:46px;
        padding:38px 20px;
    }

    .daily-special-section {
        width:92%;
        padding:34px 22px;
        flex-direction:column;
        gap:18px;
        text-align:center;
    }

    .daily-special-content h2 {
        font-size:27px;
    }

    .daily-special-content br {
        display:none;
    }

    .food-menu-grid,
    .drink-menu-grid {
        grid-template-columns:1fr;
        gap:24px;
        margin-top:30px;
    }

    .menu-category {
        padding:28px 22px;
    }

    .food-menu-heading h2,
    .drink-menu-heading h2 {
        font-size:28px;
    }
}

/* ==========================
   お知らせ・お問い合わせページ
========================== */

.news-page main,
.contact-page main {
    padding-bottom:80px;
}

.subpage-hero {
    min-height:320px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:65px 20px;
    color:#fffaf0;
    text-align:center;
    background-size:cover;
    background-position:center;
}

.subpage-hero > div {
    padding:30px 48px;
    border:1px solid rgba(212, 186, 135, 0.58);
    background:rgba(37, 23, 18, 0.68);
    box-shadow:0 18px 45px rgba(0, 0, 0, 0.34);
    backdrop-filter:blur(3px);
}

.subpage-hero h2 {
    margin:7px 0 10px;
    font-size:42px;
    letter-spacing:0.12em;
}

.news-page-hero {
    background-image:
        linear-gradient(180deg, rgba(25, 14, 10, 0.38), rgba(25, 14, 10, 0.68)),
        url("../images/interior1.jpg?v=20260713-1");
}

.contact-page-hero {
    background-image:
        linear-gradient(180deg, rgba(25, 14, 10, 0.36), rgba(25, 14, 10, 0.7)),
        url("../images/interior2.jpg?v=20260713-1");
}

.content-page-section,
.contact-method-section {
    width:90%;
    max-width:1100px;
    margin:70px auto 0;
}

.content-page-section,
.contact-form-panel {
    padding:58px 60px;
    border:1px solid rgba(185, 146, 85, 0.42);
    border-radius:18px;
    background:linear-gradient(145deg, #f8f1e6, #e9dcc8);
    box-shadow:0 22px 55px rgba(0, 0, 0, 0.24);
}

.content-page-heading {
    margin-bottom:34px;
    text-align:center;
}

.content-page-heading h2 {
    margin:6px 0 8px;
    color:var(--color-brown);
    font-size:32px;
    letter-spacing:0.1em;
}

.news-archive-list {
    border-top:1px solid rgba(131, 96, 62, 0.32);
}

.news-archive-item {
    padding:30px 8px;
    border-bottom:1px solid rgba(131, 96, 62, 0.32);
}

.news-archive-meta {
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:9px;
    color:#7a6258;
    font-weight:bold;
}

.news-archive-meta span {
    padding:2px 11px;
    border:1px solid rgba(185, 146, 85, 0.52);
    border-radius:999px;
    color:#714d37;
    font-size:12px;
}

.news-archive-item h3 {
    margin-bottom:7px;
    color:var(--color-brown);
    font-size:22px;
    text-wrap:balance;
}

.news-archive-item p {
    color:#66554c;
}

.contact-method-section {
    display:grid;
    grid-template-columns:minmax(260px, 0.72fr) minmax(0, 1.6fr);
    align-items:start;
    gap:30px;
}

.contact-phone-panel {
    position:sticky;
    top:125px;
    padding:38px 30px;
    border:1px solid rgba(212, 186, 135, 0.58);
    border-radius:14px;
    color:#fff8ec;
    text-align:center;
    background:
        radial-gradient(circle at top, rgba(212, 177, 117, 0.18), transparent 45%),
        linear-gradient(145deg, #573c31, #30211c);
    box-shadow:0 18px 40px rgba(0, 0, 0, 0.22);
}

.contact-phone-panel h2 {
    margin:7px 0 16px;
    font-size:23px;
}

.contact-phone-panel a {
    display:inline-block;
    margin-bottom:12px;
    color:var(--color-gold-light);
    font-size:29px;
    font-weight:bold;
    text-decoration:none;
    white-space:nowrap;
}

.contact-phone-panel > p:last-child {
    color:#eee1cf;
    font-size:14px;
}

.contact-form-panel {
    min-width:0;
}

.required-mark {
    display:inline-block;
    margin-left:5px;
    padding:1px 7px;
    border-radius:3px;
    color:#fff;
    background:#8d4a3b;
    font-size:11px;
    font-weight:bold;
    vertical-align:middle;
}

.form-setup-note,
.form-message {
    margin-bottom:28px;
    padding:18px 20px;
    border-radius:8px;
}

.form-setup-note {
    border-left:4px solid var(--color-gold);
    background:#fff8eb;
    color:#704e39;
}

.form-message h3 {
    margin-bottom:5px;
}

.form-message ul {
    padding-left:1.4em;
}

.form-success {
    border:1px solid #7d9b72;
    background:#eef6e9;
    color:#37512f;
}

.form-error {
    border:1px solid #bd8275;
    background:#fff0ec;
    color:#71382e;
}

.contact-form {
    display:grid;
    gap:24px;
}

.form-row {
    display:grid;
    gap:7px;
}

.form-row label,
.reservation-fields legend {
    color:var(--color-brown);
    font-weight:bold;
}

.form-row input,
.form-row select,
.form-row textarea {
    width:100%;
    padding:12px 14px;
    border:1px solid rgba(107, 77, 58, 0.35);
    border-radius:6px;
    color:var(--color-ink);
    background:#fffdf8;
    font:inherit;
}

.form-row textarea {
    resize:vertical;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
    outline:2px solid rgba(185, 146, 85, 0.45);
    border-color:var(--color-gold);
}

.reservation-fields {
    padding:22px;
    border:1px solid rgba(185, 146, 85, 0.4);
    border-radius:8px;
}

.reservation-fields > p {
    margin:2px 0 17px;
    color:#766258;
    font-size:13px;
}

.reservation-field-grid {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
}

.consent-row {
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#59463d;
    font-size:14px;
}

.consent-row input {
    margin-top:7px;
    accent-color:var(--color-brown);
}

.contact-submit {
    justify-self:center;
    min-width:220px;
    padding:13px 34px;
    border:1px solid var(--color-gold);
    color:#fff;
    background:linear-gradient(90deg, #53372d, #31201b);
    font:inherit;
    font-weight:bold;
    cursor:pointer;
    transition:transform 0.2s, box-shadow 0.2s;
}

.contact-submit:hover:not(:disabled) {
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(49, 32, 27, 0.24);
}

.contact-submit:disabled {
    cursor:not-allowed;
    opacity:0.48;
}

.honeypot-field {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
}

/* 電話予約専用ページ */
.phone-reservation-section {
    width:90%;
    max-width:920px;
    margin:70px auto 0;
    display:grid;
    grid-template-columns:minmax(0, 1.35fr) minmax(260px, 0.65fr);
    gap:28px;
    align-items:stretch;
}

.phone-reservation-card,
.phone-reservation-info {
    border:1px solid rgba(185, 146, 85, 0.48);
    border-radius:16px;
    box-shadow:0 20px 48px rgba(0, 0, 0, 0.24);
}

.phone-reservation-card {
    padding:58px 48px;
    color:#fff8ec;
    text-align:center;
    background:
        radial-gradient(circle at 50% 5%, rgba(185, 146, 85, 0.3), transparent 42%),
        linear-gradient(145deg, #53372d, #291a16);
}

.phone-reservation-card h2 {
    margin:8px 0 12px;
    font-size:30px;
    letter-spacing:0.06em;
}

.phone-reservation-lead,
.phone-reservation-note {
    color:#eee1cf;
}

.phone-reservation-number {
    display:block;
    margin:26px auto 16px;
    color:var(--color-gold-light);
    font-size:clamp(30px, 5vw, 44px);
    font-weight:bold;
    letter-spacing:0.04em;
    line-height:1.25;
    text-decoration:none;
}

.phone-call-button {
    display:inline-block;
    min-width:220px;
    margin-bottom:22px;
    padding:13px 30px;
    border:1px solid var(--color-gold-light);
    border-radius:999px;
    color:#2f201a;
    background:linear-gradient(135deg, #ead8b3, #b99255);
    font-weight:bold;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(0, 0, 0, 0.2);
}

.phone-reservation-note {
    font-size:13px;
}

.phone-reservation-info {
    padding:42px 34px;
    background:var(--color-ivory);
}

.phone-reservation-info h3 {
    margin-bottom:18px;
    color:var(--color-brown);
    font-size:21px;
}

.phone-reservation-info ul {
    margin:0 0 24px 1.3em;
    color:#59463d;
}

.phone-reservation-info p {
    padding-top:20px;
    border-top:1px solid rgba(131, 96, 62, 0.28);
    color:#705b50;
    font-size:14px;
}

/* 店長用お知らせ管理 */
.admin-page {
    min-height:100vh;
    background:#f2eadf;
}

.admin-shell {
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:30px 18px;
}

.admin-login-card {
    width:min(100%, 460px);
    padding:48px 42px;
    border:1px solid rgba(185, 146, 85, 0.52);
    border-radius:16px;
    background:#fffaf2;
    box-shadow:0 24px 65px rgba(49, 32, 27, 0.22);
}

.admin-login-card h1 {
    margin:5px 0 8px;
    color:var(--color-brown);
}

.admin-login-card > p:not(.menu-page-kicker) {
    margin-bottom:28px;
    color:#705b50;
}

.admin-form {
    display:grid;
    gap:20px;
}

.admin-form > label:not(.admin-checkbox) {
    display:grid;
    gap:7px;
    color:var(--color-brown);
    font-weight:bold;
}

.admin-form input,
.admin-form select,
.admin-form textarea {
    width:100%;
    padding:12px 13px;
    border:1px solid rgba(107, 77, 58, 0.35);
    border-radius:7px;
    color:var(--color-ink);
    background:#fff;
    font:inherit;
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus {
    outline:2px solid rgba(185, 146, 85, 0.42);
    border-color:var(--color-gold);
}

.admin-checkbox {
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--color-brown);
    font-weight:bold;
}

.admin-checkbox input {
    width:auto;
    accent-color:var(--color-brown);
}

.admin-primary-button,
.admin-secondary-button,
.admin-header-actions button,
.admin-item-actions button {
    padding:11px 22px;
    border-radius:7px;
    font:inherit;
    font-weight:bold;
    cursor:pointer;
}

.admin-primary-button {
    border:1px solid var(--color-gold);
    color:#fff;
    background:linear-gradient(90deg, #53372d, #31201b);
}

.admin-primary-button:disabled {
    opacity:0.55;
    cursor:wait;
}

.admin-secondary-button,
.admin-item-actions button {
    border:1px solid rgba(107, 77, 58, 0.35);
    color:var(--color-brown);
    background:#fffaf2;
}

.admin-form-actions,
.admin-header-actions,
.admin-item-actions,
.admin-list-heading {
    display:flex;
    align-items:center;
    gap:12px;
}

.admin-message {
    padding:10px 13px;
    border-left:4px solid #6d8f60;
    color:#37512f;
    background:#eef6e9;
}

.admin-message.is-error {
    border-left-color:#a65749;
    color:#71382e;
    background:#fff0ec;
}

.admin-back-link {
    display:block;
    margin-top:24px;
    color:#765b4b;
    text-align:center;
}

.admin-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:22px max(5%, calc((100% - 1180px) / 2));
}

.admin-header h1 {
    font-size:27px;
}

.admin-header-actions a,
.admin-header-actions button {
    color:#fff8ec;
    background:transparent;
    border:1px solid rgba(212, 186, 135, 0.55);
    text-decoration:none;
}

.admin-header-actions a {
    padding:10px 18px;
    border-radius:7px;
    font-weight:bold;
}

.admin-dashboard {
    width:90%;
    max-width:1180px;
    margin:42px auto 70px;
    display:grid;
    grid-template-columns:minmax(320px, 0.85fr) minmax(0, 1.15fr);
    gap:28px;
    align-items:start;
}

.admin-editor,
.admin-news-panel {
    padding:36px;
    border:1px solid rgba(185, 146, 85, 0.42);
    border-radius:14px;
    background:#fffaf2;
    box-shadow:0 18px 42px rgba(49, 32, 27, 0.14);
}

.admin-editor h2,
.admin-news-panel h2 {
    margin-bottom:22px;
    color:var(--color-brown);
    font-size:23px;
}

.admin-list-heading {
    justify-content:space-between;
}

.admin-news-list {
    display:grid;
    gap:14px;
}

.admin-news-item {
    padding:20px;
    border:1px solid rgba(131, 96, 62, 0.22);
    border-radius:9px;
    background:#fff;
}

.admin-news-item h3 {
    margin:7px 0 3px;
    color:var(--color-brown);
    font-size:18px;
}

.admin-news-item > p {
    margin-bottom:13px;
    color:#766258;
    font-size:13px;
}

.admin-news-meta {
    display:flex;
    justify-content:space-between;
    color:#6f5b50;
    font-size:13px;
}

.admin-news-meta span {
    padding:1px 9px;
    border-radius:999px;
    font-weight:bold;
}

.admin-news-meta .is-published {
    color:#37512f;
    background:#e5f0df;
}

.admin-news-meta .is-draft {
    color:#725d30;
    background:#f5ebce;
}

.admin-item-actions button:last-child {
    color:#8b3f34;
}

@media screen and (max-width: 768px) {
    .news-page header,
    .contact-page header {
        position:relative;
    }

    .news-page .header-inner,
    .contact-page .header-inner {
        flex-direction:column;
        gap:10px;
    }

    .news-page nav a,
    .contact-page nav a {
        margin:0 8px;
        font-size:13px;
    }

    .subpage-hero {
        min-height:290px;
        padding:45px 18px;
    }

    .subpage-hero > div {
        width:100%;
        padding:26px 16px;
    }

    .subpage-hero h2 {
        font-size:31px;
    }

    .content-page-section,
    .contact-method-section {
        width:92%;
        margin-top:46px;
    }

    .content-page-section,
    .contact-form-panel {
        padding:38px 22px;
    }

    .news-archive-meta {
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }

    .contact-method-section {
        grid-template-columns:1fr;
    }

    .contact-phone-panel {
        position:static;
    }

    .reservation-field-grid {
        grid-template-columns:1fr;
    }

    .phone-reservation-section,
    .admin-dashboard {
        grid-template-columns:1fr;
    }

    .phone-reservation-card {
        padding:42px 22px;
    }

    .phone-reservation-card h2 {
        font-size:25px;
    }

    .phone-reservation-info,
    .admin-editor,
    .admin-news-panel,
    .admin-login-card {
        padding:30px 22px;
    }

    .admin-header {
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }

    .admin-header-actions {
        width:100%;
        flex-wrap:wrap;
    }
}
