/*
 * Light visual system
 * Loaded after the core and responsive styles so every public/admin page
 * keeps the same spacious, readable identity.
 */
:root {
    --primary: #5f9d93;
    --primary-dark: #3f756d;
    --primary-soft: #edf7f4;
    --accent: #e3ad6d;
    --accent-dark: #b87935;
    --accent-soft: #fff4e7;
    --sand: #fbf6ee;
    --page: #fbfdfc;
    --surface: #ffffff;
    --ink: #263c38;
    --muted: #6d817c;
    --muted-light: #91a29e;
    --line: #e2ece9;
    --shadow-sm: 0 10px 30px rgba(66, 117, 109, .07);
    --shadow-md: 0 22px 55px rgba(66, 117, 109, .1);
    --shadow-lg: 0 32px 80px rgba(66, 117, 109, .15);
}

body { font-size: 16px; background: #fff; }
small { font-size: 12px; }
.container { width: min(1280px, calc(100% - 48px)); }
.btn { min-height: 50px; padding: 12px 22px; border-radius: 13px; font-size: 14px; }
.btn-small { min-height: 39px; padding: 8px 14px; font-size: 12px; }
.btn-primary { color: #fff; background: var(--primary); box-shadow: 0 11px 27px rgba(95,157,147,.2); }
.btn-primary:hover { background: var(--primary-dark); }
.btn-secondary { color: #4e371e; background: #f1c68f; box-shadow: 0 10px 24px rgba(227,173,109,.2); }
.btn-secondary:hover { color: #3d2a17; background: #e9b978; }

/* Header */
.site-header { background: rgba(255,255,255,.98); border-bottom-color: #e9f0ee; }
.brand-mark { background: #dff0ec; color: var(--primary-dark); box-shadow: none; }
.brand-copy strong { font-size: 27px; }
.brand-copy small { color: #80928d; font-size: 10px; }
.main-nav > a { color: #536762; font-size: 14px; }
.login-link,
.account-link { font-size: 13px; }
.nav-actions .btn { min-height: 45px; font-size: 13px; }
.menu-toggle { background: #edf7f4; }

/* Light home hero */
.hero { color: var(--ink); background: #f3faf8; }
.hero-media { background-position: 24% center; }
.hero-shade { background: linear-gradient(90deg, rgba(248,252,250,.22) 0%, rgba(248,252,250,.86) 56%, #f8fcfa 100%); }
.hero::after { border-color: rgba(95,157,147,.05); }
.eyebrow { color: var(--primary-dark); background: rgba(255,255,255,.78); border-color: #d9ebe6; }
.hero h1 { color: #2d514b; font-size: clamp(50px, 5.3vw, 72px); }
.hero h1 em { color: #bd7e38; }
.hero-copy > p { color: #60756f; font-size: 18px; }
.search-panel { border-color: #e3ece9; box-shadow: 0 24px 60px rgba(78,128,119,.14); }
.search-panel label span { color: #83938f; font-size: 12px; }
.search-panel select { color: #315e57; font-size: 15px; }
.hero-stats div { border-left-color: #dce9e5; }
.hero-stats strong { color: #3f756d; font-size: 29px; }
.hero-stats span { color: #788c87; font-size: 12px; }
.trust-strip { background: #fff; }
.trust-strip b { font-size: 15px; }
.trust-strip small { font-size: 12px; }

/* Bigger general typography */
.section-head h2,
.section h2 { color: #315e57; font-size: clamp(32px, 3vw, 42px); }
.section-kicker { color: #ae7131; font-size: 14px; }
.section-head p { font-size: 15px; }
.section-link,
.text-link { font-size: 14px; }
.property-type-row span { font-size: 13px; }
.property-type-row small { font-size: 11px; }
.property-body h3 { min-height: 62px; font-size: 19px; }
.property-location { font-size: 13px; }
.property-meta span { font-size: 11px; }
.property-meta b { font-size: 12px; }
.property-footer strong { font-size: 20px; }
.property-footer a { font-size: 12px; }
.badges span { min-height: 30px; font-size: 12px; }
.category-card small,
.locations-grid small { font-size: 12px; }
.category-card strong { font-size: 26px; }
.category-card em { font-size: 12px; }
.locations-grid strong { font-size: 22px; }
.journey-copy > p { font-size: 16px; }
.benefits strong { font-size: 16px; }
.benefits small { font-size: 13px; }
.experience-card b { font-size: 18px; }
.experience-card span { font-size: 12px; }

/* Every large section stays light */
.category-section,
.packages-section,
.package-steps-section { background: #f8fbfa; }
.locations-section { background: #eef7f4; }
.locations-section .section-head h2 { color: #315e57; }
.locations-section .section-head p { color: #6d817c; }
.locations-grid a { box-shadow: 0 12px 30px rgba(69,114,106,.1); }
.owner-cta { color: var(--ink); background: linear-gradient(120deg, #edf8f5, #fff8ed); border-top: 1px solid #e2efeb; }
.owner-cta::after { border-color: rgba(95,157,147,.05); }
.owner-cta span { color: #a86a2b; font-size: 13px; }
.owner-cta h2 { color: #315e57; font-size: 36px; }
.owner-cta p { color: #687d77; font-size: 15px; }
.btn-ghost-light { color: #3f756d; border-color: #afd1ca; background: rgba(255,255,255,.65); }
.btn-ghost-light:hover { color: #315e57; border-color: #7eb1a7; background: #fff; }

/* Plans */
.plan-topline > span { font-size: 12px; }
.plan-card h3 { font-size: 25px; }
.plan-price strong { font-size: 46px; }
.plan-price span { font-size: 14px; }
.plan-card > p { font-size: 13px; }
.plan-card li { font-size: 13px; }
.popular-label { padding: 7px 18px; font-size: 12px; }
.plans-note { font-size: 12px; }
.process-grid h3 { font-size: 18px; }
.process-grid p { font-size: 13px; }

/* Inner pages and authentication */
.inner-page,
.dashboard-page,
.details-page,
.offer-details-page { background: #fbfdfc; }
.inner-hero,
.listing-hero,
.packages-hero,
.offers-hero,
.static-hero { color: var(--ink); background: linear-gradient(120deg, #edf8f5, #fff9f1); border-bottom: 1px solid #e1efeb; }
.inner-hero h1,
.static-hero h1 { color: #315e57; font-size: 43px; }
.inner-hero p,
.static-hero p { color: #6b7f7a; font-size: 16px; }
.section-kicker.light { color: #a86a2b; }
.hero-quick-search { box-shadow: 0 18px 44px rgba(68,113,105,.11); }
.filters label,
.property-form label,
.admin-form label,
.auth-card label { font-size: 14px; }
.filters input,
.filters select,
.property-form input,
.property-form select,
.property-form textarea,
.admin-form input,
.admin-form select,
.admin-form textarea,
.auth-card input,
.auth-card select,
.auth-card textarea,
.inline-search input,
.review-actions input,
.review-actions select,
.results-actions select,
.hero-quick-search input { min-height: 49px; font-size: 14px; }
.property-form label > small,
.upload-box span { font-size: 12px; }
.property-form h2 { font-size: 22px; }
.package-options b { font-size: 15px; }
.package-options strong { font-size: 21px; }
.package-options small { font-size: 12px; }
.form-error,
.rejection-message { font-size: 13px; }
.filters-head span,
.results-toolbar > div:first-child span { font-size: 12px; }
.filters-head h2 { font-size: 21px; }
.results-toolbar h2 { font-size: 27px; }
.reset-link { font-size: 12px; }
.results-actions label,
.results-actions select,
.filter-mobile-button { font-size: 12px; }
.auth-section { background: linear-gradient(135deg, #eff8f5, #fffaf3); }
.auth-card h1 { font-size: 33px; }
.auth-card > p { font-size: 14px; }
.payment-summary span { font-size: 11px; }
.payment-summary b { font-size: 13px; }

/* Property details */
.breadcrumb { font-size: 12px; }
.preview-notice { font-size: 13px; }
.details-heading h1 { font-size: 34px; }
.details-heading p { font-size: 14px; }
.details-price-block small,
.details-price-block span { font-size: 11px; }
.details-price { font-size: 29px; }
.details-actions button { font-size: 12px; }
.details-actions > span { font-size: 11px; }
.details-features b { font-size: 15px; }
.details-features small { font-size: 11px; }
.details-box h2 { font-size: 21px; }
.details-box p { font-size: 15px; }
.info-grid small { font-size: 11px; }
.info-grid b { font-size: 13px; }
.safety-note b { font-size: 14px; }
.safety-note p { font-size: 12px; }
.contact-label { font-size: 12px; }
.owner-info b { font-size: 14px; }
.owner-info small { font-size: 11px; }
.contact-property-summary small { font-size: 11px; }
.contact-property-summary b { font-size: 13px; }
.contact-card > p { font-size: 11px; }

/* Dashboard */
.dashboard-heading span { font-size: 13px; }
.dashboard-heading h1 { font-size: 35px; }
.dashboard-heading p { font-size: 14px; }
.dashboard-stats b { font-size: 30px; }
.dashboard-stats span { font-size: 12px; }
.panel-head h2 { font-size: 20px; }
.panel-head p { font-size: 12px; }
.user-listing h3 { font-size: 17px; }
.user-listing p,
.listing-actions { font-size: 12px; }
.status,
.payment-status { min-height: 25px; font-size: 11px; }
.notification b { font-size: 13px; }
.notification p { font-size: 12px; }
.notification small { font-size: 10px; }

/* Light admin panel */
.admin-body { background: #f8fbfa; }
.admin-sidebar { color: var(--ink); background: #edf7f4; border-left: 1px solid #dcebe7; }
.admin-brand { color: #315e57; }
.admin-brand .brand-mark { color: #3f756d; background: #fff; border: 1px solid #d9e9e5; }
.admin-sidebar > small { color: #81948f; font-size: 11px; }
.admin-sidebar nav a { color: #536a64; font-size: 13px; }
.admin-sidebar nav a:hover,
.admin-sidebar nav a.active { color: #315e57; background: #fff; box-shadow: 0 7px 18px rgba(75,124,115,.07); }
.admin-sidebar nav a .icon { color: #b87935; }
.admin-sidebar nav b { color: #fff; background: #75a99f; font-size: 10px; }
.admin-logout { color: #b34855; font-size: 13px; }
.admin-topbar { background: #fff; }
.admin-topbar h1 { font-size: 22px; }
.admin-topbar span { font-size: 11px; }
.admin-welcome > div > span { font-size: 11px; }
.admin-welcome h2 { font-size: 28px; }
.admin-welcome p { font-size: 13px; }
.admin-stats small { font-size: 11px; }
.admin-stats strong { font-size: 22px; }
.admin-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.admin-list b,
.package-admin-list b { font-size: 13px; }
.admin-list span,
.package-admin-list span { font-size: 11px; }
.package-admin-list em,
.reason-list em { font-size: 11px; }
.admin-tabs a { font-size: 11px; }
.review-actions input,
.review-actions select { font-size: 11px; }
.accept,
.reject { font-size: 11px; }
.settings-divider { margin: 12px 0 2px; padding: 13px 0 8px; color: #315e57; border-top: 1px solid var(--line); font-size: 15px; font-weight: 900; }

/* Offers: public */
.home-offers-section { background: #fffaf4; border-top: 1px solid #f4e8d9; border-bottom: 1px solid #f4e8d9; }
.offers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.offer-card { overflow: hidden; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 21px; box-shadow: var(--shadow-sm); transition: transform .75s var(--ease), box-shadow .75s var(--ease); }
.offer-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-md); }
.offer-card-image { height: 245px; position: relative; display: block; overflow: hidden; background: #f0f5f3; }
.offer-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .85s var(--ease); }
.offer-card:hover .offer-card-image img { transform: scale(1.04); }
.offer-badge,
.offer-type { position: absolute; top: 15px; right: 15px; padding: 6px 12px; color: #533716; background: #f5d5a9; border-radius: 8px; font-size: 12px; font-weight: 900; }
.offer-type { right: auto; left: 15px; color: #315e57; background: rgba(255,255,255,.92); }
.offer-card-body { flex: 1; padding: 21px; display: flex; flex-direction: column; }
.offer-card h3 { margin: 0 0 6px; color: #315e57; font-size: 20px; line-height: 1.7; }
.offer-card-body > p { min-height: 49px; margin: 0; color: var(--muted); font-size: 14px; }
.offer-pricing { display: flex; align-items: baseline; gap: 10px; margin-top: 13px; }
.offer-pricing strong { color: #a86629; font-size: 24px; }
.offer-pricing del { color: #9aa9a5; font-size: 14px; }
.offer-countdown { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0; padding: 10px 12px; color: #4c6c66; background: #eef7f4; border-radius: 10px; font-size: 12px; }
.offer-countdown b { color: #9b6128; font-size: 13px; }
.offer-countdown.expired { color: #ad4c58; background: #fff1f3; }
.offer-card .btn { margin-top: auto; }
.offer-details-page { min-height: 75vh; padding-bottom: 75px; }
.offer-details-hero { display: grid; grid-template-columns: 1.08fr .92fr; gap: 45px; align-items: center; padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: 23px; box-shadow: var(--shadow-sm); }
.offer-details-image { height: 560px; position: relative; overflow: hidden; border-radius: 18px; background: #eef4f2; }
.offer-details-image img { width: 100%; height: 100%; object-fit: cover; }
.offer-details-image > span { position: absolute; top: 17px; right: 17px; padding: 8px 14px; color: #533716; background: #f4d2a4; border-radius: 9px; font-size: 14px; font-weight: 900; }
.offer-details-copy h1 { margin: 6px 0 8px; color: #315e57; font-size: 38px; line-height: 1.45; }
.offer-lead { margin: 0; color: #6b7f7a; font-size: 17px; }
.offer-details-price { display: flex; align-items: baseline; gap: 13px; margin: 18px 0 8px; }
.offer-details-price strong { color: #a86629; font-size: 34px; }
.offer-details-price del { color: #9aa9a5; font-size: 17px; }
.offer-countdown.large { display: block; margin: 18px 0; }
.offer-countdown.large span,
.offer-countdown.large b { display: block; }
.offer-countdown.large b { margin-top: 3px; font-size: 17px; }
.offer-description { margin: 20px 0; color: #536a64; font-size: 15px; line-height: 2; }
.offer-dates { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 18px; color: var(--muted); font-size: 12px; }
.related-offers { padding-bottom: 0; }

/* Offers: admin */
.offers-admin-layout { display: grid; grid-template-columns: minmax(420px, .9fr) minmax(520px, 1.1fr); gap: 20px; align-items: start; }
.offer-editor-panel { position: sticky; top: 18px; }
.offer-admin-form textarea { min-height: 145px; }
.offer-switches { display: flex; flex-wrap: wrap; gap: 22px; padding: 13px; background: #f8fbfa; border-radius: 11px; }
.current-offer-image { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; }
.current-offer-image img { width: 105px; height: 75px; object-fit: cover; border-radius: 9px; }
.single-preview { grid-template-columns: 150px; }
.offers-admin-list { display: grid; gap: 11px; }
.offers-admin-list article { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 13px; padding: 13px; background: #fbfdfc; border: 1px solid var(--line); border-radius: 13px; }
.offers-admin-list article > img { width: 100px; height: 92px; grid-row: 1 / 3; object-fit: cover; border-radius: 10px; }
.offer-admin-info { min-width: 0; display: flex; flex-direction: column; }
.offer-admin-info > div { display: flex; flex-wrap: wrap; gap: 5px; }
.offer-admin-info b { overflow: hidden; color: #315e57; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.offer-admin-info small { color: var(--muted); font-size: 11px; }
.status-featured { color: #9b6128; background: #fff0dc; }
.offer-admin-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 6px; }
.offer-admin-actions form { margin: 0; }

/* Light footer */
.site-footer { color: var(--ink); background: #eef7f4; border-top: 1px solid #dcebe7; }
.footer-brand { color: #315e57; }
.footer-brand .brand-mark { color: #3f756d; background: #fff; border: 1px solid #d9e9e5; }
.footer-brand .brand-copy small { color: #7f918d; }
.footer-about > p,
.footer-grid > div:last-child p { color: #647973; font-size: 13px; }
.footer-contact-chips a { color: #405e58; background: #fff; border: 1px solid #ddeae7; font-size: 12px; }
.footer-grid h4 { color: #315e57; font-size: 16px; }
.footer-grid > div > a:not(.brand):not(.btn) { color: #5d736d; font-size: 13px; }
.footer-grid > div > a:not(.brand):not(.btn):hover { color: #315e57; }
.footer-bottom { border-top-color: #dce8e5; }
.footer-bottom > div { color: #71847f; font-size: 12px; }

/* Never let secondary text become unreadably small */
.brand-copy small,
.property-type-row small,
.property-meta span,
.property-meta b,
.all-photos-button,
.gallery-placeholder span,
.payment-summary span,
.details-price-block small,
.details-price-block span,
.details-actions > span,
.details-features small,
.info-grid small,
.owner-info small,
.contact-property-summary small,
.contact-card > p,
.dashboard-stats span,
.notification small,
.admin-sidebar > small,
.admin-sidebar nav b,
.admin-topbar span,
.admin-welcome > div > span,
.admin-stats small,
.admin-list span,
.package-admin-list span,
.package-admin-list em,
.reason-list em,
.admin-tabs a,
.review-actions input,
.review-actions select,
.accept,
.reject,
.offer-admin-info small,
.contact-list small { font-size: 12px; }

/* Static pages */
.content-card p,
.content-card li { font-size: 14px; }
.content-card h2 { font-size: 23px; }
.about-values h3 { font-size: 18px; }
.contact-info-card h2,
.contact-form-card h2 { font-size: 24px; }
.contact-list small { font-size: 11px; }
.contact-list b { font-size: 14px; }
.contact-form-card label { font-size: 13px; }
.contact-form-card input,
.contact-form-card select,
.contact-form-card textarea { min-height: 48px; font-size: 14px; }
.faq-list summary { font-size: 15px; }
.faq-list p { font-size: 13px; }

@media (min-width: 993px) {
    :root { --header-height: 86px; }
}

@media (max-width: 1180px) {
    .offers-admin-layout { grid-template-columns: 1fr; }
    .offer-editor-panel { position: static; }
    .main-nav { gap: 14px; }
    .main-nav > a { font-size: 13px; }
}

@media (max-width: 992px) {
    :root { --header-height: 76px; }
    .main-nav > a { font-size: 15px; }
    .hero-shade { background: rgba(248,252,250,.88); }
    .hero-media { background-position: 35% center; opacity: .72; }
    .offers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .offer-details-hero { grid-template-columns: 1fr; }
    .offer-details-image { height: 470px; }
    .admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    :root { --header-height: 72px; }
    body { font-size: 15px; }
    .container { width: calc(100% - 26px); }
    .brand-copy strong { font-size: 23px; }
    .hero h1 { font-size: 39px; }
    .hero-copy > p { font-size: 15px; }
    .hero-stats strong { font-size: 22px; }
    .hero-stats span { font-size: 11px; }
    .section-head h2,
    .section h2 { font-size: 29px; }
    .section-kicker { font-size: 13px; }
    .property-body h3 { min-height: 0; font-size: 18px; }
    .property-meta span { font-size: 11px; }
    .inner-hero h1,
    .static-hero h1 { font-size: 31px; }
    .inner-hero p,
    .static-hero p { font-size: 14px; }
    .owner-cta h2 { font-size: 28px; }
    .offers-grid { grid-template-columns: 1fr; }
    .offer-card-image { height: 235px; }
    .offer-details-hero { padding: 16px; gap: 25px; }
    .offer-details-image { height: 330px; }
    .offer-details-copy h1 { font-size: 29px; }
    .offer-lead { font-size: 15px; }
    .offer-details-price strong { font-size: 28px; }
    .offers-admin-list article { grid-template-columns: 78px minmax(0, 1fr); }
    .offers-admin-list article > img { width: 78px; height: 76px; }
    .offer-admin-actions { grid-column: 1 / -1; }
    .footer-grid h4 { font-size: 15px; }
    .footer-grid > div > a:not(.brand):not(.btn),
    .footer-about > p,
    .footer-grid > div:last-child p { font-size: 12px; }
}

@media (max-width: 420px) {
    .admin-stats { grid-template-columns: 1fr; }
}
