.inner-page { color:var(--text); }
.page-hero { min-height:560px; display:flex; align-items:end; padding:80px 0 70px; background:linear-gradient(90deg,#35446fb8,#35446f24),var(--page-image) center/cover; }
.page-hero__content { width:min(760px,calc(100% - 32px)); margin:auto; color:#fff; }
.page-hero h1 { margin:0 0 18px; color:#fff; font-size:56px; font-weight:300; line-height:1.1; text-transform:uppercase; }
.page-hero p { max-width:650px; margin:0; font-size:18px; line-height:30px; }
.page-content { padding:80px 0; }
.page-content--pale { background:var(--pale); }
.page-heading { margin-bottom:40px; }
.page-heading h1,.page-heading h2 { color:var(--blue); font-size:48px; font-weight:300; line-height:1.15; text-transform:uppercase; }
.page-heading p { max-width:740px; margin:16px 0 0; color:#69748b; font-size:18px; line-height:30px; }
.split-copy { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split-copy img { width:100%; height:430px; object-fit:cover; }
.split-copy__copy h2 { color:var(--blue); font-size:42px; font-weight:300; line-height:1.15; text-transform:uppercase; }
.split-copy__copy p { color:#69748b; font-size:17px; line-height:29px; }
.accent-copy { padding:32px; border-left:3px solid var(--coral); background:#fff5f5; }
.listing-toolbar { display:flex; justify-content:space-between; align-items:end; margin-bottom:28px; }
.listing-toolbar h1 { margin:0; color:var(--blue); font-size:48px; font-weight:300; text-transform:uppercase; }
.listing-toolbar p { margin:0; color:#69748b; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card__image { height:274px; }
.listing-grid .property-card__body { min-height:200px; }
.filter-bar { display:flex; gap:16px; margin-bottom:32px; padding:18px; background:var(--pale); }
.filter-bar label { flex:1; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar select,.filter-bar input { width:100%; margin-top:8px; padding:12px; border:1px solid var(--border); color:#8187a7; background:#fff; }
.map-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:24px; }
.map-layout__map { min-height:620px; background:url('../assets/images/map.png') center/cover; }
.map-layout__list { display:grid; gap:16px; align-content:start; }
.map-layout__list .property-card { display:grid; grid-template-columns:150px 1fr; }
.map-layout__list .property-card__image { height:170px; }
.map-layout__list .property-card__body { padding:16px; }
.map-layout__list .property-card__features { display:none; }
.detail-hero { padding:65px 0; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; }
.detail-gallery img { width:100%; height:100%; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; text-transform:uppercase; }
.detail-summary__price { color:var(--coral); font-size:30px; }
.detail-summary p { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; }
.detail-features li { display:flex; align-items:center; gap:8px; color:var(--blue); font-weight:600; }
.detail-features img { width:22px; height:22px; }
.detail-contact { display:inline-block; background:var(--blue); }
.plan-callout { margin-top:28px; padding:25px; background:var(--blue); color:#fff; }
.plan-callout h2 { color:#fff; font-size:28px; }
.faq-list { display:grid; gap:14px; max-width:900px; }
.faq-list details { padding:22px 24px; border:1px solid var(--border); background:#fff; }
.faq-list summary { color:var(--blue); cursor:pointer; font-size:18px; font-weight:600; }
.faq-list p { margin:18px 0 0; color:#69748b; line-height:26px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.contact-details h2,.contact-form h2 { margin:0 0 20px; color:var(--blue); font-size:40px; font-weight:300; text-transform:uppercase; }
.contact-details p { color:#69748b; font-size:18px; line-height:30px; }
.contact-details a { color:var(--blue); font-weight:600; }
.contact-form { padding:32px; background:var(--pale); }
.contact-form label { display:block; margin-bottom:16px; color:var(--blue); font-size:13px; font-weight:600; text-transform:uppercase; }
.contact-form input,.contact-form textarea { display:block; width:100%; margin-top:8px; padding:14px; border:1px solid #aeb6c9; background:#fff; }
.contact-form textarea { min-height:150px; resize:vertical; }
.contact-form .button { margin-top:8px; }
.service-page-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.service-page-card { padding:34px; background:#fff5f5; border-left:3px solid var(--coral); }
.service-page-card:nth-child(even) { background:var(--pale); border-left-color:var(--blue); }
.service-page-card h2 { font-size:28px; }
.service-page-card p { color:#69748b; font-size:17px; line-height:28px; }
@media (max-width:700px) { .page-hero { min-height:440px; } .page-hero h1 { font-size:36px; } .page-hero p { font-size:15px; line-height:24px; } .page-content { padding:52px 0; } .page-heading h1,.page-heading h2,.listing-toolbar h1 { font-size:34px; } .split-copy,.map-layout,.detail-layout,.contact-grid { grid-template-columns:1fr; gap:28px; } .listing-grid,.service-page-grid { grid-template-columns:1fr; } .filter-bar { display:grid; grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-rows:repeat(2,150px); } .detail-summary h1 { font-size:34px; } .map-layout__map { min-height:360px; } .listing-toolbar { display:block; } .listing-toolbar p { margin-top:12px; } }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
.reservation-summary .table-header { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.reservation-summary .table-header > [class*="col-"] { float:none !important; width:auto !important; min-width:0; padding:0 6px !important; text-align:left !important; }
.reservation-summary .table-header > [class*="text-center"] { text-align:center !important; }
.reservation-summary .table-header strong, .reservation-summary .table-header span { display:inline-block; max-width:100%; overflow-wrap:anywhere; line-height:1.35; }
.reservation-summary .table-header br + * { line-height:1.4; }
.reservation-summary .table-detail { width:100% !important; margin:0 0 18px !important; table-layout:fixed; border-collapse:collapse; }
.reservation-summary .table-detail caption { padding:0 0 9px; color:var(--blue); font-size:13px; font-weight:600; text-align:left; text-transform:uppercase; }
.reservation-summary .table-detail td { width:auto !important; padding:9px 6px !important; line-height:1.45; vertical-align:top; white-space:normal !important; overflow-wrap:anywhere; }
.reservation-summary .table-detail td:first-child { width:68% !important; }
.reservation-summary .table-detail td:last-child { width:32% !important; }
@media (max-width:520px) { .reservation-summary .table-header { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:14px; } .reservation-summary .table-header > [class*="col-"] { text-align:left !important; } }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
.reservation-summary .table-header { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.reservation-summary .table-header > [class*="col-"] { float:none !important; width:auto !important; min-width:0; padding:0 6px !important; text-align:left !important; }
.reservation-summary .table-header > [class*="text-center"] { text-align:center !important; }
.reservation-summary .table-header strong, .reservation-summary .table-header span { display:inline-block; max-width:100%; overflow-wrap:anywhere; line-height:1.35; }
.reservation-summary .table-header br + * { line-height:1.4; }
.reservation-summary .table-detail { width:100% !important; margin:0 0 18px !important; table-layout:fixed; border-collapse:collapse; }
.reservation-summary .table-detail caption { padding:0 0 9px; color:var(--blue); font-size:13px; font-weight:600; text-align:left; text-transform:uppercase; }
.reservation-summary .table-detail td { width:auto !important; padding:9px 6px !important; line-height:1.45; vertical-align:top; white-space:normal !important; overflow-wrap:anywhere; }
.reservation-summary .table-detail td:first-child { width:68% !important; }
.reservation-summary .table-detail td:last-child { width:32% !important; }
@media (max-width:520px) { .reservation-summary .table-header { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:14px; } .reservation-summary .table-header > [class*="col-"] { text-align:left !important; } }
.reservation-summary .recap, .reservation-summary .recap .bloc { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:visible !important; }
.reservation-summary .recap h4.titre { position:static !important; display:block !important; height:auto !important; margin:0 0 16px !important; padding:0 !important; line-height:1.35 !important; white-space:normal !important; }
.reservation-summary .recap .table-header > div { display:block !important; float:none !important; position:static !important; box-sizing:border-box !important; }
.reservation-summary .recap .table-detail tbody tr { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(78px,32%) !important; width:100% !important; }
.reservation-summary .recap .table-detail tbody tr > td { display:block !important; float:none !important; box-sizing:border-box !important; width:auto !important; min-width:0 !important; }
.reservation-summary .recap .table-detail tbody tr > td:first-child { grid-column:1; }
.reservation-summary .recap .table-detail tbody tr > td:last-child { grid-column:2; grid-row:1; }
.reservation-summary .recap .table-detail tbody tr > td, .reservation-summary .recap .table-detail tbody tr > td * { overflow-wrap:anywhere !important; white-space:normal !important; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
.reservation-summary .table-header { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.reservation-summary .table-header > [class*="col-"] { float:none !important; width:auto !important; min-width:0; padding:0 6px !important; text-align:left !important; }
.reservation-summary .table-header > [class*="text-center"] { text-align:center !important; }
.reservation-summary .table-header strong, .reservation-summary .table-header span { display:inline-block; max-width:100%; overflow-wrap:anywhere; line-height:1.35; }
.reservation-summary .table-header br + * { line-height:1.4; }
.reservation-summary .table-detail { width:100% !important; margin:0 0 18px !important; table-layout:fixed; border-collapse:collapse; }
.reservation-summary .table-detail caption { padding:0 0 9px; color:var(--blue); font-size:13px; font-weight:600; text-align:left; text-transform:uppercase; }
.reservation-summary .table-detail td { width:auto !important; padding:9px 6px !important; line-height:1.45; vertical-align:top; white-space:normal !important; overflow-wrap:anywhere; }
.reservation-summary .table-detail td:first-child { width:68% !important; }
.reservation-summary .table-detail td:last-child { width:32% !important; }
@media (max-width:520px) { .reservation-summary .table-header { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:14px; } .reservation-summary .table-header > [class*="col-"] { text-align:left !important; } }
.reservation-summary .recap, .reservation-summary .recap .bloc { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:visible !important; }
.reservation-summary .recap h4.titre { position:static !important; display:block !important; height:auto !important; margin:0 0 16px !important; padding:0 !important; line-height:1.35 !important; white-space:normal !important; }
.reservation-summary .recap .table-header > div { display:block !important; float:none !important; position:static !important; box-sizing:border-box !important; }
.reservation-summary .recap .table-detail tbody tr { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(78px,32%) !important; width:100% !important; }
.reservation-summary .recap .table-detail tbody tr > td { display:block !important; float:none !important; box-sizing:border-box !important; width:auto !important; min-width:0 !important; }
.reservation-summary .recap .table-detail tbody tr > td:first-child { grid-column:1; }
.reservation-summary .recap .table-detail tbody tr > td:last-child { grid-column:2; grid-row:1; }
.reservation-summary .recap .table-detail tbody tr > td, .reservation-summary .recap .table-detail tbody tr > td * { overflow-wrap:anywhere !important; white-space:normal !important; }
.options-card + .reservation-summary .table-header { grid-template-columns:1fr !important; gap:12px !important; }
.options-card + .reservation-summary .table-header > div { text-align:left !important; padding:0 6px !important; }
.options-card + .reservation-summary .table-header > div strong { min-width:92px; margin-right:6px; }
.options-card + .reservation-summary .table-header > div br { display:none; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:none !important; }
.detail-booking-form .input-group-addon, .detail-booking-form [class*="nb-personne"], .detail-booking-form [id*="nb-personne"] { display:none !important; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
.reservation-summary .table-header { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.reservation-summary .table-header > [class*="col-"] { float:none !important; width:auto !important; min-width:0; padding:0 6px !important; text-align:left !important; }
.reservation-summary .table-header > [class*="text-center"] { text-align:center !important; }
.reservation-summary .table-header strong, .reservation-summary .table-header span { display:inline-block; max-width:100%; overflow-wrap:anywhere; line-height:1.35; }
.reservation-summary .table-header br + * { line-height:1.4; }
.reservation-summary .table-detail { width:100% !important; margin:0 0 18px !important; table-layout:fixed; border-collapse:collapse; }
.reservation-summary .table-detail caption { padding:0 0 9px; color:var(--blue); font-size:13px; font-weight:600; text-align:left; text-transform:uppercase; }
.reservation-summary .table-detail td { width:auto !important; padding:9px 6px !important; line-height:1.45; vertical-align:top; white-space:normal !important; overflow-wrap:anywhere; }
.reservation-summary .table-detail td:first-child { width:68% !important; }
.reservation-summary .table-detail td:last-child { width:32% !important; }
@media (max-width:520px) { .reservation-summary .table-header { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:14px; } .reservation-summary .table-header > [class*="col-"] { text-align:left !important; } }
.reservation-summary .recap, .reservation-summary .recap .bloc { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:visible !important; }
.reservation-summary .recap h4.titre { position:static !important; display:block !important; height:auto !important; margin:0 0 16px !important; padding:0 !important; line-height:1.35 !important; white-space:normal !important; }
.reservation-summary .recap .table-header > div { display:block !important; float:none !important; position:static !important; box-sizing:border-box !important; }
.reservation-summary .recap .table-detail tbody tr { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(78px,32%) !important; width:100% !important; }
.reservation-summary .recap .table-detail tbody tr > td { display:block !important; float:none !important; box-sizing:border-box !important; width:auto !important; min-width:0 !important; }
.reservation-summary .recap .table-detail tbody tr > td:first-child { grid-column:1; }
.reservation-summary .recap .table-detail tbody tr > td:last-child { grid-column:2; grid-row:1; }
.reservation-summary .recap .table-detail tbody tr > td, .reservation-summary .recap .table-detail tbody tr > td * { overflow-wrap:anywhere !important; white-space:normal !important; }
.options-card + .reservation-summary .table-header { grid-template-columns:1fr !important; gap:12px !important; }
.options-card + .reservation-summary .table-header > div { text-align:left !important; padding:0 6px !important; }
.options-card + .reservation-summary .table-header > div strong { min-width:92px; margin-right:6px; }
.options-card + .reservation-summary .table-header > div br { display:none; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:none !important; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:block !important; width:100%; }
.detail-booking-form .input-group-addon, .detail-booking-form [class*="nb-personne"], .detail-booking-form [id*="nb-personne"] { display:none !important; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
.reservation-summary .table-header { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.reservation-summary .table-header > [class*="col-"] { float:none !important; width:auto !important; min-width:0; padding:0 6px !important; text-align:left !important; }
.reservation-summary .table-header > [class*="text-center"] { text-align:center !important; }
.reservation-summary .table-header strong, .reservation-summary .table-header span { display:inline-block; max-width:100%; overflow-wrap:anywhere; line-height:1.35; }
.reservation-summary .table-header br + * { line-height:1.4; }
.reservation-summary .table-detail { width:100% !important; margin:0 0 18px !important; table-layout:fixed; border-collapse:collapse; }
.reservation-summary .table-detail caption { padding:0 0 9px; color:var(--blue); font-size:13px; font-weight:600; text-align:left; text-transform:uppercase; }
.reservation-summary .table-detail td { width:auto !important; padding:9px 6px !important; line-height:1.45; vertical-align:top; white-space:normal !important; overflow-wrap:anywhere; }
.reservation-summary .table-detail td:first-child { width:68% !important; }
.reservation-summary .table-detail td:last-child { width:32% !important; }
@media (max-width:520px) { .reservation-summary .table-header { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:14px; } .reservation-summary .table-header > [class*="col-"] { text-align:left !important; } }
.reservation-summary .recap, .reservation-summary .recap .bloc { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:visible !important; }
.reservation-summary .recap h4.titre { position:static !important; display:block !important; height:auto !important; margin:0 0 16px !important; padding:0 !important; line-height:1.35 !important; white-space:normal !important; }
.reservation-summary .recap .table-header > div { display:block !important; float:none !important; position:static !important; box-sizing:border-box !important; }
.reservation-summary .recap .table-detail tbody tr { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(78px,32%) !important; width:100% !important; }
.reservation-summary .recap .table-detail tbody tr > td { display:block !important; float:none !important; box-sizing:border-box !important; width:auto !important; min-width:0 !important; }
.reservation-summary .recap .table-detail tbody tr > td:first-child { grid-column:1; }
.reservation-summary .recap .table-detail tbody tr > td:last-child { grid-column:2; grid-row:1; }
.reservation-summary .recap .table-detail tbody tr > td, .reservation-summary .recap .table-detail tbody tr > td * { overflow-wrap:anywhere !important; white-space:normal !important; }
.options-card + .reservation-summary .table-header { grid-template-columns:1fr !important; gap:12px !important; }
.options-card + .reservation-summary .table-header > div { text-align:left !important; padding:0 6px !important; }
.options-card + .reservation-summary .table-header > div strong { min-width:92px; margin-right:6px; }
.options-card + .reservation-summary .table-header > div br { display:none; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:none !important; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:block !important; width:100%; }
.detail-booking-form .input-group-addon, .detail-booking-form [class*="nb-personne"], .detail-booking-form [id*="nb-personne"] { display:none !important; }
.detail-booking-form .input-group.simple, .detail-booking-form .input-group[class~="simple"] { display:none !important; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
/* Asset paths and responsive sizing for the server-mounted theme. */
.contact-form form,.page-content form.form-horizontal { width:100%; max-width:680px; margin:0 auto; }
.contact-form form .form-group,.page-content form.form-horizontal .form-group { display:block; margin:0 0 18px; }
.contact-form form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.contact-form form .form-group:before,.contact-form form .form-group:after { display:none; }
.contact-form form label,.page-content form.form-horizontal label { display:block; color:var(--blue); font-size:13px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; }
.contact-form form input,.contact-form form textarea,.page-content form.form-horizontal input,.page-content form.form-horizontal textarea { width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid #dfe2e8; border-radius:2px; background:#fff; color:var(--text); }
.contact-form form textarea,.page-content form.form-horizontal textarea { min-height:130px; resize:vertical; }
.contact-form form .btn,.page-content form.form-horizontal .btn { border:0; padding:14px 34px; background:var(--blue); color:#fff; text-transform:uppercase; letter-spacing:1px; }
.filter-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:0 0 36px; padding:22px; background:var(--pale); }
.filter-bar { grid-template-columns:repeat(4,1fr) auto; }
.filter-submit { align-self:end; height:44px; padding:0 20px; white-space:nowrap; }
.filter-bar label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.filter-bar input,.filter-bar select { display:block; width:100%; height:44px; margin-top:7px; padding:0 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.filter-bar .button { align-self:end; height:44px; padding:0 22px; }
.listing-grid .map-container { display:block; width:100%; min-height:0; }
.listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.listing-grid .property-card { min-width:0; overflow:hidden; border:1px solid var(--border); background:var(--pale); }
.listing-grid .property-card__image { display:block; height:274px; position:relative; overflow:hidden; background:#eef0f4; }
.listing-grid .property-card__image img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-grid .property-card__image span { position:absolute; top:16px; left:16px; padding:4px 12px; background:#fff; color:var(--blue); font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase; }
.listing-grid .property-card__body { padding:24px; }
.listing-grid .property-card__title { display:flex; align-items:start; justify-content:space-between; gap:8px; }
.listing-grid .property-card h3 { margin:0; color:var(--blue); font-size:20px; font-weight:400; line-height:32px; text-transform:uppercase; }
.listing-grid .property-card__title strong { color:var(--coral); font-size:20px; font-weight:400; line-height:32px; white-space:nowrap; }
.listing-grid .property-card p { min-height:48px; margin:8px 0 16px; font-size:15px; line-height:24px; }
.listing-grid .property-card__features { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; margin:0; padding:16px 0; border-top:1px solid var(--border); list-style:none; color:var(--blue); font-size:12px; font-weight:600; letter-spacing:.5px; }
.listing-grid .property-card__features li { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.listing-grid .property-card__features img { width:18px; height:18px; object-fit:contain; }
.listing-grid .property-card__actions { display:flex; align-items:center; gap:16px; }
.listing-grid .property-card__actions { position:relative; z-index:2; clear:both; margin-top:16px; }
.listing-grid .property-card__actions .button { position:static !important; float:none !important; transform:none !important; }
.listing-grid .property-card__actions .button { padding:10px 13px; font-size:11px; }
.listing-grid .property-card__actions .underlined-link { font-size:11px; }
.listing-empty { grid-column:1/-1; padding:50px 20px; text-align:center; }
.filter-bar .datepicker { position:relative; }
.filter-bar .datepicker input { background:#fff; }
.filter-bar .input-group-addon,.filter-bar .glyphicon-calendar { display:none !important; }
.detail-hero { padding:64px 0 80px; background:var(--pale); }
.detail-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:repeat(2,220px); gap:12px; min-height:452px; }
.detail-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-gallery img:first-child { grid-row:1 / span 2; }
.detail-summary { padding:18px 0; }
.detail-summary h1 { margin:0; color:var(--blue); font-size:44px; font-weight:300; line-height:1.2; text-transform:uppercase; }
.detail-summary__price { display:block; margin:16px 0; color:var(--coral); font-size:30px; }
.detail-summary > p:not(.eyebrow) { color:#69748b; font-size:17px; line-height:28px; }
.detail-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:25px 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); list-style:none; color:var(--blue); font-weight:600; }
.detail-features li { display:flex; align-items:center; gap:8px; }
.detail-features img { width:22px; height:22px; object-fit:contain; }
.detail-contact { display:inline-block; background:var(--blue); }
.detail-summary .detail-contact { margin-bottom:26px; }
.detail-booking-form { margin-top:26px; padding:22px; background:#fff; border:1px solid var(--border); }
.detail-booking-form { position:relative; clear:both; }
.sale-contact-form { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--border); }
.sale-contact-form h3 { margin:0 0 18px; color:var(--blue); font-size:20px; font-weight:500; text-transform:uppercase; }
.sale-contact-form .form-group { margin:0 0 12px; }
.sale-contact-form input,.sale-contact-form textarea { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #dfe2e8; }
.sale-contact-form textarea { min-height:100px; }
.sale-contact-form .button { margin-top:12px; }
.detail-booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-booking-form .input-group-addon,
.detail-booking-form .nb-personne,
.detail-booking-form .nombre-personne { display:none !important; }
.detail-booking-fields select { appearance:auto !important; -webkit-appearance:menulist !important; pointer-events:auto !important; cursor:pointer; background:#fff !important; color:var(--text) !important; }
.detail-booking-fields label { position:relative; z-index:2; }
.reservation-page { background:#f7f8fa; }
.reservation-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:28px; align-items:start; }
.reservation-card { background:#fff; border:1px solid var(--border); padding:28px; box-shadow:none; }
.reservation-card h2 { margin:0 0 22px; font-size:25px; color:var(--text); }
.options-card > .button { margin-top:22px; }
.reservation-option { border-top:1px solid var(--border); padding:20px 0; }
.reservation-option__head { display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--text); }
.reservation-option__head label { font-weight:600; cursor:pointer; }
.reservation-option__head input { margin-right:8px; }
.reservation-option__head strong { white-space:nowrap; color:var(--blue); }
.reservation-option__body { display:flex; gap:18px; margin-top:15px; }
.reservation-option__media { flex:0 0 120px; }
.reservation-option__media img { width:100%; height:90px; object-fit:cover; }
.reservation-option__copy { flex:1; color:var(--muted); }
.option-quantity { display:flex; align-items:center; gap:12px; margin:4px 0 12px; color:var(--text); }
.option-quantity select { width:76px; height:38px; border:1px solid var(--border); background:#fff; }
.option-description { margin:12px 0 0; }
.reservation-summary .table { width:100%; margin-bottom:18px; }
.reservation-summary .btn, .reservation-summary button { width:100%; }
.account-tabs { display:flex; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; }
.account-tabs a { padding:0 0 12px; color:var(--muted); text-decoration:none; }
.account-tabs a.active { color:var(--blue); border-bottom:2px solid var(--blue); }
.checkout-form .tab-pane { display:none; }
.checkout-form .tab-pane.active { display:block; }
.checkout-form h3, .checkout-section h3 { font-size:17px; margin:24px 0 14px; color:var(--text); }
.checkout-form input:not([type=checkbox]):not([type=radio]), .checkout-form select { width:100%; min-height:42px; border:1px solid var(--border); padding:8px 10px; background:#fff; }
.checkout-form .form-row { margin:0 0 14px; }
.checkout-form .form-row label { display:block; margin-bottom:6px; color:var(--muted); }
.checkout-section { border-top:1px solid var(--border); margin-top:25px; padding-top:2px; }
.cgv-check { color:var(--muted); line-height:1.6; }
.payment-options { display:flex; flex-wrap:wrap; gap:14px; }
.payment-options .modepaiement { display:flex; flex-direction:column; align-items:center; gap:8px; padding:12px; border:1px solid var(--border); color:var(--text); text-decoration:none; }
.payment-options img { max-width:100px; max-height:42px; }
@media (max-width:760px) { .reservation-grid { grid-template-columns:1fr; } .reservation-card { padding:20px; } .reservation-option__body { display:block; } .reservation-option__media { margin-bottom:12px; } }
.detail-booking-fields label > select { display:block !important; visibility:visible !important; opacity:1 !important; width:100% !important; min-height:42px; margin-top:7px; border:1px solid #cfd5dd !important; border-radius:2px; font-size:15px; line-height:40px; }
.detail-booking-form .nb-personne, .detail-booking-form [class*="personne"], .detail-booking-form [id*="personne"] { display:none !important; }
.reservation-page { padding:34px 0 48px !important; }
.reservation-grid { gap:20px !important; }
.reservation-card { padding:22px !important; }
.reservation-card h2 { margin-bottom:16px !important; }
.reservation-option { padding:14px 0 !important; }
.reservation-option__body { margin-top:10px !important; }
.checkout-section { margin-top:18px !important; }
.checkout-form h3, .checkout-section h3 { margin:17px 0 10px !important; }
.options-card .section-heading { margin-bottom:8px !important; }
.reservation-summary { position:sticky; top:20px; }
.page-hero--inner { min-height:0 !important; height:auto !important; padding:24px 0 22px !important; background:#f7f8fa !important; }
.page-hero--inner .eyebrow { margin:0 0 7px !important; color:var(--blue) !important; }
.page-hero--inner h1 { margin:0 !important; color:var(--text) !important; font-size:clamp(28px,3vw,42px) !important; line-height:1.12 !important; }
.reservation-page { padding-top:24px !important; }
.reservation-grid--checkout { grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr) !important; align-items:start; }
.checkout-form { overflow:hidden; }
.checkout-form .section-heading { margin-bottom:14px; }
.checkout-form .section-heading h2 { margin:0 !important; font-size:24px !important; }
.checkout-form .tab-content { padding-top:2px; }
.checkout-form #nouveau > h3 { margin:0 0 16px !important; padding-bottom:12px; border-bottom:1px solid var(--border); font-size:18px !important; }
.checkout-form #nouveau > h3 { border-bottom:0 !important; padding-bottom:0 !important; }
.checkout-form #nouveau .form-group { margin:0 0 13px !important; }
.checkout-form #nouveau .form-group:before, .checkout-form #nouveau .form-group:after { display:none; }
.checkout-form #nouveau .control-label { display:block; width:100%; padding:0 !important; margin:0 0 6px; text-align:left; color:var(--muted); font-weight:500; }
.checkout-form #nouveau .form-group > [class*="col-"] { width:100%; padding:0 !important; }
.checkout-form #nouveau input, .checkout-form #nouveau select { border-radius:2px; box-shadow:none; }
.checkout-form #nouveau .radio-inline, .checkout-form #nouveau .checkbox-inline { margin:0 18px 0 0; }
.reservation-summary { position:relative !important; min-width:0; overflow:hidden; }
.reservation-summary h2 { padding-bottom:14px; border-bottom:1px solid var(--border); }
.reservation-summary .table { table-layout:fixed; font-size:14px; }
.reservation-summary .table td, .reservation-summary .table th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; vertical-align:top; padding:9px 6px; }
.reservation-summary .table td:first-child, .reservation-summary .table th:first-child { width:62%; }
.reservation-summary .table td:last-child, .reservation-summary .table th:last-child { width:38%; text-align:right; }
.reservation-summary .btn, .reservation-summary button { white-space:normal; }
.options-card { min-width:0; }
.options-card .reservation-option__body { display:block; }
.options-card .reservation-option__copy { min-width:0; }
.options-card .option-description { overflow-wrap:anywhere; }
.options-card + .reservation-summary { min-width:0; }
.options-card + .reservation-summary #recap { min-width:0; overflow:hidden; }
.options-card + .reservation-summary #recap table { width:100% !important; table-layout:fixed; }
.options-card + .reservation-summary #recap td, .options-card + .reservation-summary #recap th { white-space:normal !important; overflow-wrap:anywhere; word-break:normal; }
.options-card + .reservation-summary #recap td:last-child, .options-card + .reservation-summary #recap th:last-child { text-align:right; }
@media (max-width:900px) { .options-card + .reservation-summary { margin-top:0; } }
.reservation-summary .table-header { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:0 0 18px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.reservation-summary .table-header > [class*="col-"] { float:none !important; width:auto !important; min-width:0; padding:0 6px !important; text-align:left !important; }
.reservation-summary .table-header > [class*="text-center"] { text-align:center !important; }
.reservation-summary .table-header strong, .reservation-summary .table-header span { display:inline-block; max-width:100%; overflow-wrap:anywhere; line-height:1.35; }
.reservation-summary .table-header br + * { line-height:1.4; }
.reservation-summary .table-detail { width:100% !important; margin:0 0 18px !important; table-layout:fixed; border-collapse:collapse; }
.reservation-summary .table-detail caption { padding:0 0 9px; color:var(--blue); font-size:13px; font-weight:600; text-align:left; text-transform:uppercase; }
.reservation-summary .table-detail td { width:auto !important; padding:9px 6px !important; line-height:1.45; vertical-align:top; white-space:normal !important; overflow-wrap:anywhere; }
.reservation-summary .table-detail td:first-child { width:68% !important; }
.reservation-summary .table-detail td:last-child { width:32% !important; }
@media (max-width:520px) { .reservation-summary .table-header { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:14px; } .reservation-summary .table-header > [class*="col-"] { text-align:left !important; } }
.reservation-summary .recap, .reservation-summary .recap .bloc { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:visible !important; }
.reservation-summary .recap h4.titre { position:static !important; display:block !important; height:auto !important; margin:0 0 16px !important; padding:0 !important; line-height:1.35 !important; white-space:normal !important; }
.reservation-summary .recap .table-header > div { display:block !important; float:none !important; position:static !important; box-sizing:border-box !important; }
.reservation-summary .recap .table-detail tbody tr { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(78px,32%) !important; width:100% !important; }
.reservation-summary .recap .table-detail tbody tr > td { display:block !important; float:none !important; box-sizing:border-box !important; width:auto !important; min-width:0 !important; }
.reservation-summary .recap .table-detail tbody tr > td:first-child { grid-column:1; }
.reservation-summary .recap .table-detail tbody tr > td:last-child { grid-column:2; grid-row:1; }
.reservation-summary .recap .table-detail tbody tr > td, .reservation-summary .recap .table-detail tbody tr > td * { overflow-wrap:anywhere !important; white-space:normal !important; }
.options-card + .reservation-summary .table-header { grid-template-columns:1fr !important; gap:12px !important; }
.options-card + .reservation-summary .table-header > div { text-align:left !important; padding:0 6px !important; }
.options-card + .reservation-summary .table-header > div strong { min-width:92px; margin-right:6px; }
.options-card + .reservation-summary .table-header > div br { display:none; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:none !important; }
.detail-booking-form #recap > button, .detail-booking-form #recap > .btn, .detail-booking-form #recap .btn-primary { display:block !important; width:100%; }
.detail-booking-form .input-group-addon, .detail-booking-form [class*="nb-personne"], .detail-booking-form [id*="nb-personne"] { display:none !important; }
.detail-booking-form .input-group.simple, .detail-booking-form .input-group[class~="simple"] { display:none !important; }
.reservation-summary .table-header { grid-template-columns:1fr !important; gap:12px !important; }
.reservation-summary .table-header > div { text-align:left !important; padding:0 6px !important; }
.reservation-summary .table-header > div strong { min-width:92px; margin-right:6px; }
.reservation-summary .table-header > div br { display:none; }
.payment-options .modepaiement { cursor:pointer; pointer-events:auto; }
@media (max-width:900px) { .reservation-grid--checkout { grid-template-columns:1fr !important; } .reservation-summary { margin-top:0; } }
.detail-booking-form label { color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.detail-booking-form input { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; }
.detail-booking-form select { display:block; width:100%; height:42px; margin-top:6px; padding:0 10px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.detail-booking-form #recap { margin-top:20px; }
.detail-booking-form #recap .table { width:100%; margin:0 0 16px; background:#fff; }
.detail-booking-form #recap .btn { display:block; width:100%; border:0; padding:13px 18px; background:var(--blue); color:#fff; text-transform:uppercase; }
.service-page-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.service-page-card { padding:30px 24px; background:#fff; border:1px solid var(--border); }
.service-page-card h2 { margin:0 0 16px; color:var(--blue); font-size:22px; line-height:1.3; }
.service-page-card p { margin:0; color:#69748b; font-size:15px; line-height:25px; }
@media (max-width:900px) { .detail-layout { grid-template-columns:1fr; gap:30px; } .service-page-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .filter-bar { grid-template-columns:1fr 1fr; } .detail-gallery { grid-template-columns:1fr 1fr; grid-template-rows:180px 180px; min-height:372px; } .detail-summary h1 { font-size:34px; } .service-page-grid { grid-template-columns:1fr; } }
.listing-grid .sidebar { width:100%; padding:0; }
.listing-grid .item { width:33.333%; padding:0 12px 24px; }
.listing-grid .item > .flex { display:block; min-height:100%; background:var(--pale); border:1px solid var(--border); }
.listing-grid .item .carousel,.listing-grid .item .info { width:100%; float:none; }
.listing-grid .item .carousel { height:220px; padding:0; }
.listing-grid .item .carousel-inner,.listing-grid .item .carousel-inner .item { height:220px; width:100%; padding:0; }
.listing-grid .item .carousel img { width:100%; height:100%; object-fit:cover; }
.listing-grid .item .info { padding:20px; }
.listing-grid .item .info .titre { width:100%; padding:0; color:var(--blue); font-size:20px; font-weight:400; text-transform:uppercase; }
.listing-grid .item .info .description { min-height:48px; margin:12px 0; }
.listing-grid .item .info .link .btn { display:inline-block; margin-top:8px; padding:10px 14px; background:var(--blue); color:#fff; font-size:11px; text-transform:uppercase; }
@media (max-width:900px) { .listing-grid { grid-template-columns:repeat(2,1fr); } .listing-grid .item { width:50%; } .filter-bar { grid-template-columns:repeat(2,1fr); } .filter-submit { grid-column:1 / -1; } }
@media (max-width:600px) { .listing-grid { grid-template-columns:1fr; } .listing-grid .item { width:100%; } .filter-bar { grid-template-columns:1fr; } }
.primary-nav a { color:var(--blue) !important; }
.site-header a:focus:not(:focus-visible), a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.site-header__inner { width:100%; max-width:1280px; margin:0 auto; }
.site-header { box-shadow:none !important; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:4px 0; background:var(--blue); }
@media (max-width:700px) { .menu-toggle { display:block; position:absolute; top:74px; right:12px; z-index:12; } .primary-nav { display:none !important; position:absolute !important; top:112px !important; left:12px !important; right:12px !important; z-index:11; flex-direction:column !important; gap:0 !important; padding:10px 0 !important; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.14); } .primary-nav.is-open { display:flex !important; } .primary-nav a { display:block; width:100%; padding:12px 18px !important; border-bottom:1px solid var(--border); color:var(--blue) !important; font-size:12px !important; } .primary-nav a:last-child { border-bottom:0; } }
.hero { margin-top:0 !important; }
.member-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.member-card { padding:34px; background:var(--pale); border:1px solid var(--border); }
.member-card h2 { display:flex; align-items:center; gap:12px; margin:0 0 10px; color:var(--blue); font-size:28px; font-weight:400; }
.member-card h2 .glyphicon { color:var(--coral); font-size:22px; }
.member-card__intro { margin:0 0 24px; color:#69748b; line-height:25px; }
.member-card__fields { margin-bottom:20px; }
.member-card__fields .form-group { margin:0 0 14px; }
.member-card__fields .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.member-card__fields label,.member-card__fields .control-label { display:block; width:100%; margin:0 0 7px; color:var(--blue); font-size:12px; font-weight:600; text-transform:uppercase; }
.member-card__fields input,.member-card__fields select,.member-card__fields textarea { display:block; width:100%; min-height:44px; margin:6px 0 14px; padding:10px 12px; border:1px solid #dfe2e8; background:#fff; color:var(--text); }
.member-card__fields input[type="radio"],.member-card__fields input[type="checkbox"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; padding:0; vertical-align:middle; }
.member-card__fields input[type="radio"] + label,.member-card__fields input[type="checkbox"] + label { display:inline; width:auto; margin:0 18px 0 0; font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline { display:inline-block; width:auto; margin:0 18px 14px 0; padding:0; }
.member-card__fields .radio-inline label { display:inline; width:auto; margin:0; color:var(--text); font-size:14px; font-weight:400; text-transform:none; }
.member-card__fields .radio-inline input[type="radio"] { display:inline-block; width:auto; min-height:0; height:auto; margin:0 6px 0 0; vertical-align:middle; }
.member-card__fields textarea { min-height:110px; }
.member-card .button { display:inline-block; background:var(--blue); }
.member-card__forgot { display:block; margin-top:20px; color:var(--blue); font-size:13px; text-decoration:underline; }
.member-card .alert { margin:0 0 18px; padding:12px 14px; }
.owner-contact-section .content-width { max-width:900px; }
.owner-contact-form { max-width:680px; margin:0 auto; padding:32px; background:var(--pale); }
.owner-contact-form .form-group { display:block; margin:0 0 16px; }
.owner-contact-form .form-group > [class*="col-"] { width:100%; float:none; padding:0; }
.owner-contact-form .form-group:before,.owner-contact-form .form-group:after { display:none; }
.owner-contact-form input,.owner-contact-form textarea { display:block; width:100%; margin-top:7px; padding:13px 14px; border:1px solid #aeb6c9; background:#fff; }
.owner-contact-form textarea { min-height:150px; resize:vertical; }
.owner-contact-form .button { margin-top:4px; background:var(--blue); }
@media (max-width:700px) { .member-grid { grid-template-columns:1fr; gap:24px; } .member-card { padding:24px; } }
@media (min-width:1281px) { .site-header { display:flex; justify-content:center; } .site-header__inner { flex:0 0 1280px; width:1280px; max-width:none; margin:0; } }
@media (min-width:1281px) { body > header.site-header { width:1280px !important; margin-left:auto !important; margin-right:auto !important; } body > header.site-header .site-header__inner { width:100% !important; max-width:none !important; } }
@media (min-width:1281px) { header.site-header { position:relative; left:50%; width:1280px !important; margin-left:0 !important; margin-right:0 !important; transform:translateX(-50%); } }
@media (min-width:1281px) { header.site-header { left:auto !important; width:1280px !important; margin-left:auto !important; margin-right:auto !important; transform:none !important; } }
.search-field > span { display:block; padding-bottom:4px; color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:14px; font-style:normal; font-weight:600; line-height:20px; text-transform:uppercase; }
.search-field input,.search-field select { font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; font-weight:400; }
.search-field input::placeholder { color:var(--muted); opacity:1; font-family:Inter,Arial,sans-serif; font-size:13px; font-style:italic; }
.about__copy h2 { color:var(--blue); font-family:Inter,Arial,sans-serif; font-size:42px; font-style:normal; font-weight:400; line-height:1.2; }
.service-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.service-list article { padding:30px 22px; border:1px solid var(--border); text-align:center; }
.service-list article img { width:52px; height:52px; margin:0 auto 18px; object-fit:contain; }
.service-list h3 { margin:0 0 12px; color:var(--blue); font-size:17px; font-weight:600; line-height:1.35; text-transform:uppercase; }
.service-list p { margin:0; color:var(--text); font-size:14px; line-height:1.6; }
.service-list article { min-height:238px; padding:20px 16px; border:1px dashed #fff; border-radius:8px; text-align:center; color:#fff; }
.service-list article img { width:50px; height:50px; object-fit:contain; filter:brightness(0) invert(1); }
.service-list h3 { margin:12px 0 10px; color:var(--pink); font-size:18px; font-weight:400; line-height:24px; text-transform:uppercase; }
.service-list p { margin:0; color:#fff; font-size:13px; line-height:20px; }
.newsletter { padding:50px 0 58px; }
.newsletter__form { width:620px; margin:auto; }
.newsletter__form label { display:block; margin-bottom:10px; color:var(--coral); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.newsletter__form > div { display:flex; gap:24px; }
.newsletter__form input[type=email] { flex:1; min-width:0; padding:14px; border:1px solid #9da8c1; color:var(--blue); font-size:14px; }
.newsletter__form .button { width:184px; }
@media (max-width:700px) { .service-list { grid-template-columns:repeat(2,1fr); } .newsletter__form { width:100%; } .newsletter__form > div { display:block; } .newsletter__form input[type=email],.newsletter__form .button { width:100%; } .newsletter__form input[type=email] { margin-bottom:10px; } }
@media (max-width:420px) { .service-list { grid-template-columns:1fr; } }
.site-footer .newsletter__form { display:none; }
