

 .drawer-photo { display: none; }
.drawer-inner { flex-direction: column; }
.drawer-brand-col { flex: none; }
.drawer-brand-img { width: 200px; }
.drawer-menu { flex: 1 1 auto; padding-top: 1.5rem; }

  body.has-sticky { padding-bottom: calc(var(--sticky-h, 4.5rem) + env(safe-area-inset-bottom, 0px)); }

:root { --header-h: 74px; --wrap-pad: 24px; --section-y: 64px; }

.site-header--overlay { min-height: 74px; padding-inline: 16px; }
.site-header .logo img { width: 151px; height: auto; }

.hero { height: 70vh; min-height: 520px; margin-top: 74px; }
.hero .slideshow, .hero .slide { height: 100%; }
.hero-body { padding: 0 24px 20px; }
.hero-ttl { font-size: 10px; line-height: 1.4; }

.tm-about { position: relative; padding: 120px 0; }
.tm-about .sec-ttl-sub { font-size: 30px; }
.tm-about .sec-ttl-main { margin-top: 18px; font-size: 18px; line-height: 1.8; }
.tm-about .lead { margin-top: 36px; font-size: 14px; }
.tm-about .tm-framed { width: 100%; margin: 40px 0; }

.tm-rule { height: 300px; }
.tm-bandrow { height: 120px; }
.tm-colwrap { height: 675px; }
.tm-col { width: 78px; }
.tm-colttl { top: 300px; padding: 0 24px; font-size: 21px; line-height: 1.8; }
.tm-fond { padding: 56px 0 72px; }
.tm-fond .lead { font-size: 14px; }
.tm-duo { flex-direction: column; gap: 40px; margin-top: 48px; }
.tm-duo img { aspect-ratio: 460 / 400; object-fit: cover; }

.tm-chef { padding: 72px 0 88px; }
.tm-chef .sec-ttl-sub { font-size: 56px; }
.tm-chef .split { gap: 32px; margin-top: 32px; }
.tm-chef h3 { margin: 0 0 16px; font-size: 21px; font-weight: 600; }

.tm-chef .tm-gold { display: none; }
.tm-chef .tm-framed { width: 264px; margin-inline: auto; }
.tm-chef .tm-framed img { aspect-ratio: 264 / 340; object-fit: cover; }

.tm-shop { padding: 72px 0 64px; }
.tm-bleed { flex-direction: column; gap: 32px; margin-bottom: 56px; }
.tm-bleed .tm-framed { width: 88%; }
.tm-bleed .tm-framed:last-child { align-self: flex-end; }
.tm-bleed .tm-framed::after { inset: -14px -14px 14px 14px; rotate: 0deg; }
.tm-shop .sec-ttl-sub { font-size: 32px; color: var(--color-fg-strong); }
.tm-wordmark { width: 260px; margin-top: 12px; }
.info-list { margin-top: 36px; }
.info-list dl { flex-direction: column; gap: 4px; margin-bottom: 14px; padding-bottom: 10px; }
.info-list dt { width: auto; }
.info-list dd { width: auto; }
.tm-shop .btn { width: 100%; max-width: 280px; min-height: 48px; }
.tm-btnwrap { margin-top: 32px; }
.tm-btnwrap::before { display: none; }
.tm-btnwrap::after { width: 290px; height: 58px; margin: -29px 0 0 -145px; }
.map-frame { margin-top: 48px; }
.map-frame iframe { height: 280px; }

.tm-resvrail { display: none; }
.tm-rail { display: none; }
.tm-pick { display: inline-flex; bottom: calc(var(--sticky-h, 72px) + 12px); }

.tm-pagettl { margin-top: 74px; padding: 48px 20px 40px; }
.tm-pagettl h1 { font-size: 32px; }
.tm-pagettl p { font-size: 13px; }
.tm-hero img { height: 62vh; min-height: 380px; }
.tm-hero::after { background: linear-gradient(180deg, rgba(0, 0, 0, 0) 34%, rgba(0, 0, 0, .72) 100%); }
.tm-herocopy { flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 8px; padding: 0 20px 32px; font-size: 18px; line-height: 1.5; }
.tm-intro { padding: 56px 0 64px; }
.tm-guidesec { padding-bottom: 72px; }
.tm-guidesec .sec-ttl { margin-bottom: 28px; }
.tm-guidesec .sec-ttl-sub { font-family: var(--font-jp); font-size: 26px; font-weight: 400; color: var(--tm-gold-display); }
.tm-guidesec .sec-ttl-main { margin-top: 12px; font-size: 13px; font-weight: 400; letter-spacing: .22em; }
.tm-guide { grid-template-columns: 1fr; }
.tm-season { padding: 64px 0 72px; }
.tm-sttl { margin-top: 32px; }
.tm-sttl h2 { font-size: 22px; }
.tm-slead { margin-top: 28px; }
.tm-slead + .note-sm { margin-top: 24px; }
.tm-courses { display: flex; flex-direction: column; gap: 36px; margin-top: 40px; }
.tm-detail { padding: 20px 22px; }
.tm-detail ul { columns: 1; }
.tm-snav { font-size: 12px; }
.tm-sfoot { margin-top: 36px; text-align: center; }
.tm-sfoot .note-sm { margin: 0 0 18px; }
.tm-sfoot .btn { width: 100%; max-width: 320px; }
.tm-resv { padding: 64px 0 72px; text-align: center; }
.tm-resv .sec-ttl-sub { font-family: var(--font-jp); font-size: 26px; font-weight: 400; color: var(--tm-gold-display); }
.tm-resv .sec-ttl-main { margin-top: 14px; font-size: 18px; }

.site-header .head-nav { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.site-header .head-nav > nav { display: none; }

.tm-about .tm-rule { position: absolute; left: 50%; bottom: -180px; margin: 0; transform: translateX(-50%); }

.tm-about .lead.tm-fixed, .tm-fond .lead.tm-fixed { max-width: none; }

.tm-salon { margin-top: 74px; padding: 64px 0 80px; }
.tm-salon-head { position: static; }
.tm-salon-en { font-size: 44px; text-align: center; }
.tm-salon-intro { margin-top: 24px; }
.tm-salon-name { font-size: 15px; line-height: 1.8; }
.tm-salon-madame { margin-top: 6px; font-size: 21px; line-height: 1.6; }
.tm-salon-lead { margin-top: 24px; font-size: 15px; line-height: 1.9; }
.tm-salon-photo1 { width: 100%; margin-top: 32px; }
.tm-salon-photo1 img { aspect-ratio: 360 / 500; object-fit: cover; }
.tm-salon-photo1::after { inset: 0; }
.tm-salon-row { display: flex; flex-direction: column; gap: 28px; margin-top: 56px; }
.tm-salon-row--rev { flex-direction: column-reverse; }
.tm-salon-text { margin: 0; }
.tm-salon-photo2, .tm-salon-photo3 { width: 88%; align-self: flex-end; }
.tm-salon-photo2 img { aspect-ratio: 476 / 460; object-fit: cover; }
.tm-salon-photo3 { align-self: flex-start; }
.tm-salon-photo3 img { aspect-ratio: 433 / 450; object-fit: cover; }
.tm-shift::after { inset: -12px -12px 12px 12px; }
.tm-salon-info { margin-top: 64px; }
.tm-salon-h2 { font-size: 21px; line-height: 1.8; }
.tm-salon-list { margin-top: 28px; }
.tm-salon-list > div { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--color-fg-strong); }
.tm-salon-list dt { width: auto; }
.tm-salon-list dd { margin: 0; }

#site-footer { padding: 32px 24px; }
#site-footer .footer-nav { display: flex; flex-direction: column; gap: 10px; }
#site-footer .footer-copy { margin-top: 24px; text-align: left; }

.tm-nw { white-space: normal; }
.tm-seg { display: block; }
