/* Customer typography and card refinements. Motion remains in customer-motion.css. */
:root.customer-theme {
    --hotel-text-body: 1.0625rem;
    --hotel-text-description: 1rem;
    --hotel-text-control: .9375rem;
    --hotel-text-small: .875rem;
    --hotel-card-radius: 10px;
    --hotel-card-shadow: 0 3px 8px #34291704, 0 16px 38px #34291709;
}
html.customer-theme body { font-size: var(--hotel-text-body); line-height: 1.75; }
html.customer-theme main { overflow-x: clip; }
html.customer-theme :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { font-size: var(--hotel-text-body); }
html.customer-theme :is(main, footer) :is([class~="text-[9px]"], [class~="text-[10px]"], [class~="text-[11px]"], [class~="text-[12px]"]):not(.material-symbols-outlined) { font-size: var(--hotel-text-small); line-height: 1.5; }
html.customer-theme :is(.hotel-eyebrow, .hotel-hero-caption, .hotel-assurances, .hotel-experience-points, .hotel-room-card-meta, .hotel-gallery-count, .hotel-reservation-help, .hotel-food-price span, .hotel-footer-bottom) { font-size: var(--hotel-text-small); }
html.customer-theme .hotel-eyebrow { letter-spacing: .15em; }
html.customer-theme :is(a,button).bg-primary, html.customer-theme :is(a,button).bg-secondary, html.customer-theme :is(a,button).bg-brand, html.customer-theme .hotel-button { font-size: var(--hotel-text-control); letter-spacing: .035em; }
html.customer-theme .hotel-link { font-size: var(--hotel-text-control); letter-spacing: .01em; }
html.customer-theme .hotel-booking label > span { font-size: var(--hotel-text-small); letter-spacing: .08em; }
html.customer-theme .hotel-booking :is(input,select) { font-size: var(--hotel-text-body); }
html.customer-theme .hotel-booking .hotel-button { font-size: var(--hotel-text-control); }
html.customer-theme .hotel-hero p { font-size: var(--hotel-text-body); line-height: 1.85; max-width: 470px; }
html.customer-theme.customer-page-home .hotel-hero h1 { width: min(680px,100%); max-width: 100%; padding-right: .14em; }
html.customer-theme.customer-page-home .hotel-hero h1 em { display: inline-block; max-width: 100%; padding-right: .1em; white-space: nowrap; }
html.customer-theme.customer-page-home .hotel-hero h1 .luxe-word-shell { padding-inline: .045em; margin-inline: -.0225em; }
html.customer-theme .hotel-intro p, html.customer-theme .hotel-experience p, html.customer-theme .hotel-invitation p, html.customer-theme .hotel-section-heading > p { font-size: var(--hotel-text-body); line-height: 1.85; }
html.customer-theme .hotel-catalog-hero p.text-lg { font-size: var(--hotel-text-body); line-height: 1.85; }
html.customer-theme .hotel-detail-copy > p.text-lg { font-size: var(--hotel-text-body); line-height: 1.85; }
html.customer-theme .hotel-detail-facts > div > p:first-child { font-size: var(--hotel-text-small); letter-spacing: .08em; }
html.customer-theme .hotel-detail-facts > div > p:last-child { font-size: 20px; }
html.customer-theme .hotel-reservation-rate span { font-size: var(--hotel-text-control); }
html.customer-theme .hotel-gallery-thumbs { gap: 12px; }
html.customer-theme .hotel-lightbox-toolbar p, html.customer-theme .hotel-lightbox-bottom { font-size: var(--hotel-text-control); }
html.customer-theme [data-customer-header] :is(nav > a, nav > details > summary) { font-size: 15px; }
html.customer-theme [data-customer-header] :is(a[href="login.php"],a[href="signup.php"]) { font-size: 15px; }
html.customer-theme [data-customer-header] .coralbliz-brand__subtitle { font-size: 10px; line-height: 1.25; letter-spacing: .13em; }
html.customer-theme .hotel-footer h3 { font-size: 14px; }
html.customer-theme:is(.customer-page-cart,.customer-page-history) h1 + p, html.customer-theme.customer-page-favorites main > section:first-child p:last-child { font-size: var(--hotel-text-body); line-height: 1.85; }

/* Shared card finish: warm surfaces, framed photography and a distinct action area. */
html.customer-theme :is(.hotel-type-card,.hotel-room-card,.hotel-catalog-card,.hotel-food-card) {
    border: 1px solid #d8cbb5;
    border-radius: var(--hotel-card-radius);
    background: linear-gradient(155deg,#fff 40%,#faf7f0);
    box-shadow: var(--hotel-card-shadow);
    overflow: hidden;
}
html.customer-theme main article.bg-white:not(.hotel-catalog-card):not(.hotel-room-card) { border-radius: var(--hotel-card-radius); box-shadow: var(--hotel-card-shadow); }
html.customer-theme :is(.hotel-room-card,.hotel-catalog-card,.hotel-food-card) > :first-child { border-bottom: 3px solid #c5a064; }
html.customer-theme .hotel-room-card-body { padding: 28px; }
html.customer-theme .hotel-room-card h3 { font-size: 28px; line-height: 1.3; min-height: 2.6em; }
html.customer-theme .hotel-room-card p { font-size: var(--hotel-text-description); line-height: 1.8; }
html.customer-theme .hotel-room-card .hotel-image-label { font-size: var(--hotel-text-small); letter-spacing: .06em; }
html.customer-theme .hotel-room-card-meta { border-top: 1px solid #e6ddcd; padding-top: 18px; gap: 15px; }
html.customer-theme .hotel-room-card-foot { border-top: 1px solid #e6ddcd; margin-top: 24px; padding-top: 24px; }
html.customer-theme .hotel-room-card-foot strong { font-size: 28px; letter-spacing: -.035em; }
html.customer-theme .hotel-room-card-foot small { font-size: var(--hotel-text-small); }
html.customer-theme .hotel-room-card-foot .hotel-button { font-size: 14px; min-height: 46px; }
html.customer-theme .hotel-catalog-card > :last-child { padding: 30px; gap: 26px; }
html.customer-theme .hotel-catalog-card h3 { font-size: 32px; }
html.customer-theme .hotel-catalog-card h3 + p { font-size: var(--hotel-text-description); line-height: 1.8; }
html.customer-theme .hotel-catalog-card dl { font-size: var(--hotel-text-control); gap: 12px 18px; }
html.customer-theme .hotel-catalog-card .hotel-card-extra { font-size: var(--hotel-text-small); gap: 20px; }
html.customer-theme .hotel-catalog-card .hotel-card-actions :is(a,button) { font-size: 14px; letter-spacing: .025em; min-height: 48px; }
html.customer-theme .hotel-catalog-card .font-display.text-5xl { font-size: 32px; }
html.customer-theme .hotel-catalog-card > :last-child > div:last-child:not(:first-child) { background: #f3ede2; border-top-color: #dccbad; border-radius: 6px; padding: 22px; }
html.customer-theme .hotel-food-card > div:last-child { padding: 28px; }
html.customer-theme .hotel-food-card-heading h3 { font-size: 28px; min-height: 2.6em; }
html.customer-theme .hotel-food-card-heading > span, html.customer-theme .hotel-food-card > div:first-child > span { font-size: var(--hotel-text-small); }
html.customer-theme .hotel-food-card > div:last-child > p { font-size: var(--hotel-text-description); line-height: 1.8; }
html.customer-theme .hotel-food-price { padding-block: 20px; border-top-color: #d8cbb5; }
html.customer-theme .hotel-food-price strong { font-size: 28px; }
html.customer-theme .hotel-food-card form button { font-size: 14px; min-height: 48px; }
html.customer-theme.customer-page-favorites main article { background: linear-gradient(155deg,#fff 40%,#faf7f0); }
html.customer-theme.customer-page-favorites main article > div:last-child { padding: 28px; }
html.customer-theme.customer-page-favorites main article h2 { font-size: 30px; min-height: 2.6em; }

/* Room-type collection: equal-height information with a real filtered destination. */
html.customer-theme .hotel-type-grid { align-items: stretch; }
html.customer-theme .hotel-type-card { display: flex; flex-direction: column; min-width: 0; height: 100%; }
html.customer-theme .hotel-type-image { position: relative; display: block; height: 270px; overflow: hidden; flex-shrink: 0; border-bottom: 3px solid #c5a064; }
html.customer-theme .hotel-type-image img { width: 100%; height: 100%; object-fit: cover; }
html.customer-theme .hotel-type-count { position: absolute; bottom: 27px; left: 27px; right: auto; z-index: 3; display: inline-flex; align-items: center; gap: 9px; max-width: calc(100% - 54px); padding: 8px 12px; border: 1px solid #c5a06485; border-radius: 4px; background: #101310e8; color: #f0e6d3; font-size: var(--hotel-text-small); line-height: 1.5; }
html.customer-theme .hotel-type-count .material-symbols-outlined { font-size: 19px; }
html.customer-theme .hotel-type-body { display: flex; flex: 1; flex-direction: column; min-width: 0; padding: 27px; }
html.customer-theme .hotel-type-body > .hotel-eyebrow { margin: 0 0 12px; font-size: 13px; letter-spacing: .13em; }
html.customer-theme .hotel-type-body h3 { margin: 0; min-height: 2.5em; color: #171a18; font: 400 30px/1.25 'Libre Caslon Text',Georgia,serif; letter-spacing: -.03em; }
html.customer-theme .hotel-type-body h3 a:hover { color: #8a6835; }
html.customer-theme .hotel-type-description { margin-block: 18px 24px; font-size: var(--hotel-text-description); line-height: 1.8; color: #656157; min-height: 5.4em; }
html.customer-theme .hotel-type-features { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: auto; padding-block: 16px; border-top: 1px solid #e5dccb; }
html.customer-theme .hotel-type-features:empty { display: none; }
html.customer-theme .hotel-type-features > span { display: inline-flex; align-items: center; gap: 6px; font-size: var(--hotel-text-small); color: #5d5b53; }
html.customer-theme .hotel-type-features .material-symbols-outlined { color: #8a6835; font-size: 20px; }
html.customer-theme .hotel-type-footer { border-top: 1px solid #d8cbb5; padding-top: 19px; }
html.customer-theme .hotel-type-rate > span { font-size: var(--hotel-text-small); color: #706d65; }
html.customer-theme .hotel-type-rate > p { margin: 2px 0 18px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; }
html.customer-theme .hotel-type-rate strong { color: #171a18; font: 400 32px/1.3 'Libre Caslon Text',Georgia,serif; letter-spacing: -.035em; }
html.customer-theme .hotel-type-rate p > span { font-size: 14px; color: #706d65; }
html.customer-theme .hotel-type-footer .hotel-button { display: flex; width: 100%; justify-content: space-between; padding: 13px 18px; min-height: 48px; }

/* Restored homepage content, with the same component language as the collection. */
html.customer-theme .hotel-home-welcome { align-items: start; }
html.customer-theme .hotel-home-welcome > div:last-child > div > div { padding: 23px; background: linear-gradient(145deg,#fff,#f3eee4); border: 1px solid #ddd0b9; border-radius: 8px; box-shadow: var(--hotel-card-shadow); }
html.customer-theme .hotel-home-welcome .material-symbols-outlined { border: 1px solid #d9c5a0; border-radius: 50%; background: #f0e6d3; padding: 10px; font-size: 23px; }
html.customer-theme .hotel-home-rooms { background: #efebe3; border-block: 1px solid #ddd6c9; }
html.customer-theme .hotel-story-card > a { aspect-ratio: 1.38; }
html.customer-theme .hotel-story-card > a > img { height: 100%; }
html.customer-theme .hotel-story-card .hotel-room-card-body > p:first-child { font-size: 14px; letter-spacing: .12em; color: #8a6835; margin-top: 0; }
html.customer-theme .hotel-story-card .hotel-room-card-body h3 { font: 400 28px/1.3 'Libre Caslon Text',Georgia,serif; margin-top: 12px; }
html.customer-theme .hotel-story-action { margin: auto 28px 28px; padding-top: 20px; border-top: 1px solid #d9cbb4; }
html.customer-theme .hotel-story-action .hotel-link { display: flex; justify-content: space-between; width: 100%; border: 0; padding-bottom: 0; }
html.customer-theme .hotel-home-bar { background: #101310; }
html.customer-theme .hotel-home-bar img { border-radius: 8px; }
html.customer-theme .hotel-home-bar a.bg-white, html.customer-theme .hotel-home-account a.bg-white { color: #171a18; background: #c5a064; }
html.customer-theme .hotel-home-dining > div { align-items: stretch; }
html.customer-theme .hotel-home-dining :is(img, .bg-surface) { border-radius: 8px; }
html.customer-theme .hotel-home-dining .bg-surface { border: 1px solid #d9cbb4; background: #f7f3ea; padding: 23px; }
html.customer-theme .hotel-home-services { background: #f7f5f0; }
html.customer-theme .hotel-services-grid { gap: 20px; }
html.customer-theme main article.hotel-service-card { background: linear-gradient(150deg,#fff,#f5f0e6); border: 1px solid #d9cbb4; padding: 28px 23px; }
html.customer-theme .hotel-service-card > span { width: 52px; height: 52px; border: 1px solid #cfb98f; border-radius: 50%; background: #f0e6d3; color: #8a6835; }
html.customer-theme .hotel-service-card h3 { font: 400 22px/1.4 'Libre Caslon Text',Georgia,serif; margin-block: 21px 10px; }
html.customer-theme .hotel-service-card p { font-size: var(--hotel-text-description); line-height: 1.8; }
html.customer-theme .hotel-home-location { background: #efe9dc; }
html.customer-theme .hotel-home-location .sm\:grid-cols-3 { padding-block: 25px; border-block: 1px solid #d4c5ab; }
html.customer-theme .hotel-home-direct { background: #101310; }
html.customer-theme .hotel-home-direct .text-gold { color: #dfcba5; }
html.customer-theme .hotel-benefit-card { padding: 25px; border: 1px solid #c5a0645c; border-radius: 8px; background: linear-gradient(155deg,#ffffff0b,#c5a0640c); }
html.customer-theme .hotel-benefit-card > .material-symbols-outlined { font-size: 29px; color: #dfcba5; }
html.customer-theme .hotel-benefit-card h3 { font: 400 22px/1.35 'Libre Caslon Text',Georgia,serif; }
html.customer-theme .hotel-benefit-card p { font-size: var(--hotel-text-description); line-height: 1.8; }
html.customer-theme .hotel-home-account > div { border: 1px solid #c5a06485; border-radius: 10px; }
@media (min-width: 768px) and (max-width: 1100px) {
    html.customer-theme .hotel-home-welcome { grid-template-columns: 1fr; }
    html.customer-theme .hotel-home-welcome > div { grid-column: auto; }
    html.customer-theme .hotel-home-direct .sm\:grid-cols-3 { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    html.customer-theme .hotel-type-image { height: 255px; }
    html.customer-theme .hotel-type-body { padding: 24px; }
    html.customer-theme .hotel-type-body h3 { font-size: 28px; min-height: 0; }
    html.customer-theme .hotel-type-description { min-height: 0; }
    html.customer-theme .hotel-catalog-card > :last-child { padding: 22px; }
    html.customer-theme .hotel-catalog-card > :last-child > div:last-child:not(:first-child) { padding: 18px; }
    html.customer-theme .hotel-catalog-card dl { font-size: 14px; gap: 12px; }
    html.customer-theme .hotel-home-dining .min-h-\[500px\] { min-height: 340px; max-height: 400px; }
    html.customer-theme .hotel-home-welcome > div:last-child > div { grid-template-columns: 1fr; }
    html.customer-theme .hotel-room-card-foot .hotel-button { font-size: 14px; }
    html.customer-theme .hotel-booking { grid-template-columns: 1fr 1fr; }
    html.customer-theme .hotel-booking .hotel-button { grid-column: 1 / -1; }
    html.customer-theme .hotel-assurances { justify-content: flex-start; gap: 12px 18px; }
    html.customer-theme.customer-page-home .hotel-hero h1 { font-size: clamp(36px,10.5vw,46px); padding-right: 0; }
}
@media (max-width: 479px) {
    html.customer-theme .hotel-catalog-card dl { grid-template-columns: 1fr; font-size: 15px; gap: 10px; }
    html.customer-theme .hotel-catalog-card .hotel-card-actions { grid-template-columns: 1fr; }
}
