/* One summary geometry for lists and detail headers. Long detail copy stays below it. */
.translated-twelve-card.list-row-card { height:var(--list-card-height); min-height:0; }
.translated-twelve-card.list-row-card > .translated-twelve-content { height:100%; }
.detail-overview { padding:24px clamp(8px,3vw,32px); }
html:not([lang="ja"]) .detail-overview { padding-inline:20px; }
.detail-overview > article { width:100%; max-width:1100px; margin:0 auto; box-sizing:border-box; }
.detail-overview .plan-list-card-heading h1 { margin:0; color:#781335; font-size:clamp(1.45rem,3vw,2.25rem); line-height:1.25; }
.detail-overview .translated-twelve-content h1 { margin:0; color:#781335; font-size:1.15rem; line-height:1.35; }
.detail-overview :is(h1,h1 span) { white-space:normal; overflow-wrap:anywhere; }
.detail-overview .plan-list-card-content { min-width:0; }
.detail-overview .plan-list-card-actions a[data-action="booking"] { color:#fff; background:#b61954; border-color:#b61954; }
.detail-description.compact-plan-hero { display:block; width:auto; max-width:1100px; margin:0 auto; padding:28px 20px; }
.detail-description > .compact-plan-hero-copy { width:100%; max-width:none; }
.detail-more-photos { max-width:1100px; margin:0 auto 32px; padding-inline:20px; }
.detail-more-photos > summary { cursor:pointer; min-height:44px; padding:12px; }
.detail-more-photos .compact-plan-gallery { max-width:none; width:100%; margin-top:16px; }
.detail-more-photos .compact-plan-gallery-heading { display:none; }
.detail-more-photos .compact-plan-gallery-track { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 0 12px; }
.detail-more-photos .compact-plan-gallery-slide { flex:0 0 var(--detail-photo-width,46%); width:var(--detail-photo-width,46%); min-width:0; height:var(--detail-photo-height,518px); margin:0; scroll-snap-align:start; aspect-ratio:auto; }
.detail-more-photos .compact-plan-gallery-slide img { display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:contain; }
/* Real and illustrative images use the same structural class; only AI images retain the note. */
figure.plan-photo-media > img { display:block; }
:is(.plan-list-card,.list-row-card) figure.plan-photo-media[data-plan-photo="rickshaw"] > img { object-fit:cover; object-position:50% 100%; }
:is(.plan-list-card,.list-row-card) figure.plan-photo-media:is([data-plan-photo="group"],[data-plan-photo="large-group"]) > img { object-fit:contain; object-position:50% 50%; }
figure.plan-photo-media[data-plan-photo="rickshaw"].approved-ai-detail > img { object-fit:cover; object-position:50% 100%; }
@media(max-width:720px){
 .detail-overview { padding-inline:8px; }
 .detail-overview .plan-list-card-heading h1 { font-size:15px; line-height:1.1; }
 .detail-overview .translated-twelve-content h1 { font-size:1.15rem; }
 .translated-twelve-card.list-row-card > .translated-twelve-content { justify-content:center; }
 .translated-twelve-card.list-row-card .translated-twelve-actions { flex-wrap:nowrap; }
 .translated-twelve-card.list-row-card .translated-twelve-actions a { font-size:12px; min-width:0; flex:1; }
 .detail-more-photos .compact-plan-gallery-slide { height:var(--detail-photo-height,296px); }
}
@media(min-width:48rem){html:not([lang="ja"]) .detail-overview { padding-inline:32px; }}
@media(max-width:359px){body[data-page="kimono-plan-list"] .translated-twelve-content h2,.detail-overview .translated-twelve-content h1 { font-size:15px; line-height:1.25; }}
/* Inline error feedback appears only after an attempted confirmation. */
#bank-date[aria-invalid="true"] { border:2px solid #a11d36; outline:2px solid #a11d36; outline-offset:2px; }
#bank-date-error { color:#94172e; font-weight:700; margin-block:6px 16px; }
.bank-option-confirmations { margin-block:16px; padding:16px; border:1px solid #bd956c; border-radius:8px; background:#fff8eb; }
.bank-option-confirmations h3 { font-size:1rem; margin-block:0 8px; }
.bank-return-details { grid-column:1 / -1; min-width:0; max-width:100%; }
.bank-return-details summary { min-height:44px; padding:10px 4px; cursor:pointer; }
.return-policy-details { margin-block:16px; min-width:0; }
.return-policy-details summary { min-height:44px; padding:10px 4px; cursor:pointer; }
.return-policy-details p { overflow-wrap:anywhere; }
.return-policy-shell { max-width:1100px; margin:24px auto; padding:0 20px; }
#option-next-day-return { min-width:0; }
#option-next-day-return [data-price] { white-space:normal; overflow-wrap:anywhere; }
html:not([lang="ja"]) .price-row[id^="option-"] > div > strong,
html:not([lang="ja"]) .price-row[id^="option-"] > div > small { display:block; }
html:not([lang="ja"]) .price-row[id^="option-"] > div > small { margin-top:4px; }

/* Narrow screens share a portrait frame across every list and detail card.
   A 9:16 frame keeps the supplied group's edge faces inside the photograph. */
@media(max-width:389px){
 body :is(.plan-list-card,.list-row-card)>figure:not([data-parity-measure] figure){height:auto!important;max-height:calc(var(--list-card-height) - 2px);aspect-ratio:9/16;align-self:center;min-height:0}
 body :is(.plan-list-card,.list-row-card)>figure>img{max-height:100%;height:100%;aspect-ratio:auto}
}
