:root{--cysa-space:32px;--cysa-btn-color:#8dc34b;--cysa-btn-color-hover:#7aae3f;--cysa-btn-text:#ffffff}
.cysa-content-wrap{min-height:70vh;display:grid;gap:var(--cysa-space);align-content:start;padding-block:clamp(24px,4vw,56px)}
.cysa-stack{display:grid;gap:var(--cysa-space)}
.cysa-grid{display:grid;gap:var(--cysa-space);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cysa-dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.cysa-card{background:var(--cysa-card-bg,#fff);border:1px solid var(--cysa-border,rgba(0,0,0,.14));border-radius:0;padding:1.5rem;box-shadow:none;display:grid;gap:1rem}
.cysa-card > *{margin:0}
.cysa-card h2,.cysa-card h3,.cysa-card h4{margin-top:0}
.cysa-btn,.cysa-card .button,.cysa-card button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:inherit;padding:.85rem 1.25rem;border-radius:0;border:1px solid var(--cysa-btn-color);background:var(--cysa-btn-color);color:var(--cysa-btn-text);text-decoration:none;cursor:pointer;transition:.2s ease all;box-shadow:none}
.cysa-btn:hover,.cysa-card .button:hover,.cysa-card button:hover{background:var(--cysa-btn-color-hover);border-color:var(--cysa-btn-color-hover);color:var(--cysa-btn-text)}
.cysa-btn-secondary{background:transparent;color:inherit;border-color:var(--cysa-border,rgba(0,0,0,.2))}.cysa-btn-inline{width:auto;justify-self:start;align-self:start}
.cysa-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:0}
.cysa-badge,.cysa-chip{display:inline-flex;align-items:center;padding:.3rem .6rem;border-radius:0;background:rgba(0,0,0,.06);font-size:.85rem;font-weight:600}
.cysa-chip{margin:.15rem .35rem .15rem 0}
.cysa-term-row{margin-top:.5rem}
.cysa-entry > *:last-child{margin-bottom:0}
.cysa-map,.cysa-static-map{width:100%;height:auto;min-height:360px;object-fit:cover;border:1px solid var(--cysa-border,rgba(0,0,0,.14));border-radius:0;display:block;background:#f3f4f6}
.cysa-static-map-route{min-height:560px}
.cysa-static-map-compact{min-height:360px}
.cysa-form p,.cysa-form fieldset{margin:0}
.cysa-form{gap:1.25rem}
.cysa-form input[type="text"],.cysa-form input[type="email"],.cysa-form select,.cysa-form textarea,.cysa-form input[type="number"]{width:100%;padding:.9rem 1rem;border-radius:0;border:1px solid rgba(0,0,0,.25);background:#f2f2f2;color:inherit;font:inherit;box-shadow:none}
.cysa-form input[readonly]{background:#e9e9e9}
.cysa-form-grid-2{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.cysa-form-grid-3{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.cysa-inline-form{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}
.cysa-inline-form label{display:block}
.cysa-notice{padding:1rem 1.125rem;border-radius:0;margin-bottom:1rem;border:1px solid transparent}
.cysa-notice-success{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.25)}
.cysa-notice-error{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.18)}
.cysa-listing-card.is-sold{opacity:.8}
.cysa-listing-card.is-sold h4::after{content:"Sold";display:inline-block;margin-left:.5rem;font-size:.8rem;padding:.2rem .45rem;border-radius:0;background:rgba(239,68,68,.12)}
.cysa-price{font-size:1.15rem;font-weight:700}
.cysa-print-sheet ol{padding-left:1.25rem;margin-bottom:0}
.cysa-checkbox-inline{display:inline-flex;align-items:center;gap:.45rem;margin-right:1rem;margin-bottom:.5rem}
.cysa-empty-state{min-height:320px;align-content:center}
.cysa-empty-state p{max-width:60ch}
.cysa-sale-detail > .cysa-card{margin:0}
.cysa-page-back{margin:0}
.cysa-page-back .cysa-btn{min-width:0}
.cysa-content-wrap > *{margin:0}
.cysa-template-shell,.cysa-template-wrap{max-width:min(1400px,calc(100vw - 2rem));width:100%;margin:0 auto;padding:clamp(24px,4vw,48px) 16px;box-sizing:border-box}
.cysa-breadcrumbs{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;font-size:.95rem;color:inherit;opacity:.82}
.cysa-breadcrumbs a{text-decoration:none}
.cysa-breadcrumb-sep{opacity:.5}
.cysa-house-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr)}
.cysa-house-stats{grid-template-columns:repeat(auto-fit,minmax(180px,220px));justify-content:start;align-items:start}
.cysa-house-stats .cysa-card{padding:1rem;align-content:start;min-height:0}
.cysa-house-stats .cysa-card strong{display:block;font-size:.95rem}
.cysa-house-stats .cysa-card span{font-size:1.35rem;font-weight:700}
.cysa-house-address{font-size:1.05rem;font-weight:600}
.cysa-map-compact{height:auto}
.cysa-section-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.cysa-favorite-toggle{display:inline-flex;align-items:center;justify-content:center;width:48px;min-width:48px;height:48px;padding:0;border-radius:0;border:1px solid var(--cysa-border,rgba(0,0,0,.18));background:transparent;color:inherit;cursor:pointer;transition:.2s ease all}
.cysa-heart-icon{font-size:1.35rem;line-height:1;color:rgba(0,0,0,.35);transition:.2s ease color,.2s ease transform}
.cysa-favorite-toggle.is-favorited .cysa-heart-icon{color:#ec4899;transform:scale(1.08)}
.cysa-favorite-toggle.is-favorited{border-color:rgba(236,72,153,.35);background:rgba(236,72,153,.08)}
.cysa-section-heading p{margin-top:.35rem}
.cysa-sale-detail-wrap,.cysa-sale-detail .cysa-card,.cysa-sale-listings-section{width:100%}
.cysa-sale-hero-copy{gap:16px}
.cysa-sale-meta{display:flex;flex-wrap:wrap;gap:16px 24px}
.cysa-sale-meta p{margin:0}
.cysa-join-wrap .cysa-inline-form{background:rgba(0,0,0,.03);padding:1rem;border:1px solid rgba(0,0,0,.1)}
.cysa-muted,.cysa-house-subtitle{opacity:.72}
.cysa-house-subtitle{font-size:1rem;font-weight:600}
@media (max-width: 900px){.cysa-house-layout{grid-template-columns:1fr}}
@media print{header,footer,.cysa-join-wrap,.cysa-actions,.site-header,.site-footer{display:none !important}.cysa-card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}body *{visibility:hidden}.cysa-print-sheet,.cysa-print-sheet *{visibility:visible}.cysa-print-sheet{position:absolute;left:0;top:0;width:100%;border:none;box-shadow:none;padding:0}.cysa-static-map,.cysa-map{display:block !important;height:auto !important;min-height:520px !important}.cysa-print-addresses{margin-top:24px}}

.leaflet-container{font:inherit}.cysa-map{min-height:360px}.cysa-map .leaflet-popup-content{margin:12px 14px}.cysa-map .leaflet-popup-content a{text-decoration:none;font-weight:600}

.cysa-house-main-column{align-content:start}
.cysa-house-map-panel{align-content:start}
.cysa-house-items-panel{align-content:start}
.cysa-house-items-scroll{max-height:720px;overflow:auto;padding-right:.5rem}
.cysa-listings-grid-compact{grid-template-columns:1fr;gap:20px}
.cysa-listings-grid-compact .cysa-listing-card{gap:.75rem}
.cysa-listings-grid-compact .cysa-listing-card img{max-height:180px;object-fit:cover}
@media (max-width: 900px){.cysa-house-items-scroll{max-height:none;overflow:visible}}


/* Form Styling Update */
.cysa-form input,
.cysa-form textarea,
.cysa-form select {
    background-color: #ffffff !important;
    border: 1px solid #333 !important;
    color: #333 !important;
}

.cysa-form input::placeholder,
.cysa-form textarea::placeholder {
    color: #666 !important;
}

.cysa-form input:focus,
.cysa-form textarea:focus,
.cysa-form select:focus {
    outline: none;
    border-color: #8dc34b !important;
    box-shadow: none !important;
}


.cysa-sale-detail-simple{gap:24px}
.cysa-sale-member-header{padding-bottom:.25rem}
.cysa-sale-member-header a{font-weight:600;text-decoration:none}
.cysa-house-grid-public{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.cysa-public-house-card{height:100%;gap:1rem;align-content:start}
.cysa-public-house-card h3{font-size:1.05rem;line-height:1.35}
.cysa-house-card-copy{gap:.4rem}
.cysa-street-view-wrap{aspect-ratio:16/10;overflow:hidden;background:#f3f4f6;border:1px solid var(--cysa-border,rgba(0,0,0,.12))}
.cysa-street-view{width:100%;height:100%;object-fit:cover;display:block}
.cysa-sale-inline-footer{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}
.cysa-sale-footer-panel{padding:1.25rem}
.cysa-sale-favorites-scroll{max-height:620px;overflow:auto;padding-right:.35rem;display:grid;gap:12px}
.cysa-sale-favorite-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:1rem;border:1px solid var(--cysa-border,rgba(0,0,0,.12));background:rgba(0,0,0,.02)}
.cysa-sale-favorite-item h4{font-size:1rem}
.cysa-sale-favorite-item p{margin:.15rem 0;font-size:.95rem}
.cysa-sale-favorite-item-actions{align-self:center}
.cysa-sale-favorites-empty{min-height:160px;display:grid;align-content:center}
.cysa-sale-inline-link{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;text-decoration:none}
.cysa-sale-inline-link-button{appearance:none;border:none;background:transparent;padding:0;cursor:pointer;color:inherit;font:inherit}
.cysa-sale-route-panel{gap:1rem;display:grid}
.cysa-sale-participating-list ol{margin:0;padding-left:1.25rem;display:grid;gap:.6rem}
.cysa-sale-participating-list li{line-height:1.45}
@media (max-width: 1100px){.cysa-house-grid-public{grid-template-columns:repeat(2,minmax(0,1fr))}.cysa-sale-inline-footer{grid-template-columns:1fr}}
@media (max-width: 640px){.cysa-house-grid-public{grid-template-columns:1fr}.cysa-sale-favorite-item{grid-template-columns:1fr}.cysa-sale-favorite-item-actions{align-self:start}}
@media print{.cysa-sale-member-header,.cysa-sale-houses-section,.cysa-sale-favorites-panel{display:none !important}.cysa-sale-inline-footer{display:block}.cysa-sale-route-panel{padding:0;border:none}.cysa-sale-route-panel .cysa-actions{display:none !important}}


/* Responsive polish */
img{max-width:100%;height:auto}
.cysa-listings-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cysa-sale-inline-footer .cysa-map{min-height:420px}
.cysa-sale-member-header,.cysa-page-back,.cysa-breadcrumbs{width:100%}
.cysa-sale-inline-footer,.cysa-house-grid-public,.cysa-house-layout,.cysa-inline-form,.cysa-form-grid-2,.cysa-form-grid-3,.cysa-dashboard-grid,.cysa-grid{min-width:0}
.cysa-sale-footer-panel,.cysa-public-house-card,.cysa-card{min-width:0}
.cysa-actions .cysa-btn{max-width:100%}

@media (max-width: 1024px){
  .cysa-template-shell,.cysa-template-wrap{max-width:min(100vw - 1.5rem,1400px);padding:24px .75rem}
  .cysa-sale-inline-footer .cysa-map{min-height:360px}
}

@media (max-width: 768px){
  :root{--cysa-space:20px}
  .cysa-template-shell,.cysa-template-wrap{max-width:100%;padding:20px 16px}
  .cysa-content-wrap{padding-block:20px}
  .cysa-grid,
  .cysa-dashboard-grid,
  .cysa-listings-grid,
  .cysa-house-grid-public,
  .cysa-sale-inline-footer,
  .cysa-house-layout,
  .cysa-house-stats,
  .cysa-inline-form,
  .cysa-form-grid-2,
  .cysa-form-grid-3{grid-template-columns:1fr !important}
  .cysa-card{padding:1.125rem}
  .cysa-section-heading{align-items:flex-start}
  .cysa-actions{width:100%}
  .cysa-actions .cysa-btn,
  .cysa-actions .button,
  .cysa-actions button,
  .cysa-btn-mobile-full{width:100%}
  .cysa-sale-inline-footer .cysa-map,
  .cysa-map,
  .cysa-static-map{min-height:300px}
  .cysa-static-map-route{min-height:360px}
  .cysa-sale-favorites-scroll,
  .cysa-house-items-scroll{max-height:none;overflow:visible;padding-right:0}
}

@media (max-width: 480px){
  .cysa-template-shell,.cysa-template-wrap{padding:16px 16px}
  .cysa-card{padding:1rem}
  .cysa-breadcrumbs{font-size:.9rem}
  .cysa-btn,.cysa-card .button,.cysa-card button{width:100%}
  .cysa-sale-favorite-item{padding:.875rem}
  .cysa-street-view-wrap{aspect-ratio:4/3}
}


/* Global page shells */
.cysa-page-shell,
.cysa-template-wrap,
.cysa-template-shell {
  width: 100%;
  box-sizing: border-box;
}

.cysa-page-shell {
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 48px) max(24px, env(safe-area-inset-right)) clamp(24px, 4vw, 48px) max(24px, env(safe-area-inset-left));
}

.cysa-page-shell > .cysa-content-wrap {
  width: 100%;
  min-width: 0;
}

@media (max-width: 1024px) {
  .cysa-page-shell,
  .cysa-template-wrap,
  .cysa-template-shell {
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(20px, env(safe-area-inset-right)) !important;
  }
}

@media (max-width: 768px) {
  .cysa-page-shell,
  .cysa-template-wrap,
  .cysa-template-shell,
  .cysa-content-wrap {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
    box-sizing: border-box;
  }

  .cysa-page-shell {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .cysa-template-wrap,
  .cysa-template-shell {
    max-width: 100% !important;
    width: 100% !important;
  }
}

@media (max-width: 480px) {
  .cysa-page-shell,
  .cysa-template-wrap,
  .cysa-template-shell,
  .cysa-content-wrap {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }
}


/* Theme page title alignment on CYSA pages */
body.cysa-front-page .entry-title,
body.cysa-front-page .page-title,
body.cysa-front-page .wp-block-post-title,
body.cysa-front-page .post-title,
body.cysa-front-page .elementor-heading-title,
body.cysa-front-page h1.entry-title {
  box-sizing: border-box;
  width: 100%;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: max(24px, env(safe-area-inset-left));
  padding-right: max(24px, env(safe-area-inset-right));
  line-height: 1.15;
}

@media (max-width: 1024px) {
  body.cysa-front-page .entry-title,
  body.cysa-front-page .page-title,
  body.cysa-front-page .wp-block-post-title,
  body.cysa-front-page .post-title,
  body.cysa-front-page .elementor-heading-title,
  body.cysa-front-page h1.entry-title {
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
    font-size: clamp(1.9rem, 5vw, 2.4rem);
  }
}

@media (max-width: 768px) {
  body.cysa-front-page .entry-title,
  body.cysa-front-page .page-title,
  body.cysa-front-page .wp-block-post-title,
  body.cysa-front-page .post-title,
  body.cysa-front-page .elementor-heading-title,
  body.cysa-front-page h1.entry-title {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
    font-size: clamp(1.55rem, 6vw, 2rem) !important;
    margin-bottom: 16px;
  }
}


/* Theme title wrappers on CYSA pages */
body.cysa-front-page .entry-header,
body.cysa-front-page .page-header,
body.cysa-front-page .post-header,
body.cysa-front-page .article-header,
body.cysa-front-page .wp-block-post-title,
body.cysa-front-page .brxe-post-title,
body.cysa-front-page .elementor-widget-theme-post-title,
body.cysa-front-page .elementor-widget-heading,
body.cysa-front-page .fl-post-header,
body.cysa-front-page .ct-post-title,
body.cysa-front-page .oxy-post-title,
body.cysa-front-page .builder-post-title,
body.cysa-front-page .site-main > article > header,
body.cysa-front-page .site-main .hentry > header:first-child {
  width: 100%;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  body.cysa-front-page .entry-header,
  body.cysa-front-page .page-header,
  body.cysa-front-page .post-header,
  body.cysa-front-page .article-header,
  body.cysa-front-page .wp-block-post-title,
  body.cysa-front-page .brxe-post-title,
  body.cysa-front-page .elementor-widget-theme-post-title,
  body.cysa-front-page .elementor-widget-heading,
  body.cysa-front-page .fl-post-header,
  body.cysa-front-page .ct-post-title,
  body.cysa-front-page .oxy-post-title,
  body.cysa-front-page .builder-post-title,
  body.cysa-front-page .site-main > article > header,
  body.cysa-front-page .site-main .hentry > header:first-child {
    padding-left: max(20px, env(safe-area-inset-left)) !important;
    padding-right: max(20px, env(safe-area-inset-right)) !important;
  }
}

@media (max-width: 768px) {
  body.cysa-front-page .entry-header,
  body.cysa-front-page .page-header,
  body.cysa-front-page .post-header,
  body.cysa-front-page .article-header,
  body.cysa-front-page .wp-block-post-title,
  body.cysa-front-page .brxe-post-title,
  body.cysa-front-page .elementor-widget-theme-post-title,
  body.cysa-front-page .elementor-widget-heading,
  body.cysa-front-page .fl-post-header,
  body.cysa-front-page .ct-post-title,
  body.cysa-front-page .oxy-post-title,
  body.cysa-front-page .builder-post-title,
  body.cysa-front-page .site-main > article > header,
  body.cysa-front-page .site-main .hentry > header:first-child {
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }

  body.cysa-front-page .entry-title,
  body.cysa-front-page .page-title,
  body.cysa-front-page .wp-block-post-title,
  body.cysa-front-page .post-title,
  body.cysa-front-page .elementor-heading-title,
  body.cysa-front-page .brxe-post-title,
  body.cysa-front-page h1.entry-title,
  body.cysa-front-page h1 {
    font-size: clamp(1.5rem, 6vw, 1.95rem) !important;
    line-height: 1.15 !important;
  }
}


/* Mobile-only: hide theme-generated page titles on CYSA pages so plugin headings control layout */
@media (max-width: 768px) {
  body.cysa-front-page .entry-header,
  body.cysa-front-page .page-header,
  body.cysa-front-page .post-header,
  body.cysa-front-page .article-header,
  body.cysa-front-page .wp-block-post-title,
  body.cysa-front-page .post-title,
  body.cysa-front-page .entry-title,
  body.cysa-front-page .page-title,
  body.cysa-front-page .brxe-post-title,
  body.cysa-front-page .elementor-widget-theme-post-title,
  body.cysa-front-page .elementor-widget-heading,
  body.cysa-front-page .fl-post-header,
  body.cysa-front-page .ct-post-title,
  body.cysa-front-page .oxy-post-title,
  body.cysa-front-page .builder-post-title,
  body.cysa-front-page .site-main > article > header,
  body.cysa-front-page .site-main .hentry > header:first-child {
    display: none !important;
  }
}


/* Mobile title hard fix for theme-generated headings on CYSA pages */
@media (max-width: 768px) {
  body.cysa-front-page .cysa-mobile-page-title,
  body.cysa-front-page .cysa-mobile-page-title-wrap {
    display: block !important;
  }

  body.cysa-front-page .cysa-mobile-page-title {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(1.5rem, 6vw, 1.95rem) !important;
    line-height: 1.15 !important;
  }

  body.cysa-front-page .cysa-mobile-page-title-wrap {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}
