/**
 * Eudoraz — single apartment page layout ([eudoraz_apartment_page]).
 * Scoped under .edz-apt so it never leaks into the theme. Styles the page
 * scaffold + the sections the plugin didn't previously render (facts row,
 * about, video, location, related). The reused sub-shortcodes (gallery,
 * amenities, house rules, faq, booking) keep their own styling from
 * eudoraz-booking.css.
 */
.edz-apt {
    --edz-apt-primary: #432f2e;
    --edz-apt-main: #e67310;
    --edz-apt-gold: #efc38d;
    --edz-apt-paper: #faf8f6;
    --edz-apt-border: #e1e8ed;
    --edz-apt-muted: #8899a6;
    --edz-apt-text: #3d3230;
    --edz-apt-good: #16a34a;
    font-family: 'Outfit', 'Avenir Next', system-ui, sans-serif;
    color: var(--edz-apt-text);
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 24px;
    line-height: 1.6;
    box-sizing: border-box;
}
.edz-apt *, .edz-apt *::before, .edz-apt *::after { box-sizing: border-box; }

/* breadcrumbs (Rank Math renders inside) */
.edz-apt-crumbs { font-size: 13px; color: var(--edz-apt-muted); padding: 16px 0 4px; }
.edz-apt-crumbs a { color: var(--edz-apt-muted); text-decoration: none; }
.edz-apt-crumbs a:hover { color: var(--edz-apt-main); }

/* title + actions */
.edz-apt-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-top: 22px; flex-wrap: wrap; }
.edz-apt-title, .edz-apt .edz-seo-title { font-size: 30px; line-height: 1.2; color: var(--edz-apt-primary); margin: 0; font-weight: 700; letter-spacing: -0.015em; text-wrap: balance; }
.edz-apt-subline { color: var(--edz-apt-muted); font-size: 15px; margin-top: 6px; }
.edz-apt-actions { display: flex; gap: 8px; flex: 0 0 auto; }

/* facts row */
.edz-apt-facts { display: flex; gap: 28px; padding: 18px 0; border-bottom: 1px solid var(--edz-apt-border); margin-top: 16px; flex-wrap: wrap; }
.edz-apt-fact { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 500; color: var(--edz-apt-primary); }
.edz-apt-fact svg { width: 20px; height: 20px; stroke: var(--edz-apt-main); fill: none; stroke-width: 1.8; }

/* two-column body */
.edz-apt-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; margin-top: 8px; }
.edz-apt-content { min-width: 0; }
.edz-apt-sec { padding: 34px 0; border-bottom: 1px solid var(--edz-apt-border); }
.edz-apt-sec:last-child { border-bottom: none; }
.edz-eyebrow { font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--edz-apt-main); margin-bottom: 6px; }
.edz-apt-content h2 { font-size: 22px; color: var(--edz-apt-primary); margin: 0 0 16px; font-weight: 700; letter-spacing: -0.01em; }
.edz-apt-content h3 { font-size: 16.5px; color: var(--edz-apt-primary); margin: 22px 0 8px; font-weight: 700; }
.edz-apt-content p { max-width: 62ch; margin: 0 0 14px; font-size: 15.5px; }

/* video */
.edz-apt-video { position: relative; border-radius: 12px; overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.edz-apt-video iframe, .edz-apt-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.edz-apt-videolink { display: inline-block; margin-top: 6px; color: var(--edz-apt-main); font-weight: 600; text-decoration: none; }

/* location (area only) */
.edz-apt-addr { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--edz-apt-primary); font-size: 15px; margin-bottom: 8px; }
.edz-apt-addr svg { width: 18px; height: 18px; stroke: var(--edz-apt-main); fill: none; stroke-width: 1.8; flex: 0 0 auto; }
.edz-apt-privacy { color: var(--edz-apt-muted); font-size: 13.5px; font-style: italic; border-left: 3px solid var(--edz-apt-gold); padding-left: 12px; }

/* rules + check-in */
.edz-apt-rules-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }
.edz-apt-checkin { background: var(--edz-apt-paper); border: 1px solid #f0e7dc; border-radius: 12px; padding: 16px 20px; }
.edz-apt-checkin .row { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px dashed #e6dccd; font-size: 14.5px; }
.edz-apt-checkin .row:last-child { border-bottom: none; }
.edz-apt-checkin .row b { color: var(--edz-apt-primary); font-weight: 600; text-align: right; }

/* related apartments */
.edz-apt-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.edz-rel-card { border: 1px solid var(--edz-apt-border); border-radius: 12px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow 0.2s ease; display: block; }
.edz-rel-card:hover { box-shadow: 0 10px 26px rgba(67,47,46,0.12); }
.edz-rel-thumb { height: 150px; background: var(--edz-apt-paper) center/cover no-repeat; }
.edz-rel-pad { padding: 14px 16px; }
.edz-rel-name { font-weight: 700; color: var(--edz-apt-primary); font-size: 15.5px; }
.edz-rel-meta { color: var(--edz-apt-muted); font-size: 13px; margin: 3px 0 8px; }
.edz-rel-price { font-size: 14px; color: var(--edz-apt-primary); }
.edz-rel-price b { color: var(--edz-apt-main); }

/* sticky booking rail */
.edz-apt-rail { position: sticky; top: 24px; }

@media (max-width: 900px) {
    .edz-apt-grid { grid-template-columns: 1fr; gap: 8px; }
    .edz-apt-rail { position: static; margin-top: 8px; }
    .edz-apt-rules-grid, .edz-apt-related { grid-template-columns: 1fr; }
    .edz-apt-title, .edz-apt .edz-seo-title { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .edz-rel-card { transition: none; }
}

/* ==========================================================================
   Search bar ([eudoraz_search]) + results ([eudoraz_search_results])
   ========================================================================== */
.edz-search{background:#fff;border-radius:0;padding:7px;display:flex;align-items:stretch;box-shadow:0 10px 30px rgba(59,40,24,.14);border:1px solid #ece5dd;width:100%;max-width:100%;box-sizing:border-box;font-family:'Outfit',system-ui,sans-serif;}
.edz-search *{box-sizing:border-box;}
.edz-search-field{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 18px;border-right:1px solid #ece5dd;}
.edz-search-field.edz-search-dest{flex:1.5;}
.edz-search-field label{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8a7f78;}
.edz-search-field select,.edz-search-field input{border:none;outline:none;background:transparent;font-family:'Inter',system-ui,sans-serif;font-size:15px;color:#2c2420;padding:2px 0;width:100%;}
.edz-search-field select{appearance:none;-webkit-appearance:none;cursor:pointer;}
.edz-search-btn{flex:0 0 auto;margin-left:8px;background:#3b2818;color:#fff;border:none;border-radius:0;padding:0 24px;font-family:'Outfit',system-ui,sans-serif;font-weight:600;font-size:15px;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap;}
.edz-search-btn:hover{background:#52392a;}
.edz-search-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.edz-results{font-family:'Inter',system-ui,sans-serif;color:#2c2420;}
.edz-results-searchbar{margin-bottom:26px;}
.edz-results-searchbar .edz-search{max-width:100%;}
.edz-results-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px;}
.edz-results-top h1{font-family:'Outfit',system-ui,sans-serif;font-size:24px;font-weight:700;color:#3b2818;margin:0;}
.edz-results-sub{color:#8a7f78;font-size:14.5px;margin-top:4px;}
.edz-results-note{color:#8a7f78;font-size:13.5px;margin:2px 0 22px;}
.edz-results-empty{border:1px solid #ece5dd;border-radius:14px;padding:44px 24px;text-align:center;background:#faf8f5;}
.edz-results-empty h3{font-family:'Outfit',system-ui,sans-serif;color:#3b2818;font-size:20px;margin:0 0 6px;}
.edz-results-empty p{color:#8a7f78;margin:0;}
.edz-result{display:grid;grid-template-columns:290px 1fr 220px;border:1px solid #ece5dd;border-radius:14px;overflow:hidden;background:#fff;margin-bottom:18px;transition:box-shadow .2s;}
.edz-result:hover{box-shadow:0 12px 30px rgba(59,40,24,.10);}
.edz-result-img{background-size:cover;background-position:center;min-height:210px;position:relative;background-color:#faf8f5;}
.edz-result-badge{position:absolute;top:12px;left:12px;background:#3b2818;color:#fff;font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:600;padding:5px 11px;border-radius:6px;}
.edz-result-body{padding:22px 24px;}
.edz-result-body h3{font-family:'Outfit',system-ui,sans-serif;font-size:21px;font-weight:700;color:#3b2818;margin:0 0 3px;}
.edz-result-loc{color:#8a7f78;font-size:14px;margin-bottom:14px;}
.edz-result-facts{display:flex;gap:16px;font-size:14px;color:#2c2420;margin-bottom:14px;}
.edz-chips{display:flex;gap:8px;flex-wrap:wrap;}
.edz-chip{border:1px solid #ece5dd;border-radius:999px;padding:4px 12px;font-size:12.5px;color:#8a7f78;}
.edz-result-price{border-left:1px solid #ece5dd;padding:22px 24px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;text-align:right;}
.edz-result-nightly{color:#8a7f78;font-size:13.5px;}
.edz-result-total{font-family:'Outfit',system-ui,sans-serif;font-weight:700;font-size:23px;color:#3b2818;margin-top:2px;}
.edz-result-totlbl{color:#8a7f78;font-size:12.5px;margin-bottom:16px;}
.edz-result-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;background:#3b2818;color:#fff;border-radius:9px;padding:11px 16px;font-family:'Outfit',system-ui,sans-serif;font-weight:600;font-size:14.5px;}
.edz-result-btn:hover{background:#52392a;}

@media (max-width:860px){
    .edz-search{flex-direction:column;padding:6px;}
    .edz-search-field{border-right:none;border-bottom:1px solid #ece5dd;}
    .edz-search-field:last-of-type{border-bottom:none;}
    .edz-search-btn{margin:8px 0 0;padding:13px;justify-content:center;}
    .edz-result{grid-template-columns:1fr;}
    .edz-result-price{border-left:none;border-top:1px solid #ece5dd;align-items:flex-start;text-align:left;}
    .edz-result-btn{width:100%;}
}
