*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fcf9f2;color:#96785f;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}a{color:inherit}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,p,dl,dd{margin:0}h2,h3,h4{font-weight:500}.site{max-width:1260px;margin:auto;container-type:inline-size;background:#fcf9f2;overflow:hidden}section,header,footer{position:relative}.hero>img,.oil-feature>img,.banners>img,.recruit>img{width:100%}.image-link{position:absolute;border-radius:40px;display:block}.image-link:hover{background:#fff2;box-shadow:0 0 0 2px #95704f80}.image-link:focus-visible,a:focus-visible{outline:3px solid #784723;outline-offset:4px}.hero-call{left:12%;top:58.8%;width:25%;height:6.9%}.oil-link{left:21.5%;top:53%;width:18%;height:13%}.recruit-link{left:19.8%;top:42%;width:22%;height:18%}.about{height:38.1cqw;display:grid;grid-template-columns:29% 1fr;gap:7.5%;padding:3cqw 7.8cqw 4cqw 8cqw;align-items:center}.about-photo{width:100%}.about-copy h2{width:85%;margin:-2cqw 0 1cqw}.about-copy h3{font-size:1.86cqw;letter-spacing:.2em;white-space:nowrap;margin-bottom:2cqw}.about-copy p{font-size:1.15cqw;line-height:1.95;letter-spacing:.12em;white-space:nowrap}.menu{padding:5.9cqw 5.2cqw 4.5cqw;min-height:128cqw}.leaf{position:absolute;pointer-events:none;mix-blend-mode:multiply}.leaf-left{width:22%;left:0;top:1.6cqw}.leaf-right{width:6.7%;right:0;top:38cqw}.menu-intro{text-align:center;position:relative}.menu-intro h2{width:41%;margin:0 auto}.menu-intro>p{font-size:1.55cqw;letter-spacing:.2em;line-height:1.6}.menu-intro .coupon{display:inline-block;margin-top:1.5cqw;padding:.35cqw 5cqw;background:#f4dfce;border-radius:2cqw;letter-spacing:.13em;font-size:1.6cqw}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4cqw;margin:4.6cqw 1.1cqw 0}.menu-card{display:flex;flex-direction:column;align-items:center}.menu-card>img{width:94%;aspect-ratio:126/87;object-fit:contain}.menu h3{font-size:2.6cqw;letter-spacing:.14em;text-align:center;white-space:nowrap}.en{font-size:1.05cqw;letter-spacing:.25em;text-align:center;margin:.55cqw 0 1.7cqw}.description{font-size:1.42cqw;line-height:1.48;letter-spacing:.13em;min-height:11.8cqw;width:100%;padding:.3cqw .25cqw}.prices{background:white;border-radius:1.8cqw;padding:1.1cqw 3.7cqw;width:100%;font-size:1.48cqw;line-height:1.48;margin-top:auto;min-height:8.5cqw;display:flex;flex-direction:column;justify-content:center}.prices>div{display:flex;align-items:center;white-space:nowrap}.prices dt{display:flex;align-items:center;flex:1}.prices dt:after{content:"";height:1px;background:#eee6e1;flex:1;margin:0 .8cqw}.prices dd{color:#7a685c}.extras{display:grid;grid-template-columns:1fr 1fr;gap:2.4cqw;margin-top:4cqw}.extra{display:grid;grid-template-columns:1fr 1.08fr;gap:1.3cqw}.extra-photo{width:100%}.extra h3{font-size:1.95cqw;margin-top:1.5cqw;letter-spacing:.08em}.extra .en{font-size:.94cqw;letter-spacing:0}.extra h4{text-align:center;font-size:1.4cqw;line-height:1.4;margin-bottom:1.6cqw}.extra p:not(.en){font-size:1.02cqw;line-height:1.6}.extra .prices{padding:.8cqw 3cqw;min-height:7.5cqw;margin-top:.8cqw}.extra .option-note{font-size:.9cqw!important;margin:1cqw 0 2cqw;white-space:nowrap}.option-prices{width:100%}.oil-detail{display:grid;grid-template-columns:28% 26% 1fr;gap:1.6%;align-items:start;margin:10.4cqw 1.9cqw 0;scroll-margin-top:3cqw}.oil-photo{width:100%}.menu .oil-copy h3{font-size:2.15cqw;letter-spacing:.06em}.oil-copy .en{font-size:1.02cqw;margin:.6cqw 0 1cqw}.oil-copy>p:not(.en){font-size:1.45cqw;line-height:1.5;letter-spacing:.06em}.oil-copy .fine{font-size:.83cqw!important;line-height:1.35!important;margin-top:1.3cqw}.oil-prices{width:100%}.tax{text-align:right;font-size:1.25cqw;margin:1.5cqw 0 0}.banners{display:grid;gap:3.05cqw}.store{height:69.9cqw;padding:3.4cqw 5.4cqw 4cqw 7.2cqw}.store>h2{width:42%;margin:0 auto 3cqw}.leaf-top{width:15%;top:3cqw;right:0}.leaf-bottom{width:20%;left:0;bottom:0}.store-grid{display:grid;grid-template-columns:39% 1fr;gap:6%;align-items:center}.room{width:100%;align-self:start;margin-top:4cqw}.logo{width:23%;margin:0 0 1cqw 29%}.store-data{font-size:1.43cqw;line-height:1.45;letter-spacing:.02em}.store-data>div{display:grid;grid-template-columns:26% 1fr;gap:4%;margin-bottom:1.9cqw;align-items:start}.store-data dt{background:#e6dcd2;border-radius:.4cqw;font-size:1.24cqw;white-space:nowrap;padding:0 .6cqw}.store-data a{text-decoration:none}.access{display:flex;gap:1.4cqw}.access>a{flex:0 0 41%}.access img{width:100%}.access p{white-space:nowrap;font-size:1.25cqw}.call-button{display:block;width:51%;padding:.8cqw 1cqw;margin:3.8cqw 0 1.2cqw 2%;background:linear-gradient(#b18a62,#825c39);color:#fff8ec;text-align:center;text-decoration:none;font-size:1.9cqw;letter-spacing:.1em;border-radius:5cqw;box-shadow:0 .4cqw 1cqw #71471e35}.call-button:hover{filter:brightness(1.1)}.booking-note{font-size:1.4cqw;line-height:1.5;letter-spacing:.08em;margin-left:3%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:12px;z-index:5;background:#fff;padding:12px}.skip:focus{top:12px}
@media(max-width:600px){.about{height:auto;padding:22px 22px 32px;grid-template-columns:30% 1fr;gap:18px;align-items:start}.about-photo{margin-top:20px}.about-copy h2{width:100%;margin:0 0 10px}.about-copy h3{font-size:13px;white-space:normal;line-height:1.8;letter-spacing:.05em;margin-bottom:12px}.about-copy p{font-size:11px;white-space:normal;line-height:1.9}.about-copy br{display:none}.menu{padding:25px 24px 28px}.menu-intro h2{width:60%}.menu-intro>p{font-size:11px;letter-spacing:.04em;margin-top:6px}.menu-intro .coupon{font-size:11px;padding:6px 12px;border-radius:20px;max-width:95%}.menu-grid{grid-template-columns:1fr;gap:30px;margin:24px 0 0}.menu-card{display:grid;grid-template-columns:43% 1fr;gap:0 16px;align-items:start}.menu-card>img{grid-row:1/4;width:100%}.menu h3{font-size:20px;letter-spacing:.08em;white-space:normal}.en{font-size:9px;margin:5px 0 12px}.description{font-size:12px;min-height:0;line-height:1.7;letter-spacing:.04em}.prices{grid-column:1/-1;font-size:14px;border-radius:14px;padding:12px 20%;margin-top:12px;min-height:60px;line-height:1.8}.prices dt:after{margin:0 12px}.extras{grid-template-columns:1fr;gap:25px;margin-top:30px}.extra{grid-template-columns:43% 1fr;gap:16px}.extra h3{font-size:16px;margin-top:10px}.extra .en{font-size:9px}.extra h4{font-size:12px;margin-bottom:10px}.extra p:not(.en){font-size:11px;line-height:1.6}.extra .prices{font-size:13px;padding:8px 12px;border-radius:12px;margin-top:8px}.extra .option-note{font-size:10px!important;white-space:normal;margin:0 0 10px}.oil-detail{grid-template-columns:43% 1fr;gap:14px;margin:36px 0 0}.menu .oil-copy h3{font-size:16px}.oil-copy .en{font-size:8px;margin:6px 0}.oil-copy>p:not(.en){font-size:12px;line-height:1.6}.oil-copy .fine{font-size:9px!important;margin-top:10px}.oil-prices{grid-column:1/-1;width:82%;margin:8px auto 0}.tax{font-size:10px;margin-top:14px}.store{height:auto;padding:24px 24px 35px}.store>h2{width:60%;margin:0 auto 18px}.store-grid{grid-template-columns:1fr;gap:20px}.room{width:56%;margin:0 auto}.logo{width:23%;margin:0 auto 16px}.store-data{font-size:12px}.store-data>div{grid-template-columns:25% 1fr;gap:4%;margin-bottom:14px}.store-data dt{font-size:10px;padding:2px 4px}.access{gap:10px}.access p{font-size:11px;white-space:normal}.call-button{width:75%;font-size:16px;padding:12px;margin:24px auto 12px}.booking-note{font-size:11px;text-align:center;margin:0}.hero-call{min-height:22px}.recruit-link{width:38%;left:14%;height:38%;top:20%}.leaf-right{top:40%;width:8%}.leaf-left{opacity:.5}.leaf-bottom{opacity:.5}.oil-link{height:25%;top:47%;width:23%;left:20%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body,.site{background:#fdfaf3}.leaf{mix-blend-mode:normal}.about-copy h2 img,.menu-intro h2 img,.store>h2 img{width:100%}.oil-copy>p:not(.en){letter-spacing:0}.oil-copy>p:not(.en):not(.fine){font-size:1.35cqw}@media(max-width:600px){.oil-copy>p:not(.en):not(.fine){font-size:12px}}
/* Keep decorative artwork within the outer margin, behind readable content. */
.menu,.store{isolation:isolate}
.leaf{z-index:0}
.menu-intro,.menu-grid,.extras,.oil-detail,.tax,.store>h2,.store-grid{position:relative;z-index:1}
.leaf-right{width:4.5%;mask-image:linear-gradient(to right,transparent,#000 25%);-webkit-mask-image:linear-gradient(to right,transparent,#000 25%)}
@media(max-width:600px){.leaf-right{width:18px}}

/* Supplied coupon artwork; keep readable live text on small screens. */
.menu-intro .coupon{display:block;width:66%;max-width:none;margin:1.5cqw auto 0;padding:0;background:transparent;border-radius:0}.coupon-image{width:100%;mix-blend-mode:multiply}.coupon-text{display:none}
@media(max-width:600px){.menu-intro .coupon{width:100%;max-width:100%;margin:12px auto 0;padding:9px 12px;background:#f5e4d7;border-radius:20px;font-size:12px;line-height:1.8}.coupon-image{display:none}.coupon-text{display:block}}
.menu-intro .coupon{width:78%;background:#fdfaf3}@media(max-width:600px){.menu-intro .coupon{width:100%;background:#f5e4d7}}

/* Supplied set-menu artwork; live text remains readable on phones. */
.set-details{background:#fdfaf3}.set-details-image{width:100%;mix-blend-mode:multiply}.set-details-text{display:none}
@media(max-width:600px){.set-details-image{display:none}.set-details-text{display:block}}

/* Updated oil prices and staff-availability notice supplied by the owner. */
.oil-booking{margin-top:1.3cqw;background:#fdfaf3}.oil-booking-image{width:100%;mix-blend-mode:multiply}.oil-booking-text{display:none}.oil-prices{mix-blend-mode:multiply}.oil-detail{background:#fdfaf3}
@media(max-width:600px){.oil-booking-image{display:none}.oil-booking-text{display:block}.oil-booking .fine{font-size:10px!important;line-height:1.7!important}.oil-prices{width:100%}}

/* White rounded price panel under the set-menu description. */
.set-details-image{display:none}
.set-details-text{display:block}
.set-details-text .prices{background:#fff;border-radius:1.8cqw}
.set-details-text .prices dt:after{height:0;border-top:1px dotted #cbbdb4;background:none}
@media(max-width:600px){.set-details-text .prices{border-radius:14px}}

.set-caption-art{aspect-ratio:1162/405;overflow:hidden}
.set-caption-art .set-details-image{display:block;width:100%;height:auto}
.set-details-text>h4,.set-details-text>p{display:none}
@media(max-width:600px){.set-caption-art{display:none}.set-details-text>h4,.set-details-text>p{display:block}}
.oil-prices{background:#fff;mix-blend-mode:normal;border-radius:1.8cqw}@media(max-width:600px){.oil-prices{border-radius:14px}}

/* Display each supplied store label in its own cropped CSS window. */
.store-data dt.store-label{position:relative;aspect-ratio:132/20;padding:0;line-height:0;background:transparent;overflow:hidden;border-radius:0}
.store-label>img{position:absolute;width:125%;max-width:none;height:auto;left:-23.48485%;top:var(--label-top)}
/* Restore the botanical artwork at the right edge without covering text. */
.menu .leaf-right{width:6.7%;top:38cqw;opacity:1;mask-image:none;-webkit-mask-image:none}
.menu-card:last-child .description{padding-right:1.4cqw}
@media(max-width:600px){.menu .leaf-right{width:56px;top:40%;opacity:1}.menu-card:last-child .description{padding-right:0}.menu-grid,.extras{margin-right:36px}}
@media(max-width:600px){.menu .leaf-right{width:36px}.menu-grid,.extras{margin-right:14px}}

/* Persistent phone booking on smartphones, including the safe area. */
.mobile-booking-bar{display:none}
@media(max-width:600px){
 body{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
 html{scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
 .mobile-booking-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:100;padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(253,250,243,.97);border-top:1px solid #e7d9ca;box-shadow:0 -3px 16px #68432312}
 .mobile-booking-bar>a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;width:100%;max-width:440px;margin:auto;padding:12px 16px;border-radius:30px;background:linear-gradient(#ac845c,#805734);color:#fffaf1;text-decoration:none;font-size:16px;line-height:1.5;letter-spacing:.08em;box-shadow:0 3px 8px #704c3026}
 .mobile-booking-bar>a:active{background:#765031}
}

/* Entire transparent botanical sprig stays inside the page boundary. */
.menu .leaf-right{width:8.4%;right:.6%;top:38cqw;height:auto;object-fit:contain;opacity:1;mask-image:none;-webkit-mask-image:none}
.menu-card:last-child .description{padding-right:3.2cqw}
@media(max-width:600px){.menu .leaf-right{width:46px;right:4px;top:40%}.menu-grid,.extras{margin-right:28px}.menu-card:last-child .description{padding-right:0}}

/* Unified TOP palette and booking buttons. */
:root{--ikoi-brown:#754b30;--ikoi-cream:#fdfaf3;--ikoi-border:#e3cbb0}
.booking-button,.mobile-booking-bar>a{display:flex;align-items:center;justify-content:center;gap:.6em;background:linear-gradient(180deg,#97704e 0%,#795134 100%);color:#fffaf1;border:2px solid #f3e5d1;border-radius:999px;box-shadow:0 3px 10px #704c3026,inset 0 1px 2px #ffffff30;text-decoration:none;font-family:inherit;font-weight:500;line-height:1.5;letter-spacing:.08em;min-height:48px}
.phone-icon{width:1.25em;height:1.25em;flex:0 0 auto;display:block}
.booking-button:hover{filter:brightness(1.08)}
.booking-button:active{filter:brightness(.95)}
.oil-detail{grid-template-columns:25% 33% 1fr;gap:2%;align-items:start}
.oil-copy{min-width:0}
.menu .oil-copy h3{font-size:2cqw;letter-spacing:.03em;white-space:normal}
.oil-copy>p.oil-description{font-size:1.35cqw;line-height:1.9;letter-spacing:.02em;line-break:strict}
.oil-description span,.oil-booking-text span{display:block}
.oil-booking-image{display:none}
.oil-booking-text{display:block}
.oil-copy .oil-booking-text{font-size:1.05cqw!important;line-height:1.85!important;margin-top:1.2cqw}
.oil-booking-text span+span{margin-top:.5em}
.oil-mobile-prices{display:none}
.store{height:auto;min-height:69.9cqw;color:var(--ikoi-brown);padding-bottom:5cqw}
.store-copy{min-width:0;padding:2cqw;background:linear-gradient(135deg,#fffdf8,#f7efe3);border:1px solid var(--ikoi-border);border-radius:2cqw;box-shadow:0 .5cqw 2cqw #754b3008}
.store-grid{grid-template-columns:36% 1fr;gap:5%}
.store .logo{width:27%;margin:0 auto 2cqw}
.store-data{font-size:1.25cqw;line-height:1.8;letter-spacing:0}
.store-data>div{grid-template-columns:26% minmax(0,1fr);gap:4%;margin-bottom:1.35cqw}
.store-data dt.store-label{position:static;aspect-ratio:auto;overflow:visible;background:#eee1d0;color:var(--ikoi-brown);border-radius:.5cqw;padding:.25cqw .4cqw;font-size:1.05cqw;line-height:1.8;text-align:center;white-space:normal}
.store-data dd{min-width:0;overflow-wrap:anywhere}
.access{flex-wrap:wrap}
.access p{white-space:normal;font-size:1.15cqw}
.store .call-button{width:90%;margin:2cqw auto 1cqw;padding:.65cqw 1cqw;font-size:1.6cqw}
.booking-note{font-size:1.1cqw;line-height:1.9;margin:0;text-align:center}
@media(max-width:760px){
 .about{height:auto;grid-template-columns:1fr;padding:28px 24px;gap:18px}
 .about-photo{width:150px;margin:0 auto}
 .about-copy h2{width:230px;max-width:90%;margin:0 auto 14px}
 .about-copy h3{font-size:17px;line-height:1.8;white-space:normal;letter-spacing:.04em;text-align:center}
 .about-copy p{font-size:14px;line-height:2;letter-spacing:.02em;white-space:normal}
 .about-copy br{display:none}
 .menu{padding:30px 20px;min-height:0}
 .menu-intro h2{width:230px;max-width:75%;margin:auto}
 .menu-intro>p{font-size:13px;letter-spacing:.03em;margin-top:10px}
 .menu-intro .coupon{width:100%;margin-top:14px;padding:10px 14px;border-radius:24px;background:#f5e4d7;font-size:13px;line-height:1.8}
 .coupon-image{display:none}.coupon-text{display:block}
 .menu-grid{grid-template-columns:1fr;gap:32px;margin:26px 0 0}
 .menu-card{display:grid;grid-template-columns:38% minmax(0,1fr);gap:0 14px;align-items:start}
 .menu-card>img{grid-row:1/4;width:100%;align-self:center}
 .menu h3{font-size:18px;white-space:normal;line-height:1.6;letter-spacing:.04em}
 .en{font-size:10px;line-height:1.6;margin:4px 0 10px}
 .description{font-size:14px;line-height:1.9;min-height:0;letter-spacing:.02em;padding:0}
 .menu-card .description{grid-column:1/-1;margin-top:12px}
 .prices{grid-column:1/-1;font-size:15px;padding:14px 24px;min-height:0;border-radius:14px;line-height:1.9;margin-top:14px}
 .prices dt:after{margin:0 12px}
 .extras{grid-template-columns:1fr;gap:30px;margin:34px 0 0}
 .extra{grid-template-columns:38% minmax(0,1fr);gap:14px}
 .extra h3{font-size:16px;margin-top:10px}.extra .en{font-size:10px}
 .extra h4{font-size:14px;margin-bottom:10px}.extra p:not(.en){font-size:13px;line-height:1.8}
 .extra .prices{font-size:14px;padding:10px 12px;border-radius:14px;margin-top:12px}
 .extra .option-note{font-size:12px!important;white-space:normal;margin:0 0 12px}
 .set-caption-art{display:none}.set-details-text>h4,.set-details-text>p{display:block}
 .oil-detail{grid-template-columns:1fr;gap:18px;margin:38px 0 0;scroll-margin-top:20px}
 .oil-photo{width:65%;max-width:280px;margin:auto}
 .menu .oil-copy h3{font-size:21px;line-height:1.6}
 .oil-copy .en{font-size:11px;margin:4px 0 16px}
 .oil-copy>p.oil-description{font-size:15px;line-height:1.9;letter-spacing:0}
 .oil-copy .oil-booking-text{font-size:13px!important;line-height:1.9!important;margin:0}
 .oil-booking{margin-top:16px;padding:14px 16px;border:1px solid var(--ikoi-border);border-radius:12px;background:#f7efe3}
 .oil-prices{display:none}
 .oil-mobile-prices{display:block;width:100%;font-size:14px}
 .oil-mobile-prices .prices{margin:0;background:#fff;border-radius:14px;padding:16px 22px;font-size:16px}
 .prices small{font-size:10px;margin-left:6px;padding:1px 5px;background:#eee1d0;border-radius:8px;color:var(--ikoi-brown)}
 .oil-options{padding:10px 22px 0;line-height:1.9}
 .oil-options>div{display:flex;justify-content:space-between;gap:12px}
 .aroma-note{padding:4px 22px;font-size:12px;line-height:1.8}
 .tax{font-size:12px;margin-top:12px}
 .menu .leaf-right{width:32px;right:0;top:40%;opacity:.5}
 .menu-card:last-child .description{padding-right:0}
 .store{padding:30px 20px 36px;min-height:0}
 .store>h2{width:230px;max-width:75%;margin:0 auto 22px}
 .store-grid{grid-template-columns:1fr;gap:22px}
 .room{width:65%;max-width:280px;margin:auto}
 .store-copy{padding:22px 16px;border-radius:20px}
 .store .logo{width:100px;margin:0 auto 22px}
 .store-data{font-size:14px;line-height:1.9}
 .store-data>div{grid-template-columns:88px minmax(0,1fr);gap:12px;margin-bottom:16px}
 .store-data dt.store-label{font-size:12px;padding:4px 6px;border-radius:6px;line-height:1.8}
 .access{gap:10px}.access>a{flex-basis:90px;max-width:120px}.access p{font-size:13px}
 .store .call-button{width:100%;font-size:16px;margin:24px auto 14px;padding:12px}
 .booking-note{font-size:12px;line-height:1.9}
 .booking-note br{display:none}
 body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
 html{scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
 .mobile-booking-bar{display:block;position:fixed;inset:auto 0 0;z-index:100;padding:10px 18px calc(10px + env(safe-area-inset-bottom,0px));background:#fdfaf3f5;border-top:1px solid var(--ikoi-border);box-shadow:0 -3px 16px #68432312}
 .mobile-booking-bar>a{width:100%;max-width:440px;min-height:54px;margin:auto;padding:12px 16px;font-size:17px}
 .oil-link{height:25%;top:47%;width:23%;left:20%}
}
@media(max-width:360px){.store-data>div{grid-template-columns:1fr;gap:6px}.store-data dt.store-label{width:max-content;min-width:88px}.menu-card{grid-template-columns:36% minmax(0,1fr)}.menu h3{font-size:17px}}

.option-mobile-prices{display:none}
@media(max-width:760px){.option-prices{display:none}.option-mobile-prices{display:block;background:#fff;border-radius:14px;padding:12px;font-size:13px;line-height:1.9}.option-mobile-prices>div{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.option-mobile-prices dd{white-space:nowrap}}

/* Mobile headings break at complete phrases rather than single characters. */
@media(max-width:760px){
 .about-copy .about-heading>span,.extra .option-heading>span{display:block;white-space:nowrap}
 .about-copy .about-heading{line-height:1.9}
 .extra .option-heading{font-size:clamp(14px,4cqw,16px);letter-spacing:0;line-height:1.8}
}

/* Phones: photo, Japanese name, English name, description, then pricing. */
@media(max-width:760px){
 .menu-grid{gap:38px}
 .menu-card{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .menu-card>img{width:72%;max-width:300px;align-self:center;margin:0 auto 16px;grid-row:auto}
 .menu-card>h3{font-size:21px;line-height:1.7;text-align:center;margin:0}
 .menu-card>.en{font-size:11px;line-height:1.6;text-align:center;margin:4px 0 16px}
 .menu-card>.description{width:100%;margin:0;padding:0;font-size:14px;line-height:1.9;letter-spacing:.02em}
 .menu-card>.prices{width:100%;margin-top:16px}
}

/* Match the desktop oil artwork with readable text on mobile. */
@media(max-width:760px){
 .oil-booking{padding:0;border:0;border-radius:0;background:transparent;margin-top:18px}
 .oil-copy .oil-booking-text{font-size:13px!important;line-height:1.9!important}
 .oil-mobile-prices{background:#fff;border-radius:18px;padding:20px 14px;color:#71564a}
 .oil-mobile-prices .prices{padding:0;background:transparent;border-radius:0;font-size:18px;line-height:1.8;gap:6px}
 .oil-mobile-prices .prices>div{padding:5px 10px;border-radius:999px;min-height:46px}
 .oil-mobile-prices .prices dt{position:relative;padding-left:44px;min-width:0}
 .oil-mobile-prices .prices dt:after{height:0;border-top:1px dotted #cbb6a8;background:none;margin:0 10px}
 .oil-mobile-prices .prices dd{color:inherit;white-space:nowrap}
 .oil-mobile-prices .popular-price{background:#f6e5d8}
 .oil-mobile-prices .prices small{position:absolute;left:0;top:50%;transform:translateY(-50%);width:38px;margin:0;padding:0;background:none;color:#845637;font-size:11px;line-height:1.25;text-align:center;letter-spacing:.03em}
 .oil-options-heading{text-align:left;font-size:16px;letter-spacing:.14em;margin:24px 8px 10px}
 .oil-options-grid{display:grid;grid-template-columns:1fr;gap:16px;padding:0 8px}
 .oil-mobile-prices .oil-options{padding:0;font-size:14px;line-height:2}
 .oil-mobile-prices .oil-options>div{display:flex;align-items:baseline;gap:10px;justify-content:initial}
 .oil-options dt{display:flex;align-items:baseline;flex:1;min-width:0}
 .oil-options dt:after{content:"";flex:1;border-top:1px dotted #cbb6a8;margin:0 8px}
 .oil-options dd{white-space:nowrap}
 .aroma-list{list-style:none;padding:0 0 0 16px;margin:4px 0 0;font-size:13px;line-height:1.9}
 .oil-mobile-prices .tax{font-size:12px;line-height:1.8;margin:20px 8px 0;text-align:right}
}
@media(min-width:520px) and (max-width:760px){.oil-options-grid{grid-template-columns:1fr 1fr;gap:24px}}

/* Mobile access: station information first, map below. */
@media(max-width:760px){.store-data .access{flex-direction:column;align-items:flex-start;gap:12px}.store-data .access>p{order:0}.store-data .access>a{order:1;flex:0 0 auto;width:120px;max-width:100%}}

/* Shared notice wording and phrase-aware line breaks on desktop and mobile. */
.oil-copy .oil-booking-text{font-size:clamp(12px,1.05cqw,14px)!important;line-height:1.85!important;letter-spacing:0}
.oil-booking-text .notice-intro,.oil-booking-text .notice-sentence,.oil-booking-text .notice-contact{display:block}
.oil-booking-text .notice-sentence{margin-top:0}
.oil-booking-text .notice-contact{margin-top:.65em}
.oil-booking-text .notice-phrase{display:inline-block;white-space:nowrap;margin-top:0}
@media(max-width:760px){.oil-copy .oil-booking-text{font-size:13px!important;line-height:1.9!important}}

/* Canva reference: small three-line footnote with a muted information icon. */
.oil-booking{padding:0;border:0;background:transparent;border-radius:0;margin-top:1.3cqw}
.oil-copy .oil-booking-text{display:flex;align-items:flex-start;gap:.65em;margin:0!important;font-size:clamp(8px,.8cqw,10px)!important;line-height:1.35!important;letter-spacing:.02em;color:#754b30}
.oil-booking-text .notice-mark{display:flex;align-items:center;justify-content:center;flex:0 0 1.65em;width:1.65em;height:1.65em;margin:0;border-radius:50%;background:#a48e7e;color:#fff;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:700;font-size:1.05em;line-height:1}
.oil-booking-text .notice-lines{display:block;min-width:0;margin:0}
.oil-booking-text .notice-lines>span{display:block;margin:0}
@media(max-width:760px){.oil-booking{margin-top:16px}.oil-copy .oil-booking-text{font-size:10px!important;line-height:1.45!important}}

/* One tax notice applies to every menu, outside all white price panels. */
.oil-prices-panel{width:100%;aspect-ratio:1997/760;overflow:hidden;background:#fff;border-radius:1.8cqw}
.oil-prices-panel>.oil-prices{width:100%;height:auto;max-width:none;border-radius:0}
.menu-tax{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:.6em;margin:2cqw 1.9cqw 0;padding:0;background:transparent;color:#754b30;font-size:clamp(12px,1.25cqw,16px);line-height:1.6;letter-spacing:.03em}
.menu-tax-icon{display:flex;align-items:center;justify-content:center;flex:0 0 1.5em;width:1.5em;height:1.5em;border-radius:50%;background:#a48e7e;color:#fff;font-family:Georgia,"Times New Roman",serif;font-weight:700;font-style:italic;line-height:1}
@media(max-width:760px){.oil-prices-panel{display:none}.menu-tax{font-size:12px;line-height:1.6;margin:18px 0 0}}

/* Use live oil pricing at every width, sized like the other menu prices. */
.oil-mobile-prices{display:block;width:100%;padding:1.5cqw 1.1cqw;background:#fff;border-radius:1.8cqw;color:#7a685c}
.oil-mobile-prices .prices{padding:0;margin:0;min-height:0;background:transparent;border-radius:0;font-size:1.48cqw;line-height:1.8;gap:.35cqw}
.oil-mobile-prices .prices>div{padding:.35cqw .5cqw;border-radius:999px;min-height:0}
.oil-mobile-prices .prices dt{position:relative;padding-left:2.8cqw;min-width:0}
.oil-mobile-prices .prices dt:after{height:0;background:none;border-top:1px dotted #cbb6a8;margin:0 .7cqw}
.oil-mobile-prices .prices dd{font-size:inherit;color:inherit;white-space:nowrap}
.oil-mobile-prices .popular-price{background:#f6e5d8}
.oil-mobile-prices .prices small{position:absolute;left:0;top:50%;transform:translateY(-50%);width:2.4cqw;margin:0;padding:0;background:none;font-size:.85cqw;line-height:1.25;text-align:center;color:#845637;letter-spacing:0}
.oil-options-heading{font-size:1.05cqw;text-align:left;letter-spacing:.1em;margin:1.5cqw .4cqw .6cqw}
.oil-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1cqw;padding:0 .4cqw}
.oil-mobile-prices .oil-options{padding:0;font-size:1.02cqw;line-height:1.9}
.oil-mobile-prices .oil-options>div{display:flex;align-items:baseline;gap:.4cqw;justify-content:initial}
.oil-options dt{display:flex;align-items:baseline;flex:1;min-width:0}
.oil-options dt:after{content:"";flex:1;border-top:1px dotted #cbb6a8;margin:0 .3cqw}
.oil-options dd{white-space:nowrap}
.aroma-list{list-style:none;padding:0 0 0 .8cqw;margin:.3cqw 0 0;font-size:.94cqw;line-height:1.7}
@media(max-width:760px){
 .oil-mobile-prices{padding:20px 14px;border-radius:18px}
 .oil-mobile-prices .prices,.set-details-text .prices{font-size:15px}
 .oil-mobile-prices .prices{line-height:1.8;gap:6px}
 .oil-mobile-prices .prices>div{padding:5px 10px;min-height:40px}
 .oil-mobile-prices .prices dt{padding-left:40px}
 .oil-mobile-prices .prices dt:after{margin:0 10px}
 .oil-mobile-prices .prices small{width:34px;font-size:10px}
 .oil-options-heading{font-size:14px;margin:22px 8px 10px}
 .oil-options-grid{grid-template-columns:1fr;gap:16px;padding:0 8px}
 .oil-mobile-prices .oil-options{font-size:13px;line-height:2}
 .oil-mobile-prices .oil-options>div{gap:10px}
 .oil-options dt:after{margin:0 8px}
 .aroma-list{padding-left:16px;margin-top:4px;font-size:12px;line-height:1.9}
}
@media(min-width:520px) and (max-width:760px){.oil-options-grid{grid-template-columns:1fr 1fr;gap:24px}}

/* Restore the provided price-panel design on desktop without changing artwork. */
@media(min-width:761px){
 .oil-mobile-prices{display:none}
 .oil-prices-panel.restored-oil-panel{display:block;aspect-ratio:auto;background:transparent;border-radius:0;overflow:visible}
 .restored-oil-panel>.oil-prices{display:block;width:100%;height:auto;border-radius:0;background:transparent}
}

/* Slightly larger notice, preserving the reference layout. */
.oil-copy .oil-booking-text{font-size:clamp(9px,.9cqw,12px)!important;line-height:1.4!important}
@media(max-width:760px){.oil-copy .oil-booking-text{font-size:11px!important;line-height:1.45!important}}

/* Soften the supplied oil artwork to match the surrounding menu prices. */
@media(min-width:761px){.oil-prices-panel.restored-oil-panel{background:#fff;border-radius:1.8cqw;overflow:hidden}.restored-oil-panel>.oil-prices{opacity:.78}}
.oil-mobile-prices .prices dt{color:#96785f}
.oil-mobile-prices .prices dd,.oil-mobile-prices .oil-options{color:#7a685c}

/* Reservations and inquiries go to the phone number. */
.dm-link{color:inherit;text-decoration:underline;text-underline-offset:.2em}

/* Larger text across the page. */
@media(min-width:761px){
 .about{height:auto;min-height:38.1cqw}
 .about-copy .about-heading{font-size:max(21px,2.15cqw)!important}
 .about-copy p{font-size:max(14px,1.36cqw)!important;line-height:1.9;letter-spacing:.06em}
 .menu-intro>p{font-size:max(15px,1.75cqw)!important}
 .menu .en{font-size:max(12px,1.2cqw)!important}
 .menu-card h3{font-size:max(22px,2.8cqw)!important}
 .menu-card .description{font-size:max(14px,1.6cqw)!important;line-height:1.6;letter-spacing:.06em}
 .menu .prices{font-size:max(15px,1.7cqw)!important}
 .menu .oil-description{font-size:max(14px,1.55cqw)!important}
 .oil-copy .oil-booking-text{font-size:max(12px,1.12cqw)!important;line-height:1.5!important}
 .oil-booking-text .notice-lines>span{white-space:normal}
 .extra .option-note{font-size:max(12px,1.1cqw)!important;white-space:normal}
 .menu-tax{font-size:max(14px,1.45cqw)!important}
 .store{height:auto}
 .store-data dd,.store-data dd a{font-size:max(14px,1.45cqw)!important}
 .store-label{font-size:max(13px,1.2cqw)!important}
 .access p{font-size:max(13px,1.3cqw)!important}
 .store .call-button{font-size:max(16px,1.7cqw)!important}
 .booking-note{font-size:max(13px,1.28cqw)!important}
}
@media(max-width:760px){
 .about-copy .about-heading{font-size:21px!important}
 .about-copy p{font-size:16px!important;line-height:1.9}
 .menu-intro>p{font-size:15px!important}
 .coupon-text{font-size:15px!important}
 .menu .en{font-size:12px!important}
 .menu-card h3,.menu .oil-copy h3{font-size:23px!important}
 .menu-card .description{font-size:16px!important;line-height:1.75}
 .menu .prices,.menu .popular-price{font-size:17px!important}
 .popular-price small{font-size:12px!important}
 .extra h3{font-size:20px!important}
 .option-heading{font-size:18px!important}
 .set-details-text p,.set-details-text h4,.extra .option-note{font-size:15px!important}
 .option-mobile-prices,.option-mobile-prices dt,.option-mobile-prices dd,.oil-options,.oil-options dt,.oil-options dd,.aroma-list,.aroma-list li{font-size:15px!important}
 .oil-options-heading{font-size:16px!important}
 .menu .oil-description{font-size:15px!important}
 .oil-copy .oil-booking-text{font-size:14px!important;line-height:1.55!important}
 .oil-booking-text .notice-lines>span{white-space:normal}
 .menu-tax{font-size:14px!important}
 .store-data dd,.store-data dd a{font-size:16px!important}
 .store-label{font-size:13px!important}
 .access p{font-size:15px!important}
 .booking-note{font-size:14px!important}
 /* The hero copy is part of the photo: enlarge it, keeping its proportions. */
 .hero{overflow:hidden}
 .hero>img{width:140%;max-width:none}
 .hero-call{left:17%;top:58.8%;width:35%;height:6.9%}
}
.about-copy p,.about-copy .about-heading,.about-copy .about-heading span{white-space:normal!important}
/* Price tables that were images become live text so they can grow with the page. */
@media(min-width:761px){
 .set-caption-art,.option-prices,.oil-prices-panel.restored-oil-panel{display:none!important}
 .set-details-text>h4,.set-details-text>p{display:block}
 .set-details-text>h4{font-size:max(14px,1.5cqw)!important;line-height:1.5;margin-bottom:.8cqw;text-align:left}
 .set-details-text>p:not(.en){font-size:max(12px,1.15cqw)!important;line-height:1.6;margin-bottom:.8cqw}
 .set-details-text br{display:none}
 .option-mobile-prices{display:block;background:#fff;border-radius:1.8cqw;padding:1cqw 1.4cqw;font-size:max(13px,1.35cqw);line-height:1.9;color:#7a685c}
 .option-mobile-prices>div{display:flex;justify-content:space-between;gap:.6cqw}
 .option-mobile-prices dd{white-space:nowrap}
 .oil-mobile-prices{display:block!important;padding:1.5cqw 1.4cqw}
 .oil-mobile-prices .prices{font-size:max(15px,1.7cqw)!important}
 .oil-mobile-prices .prices small{font-size:max(10px,.95cqw)!important}
 .oil-options-heading{font-size:max(14px,1.35cqw)!important}
 .oil-mobile-prices .oil-options,.oil-mobile-prices .oil-options dt,.oil-mobile-prices .oil-options dd{font-size:max(13px,1.25cqw)!important}
 .aroma-list,.aroma-list li{font-size:max(12px,1.1cqw)!important}
}
/* On phones, enlarge text that is part of the artwork; proportions stay intact. */
@media(max-width:760px){
 .oil-feature,.recruit{overflow:hidden}
 .oil-feature>img,.recruit>img{width:140%;max-width:none}
 .oil-link{left:30%;top:53%;width:25%;height:13%}
 .recruit-link{left:28%;top:42%;width:31%;height:18%}
 .banners>img{aspect-ratio:525/92;object-fit:cover;object-position:left center}
 .banners>img:last-child{object-position:right center}
}
.nb{display:inline-block}
.extra .option-note,.set-details-text>p,.oil-description span{text-wrap:balance}
@media(min-width:761px){
 .oil-detail{grid-template-columns:25% 32% 1fr}
 .menu .oil-description{font-size:max(14px,1.4cqw)!important;letter-spacing:.02em}
}
.reserve-label{display:flex;flex-direction:column;align-items:center;line-height:1.25}
.reserve-sub{font-size:.62em;letter-spacing:0;white-space:nowrap}
.hero .hero-call,.hero .hero-call:hover{padding:0;background:linear-gradient(180deg,#97704e 0%,#795134 100%);box-shadow:0 3px 10px #704c3026;min-height:0;border-radius:999px;font-size:max(12px,1.6cqw)}
.hero .hero-call{left:12%;top:57.6%;width:25.4%;height:7.4%}
.store .call-button{padding:.5cqw 1cqw}
@media(max-width:760px){
 .hero .hero-call{left:10%;top:54.8%;width:50%;height:10.8%;font-size:14px;border-width:1px}
 .reserve-sub{font-size:11px}
 .store .call-button{padding:9px 12px}
 .mobile-booking-bar>a{padding-top:6px;padding-bottom:6px}
}
@media(max-width:760px){
 .hero .hero-call{left:9%;width:52%}
 .hero .hero-call .phone-icon{display:none}
 .hero .hero-call .reserve-sub{font-size:min(10.5px,3cqw)}
}
.booking-note{text-wrap:balance}
@media(max-width:760px){.hero .hero-call{top:55.6%;height:10.2%}}

/* Phone layouts: copy first, photograph below. */
.hero-mobile,.oil-feature-mobile{display:none}
@media(max-width:760px){
 .hero>img,.hero .hero-call,.oil-feature>img,.oil-feature .oil-link{display:none}
 .hero-mobile,.oil-feature-mobile{display:block;text-align:center}
 .hero-mobile{background:#fdfcf5;color:#6f4e37}
 .hero-mobile-title{width:100%;max-width:520px;margin:0 auto}
 .hero-mobile-copy{font-size:15px;line-height:1.9;letter-spacing:.04em;padding:6px 16px 0}
 .hero-mobile-price{font-size:19px;letter-spacing:.06em;margin-top:18px}
 .hero-mobile-hours{font-size:14px;margin-top:4px;padding-bottom:18px}
 .hero-mobile-photo{width:100%;-webkit-mask-image:linear-gradient(#0000,#000 14%);mask-image:linear-gradient(#0000,#000 14%)}
 .oil-feature{overflow:hidden;margin:8px 0}
 .oil-feature-mobile{background:#f8efe4;color:#6f4e37;padding-top:26px}
 .oil-mobile-title{width:92%;max-width:520px;margin:0 auto 14px}
 .oil-mobile-copy{font-size:15px;line-height:1.85;letter-spacing:.03em;padding:0 16px}
 .oil-feature-mobile .oil-mobile-link{width:62%;max-width:280px;min-height:48px;margin:18px auto 8px;font-size:16px}
 .oil-mobile-price{font-size:18px;letter-spacing:.06em;padding-bottom:18px}
 .oil-mobile-photo{width:100%;-webkit-mask-image:linear-gradient(#0000,#000 12%);mask-image:linear-gradient(#0000,#000 12%)}
 .about .about-photo{width:78%;max-width:360px;margin-left:auto;margin-right:auto}
 .mobile-booking-bar{padding-top:7px;padding-bottom:calc(3px + env(safe-area-inset-bottom,0px))}
 body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
}
.map-embed{display:block;width:100%;border:0;border-radius:8px;background:#f1e9df}
@media(min-width:761px){.access{flex-direction:column;gap:.8cqw}.map-embed{height:max(180px,18cqw);order:2}}
@media(max-width:760px){.access{flex-direction:column;gap:10px}.map-embed{height:240px}}
.map-embed{order:2}
.booking-button .phone-icon{width:1.65em;height:1.65em}
.reserve-sub{font-size:.68em}
@media(min-width:761px){
 .hero .hero-call{font-size:max(13px,1.8cqw)}
 .store .call-button{font-size:max(17px,1.9cqw)!important}
}
@media(max-width:760px){
 .store-data>div:has(.access){display:block}
 .store-data>div:has(.access) dt{display:inline-block;min-width:25%;margin-bottom:10px;text-align:center}
 .store .call-button,.mobile-booking-bar>a{font-size:19px}
 .store .call-button .reserve-sub,.mobile-booking-bar>a .reserve-sub{font-size:12.5px}
 .hero .hero-call .phone-icon{display:none}
}
@media(max-width:760px){
 .hero-mobile-title,.hero-mobile-copy,.hero-mobile-price,.hero-mobile-hours{position:relative;z-index:1}
 .hero-mobile-hours{padding-bottom:0}
 .hero-mobile-photo{margin-top:-46px;-webkit-mask-image:linear-gradient(#0000,#0003 7%,#000 20%);mask-image:linear-gradient(#0000,#0003 7%,#000 20%)}
}
@media(min-width:761px){.hero .hero-call{top:57.5%;height:8%;left:11.8%;width:25.8%}}
@media(max-width:760px){.hero-mobile-copy{font-size:min(15px,4.3vw);padding-left:10px;padding-right:10px}}
@media(min-width:761px){.hero .hero-call{left:11.5%;width:26.1%;height:8.5%}}
@media(max-width:760px){.hero-mobile-copy{font-size:min(15px,3.9vw);letter-spacing:.02em}}
@media(max-width:760px){
 .hero-mobile-visual{position:relative;margin-top:-46px}
 .hero-mobile-visual .hero-mobile-photo{margin-top:0}
 .hero-mobile-leaf{position:absolute;top:11%;right:0;width:36%;pointer-events:none}
}
@media(max-width:760px){.hero-mobile-leaf{top:5%;width:34%}}
@media(max-width:760px){
 .hero-mobile-leaf{top:-30px;right:2%;width:26%;z-index:2;filter:drop-shadow(0 0 1px #fffaf0) drop-shadow(0 0 3px #fffaf0cc)}
}
@media(max-width:760px){.hero-mobile-leaf{top:-6px;right:1%;width:25%}}
@media(max-width:760px){
 .hero-mobile-visual{overflow:visible}
 .hero-mobile-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:25.6vw;display:block;pointer-events:none}
}
@media(max-width:760px){.hero-mobile-wave{height:21vw}}
@media(max-width:760px){.hero-mobile-leaf{right:-7%;transform:scaleX(-1);filter:none}}
@media(max-width:760px){.hero-mobile-leaf{right:-4%}}
@media(max-width:760px){.hero-mobile-leaf{top:-16px}}
@media(max-width:760px){
 .hero-mobile-head{position:relative;z-index:1}
 .hero-mobile-branch{position:absolute;top:1.2%;left:-3.5vw;width:min(33.6vw,175px);pointer-events:none}
}
@media(max-width:760px){.hero-mobile-leaf{top:-26px}}
@media(max-width:760px){.hero-mobile-branch{z-index:2}}

.insta-link{margin:0;padding:22px 16px;text-align:center;background:#fdfaf3}
.insta-link a{display:inline-flex;align-items:center;gap:8px;color:#795134;font-size:16px;letter-spacing:.03em;text-decoration:none}
.insta-link a:hover{text-decoration:underline}
.insta-icon{width:24px;height:24px;flex:none}

/* Instagram QR and link under the room photo. */
.store-side{min-width:0;align-self:start}
.store-insta{display:flex;flex-direction:column;align-items:center;margin-top:2.4cqw;text-align:center;color:var(--ikoi-brown)}
.insta-qr{width:42%;min-width:150px;padding:10px;background:#fff;border-radius:12px}
.insta-name{margin:.8cqw 0 0;font-size:max(21px,2.175cqw);line-height:1.6;letter-spacing:.06em}
.store-insta .insta-link{display:inline-block;min-height:0;padding:0;font-size:max(14px,1.45cqw);line-height:1.6;text-decoration:underline;text-underline-offset:.2em}
@media(max-width:760px){
 .store-insta{margin-top:20px}
 .insta-qr{width:170px;min-width:0}
 .insta-name{margin-top:10px;font-size:24px}
 .store-insta .insta-link{display:inline-flex;align-items:center;min-height:44px;font-size:16px}
}
.oil-booking-text .dm-link{white-space:nowrap}
.oil-description .oil-phrase{display:inline-block}
.insta-link{padding-bottom:8px}
.policy-link{margin:0;padding:0 16px 22px;text-align:center;background:#fdfaf3;font-size:14px}
.policy-link a{color:#795134}
.policy-link a{display:inline-block;padding:8px 4px}
