/* Lux Villas marketplace: photography first, deliberate green identity. */
:root { --ds-cream:#fff; --ds-ink:#252b27; --ds-green:#285443; --ds-muted:#667069; --ds-line:#e1e5e0; --ds-serif:'Manrope',Arial,sans-serif; }
body.ds-site { background:#fff; --member-accent:#285443; --member-ink:#252b27; --member-soft:#f4f6f2; }
.ds-wrap,.ds-site .container { width:min(1320px,calc(100% - 96px)); }
.ds-site h1,.ds-site h2,.ds-site h3 { font-family:var(--ds-sans); font-weight:700; letter-spacing:-.045em; }
.ds-site h1 { font-size:clamp(30px,3.1vw,46px); }
.ds-site h2 { font-size:clamp(23px,2.1vw,30px); }
.ds-site h3 { font-size:19px; }
.ds-site .ds-logo { font-family:'Noto Serif',Georgia,serif; color:var(--ds-green); }
.ds-header { background:white; }
.ds-header-inner { height:88px; }
.ds-desktop-nav a,.ds-login { font-size:14px; }
.ds-login { min-height:44px; display:inline-flex; align-items:center; }
.ds-site :focus-visible { outline:3px solid #285443; outline-offset:4px; }
.ds-site .ds-primary,.ds-site .member-primary-button { background:var(--ds-green); color:white; border-radius:12px; min-height:48px; font-size:14px; font-weight:700; }
.ds-site .ds-primary:hover,.ds-site .member-primary-button:hover { background:#193e30; }
.ds-site .ds-secondary { min-height:44px; border-radius:12px; background:white; font-size:13px; }
.ds-icon-button { min-width:44px; min-height:44px; }
.ds-explore { padding-top:46px; }
.ds-explore-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.ds-explore-heading h1 { margin-bottom:12px; }
.ds-explore-heading h1 em { font-family:'Noto Serif',Georgia,serif; color:var(--ds-green); font-weight:500; }
.ds-explore-heading p:not(.ds-eyebrow) { color:var(--ds-muted); font-size:15px; margin:0; }
.ds-eyebrow { letter-spacing:.13em; color:var(--ds-green); font-size:11px; }
.ds-search { border-radius:22px; padding:16px; box-shadow:0 3px 6px #18251b05,0 12px 32px #18251b0a; }
.ds-search label { font-size:12px; }
.ds-search input,.ds-search select { font-size:14px; }
.ds-explore-categories { display:flex; gap:10px; overflow-x:auto; padding:26px 0 8px; scrollbar-width:thin; }
.ds-chip { flex-shrink:0; min-height:44px; padding:10px 20px; border-radius:30px; font-size:13px; background:white; }
.ds-chip-active { background:#edf3ee; border-color:var(--ds-green); color:var(--ds-green)!important; }
.ds-section { padding-top:46px; }
.ds-section-head { margin-bottom:23px; align-items:center; }
.ds-section-head h2 { margin-bottom:8px; }
.ds-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; }
.ds-site .ds-card { background:transparent; border:0; border-radius:0; box-shadow:none; overflow:visible; }
.ds-card-photo { border-radius:20px; overflow:hidden; aspect-ratio:1.22; background:#f1f3ef; }
.ds-card-photo img { transition:transform .3s ease; }
.ds-card-photo:hover img { transform:scale(1.025); }
.ds-card-body { padding:16px 2px 0; }
.ds-card .ds-location { font-size:12px; margin-bottom:6px; }
.ds-card h3 { font-size:17px; font-weight:700; line-height:1.4; margin-bottom:6px; min-height:0; letter-spacing:-.025em; }
.ds-card-facts { font-size:13px; margin-bottom:12px!important; }
.ds-card-bottom { border:0; padding-top:0; }
.ds-card-bottom strong { font-size:19px; font-weight:700; }
.ds-card-bottom small { font-size:11px; line-height:1.6; }
.ds-card-arrow { border-radius:50%; border:1px solid var(--ds-line); width:42px; height:42px; }
.ds-favorite { width:40px; height:40px; background:white; color:#303a32; border-radius:50%; box-shadow:0 2px 9px #0001; }
.ds-type { border-radius:9px; background:#fffffff2; color:#26352d; font-size:11px; padding:5px 10px; }
.ds-compare-form { border:0; margin-top:3px; }
.ds-compare-form button { font-size:11px; color:var(--ds-muted); min-height:44px; }
.ds-winter-section { margin-top:18px; border-top:1px solid var(--ds-line); }
.ds-destinations { padding-top:60px; }
.ds-destinations>a { border-radius:20px; background:#f3f5ef; border:1px solid #e8ece4; }
.ds-destinations>a:last-child { background:#f5f1ea; }
.ds-owner-editorial { padding:40px; background:#f2f5ef; border-radius:24px; display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:center; }
.ds-owner-editorial h2 { margin:0; }
.ds-owner-editorial p { color:var(--ds-muted); font-size:14px; }
.ds-owner-inquiry { border-radius:14px; }
.ds-footer { background:#f6f7f4; margin-top:64px; border-top:1px solid var(--ds-line); }
.ds-page { padding-top:34px; }
.ds-property-page { max-width:1240px; }
.ds-back { font-size:13px; margin-bottom:20px; }
.ds-property-head h1 { font-size:clamp(28px,3vw,38px); }
.ds-property-head .ds-eyebrow { font-size:11px; }
.ds-property-actions { max-width:none; }
.ds-property-actions .ds-secondary { min-height:44px; font-size:12px; }
.ds-gallery { height:490px; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; border-radius:22px; }
.ds-gallery>button:first-child { grid-row:1/3; }
.ds-gallery:has(>button:nth-child(3)):not(:has(>button:nth-child(4))) { grid-template-columns:1.7fr 1fr; }
.ds-gallery:has(>button:nth-child(4)):not(:has(>button:nth-child(5)))>button:last-child { grid-column:2/4; }
.ds-gallery-short { grid-template-columns:1fr 1fr; grid-template-rows:1fr; }
.ds-gallery-short>button:first-child { grid-row:auto; }
.ds-gallery-count { background:white; font-size:12px; box-shadow:0 2px 8px #0002; }
.ds-detail-nav { display:flex; gap:30px; padding:20px 0; border-bottom:1px solid var(--ds-line); overflow-x:auto; }
.ds-detail-nav a { font-size:13px; font-weight:700; white-space:nowrap; min-height:44px; display:flex; align-items:center; }
.ds-detail-nav a:hover { text-decoration:underline; }
.ds-property-layout { grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr); gap:70px; margin-top:32px; }
.ds-highlights strong { font-size:15px; }
.ds-highlights span { font-size:12px; }
.ds-property-section h2 { font-size:25px; }
.ds-property-section h3 { font-size:18px; margin-top:28px; }
.ds-description { white-space:normal; font-size:15px; line-height:1.9; }
.ds-description p { margin:0 0 16px; }
.ds-lead { color:#48534c; font-size:16px; }
.ds-amenities { gap:16px 28px; }
.ds-amenities li { font-size:14px; padding:10px 0; }
.ds-property-highlights { padding-left:20px; font-size:14px; line-height:1.9; }
.ds-booking-card { border-radius:22px; padding:28px; box-shadow:0 4px 10px #18251b05,0 16px 36px #18251b10; border:1px solid var(--ds-line); top:24px; }
.ds-booking-card .ds-price strong { font-size:28px; }
.ds-booking-card>.ds-muted { font-size:12px; }
.ds-booking-card label { font-size:12px; }
.ds-booking-card input,.ds-booking-card select { min-height:48px; border-radius:10px; }
.ds-quote-status { font-size:13px; min-height:42px; }
.ds-quote-lines>div { font-size:13px; }
.ds-small,.ds-booking-reassurance,.ds-conditions-link { font-size:12px; }
.ds-property-section,.ds-conditions,#reservation { scroll-margin-top:24px; }
.ds-site .member-panel,.ds-site .member-auth-card { border-radius:20px; box-shadow:0 5px 20px #18251b04; }
.ds-site .member-panel h2,.ds-site .member-page h1,.ds-site .member-auth-card h2 { font-family:var(--ds-sans); font-weight:700; }
.ds-site .member-panel h2 { font-size:23px; }
.ds-site .checkout-page { background:white; }
.ds-site .checkout-grid { grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr); gap:40px; }
.ds-site .checkout-price-card { position:sticky; top:24px; }
.ds-site .checkout-property img { border-radius:14px; object-fit:cover; }
.ds-site .checkout-payment-note { background:#f1f5ef; border:0; border-radius:12px; padding:18px; }
.ds-site .checkout-steps { display:flex; gap:18px; padding:0; list-style:none; color:var(--ds-muted); font-size:12px; margin:0 0 26px; }
.ds-site .checkout-steps [aria-current] { color:var(--ds-green); font-weight:700; }
.ds-site .checkout-safe-note { font-size:12px; }
.ds-site .member-hero,.ds-site .member-auth-story { background:#285443; }
.ds-error ul { padding-left:20px; margin:10px 0 0; }
.ds-site input[aria-invalid=true] { border-color:#a43222; }
.ds-field-error { color:#a43222; font-size:12px; margin-top:6px; }
@media(min-width:1500px) { .ds-wrap { max-width:1400px; } .ds-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } .ds-property-page .ds-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1100px) { .ds-wrap,.ds-site .container { width:calc(100% - 48px); } .ds-property-layout { gap:32px; grid-template-columns:minmax(0,1.3fr) minmax(310px,1fr); } .ds-gallery { height:400px; } .ds-property-head { align-items:flex-start; } }
@media(max-width:800px) { .ds-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ds-explore { padding-top:30px; } .ds-explore-heading { display:block; } .ds-explore-heading>.ds-link { display:none; } .ds-explore-heading h1 { font-size:34px; } .ds-search { border-radius:18px; } .ds-search input,.ds-search select { font-size:16px; } .ds-property-layout { display:flex; flex-direction:column; gap:28px; } .ds-property-layout>aside { order:0; } .ds-booking-card { position:static; } .ds-booking-card .ds-form-grid { grid-template-columns:1fr 1fr; } .ds-booking-card .ds-full { grid-column:1/-1; } .ds-property-main { order:1; } .ds-gallery { height:340px; grid-template-columns:1.6fr 1fr; } .ds-gallery>button:nth-child(4),.ds-gallery>button:nth-child(5) { display:none; } .ds-gallery>button:first-child::after { content:'Вижте всички снимки'; position:absolute; bottom:14px; left:14px; color:#222; background:white; padding:8px 12px; border-radius:8px; font-size:12px; } .ds-owner-editorial { grid-template-columns:1fr; gap:18px; padding:30px; } .ds-site .checkout-grid { grid-template-columns:1fr; gap:20px; } .ds-site .checkout-price-card { position:static; } .ds-mobile-booking { background:white; border-top:1px solid var(--ds-line); padding:14px 20px calc(14px + env(safe-area-inset-bottom)); gap:14px; } .ds-mobile-booking small { font-size:10px; } .ds-mobile-booking>div { min-width:0; } .ds-mobile-booking .ds-primary { flex-shrink:0; } }
@media(max-width:520px) { .ds-wrap,.ds-site .container { width:calc(100% - 36px); } .ds-header-inner { height:72px; } .ds-card-grid { grid-template-columns:1fr; gap:28px; } .ds-card-photo { aspect-ratio:1.2; } .ds-card-body { padding:14px 2px 0; } .ds-card h3 { font-size:18px; } .ds-section { padding-top:34px; } .ds-section-head h2 { font-size:25px; } .ds-section-head { gap:8px; } .ds-explore-heading h1 { font-size:31px; } .ds-explore-heading p:not(.ds-eyebrow) { font-size:14px; } .ds-explore-categories { margin-right:-18px; padding-right:18px; } .ds-gallery { height:290px; grid-template-columns:1fr!important; grid-template-rows:1fr; border-radius:16px; } .ds-gallery>button:first-child { grid-row:1; } .ds-gallery>button:not(:first-child) { display:none; } .ds-detail-nav { gap:23px; } .ds-property-actions { gap:6px; } .ds-property-actions .ds-secondary { padding:8px 11px; } .ds-highlights { gap:12px; } .ds-highlights strong { font-size:13px; } .ds-highlights span { font-size:11px; } .ds-booking-card { padding:22px; } .ds-booking-card .ds-primary { font-size:13px; } .ds-destinations { grid-template-columns:1fr; } .ds-destinations>a { min-height:160px; } .ds-site .member-panel { padding:22px; } .ds-site .checkout-property { flex-direction:column; align-items:stretch; } .ds-site .checkout-property img { width:100%; height:190px; } }
@media(prefers-reduced-motion:reduce) { .ds-card-photo img { transition:none; } }
