:root{--iy-radius:6px;--iy-border-color:#e5e2dc;--iy-hotel-archive-border:var(--iy-border-color)}

body .iy-hotel-detail-header .iy-hotel-heading h1{line-height:1.4;margin-block:0 6px}
body .iy-hotel-detail-header .iy-hotel-hero__catch{line-height:1.65;margin-block:4px 0}

body .iy-hotel-room-info__equipment{display:block;columns:3;column-gap:24px;line-height:1.5;margin-block:0 20px}
body .iy-hotel-room-info__equipment li{break-inside:avoid;margin:0 0 4px;padding:0;line-height:1.5}
body .iy-hotel-room-info h3{padding-top:20px;border-top:1px solid var(--iy-border-color);margin:24px 0 14px}
body .iy-hotel-room-info__note a{color:inherit;text-underline-offset:3px}
body .iy-hotel-fact-chips--cards{grid-template-columns:repeat(4,minmax(0,1fr))}
body .iy-hotel-fact-notes{font-size:12px;line-height:1.7;margin-bottom:0}
body .iy-hotel-fact-notes li{line-height:1.7;margin-block:0}
body .iy-hotel-fact-notes li+li{margin-top:6px}
body .iy-hotel-fact-group--conditions h3,body .iy-hotel-fact-group--cancellation h3{font-size:17px}
body .iy-hotel-cancel-table,body .iy-hotel-fact-intro{font-size:12px;line-height:1.7}
body .iy-hotel-cancel-table th,body .iy-hotel-cancel-table td{padding:11px 14px;font-size:12px;line-height:1.7}
body .iy-hotel-cancel-table thead,body .iy-hotel-facts-table th{background:#f5f3ee}
body .iy-hotel-cancel-table tbody tr:nth-child(even){background:#faf9f6}
.iy-hotel-fact-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--iy-border-color);border-bottom:0}
.iy-hotel-fact-pair dl{display:grid;grid-template-columns:112px minmax(0,1fr);margin:0;min-width:0}
.iy-hotel-fact-pair dl+dl{border-left:1px solid var(--iy-border-color)}
.iy-hotel-fact-pair dt,.iy-hotel-fact-pair dd{padding:14px 12px;margin:0;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.iy-hotel-fact-pair dt{font-weight:600;background:#f5f3ee}
.iy-hotel-fact-pair dd a{color:inherit;text-underline-offset:3px}
body .iy-hotel-single--editorial .iy-hotel-research-source{margin:24px 0 0;padding-top:0;border-top:0;font-size:11px;line-height:1.7;color:#738183}

.iy-booking-brands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:26px}
.iy-booking-brand{display:flex;min-width:0;align-items:center;justify-content:center;flex-direction:column;border:1px solid var(--iy-border-color);border-radius:var(--iy-radius);background:#fff;padding:22px 16px;color:inherit;text-decoration:none;transition:background .2s}
.iy-booking-brand:hover{background:#faf9f6}
.iy-booking-brand img{display:block;width:100%;max-width:210px;height:40px;object-fit:contain}

body .iy-hotel-editorial-booking[data-booking-provider="rakuten"]{background:#00a900!important;border-color:#00a900!important;color:#fff!important}
body .iy-hotel-editorial-booking[data-booking-provider="yahoo"]{background:#ff0033!important;border-color:#ff0033!important;color:#fff!important}
body .iy-hotel-editorial-booking[data-booking-provider="jalan"]{background:#eb5b00!important;border-color:#eb5b00!important;color:#fff!important}
body .iy-hotel-editorial-booking[data-booking-provider="ikkyu"]{background:#1d4472!important;border-color:#1d4472!important;color:#fff!important}
body .iy-hotel-editorial-booking[data-booking-provider]:hover{filter:brightness(.92)}
.iy-photo-open{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;color:inherit;text-align:inherit}
.iy-photo-open:focus-visible{outline:3px solid #5189a6;outline-offset:3px}



.iy-photo-dialog{width:min(1180px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:50px 54px 20px;border:0;border-radius:var(--iy-radius);background:#171b1b;color:#fff;overflow:auto;box-sizing:border-box}
.iy-photo-dialog::backdrop{background:rgba(15,19,18,.88)}
.iy-photo-dialog__image{display:block;width:100%;height:min(70dvh,780px);object-fit:contain}
.iy-photo-dialog__caption{margin:14px 0 0;font-size:13px;line-height:1.6;text-align:center;white-space:normal;color:#fff}
.iy-photo-dialog__count{display:block;text-align:center;margin-top:6px;font-size:12px;color:#c8cecb}
.iy-photo-dialog button{display:grid;place-items:center;position:absolute;background:rgba(255,255,255,.13);border:0;color:white;border-radius:50%;width:40px;height:40px;font-size:25px;cursor:pointer}
.iy-photo-dialog button:hover{background:rgba(255,255,255,.25)}
.iy-photo-dialog button:focus-visible{outline:2px solid white;outline-offset:3px}
.iy-photo-dialog__close{right:16px;top:16px}
.iy-photo-dialog__stage{position:relative}
.iy-photo-dialog__prev{left:-47px;top:50%;transform:translateY(-50%)}
.iy-photo-dialog__next{right:-47px;top:50%;transform:translateY(-50%)}
@media(max-width:600px){body .iy-hotel-room-info__equipment{columns:2;column-gap:20px;font-size:12px}.iy-hotel-fact-pair dl{grid-template-columns:1fr}.iy-hotel-fact-pair dt,.iy-hotel-fact-pair dd{font-size:12px;padding:9px 10px}.iy-hotel-fact-pair dt{padding-block:8px}.iy-hotel-fact-pair dd{min-height:38px}body .iy-hotel-fact-chips--cards{grid-template-columns:repeat(2,minmax(0,1fr))}.iy-booking-brands{gap:10px}.iy-booking-brand{padding:18px 10px;gap:12px}.iy-booking-brand img{height:29px}.iy-photo-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:48px 12px 18px}.iy-photo-dialog__image{height:62dvh}.iy-photo-dialog__caption{font-size:12px;padding-inline:14px}.iy-photo-dialog button{width:36px;height:36px}.iy-photo-dialog__prev{left:3px}.iy-photo-dialog__next{right:3px}}

body .iy-hotel-single--editorial .inuyado-rakuten-plan,body .iy-hotel-single--editorial .inuyado-rakuten-plan:nth-child(even),body .iy-hotel-single--editorial .inuyado-rakuten-plan:nth-child(odd){background:#fff!important;border:1px solid var(--iy-border-color)!important;box-shadow:none}
body .iy-hotel-single--editorial .inuyado-rakuten-search{border:1px solid var(--iy-border-color)!important;background:#faf9f6!important;border-radius:var(--iy-radius);padding:20px}
body .iy-hotel-single--editorial .inuyado-rakuten-search input,body .iy-hotel-single--editorial .inuyado-rakuten-search select{border:1px solid var(--iy-border-color)!important;background-color:#fff!important;border-radius:var(--iy-radius)}

body .iy-hotel-single--editorial #plan>.iy-hotel-plans__contents>h2{margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid var(--iy-border-color)}
.iy-booking-intro{margin:0 0 22px;font-size:13px;line-height:1.8;color:#738183}
body .iy-hotel-single--editorial #plan .hotel-booking{padding:0;margin:0;border:0;background:transparent}
body .iy-hotel-single--editorial #plan .hotel-booking__header{display:none}
body .iy-hotel-single--editorial #plan .hotel-booking__primary{padding-top:0;border-top:0}
@media(max-width:600px){.iy-photo-dialog__image{height:auto;max-height:70dvh}}

/* Overview rows share the same label width and text inset. */
@media(min-width:601px){
body .iy-hotel-info__contents .iy-hotel-fact-pair dl{grid-template-columns:138px minmax(0,1fr)}
body .iy-hotel-info__contents .iy-hotel-fact-pair dt,body .iy-hotel-info__contents .iy-hotel-fact-pair dd,body .iy-hotel-info__contents .iy-hotel-facts-table th,body .iy-hotel-info__contents .iy-hotel-facts-table td{padding:14px 18px;line-height:1.7}
}

.iy-hotel-fact-group>.iy-hotel-fact-chips+.iy-hotel-facts-table{margin-top:18px}

/* Reusable detail notice and source components. */
body .iy-hotel-single--editorial .iy-detail-notice{padding:20px 22px!important;border:0!important;border-radius:var(--iy-radius);background:var(--iy-notice-background)!important;margin-top:24px}
body .iy-hotel-single--editorial .iy-detail-notice>.iy-section__title{border:0!important;padding:0!important;margin:0 0 14px!important}
body .iy-detail-notice .iy-section__eyebrow{display:none}
.iy-detail-notice .iy-hotel-pet__note-body{font-size:12px;line-height:1.8}
.iy-detail-source{text-align:right}
.iy-anchor-alias{position:absolute;top:0;left:0;display:block;width:1px;height:1px;pointer-events:none}
#info{position:relative}
#info .iy-hotel-access__contents{margin:0 0 22px}

/* Companion facts keep long room restrictions in their own full-width row. */
body .iy-hotel-single--editorial .iy-hotel-pet__details>.iy-hotel-detail-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.iy-hotel-pet__details>.iy-hotel-detail-list>.iy-hotel-detail-list__row{grid-column:1/-1;min-width:0}
body .iy-hotel-pet__details>.iy-hotel-detail-list>.iy-hotel-detail-list__row--companion{grid-column:auto;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:12px 16px 12px 0}
body .iy-hotel-single--editorial .iy-hotel-pet__details .iy-hotel-detail-list__row--companion dt{width:auto;padding:0;margin:0;font-size:12px;line-height:1.5}
body .iy-hotel-single--editorial .iy-hotel-pet__details .iy-hotel-detail-list__row--companion dd{flex:0 0 auto;margin:0;padding:0;font-size:13px;line-height:1.6;text-align:left}
.iy-feature-icon{display:block;width:14px;height:14px;flex:0 0 14px;color:var(--iy-category-hotel,#5189a6)}
/* The comparison wrapper owns spacing; the nested related component adds none. */
body #compare>.iy-hotel-related{margin:0;padding:0;border:0}
body #compare .iy-hotel-related__header{margin:0 0 22px}
body #compare .iy-hotel-related__header h2{margin-top:0}
body #reviews>header{display:flex;width:100%;align-items:flex-start;gap:16px;border-bottom:1px solid var(--iy-border-color);padding-bottom:15px;margin-bottom:22px}
body #reviews>header>div:first-child{flex:1;min-width:0}
body .iy-hotel-review-area #reviews>header .iy-section__title{border:0!important;padding:0!important;margin:0!important}
body:is(.single-hotel,.single-cafe,.single-dog_run) .iy-review-form-accordion .iy-review-form-toggle{background:var(--iy-notice-background);border:1px solid var(--iy-border-color);border-radius:var(--iy-radius);padding:12px 16px;gap:12px}
body:is(.single-hotel,.single-cafe,.single-dog_run) .iy-review-form-accordion .iy-review-form-toggle::after{display:none}
.iy-review-form-action{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;flex:0 0 auto}
.iy-review-form-action svg{width:14px;height:14px;flex:0 0 14px;transition:transform .15s}
[aria-expanded=true]>.iy-review-form-action svg{transform:rotate(180deg)}
body .iy-hotel-single--editorial #plan .hotel-booking__alternatives{display:block;margin-top:26px;padding:22px;background:#faf9f6;border:1px solid var(--iy-border-color);border-radius:var(--iy-radius)}
.hotel-booking__alternatives .iy-booking-brands{margin:18px 0 0}
@media(max-width:600px){body .iy-hotel-single--editorial .iy-detail-notice{padding:16px!important}body .iy-hotel-single--editorial #plan .hotel-booking__alternatives{padding:16px}.iy-review-form-action{font-size:10px}.iy-review-form-toggle>span:first-child{font-size:15px}}

/* Compact sources, shared rating palette and nearby card variant. */
body .iy-hotel-room-info .iy-detail-source{margin:4px 0 0;font-size:11px;line-height:1.5}
body .iy-hotel-room-info .iy-detail-source:first-of-type{margin-top:12px}
body .iy-hotel-single .inuyado-rakuten-review__rating-fill{background:#9e9e9e}
body .iy-hotel-single .inuyado-rakuten-review__rating-bar{background:#eeeeee}
body .iy-hotel-fact-group h3>.iy-fact-icon{width:17px;height:17px;flex-basis:17px}
.iy-fact-icon{fill:currentColor}
.iy-photo-dialog button{padding:0;line-height:1}
.iy-photo-dialog button svg{display:block;width:20px;height:20px}
.iy-photo-dialog button[hidden]{display:none}
body .iy-nearby-section .iy-media-card--nearby{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;padding:12px;min-height:0;border:1px solid var(--iy-border-color);border-radius:var(--iy-radius);background:#fff;align-items:center;min-width:0;text-decoration:none;box-shadow:none;transition:background .15s}
body .iy-nearby-section .iy-media-card--nearby:hover{background:#faf9f6}
body .iy-media-card--nearby .iy-media-card__image{width:84px;height:84px;min-height:0;aspect-ratio:1;border-radius:var(--iy-radius);overflow:hidden;background:#f6f4ef}
body .iy-media-card--nearby .iy-media-card__body{display:flex;flex-direction:column;gap:6px;padding:0;min-width:0}
body .iy-media-card--nearby .iy-media-card__title{font-size:13px;font-weight:700;line-height:1.6}
body .iy-media-card--nearby .iy-media-card__meta{font-size:11px;line-height:1.65;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#78837d}
body .iy-media-card--nearby .iy-media-card__placeholder{display:grid;place-items:center;width:100%;height:100%;background:#f6f4ef}
.iy-nearby-placeholder-icon{width:22px;height:22px;color:#b8b2a6}
@media(max-width:600px){body .iy-nearby-section .iy-media-card--nearby{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:10px}body .iy-media-card--nearby .iy-media-card__image{width:72px;height:72px}.iy-photo-dialog__close{right:10px;top:10px}}

.iy-hotel-gallery__zoom{display:block;position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.iy-hotel-gallery__zoom:focus-visible{outline:3px solid var(--iy-category-hotel);outline-offset:-3px}

/* Compact facts and related cards share existing spacing and border tokens. */
body .iy-hotel-single--editorial .iy-hotel-pet__details .iy-hotel-detail-list__row:not(.iy-hotel-detail-list__row--companion){grid-template-columns:160px minmax(0,1fr);gap:12px}
body .iy-hotel-single--editorial .iy-rakuten-source a{color:var(--iy-category-hotel,#5189a6);text-underline-offset:3px}
body #compare .iy-facility-simple-card__image{aspect-ratio:16/9;border-radius:var(--iy-radius);overflow:hidden}
body #compare .iy-facility-simple-card__heading .iy-facility-card__bookmark{border-left:1px solid var(--iy-border-color);border-radius:0;padding-left:10px;width:38px;flex:0 0 38px}
.iy-hotel-related__arrow{display:inline-block;width:13px;height:13px;flex:0 0 13px;vertical-align:middle}
@media(max-width:600px){body .iy-hotel-single--editorial .iy-hotel-pet__details .iy-hotel-detail-list__row:not(.iy-hotel-detail-list__row--companion){grid-template-columns:120px minmax(0,1fr);gap:10px}}

#nearby-facilities>section:last-child{margin-bottom:0;padding-bottom:0}

/* Plan descriptions occupy a separate row below the booking columns. */
body .iy-hotel-single--editorial .inuyado-rakuten-plan>.inuyado-rakuten-plan__details{grid-column:1/-1;min-width:0;width:100%;margin:0;padding:0;border-top:0}
body .inuyado-rakuten-plan__details-summary{display:flex;align-items:center;gap:4px;list-style:none;cursor:pointer}
body .inuyado-rakuten-plan__details-summary::-webkit-details-marker{display:none}
body .inuyado-rakuten-plan__details-summary::before{content:"";display:block;flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:url("../images/icons/ico_caret.svg") center/contain no-repeat;mask:url("../images/icons/ico_caret.svg") center/contain no-repeat}
body .inuyado-rakuten-plan__details[open]>.inuyado-rakuten-plan__details-summary::before{transform:rotate(90deg)}
body .inuyado-rakuten-plan__details-body{min-width:0;max-width:100%;overflow-wrap:anywhere;margin-top:14px}
body .inuyado-rakuten-review .inuyado-rakuten-review__button{background:#29312d}

body .iy-hotel-single--editorial .inuyado-rakuten-plan{row-gap:12px}

body .iy-hotel-single--editorial .inuyado-rakuten-plan-toggle-wrap{margin-top:0}

/* A subtle edge shadow indicates more section tabs to the right. */
.iy-hotel-single .iy-hotel-anchor::after,.iy-cafe-single .iy-cafe-detail-tabs::after{content:"";position:sticky;right:0;top:0;align-self:stretch;flex:0 0 18px;margin-left:-18px;pointer-events:none;z-index:2;background:linear-gradient(to right,transparent,rgba(35,43,39,.1));opacity:0;transition:opacity .15s}
.iy-hotel-single .iy-hotel-anchor.has-scroll-right::after,.iy-cafe-single .iy-cafe-detail-tabs.has-scroll-right::after{opacity:1}
