/* =========================================================
   Location Courte Durée Pro – Public Styles
   ========================================================= */

:root {
    --rp-primary:    #2c6e49;
    --rp-primary-dk: #1b4332;
    --rp-accent:     #f9a826;
    --rp-light:      #f4f1eb;
    --rp-border:     #d9d3c7;
    --rp-text:       #2d2d2d;
    --rp-muted:      #6b7280;
    --rp-radius:     10px;
    --rp-shadow:     0 4px 20px rgba(0,0,0,.10);
}

.rp-property-wrap { font-family: 'Georgia', serif; color: var(--rp-text); max-width: 1100px; margin: 0 auto; }

/* Hero gallery */
.rp-hero-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 6px; border-radius: var(--rp-radius); overflow: hidden; max-height: 480px; margin-bottom: 28px; }
.rp-main-image { grid-row: span 2; }
.rp-main-image img { width:100%; height:480px; object-fit:cover; display:block; }
.rp-thumb-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.rp-thumb { width:100%; height:237px; object-fit:cover; display:block; }

/* Header */
.rp-property-header { margin-bottom: 24px; }
.rp-property-title { font-size: 2.2rem; font-weight: bold; margin: 0 0 6px; color: var(--rp-primary-dk); }
.rp-property-address { color: var(--rp-muted); margin: 0; font-size: .95rem; }

/* Body sections */
.rp-property-body > div { margin-bottom: 44px; }
.rp-property-body h2 { font-size: 1.4rem; color: var(--rp-primary-dk); border-bottom: 2px solid var(--rp-primary); padding-bottom: 6px; margin-bottom: 18px; }

/* Amenities */
.rp-amenities-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.rp-amenity-item { background: var(--rp-light); padding: 6px 14px; border-radius: 20px; font-size:.9rem; border:1px solid var(--rp-border); }

/* Pricing table */
.rp-pricing-table-wrap { overflow-x: auto; }
.rp-pricing-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.rp-pricing-table th { background: var(--rp-primary); color: #fff; padding: 10px 14px; text-align: left; }
.rp-pricing-table td { padding: 10px 14px; border-bottom: 1px solid var(--rp-border); }
.rp-pricing-table tr:last-child td { border-bottom: none; }
.rp-pricing-table tr:nth-child(even) td { background: var(--rp-light); }
.rp-pricing-table td strong { color: var(--rp-primary-dk); font-size: 1.05rem; }

/* Calendar */
.rp-calendar-wrap { background: var(--rp-light); padding: 20px; border-radius: var(--rp-radius); border:1px solid var(--rp-border); }
.rp-calendar-legend { display:flex; gap:18px; margin-bottom:14px; font-size:.85rem; }
.rp-calendar-legend span { display:flex; align-items:center; gap:6px; }
.rp-calendar-legend span::before { content:''; width:14px; height:14px; border-radius:3px; display:inline-block; }
.rp-legend-free::before   { background:#c8e6c9; border:1px solid #81c784; }
.rp-legend-booked::before { background:#ffcdd2; border:1px solid #e57373; }
.rp-legend-past::before   { background:#e0e0e0; border:1px solid #bdbdbd; }

.rp-calendar-nav { display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.rp-cal-prev, .rp-cal-next { background:var(--rp-primary); color:#fff; border:none; border-radius:50%; width:32px; height:32px; font-size:1.2rem; cursor:pointer; line-height:1; }
.rp-cal-prev:hover,.rp-cal-next:hover { background:var(--rp-primary-dk); }
#rp-cal-month-label { font-size:1.1rem; font-weight:bold; min-width:180px; text-align:center; }

.rp-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.rp-cal-day-head { text-align:center; font-size:.8rem; font-weight:bold; padding:4px 0; color:var(--rp-muted); }
.rp-cal-day { text-align:center; padding:8px 4px; border-radius:5px; font-size:.9rem; cursor:default; min-height:36px; display:flex; align-items:center; justify-content:center; }
.rp-cal-day.free   { background:#c8e6c9; color:#1b5e20; }
.rp-cal-day.booked { background:#ffcdd2; color:#b71c1c; }
.rp-cal-day.past   { background:#e0e0e0; color:#9e9e9e; }
.rp-cal-day.empty  { background:transparent; }
.rp-cal-day.today  { font-weight:bold; box-shadow:0 0 0 2px var(--rp-accent); }

/* Booking form */
.rp-booking-form-wrap { background: #fff; border: 1px solid var(--rp-border); border-radius: var(--rp-radius); padding: 28px; box-shadow: var(--rp-shadow); }
.rp-form { display:flex; flex-direction:column; gap:16px; }
.rp-form-row { display:grid; gap:16px; }
.rp-form-row-2 { grid-template-columns:1fr 1fr; }
.rp-form-group { display:flex; flex-direction:column; gap:6px; }
.rp-form-group label { font-weight:bold; font-size:.9rem; color:var(--rp-primary-dk); }
.rp-form-group input,
.rp-form-group textarea,
.rp-form-group select { border:1px solid var(--rp-border); border-radius:6px; padding:10px 12px; font-size:.95rem; font-family:inherit; transition:border-color .2s; width:100%; box-sizing:border-box; }
.rp-form-group input:focus,
.rp-form-group textarea:focus { outline:none; border-color:var(--rp-primary); box-shadow:0 0 0 3px rgba(44,110,73,.15); }

.rp-price-preview { background:var(--rp-primary); color:#fff; padding:12px 18px; border-radius:8px; font-size:1.05rem; font-weight:bold; }
.rp-min-note { color:var(--rp-muted); font-size:.88rem; margin:0; }

.rp-btn { display:inline-block; padding:12px 28px; border-radius:8px; border:none; cursor:pointer; font-size:1rem; font-weight:bold; font-family:inherit; transition:background .2s, transform .1s; }
.rp-btn-primary { background:var(--rp-primary); color:#fff; }
.rp-btn-primary:hover { background:var(--rp-primary-dk); transform:translateY(-1px); }
.rp-btn-primary:disabled { background:#aaa; cursor:not-allowed; transform:none; }

.rp-booking-notice { padding:14px 18px; border-radius:8px; margin-bottom:18px; font-weight:bold; }
.rp-booking-notice.success { background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; }
.rp-booking-notice.error   { background:#ffebee; color:#c62828; border:1px solid #ef9a9a; }

/* Contact */
.rp-contact-info p { margin:6px 0; font-size:1rem; }
.rp-contact-info a { color:var(--rp-primary); text-decoration:none; }
.rp-contact-info a:hover { text-decoration:underline; }

/* Gallery grid */
.rp-gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.rp-gallery-item img { width:100%; height:160px; object-fit:cover; border-radius:8px; display:block; transition:transform .3s; }
.rp-gallery-item:hover img { transform:scale(1.04); }

/* Responsive */
@media (max-width: 768px) {
    .rp-hero-gallery { grid-template-columns:1fr; max-height:none; }
    .rp-main-image img { height:280px; }
    .rp-thumb-grid { display:none; }
    .rp-form-row-2 { grid-template-columns:1fr; }
    .rp-property-title { font-size:1.6rem; }
}
