.offering-photo { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; }
.offering-gallery { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; }
.offering-gallery img { width: min(100%, 320px); height: 220px; object-fit: cover; border-radius: 12px; }
.offerings-grid { align-items: stretch; }
.offering-card { display: flex; flex-direction: column; min-width: 0; }
.offering-card-action { align-self: flex-end; margin-top: auto; }
.homepage-offerings-grid { align-items: start; }
.homepage-offering-card { display: flex; flex-direction: column; min-width: 0; }
.homepage-offering-action { align-self: flex-end; margin-top: auto; }
.offering-disclosure-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 42px; margin: 0 0 8px; padding: 8px 0; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--text) 22%, transparent); background: transparent; color: inherit; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.offering-chevron { display: block; width: 20px !important; height: 20px !important; max-width: 20px; object-fit: contain; flex: 0 0 20px; transition: transform 280ms cubic-bezier(.2,.8,.2,1); }
.offering-disclosure-panel { display: grid; grid-template-rows: 1fr; opacity: 1; transition: grid-template-rows 320ms cubic-bezier(.2,.8,.2,1), opacity 220ms ease; }
.offering-disclosure-content { min-height: 0; overflow: hidden; }
.homepage-offering-card.is-collapsed .offering-disclosure-panel { grid-template-rows: 0fr; opacity: 0; }
.homepage-offering-card.is-collapsed .offering-chevron { transform: rotate(-90deg); }
@media (prefers-reduced-motion: reduce) { .offering-disclosure-panel, .offering-chevron { transition: none; } }
.booking-agreement label { display: flex; align-items: flex-start; gap: 10px; }
.booking-agreement input { margin-top: 4px; }
.terms-link { display: inline; padding: 0; font: inherit; }
/* Keep the policy readable independently of the surrounding glass-page theme. */
.terms-dialog { --surface:#fffdf8; --text:#253b33; --muted:#52645b; box-sizing:border-box; width:min(720px, calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:min(85vh, 760px); max-height:min(85dvh, 760px); margin:auto; padding:0; overflow:hidden; border:1px solid #cbd8cd; border-radius:18px; background:var(--surface); color:var(--text); box-shadow:0 24px 80px #12342638; }
.terms-dialog[open] { display:flex; flex-direction:column; }
.terms-dialog::backdrop { background:#29445e66; backdrop-filter:blur(4px); }
.terms-dialog-heading { flex:none; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 24px; background:var(--surface); border-bottom:1px solid #dce5db; }
.terms-dialog-heading h2 { min-width:0; margin:0; font-size:clamp(1.2rem, 3vw, 1.65rem); line-height:1.3; overflow-wrap:anywhere; }
.terms-dialog-close { flex:none; width:auto; min-height:44px; padding:9px 14px; border:0; border-radius:999px; background:#28758b; color:#fff; font-weight:700; }
.terms-dialog-content { flex:1 1 auto; min-height:0; overflow-y:auto; padding:8px 24px 28px; overscroll-behavior:contain; overflow-wrap:anywhere; }
.terms-dialog-content h3 { margin:24px 0 8px; font-size:1.1rem; line-height:1.4; }
.terms-dialog-content p { margin:0 0 16px; font-size:1rem; line-height:1.65; }
main#main-content .terms-dialog :is(h2,h3,p) { color:#253b33; }
main#main-content .terms-dialog a { color:#205e70; text-decoration:underline; }
.terms-dialog :is(a,button):focus-visible { outline:3px solid #205e70; outline-offset:3px; }
@media (max-width:480px) {
  .terms-dialog-heading { padding:16px; gap:12px; }
  .terms-dialog-content { padding:4px 16px 20px; }
}
.cover-photo-picker { border:0; padding:0; margin:24px 0; }
.cover-photo-option { display:grid; gap:8px; max-width:260px; cursor:pointer; }
.cover-photo-option img { width:100%; height:170px; object-fit:cover; border:3px solid transparent; }
.cover-photo-option:has(input:checked) img { border-color:#28758b; }
.cover-photo-option input { width:auto; }

.cover-photo-picker .offering-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:18px; }
.cover-photo-picker .cover-photo-option { position:relative; max-width:none; align-content:start; }
.cover-photo-picker .cover-photo-option input[type=radio] { position:absolute; top:12px; left:12px; width:20px; height:20px; margin:0; z-index:1; accent-color:#28758b; }
.cover-photo-picker .cover-photo-option img { width:100%; height:160px; border:3px solid transparent; }
.cover-photo-picker .cover-photo-option.is-cover img { border-color:#58d1e5; }
.cover-photo-picker .cover-photo-option:focus-within img { outline:2px solid #fff; outline-offset:3px; }
.cover-photo-picker .cover-photo-option small { overflow-wrap:anywhere; font-weight:400; }

.saved-photo-option { min-width:0; display:grid; gap:10px; align-content:start; }
.saved-photo-option .photo-remove { display:flex; align-items:center; gap:8px; font-size:.85rem; }
.saved-photo-option .photo-remove input { width:18px; height:18px; }

.allowed-room-options > label { display: inline-flex; align-items: center; gap: .6rem; margin: .4rem 1.2rem .4rem 0; }
.allowed-room-options input[type=checkbox] { width: 1.2rem; height: 1.2rem; margin: 0; flex-shrink: 0; }
.allowed-room-options label:has(input:disabled) { opacity: .65; }

.booking-record { max-width: 1100px; margin-inline: auto; } .booking-record-section { padding-block: 1.5rem; border-top: 1px solid rgba(255,255,255,.25); } .booking-record .record-facts { display: grid; grid-template-columns: minmax(140px,1fr) minmax(0,2fr); gap: .6rem 1.2rem; } .booking-record dd { margin: 0; overflow-wrap: anywhere; } .cottage-fee-row { display: flex; gap: .75rem; align-items: end; flex-wrap: wrap; } @media(max-width:600px) { .booking-record .record-facts { grid-template-columns: 1fr; } .booking-record dd { margin-bottom: .7rem; } }

.booking-record .payment-proof-review { background: transparent; border: 0; padding: 0; }
