*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--front-bg);color:#3f342d;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;line-height:1.7}a{color:inherit}.front-page{max-width:560px;min-height:100vh;margin:0 auto;background:#fff;box-shadow:0 0 40px rgba(0,0,0,.08)}.front-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--front-border)}.front-brand{padding:16px 18px 10px;text-align:center}.front-brand-ja{color:var(--front-heading);font-size:22px;font-weight:800;letter-spacing:.04em}.front-brand-en{margin-top:2px;color:var(--front-main);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.front-nav{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #f1e7e1}.front-nav-three{grid-template-columns:repeat(3,1fr)}.front-nav a{padding:10px 4px;text-align:center;color:#6b5142;font-size:12px;font-weight:700;text-decoration:none;border-right:1px solid #f1e7e1}.front-nav a:last-child{border-right:0}.entrance{padding:28px 18px 34px}.entrance-image{overflow:hidden;border-radius:28px;background:#fff4ef;box-shadow:0 12px 34px rgba(90,58,43,.1)}.entrance-image img,.entrance-image .hero-placeholder{width:100%;aspect-ratio:1/1;display:block;object-fit:cover}.hero-placeholder,.top-visual-placeholder{display:flex;align-items:center;justify-content:center;color:var(--front-heading);font-size:24px;font-weight:800;background:linear-gradient(135deg,#f7d7d0,#fff1ea)}.top-visual{overflow:hidden;background:#fff4ef}.top-visual img,.top-visual-placeholder{width:100%;aspect-ratio:16/9;display:block;object-fit:cover}.hero-copy{padding:22px 22px 26px;background:linear-gradient(180deg,rgba(255,255,255,.94),#fff);border-bottom:1px solid var(--front-border)}.entrance-copy{text-align:center;border-bottom:0}.top-copy{border-bottom:1px solid var(--front-border)}.hero-label{color:var(--front-main);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.hero-copy h1{margin:6px 0 8px;color:var(--front-heading);font-size:26px;line-height:1.3}.hero-copy p{margin:0;color:#6b5142;font-size:14px}.entrance-en{color:var(--front-main)!important;font-size:13px!important;font-weight:800!important;letter-spacing:.1em!important;text-transform:uppercase!important}.entrance-actions{margin-top:20px}.section{padding:30px 18px;border-bottom:1px solid var(--front-border)}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.section-kicker{color:var(--front-main);font-size:11px;font-weight:800;letter-spacing:.16em}.section h2{margin:2px 0 0;color:var(--front-heading);font-size:22px;line-height:1.35}.section-date{color:#9d7a65;font-weight:800}.cast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cast-card{overflow:hidden;border:1px solid var(--front-border);border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(90,58,43,.08)}.cast-photo{position:relative;display:block;overflow:hidden;background:#faf3ef;text-decoration:none}.cast-photo img,.no-photo{width:100%;aspect-ratio:390/520;display:block;object-fit:cover}.no-photo{display:flex;align-items:center;justify-content:center;color:#b8a093;font-size:12px;font-weight:700}.badge-new{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:24px;padding:0 10px;border-radius:999px;background:var(--front-main);color:var(--front-text-on-main);font-size:11px;font-weight:800;letter-spacing:.08em}.cast-info{padding:12px}.cast-info h3{margin:0 0 4px;color:var(--front-heading);font-size:16px;line-height:1.35}.cast-info h3 a{text-decoration:none}.cast-info h3 a:hover{text-decoration:underline}.cast-meta{display:inline-flex;align-items:center;margin-bottom:7px;padding:3px 8px;border-radius:999px;background:#fff4ef;color:var(--front-main);font-size:12px;font-weight:800}.schedule-comment{margin-bottom:7px;color:#c05b4d;font-size:12px;font-weight:800}.cast-info p{margin:6px 0 0;color:#6b5142;font-size:12px}.news-list{border:1px solid var(--front-border);border-radius:16px;overflow:hidden;background:#fff}.news-item{display:grid;grid-template-columns:88px 1fr;gap:10px;padding:13px 14px;border-bottom:1px solid var(--front-border)}.news-item:last-child{border-bottom:0}.news-date{color:var(--front-main);font-size:12px;font-weight:800}.news-text{color:#5f4a3f;font-size:13px}.empty-box{padding:22px 16px;border:1px dashed var(--front-border);border-radius:16px;background:#fffdfb;color:#8a6c5b;text-align:center;font-size:13px;font-weight:700}.more-link-wrap{margin-top:18px;text-align:center}.front-btn{display:inline-flex;align-items:center;justify-content:center;min-width:220px;padding:12px 18px;border-radius:999px;background:var(--front-main);color:var(--front-text-on-main);text-decoration:none;font-size:13px;font-weight:800}.front-footer{padding:28px 18px 34px;background:var(--front-footer);color:#fff;text-align:center}.front-footer div{font-weight:800}.front-footer small{display:block;margin-top:4px;opacity:.7}@media(max-width:420px){.front-page{max-width:none;box-shadow:none}.cast-grid{gap:10px}.section{padding-left:14px;padding-right:14px}.cast-info{padding:10px}}

/* PC背景画像：専用固定レイヤー */
.pc-bg-layer {
    display: none;
}

@media (min-width: 768px) {
    .pc-bg-layer {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 0 !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        pointer-events: none !important;
    }

    .front-page {
        position: relative !important;
        z-index: 1 !important;
        width: 100% !important;
        max-width: 560px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        overflow-x: hidden !important;
        box-shadow: 0 0 48px rgba(0,0,0,.22) !important;
    }
}

@media (max-width: 767px) {
    .pc-bg-layer {
        display: none !important;
    }
}

/* 横はみ出し防止 */
.front-page {
    width: 100% !important;
    max-width: 560px !important;
    overflow-x: hidden !important;
}

.top-visual,
.entrance-image {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

.top-visual img,
.top-visual-placeholder {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
    display: block !important;
}

.entrance-image img,
.entrance-image .hero-placeholder {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    display: block !important;
}


/* ハンバーガーメニュー clean */
.front-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 60 !important;
    min-height: 92px !important;
}

.hamburger-btn {
    position: absolute !important;
    top: 20px !important;
    right: 16px !important;
    width: 42px !important;
    height: 42px !important;
    border: 1px solid var(--front-border) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.96) !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    cursor: pointer !important;
    box-shadow: 0 8px 20px rgba(90,58,43,.12) !important;
    z-index: 70 !important;
}

.hamburger-btn span {
    display: block !important;
    width: 18px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: var(--front-heading) !important;
}

.drawer-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 90 !important;
    background: rgba(0,0,0,.42) !important;
    opacity: 0 !important;
    transition: opacity .2s ease !important;
}

.drawer-overlay.is-open {
    opacity: 1 !important;
}

.front-drawer {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    z-index: 100 !important;
    width: min(86vw, 360px) !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    background: #fff !important;
    box-shadow: -18px 0 42px rgba(0,0,0,.22) !important;
    transform: translateX(105%) !important;
    transition: transform .24s ease !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-x: hidden !important;
    overflow-y: scroll !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
}

.front-drawer.is-open {
    transform: translateX(0) !important;
}

.drawer-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 22px 20px 18px !important;
    border-bottom: 1px solid var(--front-border) !important;
}

.drawer-title {
    color: var(--front-heading) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
}

.drawer-en {
    margin-top: 3px !important;
    color: var(--front-main) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .12em !important;
}

.drawer-close {
    width: 36px !important;
    height: 36px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f5f1ee !important;
    color: var(--front-heading) !important;
    font-size: 24px !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

.drawer-links {
    padding: 12px 0 !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
}

.drawer-links a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 16px 22px !important;
    border-bottom: 1px solid #f2e8e1 !important;
    color: #4b372d !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

.drawer-links a::after {
    content: "›" !important;
    color: var(--front-main) !important;
    font-size: 22px !important;
    line-height: 1 !important;
}

.drawer-links a:hover {
    background: #fff8f4 !important;
}

body.drawer-open {
    overflow: hidden !important;
}

/* indexにはメニューなし */
.front-entry-page .front-header,
.front-entry-page .hamburger-btn,
.front-entry-page .front-drawer,
.front-entry-page .drawer-overlay {
    display: none !important;
}


/* PCでもハンバーガーメニューを強制表示 */
.hamburger-btn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media (min-width: 768px) {
    .hamburger-btn {
        display: inline-flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: absolute !important;
        top: 20px !important;
        right: 16px !important;
        z-index: 999 !important;
    }

    .front-header {
        overflow: visible !important;
    }
}

/* indexページには不要なので非表示 */
.front-entry-page .hamburger-btn {
    display: none !important;
}


/* front parts pages */
.cast-detail-hero {
    position: relative;
    background: #fff4ef;
}

.cast-detail-hero img,
.cast-detail-hero .no-photo {
    width: 100%;
    aspect-ratio: 390 / 520;
    object-fit: cover;
    display: block;
}

.detail-catch {
    padding: 12px 14px;
    border-radius: 14px;
    background: #fff4ef;
    color: var(--front-main);
    font-weight: 800;
    margin-bottom: 16px;
}

.profile-table {
    border: 1px solid var(--front-border);
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 16px;
}

.profile-table div {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--front-border);
}

.profile-table div:last-child {
    border-bottom: 0;
}

.profile-table span {
    color: #8a6c5b;
    font-size: 12px;
    font-weight: 800;
}

.profile-table b {
    color: var(--front-heading);
    font-size: 14px;
}

.detail-comment {
    padding: 16px;
    border-radius: 16px;
    background: #fffdfb;
    border: 1px solid var(--front-border);
    color: #5f4a3f;
    font-size: 14px;
}

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

.photo-grid img {
    width: 100%;
    aspect-ratio: 390 / 520;
    object-fit: cover;
    border-radius: 14px;
}

.schedule-list {
    border: 1px solid var(--front-border);
    border-radius: 16px;
    overflow: hidden;
}

.schedule-list-item {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--front-border);
}

.schedule-list-item:last-child {
    border-bottom: 0;
}

.schedule-list-item div {
    color: var(--front-main);
    font-weight: 800;
}

.schedule-list-item strong {
    color: var(--front-heading);
}

.schedule-list-item span {
    grid-column: 2;
    color: #c05b4d;
    font-size: 12px;
    font-weight: 800;
}

.schedule-nav {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-bottom: 20px;
}

.front-btn.small {
    min-width: auto;
    padding: 9px 12px;
    font-size: 12px;
}

.day-block {
    margin-bottom: 30px;
}

.day-block h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--front-heading);
    font-size: 20px;
    border-bottom: 2px solid var(--front-border);
    padding-bottom: 8px;
}

.day-block h2 span {
    color: var(--front-main);
    font-size: 13px;
}


/* 店舗案内ページ */
.shop-info-section {
    display: grid;
    gap: 24px;
}

.shop-info-block {
    display: grid;
    gap: 14px;
}

.shop-info-table {
    overflow: hidden;
    border: 1px solid var(--front-border);
    border-radius: 18px;
    background: #fffdfb;
}

.shop-info-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--front-border);
}

.shop-info-row:last-child {
    border-bottom: 0;
}

.shop-info-label {
    color: var(--front-main);
    font-size: 12px;
    font-weight: 900;
}

.shop-info-value {
    color: #4b372d;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.8;
    word-break: break-word;
}

@media (max-width: 420px) {
    .shop-info-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}


/* 店舗案内：店舗情報本文の枠と余白 */
.shop-body-block {
    margin-top: 34px;
}

.shop-body-block .free-page-body {
    overflow: hidden;
    border: 1px solid var(--front-border);
    border-radius: 18px;
    background: #fffdfb;
    padding: 22px 24px;
    color: #4b372d;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.9;
    word-break: break-word;
}

@media (max-width: 420px) {
    .shop-body-block {
        margin-top: 28px;
    }

    .shop-body-block .free-page-body {
        padding: 18px 16px;
    }
}


/* 店舗案内：PC/スマホ共通で枠を固定 */
.shop-info-table {
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
    border: 1px solid var(--front-border) !important;
    border-radius: 18px !important;
    background: #fffdfb !important;
    box-sizing: border-box !important;
}

.shop-info-row {
    display: grid !important;
    grid-template-columns: 110px 1fr !important;
    gap: 12px !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid var(--front-border) !important;
    box-sizing: border-box !important;
}

.shop-info-row:last-child {
    border-bottom: 0 !important;
}

.shop-body-block {
    margin-top: 38px !important;
}

.shop-body-content {
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
    border: 1px solid var(--front-border) !important;
    border-radius: 18px !important;
    background: #fffdfb !important;
    padding: 22px 24px !important;
    box-sizing: border-box !important;
}

@media (max-width: 420px) {
    .shop-info-table {
        border: 1px solid var(--front-border) !important;
        border-radius: 18px !important;
        overflow: hidden !important;
        background: #fffdfb !important;
    }

    .shop-info-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        padding: 14px 16px !important;
        border-bottom: 1px solid var(--front-border) !important;
    }

    .shop-info-row:last-child {
        border-bottom: 0 !important;
    }

    .shop-body-block {
        margin-top: 34px !important;
    }

    .shop-body-content {
        border: 1px solid var(--front-border) !important;
        border-radius: 18px !important;
        background: #fffdfb !important;
        padding: 18px 16px !important;
    }
}



/* ヘッダー電話番号 */
.front-header-tel{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;

    margin-top:10px!important;

    color:var(--front-main)!important;
    text-decoration:none!important;

    font-size:13px!important;
    font-weight:900!important;
    letter-spacing:.04em!important;
}

.front-header-tel:hover{
    opacity:.8!important;
}

@media (max-width:768px){
    .front-header-tel{
        margin-top:8px!important;
        font-size:12px!important;
    }
}


/* =========================
   料金 / ご利用案内 枠FIX
   ========================= */
.guide-info-section{
    display:grid!important;
    gap:34px!important;
}

.guide-info-block{
    display:grid!important;
    gap:14px!important;
}

.guide-info-block .free-page-body,
.guide-info-block .guide-body-content,
.guide-body-content{
    display:block!important;
    width:100%!important;
    max-width:100%!important;

    border:1px solid var(--front-border)!important;
    border-radius:18px!important;

    background:#fffdfb!important;

    padding:22px 24px!important;
    box-sizing:border-box!important;

    overflow:hidden!important;

    color:#4b372d!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.9!important;
    word-break:break-word!important;
}

@media screen and (max-width:768px){
    .guide-info-section{
        gap:30px!important;
    }

    .guide-info-block .free-page-body,
    .guide-info-block .guide-body-content,
    .guide-body-content{
        display:block!important;
        width:100%!important;
        max-width:100%!important;

        border:1px solid var(--front-border)!important;
        border-radius:18px!important;

        background:#fffdfb!important;

        padding:18px 16px!important;
        box-sizing:border-box!important;

        overflow:hidden!important;
    }
}


/* キャスト詳細：写真スワイプ */
.cast-detail-section{
    display:grid!important;
    gap:26px!important;
}

.cast-detail-photo-wrap{
    width:min(86%, 620px)!important;
    margin:0 auto!important;
}

.cast-photo-slider{
    position:relative!important;
    overflow:hidden!important;
    border-radius:0!important;
    background:#fff!important;
}

.cast-photo-track{
    display:flex!important;
    transition:transform .28s ease!important;
    will-change:transform!important;
}

.cast-photo-slide{
    position:relative!important;
    flex:0 0 100%!important;
    width:100%!important;
}

.cast-photo-slide img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    object-fit:contain!important;
}

.cast-detail-no-image{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:360px!important;
    border:1px solid var(--front-border)!important;
    border-radius:18px!important;
    background:#fffdfb!important;
    color:#9ca3af!important;
    font-weight:800!important;
}

.cast-detail-new-badge{
    position:absolute!important;
    top:14px!important;
    left:14px!important;
    z-index:3!important;
}

.cast-slider-btn{
    position:absolute!important;
    top:50%!important;
    z-index:4!important;
    transform:translateY(-50%)!important;

    width:38px!important;
    height:38px!important;

    border:0!important;
    border-radius:999px!important;

    background:rgba(48,32,24,.72)!important;
    color:#fff!important;

    font-size:30px!important;
    line-height:1!important;
    font-weight:700!important;

    cursor:pointer!important;
}

.cast-slider-prev{
    left:10px!important;
}

.cast-slider-next{
    right:10px!important;
}

.cast-slider-dots{
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:12px!important;
    z-index:4!important;

    display:flex!important;
    justify-content:center!important;
    gap:7px!important;
}

.cast-slider-dot{
    width:8px!important;
    height:8px!important;

    border:0!important;
    border-radius:999px!important;

    background:rgba(255,255,255,.62)!important;
    padding:0!important;
}

.cast-slider-dot.active{
    background:#fff!important;
}

.cast-detail-name-box{
    width:min(86%, 620px)!important;
    margin:0 auto!important;

    padding:20px 22px!important;

    border-radius:18px!important;
    background:#fff3ef!important;

    color:#2f211b!important;
    font-size:20px!important;
    font-weight:900!important;
}

.cast-profile-table{
    width:min(86%, 620px)!important;
    margin:0 auto!important;

    overflow:hidden!important;
    border:1px solid var(--front-border)!important;
    border-radius:18px!important;
    background:#fffdfb!important;
}

.cast-profile-row{
    display:grid!important;
    grid-template-columns:120px 1fr!important;
    gap:12px!important;
    padding:16px 20px!important;
    border-bottom:1px solid var(--front-border)!important;
}

.cast-profile-row:last-child{
    border-bottom:0!important;
}

.cast-profile-label{
    color:#7a6256!important;
    font-size:13px!important;
    font-weight:900!important;
}

.cast-profile-value{
    color:#3f302a!important;
    font-size:15px!important;
    font-weight:800!important;
    line-height:1.8!important;
}

.cast-photo-thumbs,
.cast-thumbnail-list,
.cast-image-list{
    display:none!important;
}

@media screen and (max-width:768px){
    .cast-detail-photo-wrap,
    .cast-detail-name-box,
    .cast-profile-table{
        width:92%!important;
    }

    .cast-slider-btn{
        display:none!important;
    }

    .cast-profile-row{
        grid-template-columns:1fr!important;
        gap:6px!important;
        padding:15px 16px!important;
    }
}


/* キャスト詳細：スマホでも左右ボタン表示 */
@media screen and (max-width:768px){
    .cast-slider-btn{
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;

        width:38px!important;
        height:38px!important;

        border:2px solid rgba(255,255,255,.9)!important;
        border-radius:999px!important;

        background:rgba(48,32,24,.72)!important;
        color:#fff!important;

        font-size:30px!important;
        line-height:1!important;
        font-weight:700!important;

        box-shadow:0 3px 10px rgba(0,0,0,.22)!important;
    }

    .cast-slider-prev{
        left:8px!important;
    }

    .cast-slider-next{
        right:8px!important;
    }
}


/* 新着情報ページ：タイトル・本文の枠 */
.news-list-page{
    display:grid!important;
    gap:24px!important;
}

.news-page-item{
    scroll-margin-top:24px!important;
}

.news-page-date{
    margin:0 0 8px!important;
    color:#8a766b!important;
    font-size:13px!important;
    font-weight:900!important;
    letter-spacing:.02em!important;
}

.news-page-content-box{
    display:block!important;
    width:100%!important;
    border:1px solid var(--front-border)!important;
    border-radius:18px!important;
    background:#fffdfb!important;
    padding:22px 24px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
}

.news-page-title{
    margin:0!important;
    color:var(--front-main)!important;
    font-size:22px!important;
    font-weight:900!important;
    line-height:1.5!important;
}

.news-page-body{
    margin-top:14px!important;
    padding-top:14px!important;
    border-top:1px solid var(--front-border)!important;
    color:#4b372d!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.9!important;
    word-break:break-word!important;
}

@media screen and (max-width:768px){
    .news-list-page{
        gap:20px!important;
    }

    .news-page-content-box{
        padding:18px 16px!important;
        border-radius:18px!important;
    }

    .news-page-title{
        font-size:20px!important;
    }
}


/* お問い合わせページ：フォーム崩れ修正 */
.contact-form,
#contact form,
main .section form{
    width:min(100%, 640px)!important;
    margin:0 auto!important;
    display:grid!important;
    gap:16px!important;
    padding:24px!important;
    border:1px solid var(--front-border)!important;
    border-radius:18px!important;
    background:#fffdfb!important;
    box-sizing:border-box!important;
}

.contact-form label,
#contact form label,
main .section form label{
    display:block!important;
    margin:0 0 6px!important;
    color:#4b372d!important;
    font-size:14px!important;
    font-weight:900!important;
    line-height:1.5!important;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea,
#contact form input[type="text"],
#contact form input[type="email"],
#contact form input[type="tel"],
#contact form textarea,
main .section form input[type="text"],
main .section form input[type="email"],
main .section form input[type="tel"],
main .section form textarea{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    padding:12px 14px!important;
    border:1px solid var(--front-border)!important;
    border-radius:12px!important;
    background:#fff!important;
    color:#3f302a!important;
    font-size:16px!important;
    line-height:1.6!important;
    box-sizing:border-box!important;
    outline:none!important;
}

.contact-form textarea,
#contact form textarea,
main .section form textarea{
    min-height:160px!important;
    resize:vertical!important;
}

.contact-form > *,
#contact form > *,
main .section form > *{
    max-width:100%!important;
}

.contact-form button,
.contact-form input[type="submit"],
#contact form button,
#contact form input[type="submit"],
main .section form button,
main .section form input[type="submit"]{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:220px!important;
    margin:8px auto 0!important;
    padding:14px 28px!important;
    border:0!important;
    border-radius:999px!important;
    background:#3b1c09!important;
    color:#fff7f0!important;
    font-size:16px!important;
    font-weight:900!important;
    letter-spacing:.04em!important;
    cursor:pointer!important;
    text-decoration:none!important;
}

.contact-form button:hover,
.contact-form input[type="submit"]:hover,
#contact form button:hover,
#contact form input[type="submit"]:hover,
main .section form button:hover,
main .section form input[type="submit"]:hover{
    opacity:.86!important;
}

.contact-section,
#contact{
    padding-bottom:44px!important;
}

@media screen and (max-width:768px){
    .contact-form,
    #contact form,
    main .section form{
        width:100%!important;
        padding:18px 16px!important;
        gap:14px!important;
    }

    .contact-form button,
    .contact-form input[type="submit"],
    #contact form button,
    #contact form input[type="submit"],
    main .section form button,
    main .section form input[type="submit"]{
        width:100%!important;
        min-width:0!important;
    }
}
