:root { --tvec-ink:#18352e; --tvec-muted:#5e6b66; --tvec-sand:#f4f0e8; --tvec-accent:#ba5a36; --tvec-line:#dde2dd; }
.tvec-properties { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:24px; margin:32px auto; }
.tvec-property-card { overflow:hidden; background:#fff; border:1px solid var(--tvec-line); border-radius:16px; box-shadow:0 8px 24px rgba(24,53,46,.07); }
.tvec-property-card__image { display:block; height:245px; background:var(--tvec-sand); }.tvec-property-card__image img { width:100%; height:100%; object-fit:cover; }.tvec-property-card__body { padding:22px; }.tvec-eyebrow { margin:0 0 8px; color:var(--tvec-muted); font-size:.83rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }.tvec-property-card h2,.tvec-property h1,.tvec-property h2 { color:var(--tvec-ink); }.tvec-property-card h2 { margin:.1rem 0 .65rem; font-size:1.35rem; }.tvec-property-card h2 a { color:inherit; text-decoration:none; }.tvec-property-card__facts,.tvec-property__facts { color:var(--tvec-muted); }.tvec-price { color:var(--tvec-ink); font-weight:700; }.tvec-price--large { white-space:nowrap; font-size:1.15rem; }.tvec-link { color:var(--tvec-accent); font-weight:700; text-decoration:none; }
.tvec-site-main,.tvec-property { max-width:1200px; margin:0 auto; padding:28px 24px 70px; }.tvec-back a { color:var(--tvec-ink); }.tvec-gallery { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:220px 220px; gap:8px; border-radius:18px; overflow:hidden; }.tvec-gallery__item { appearance:none; border:0; padding:0; cursor:zoom-in; overflow:hidden; }.tvec-gallery__item img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }.tvec-gallery__item:hover img { transform:scale(1.04); }.tvec-gallery__item--1 { grid-row:1 / span 2; }.tvec-property__intro { display:flex; justify-content:space-between; gap:24px; align-items:start; padding:32px 0 24px; }.tvec-property__intro h1 { margin:0; font-size:clamp(2rem,4vw,3.25rem); }.tvec-property__layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:56px; }.tvec-property__content section { margin-bottom:42px; }.tvec-description { line-height:1.75; }.tvec-booking-card { align-self:start; position:sticky; top:24px; padding:26px; border:1px solid var(--tvec-line); border-radius:16px; background:var(--tvec-sand); }.tvec-booking-card h2 { margin-top:0; }.tvec-button { display:block; padding:14px 18px; border-radius:8px; background:var(--tvec-accent); color:#fff; font-weight:700; text-align:center; text-decoration:none; }.tvec-amenities ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0; list-style:none; }.tvec-amenities li { padding:13px; border:1px solid var(--tvec-line); border-radius:8px; }.tvec-notice { padding:16px; border-left:4px solid var(--tvec-accent); background:var(--tvec-sand); }.tvec-lightbox { position:fixed; z-index:99999; inset:0; display:grid; place-items:center; padding:52px 20px 20px; background:rgba(10,20,17,.94); }.tvec-lightbox[hidden] { display:none; }.tvec-lightbox img { max-width:100%; max-height:80vh; object-fit:contain; }.tvec-lightbox p { position:absolute; bottom:10px; color:#fff; }.tvec-lightbox__close,.tvec-lightbox__previous,.tvec-lightbox__next { position:absolute; border:0; background:transparent; color:#fff; cursor:pointer; }.tvec-lightbox__close { top:12px; right:18px; font-size:2.5rem; }.tvec-lightbox__previous,.tvec-lightbox__next { top:50%; font-size:3.5rem; transform:translateY(-50%); }.tvec-lightbox__previous { left:18px; }.tvec-lightbox__next { right:18px; }
@media (max-width:700px) { .tvec-site-main,.tvec-property { padding:18px 16px 48px; }.tvec-gallery { grid-template-columns:1fr 1fr; grid-template-rows:220px 120px; }.tvec-gallery__item--1 { grid-column:1 / span 2; grid-row:auto; }.tvec-gallery__item--4,.tvec-gallery__item--5 { display:none; }.tvec-property__intro,.tvec-property__layout { display:block; }.tvec-price--large { margin-top:14px; }.tvec-booking-card { position:static; margin-top:30px; }.tvec-amenities ul { grid-template-columns:1fr; } }
.tvec-reservation__header { display:flex; gap:24px; align-items:center; padding:8px 0 32px; }.tvec-reservation__header img { width:160px; height:110px; border-radius:12px; object-fit:cover; }.tvec-reservation__header h1 { margin:.1rem 0; color:var(--tvec-ink); }.tvec-reservation__layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:48px; }.tvec-booking-form section,.tvec-price-card,.tvec-confirmation { margin-bottom:24px; padding:28px; border:1px solid var(--tvec-line); border-radius:16px; background:#fff; }.tvec-booking-form h2,.tvec-price-card h2 { margin-top:0; color:var(--tvec-ink); }.tvec-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }.tvec-form-grid p { margin:0 0 16px; }.tvec-form-grid label { display:block; margin-bottom:6px; color:var(--tvec-ink); font-weight:700; }.tvec-form-grid input,.tvec-form-grid select { width:100%; box-sizing:border-box; min-height:44px; padding:9px; border:1px solid #aebbb5; border-radius:7px; background:#fff; font:inherit; }.tvec-quote-result ul { margin:0; padding:0; list-style:none; }.tvec-quote-result li { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--tvec-line); }.tvec-quote-result .tvec-total { margin-top:5px; border-bottom:0; font-size:1.1rem; color:var(--tvec-ink); }.tvec-form-message { min-height:1.5em; color:var(--tvec-ink); font-weight:600; }.tvec-button:disabled { cursor:wait; opacity:.6; }.tvec-consent { line-height:1.5; }.tvec-confirmation { max-width:680px; margin:64px auto; }.tvec-confirmation .tvec-button { display:inline-block; }
@media (max-width:700px) { .tvec-reservation__header,.tvec-reservation__layout { display:block; }.tvec-reservation__header img { width:100%; height:190px; margin-bottom:16px; }.tvec-form-grid { grid-template-columns:1fr; }.tvec-price-card { margin-top:24px; } }
