/* Shared icons and sharing controls. */
.am-icon { display:inline-block; flex:0 0 auto; width:21px; height:21px; vertical-align:middle; }
.am-share { position:relative; margin:20px 0; }
.am-share__label { display:flex; align-items:center; gap:8px; margin-bottom:12px; color:#536875; font-size:14px; font-weight:700; }
.am-share__label .am-icon { width:17px; height:17px; }
.am-share__buttons { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.am-share .am-share__button, .am-coupon-actions > .am-share__button { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0; border:1px solid #dfe7e7; border-radius:12px; background:#fff; color:#26424b; cursor:pointer; transition:background-color .15s,border-color .15s,box-shadow .15s; }
.am-share .am-share__button--facebook { color:#1877f2; background:#f0f6ff; border-color:#dfebfc; }
.am-share .am-share__button--x { color:#1c2931; background:#f3f5f6; }
.am-share .am-share__button--whatsapp { color:#187744; background:#eff8f2; border-color:#dbece1; }
.am-share .am-share__button:hover, .am-coupon-actions > .am-share__button:hover { border-color:#9ab7a8; box-shadow:0 3px 9px #193d2810; background:#e8f1ec; }
.am-share__button:focus-visible { outline:3px solid #6aa387; outline-offset:3px; }
.am-share__status { display:block; min-height:0; margin-top:8px; color:#34724f; font-size:13px; }
.am-share__status:empty { display:none; }
.social .am-share { margin-top:16px; }
.social .am-share__label, .social .am-share__buttons { justify-content:flex-end; }
.am-coupon-actions { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px; }
.am-coupon-actions .am-share { margin:0; }

/* Homepage. Rules stay inside home-refresh to preserve other page layouts. */
.home-refresh { background:#fff; color:#28414c; }
.home-refresh .am-container { width:calc(100% - 64px); max-width:1180px; margin-right:auto; margin-left:auto; }
.home-refresh .home-hero { padding:138px 0 36px; overflow:visible; background:radial-gradient(ellipse at 85% 5%,#dceee2 0,transparent 48%),linear-gradient(125deg,#f6f9f6,#f0f6f2); }
.home-hero__intro { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr); align-items:center; gap:64px; margin-bottom:36px; }
.home-refresh .home-eyebrow { display:inline-flex; align-items:center; gap:8px; margin-bottom:20px; padding:7px 12px; border:1px solid #dce9df; border-radius:24px; background:#ffffffa6; color:#3c7152; font-size:12px; font-weight:700; }
.home-eyebrow .am-icon { width:16px; height:16px; }
.home-refresh .home-hero h1 { margin:0 0 20px; color:#193b46; font-size:clamp(38px,3.6vw,51px); line-height:1.13; letter-spacing:-1.5px; font-weight:800; }
.home-hero h1 span { color:#39815a; }
.home-refresh .home-hero__copy > p { max-width:600px; margin:0; color:#5d7077; font-size:17px; line-height:1.7; }
.home-hero__benefits { display:flex; flex-wrap:wrap; gap:10px 22px; margin:24px 0 0; padding:0; list-style:none; }
.home-hero__benefits li { display:flex; align-items:center; gap:7px; color:#496558; font-size:12px; }
.home-hero__benefits .am-icon { width:17px; height:17px; color:#438761; }
.home-refresh .home-quote { position:relative; padding:27px; border:1px solid #dbe8dd; border-radius:20px; background:#fff; box-shadow:0 14px 40px #294f3510; }
.home-quote__icon { display:flex; align-items:center; justify-content:center; width:48px; height:48px; margin-bottom:17px; border-radius:14px; color:#43825b; background:#edf5ee; }
.home-quote__icon .am-icon { width:27px; height:27px; }
.home-quote__tag { display:block; margin-bottom:7px; color:#688076; font-size:12px; }
.home-refresh .home-quote h2 { margin:0 0 11px; color:#213e42; font-size:24px; font-weight:700; line-height:1.25; letter-spacing:-.4px; }
.home-refresh .home-quote p { margin:0 0 20px; color:#677a73; font-size:14px; line-height:1.6; }
.home-quote__note { display:flex; align-items:center; justify-content:center; gap:5px; margin-top:12px; color:#718076; font-size:11px; }
.home-quote__note .am-icon { width:14px; height:14px; }
.home-refresh .am-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:13px 20px; border:1px solid transparent; border-radius:10px; font-size:14px; font-weight:700; line-height:1.4; text-decoration:none; transition:background-color .15s,box-shadow .15s; cursor:pointer; }
.home-refresh .am-button--green { width:100%; color:#fff; background:#357c55; }
.home-refresh .am-button--green:hover { color:#fff; background:#286442; }
.home-refresh .am-button--navy { color:#fff; background:#244956; }
.home-refresh .am-button--navy:hover { color:#fff; background:#173943; }
.home-refresh .am-button:focus-visible, .home-refresh .home-service:focus-visible, .home-refresh .home-regions__links a:focus-visible, .home-refresh .home-popular a:focus-visible { outline:3px solid #6ba085; outline-offset:4px; }
.home-search { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) auto; align-items:center; gap:26px; padding:20px 22px; border:1px solid #e3eae5; border-radius:16px; background:#fff; box-shadow:0 8px 26px #264e3210; scroll-margin-top:100px; }
.home-search__field { min-width:0; }
.home-search__field--city { padding-left:26px; border-left:1px solid #e5ece7; }
.home-search label { display:block; margin:0 0 5px; color:#2e4a43; font-size:13px; font-weight:700; }
.home-search label span { margin-left:6px; color:#65766b; font-size:11px; font-weight:400; }
.home-search__control { display:flex; align-items:center; gap:10px; min-height:32px; }
.home-search__control > .am-icon { color:#6d8d7a; width:20px; height:20px; }
.home-refresh .home-search input, .home-refresh .home-search select { width:100%; min-width:0; height:34px; padding:0; border:0; border-radius:0; color:#29444b; background:#fff; font-size:15px; outline:none; box-shadow:none; }
.home-search input::placeholder { color:#94a29b; opacity:1; }
.home-search__field:focus-within { outline:2px solid #71a98b; outline-offset:8px; border-radius:4px; }
.home-refresh .home-search .select2-container { width:100%!important; min-width:0; z-index:auto; }
.home-refresh .home-search .select2-container--default .select2-selection--single { height:34px; min-height:34px; border:0; background:#fff; }
.home-refresh .home-search .select2-selection--single .select2-selection__rendered { height:34px; padding:0 20px 0 0; color:#29444b; font-size:15px; line-height:34px; }
.home-refresh .home-search .select2-selection__placeholder { color:#94a29b; }
.home-refresh .home-search .select2-container--default .select2-selection--single .select2-selection__arrow { top:3px; right:0; height:28px; }
.home-search > .am-button { min-height:52px; white-space:nowrap; }
.home-popular { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:20px; color:#65766b; font-size:12px; }
.home-popular > span { margin-right:5px; }
.home-refresh .home-popular a { padding:5px 12px; border:1px solid #dce7df; border-radius:20px; color:#536f5c; background:#ffffff7d; text-decoration:none; }
.home-refresh .home-popular a:hover { border-color:#a9c7b2; background:#fff; }
.home-refresh .home-services, .home-refresh .home-regions { padding-top:62px; padding-bottom:6px; }
.home-section-heading { display:flex; justify-content:space-between; margin-bottom:25px; }
.home-kicker { display:block; margin-bottom:10px; color:#68866f; font-size:11px; font-weight:700; letter-spacing:1.1px; text-transform:uppercase; }
.home-refresh .home-section-heading h2 { margin:0; color:#243f48; font-size:29px; letter-spacing:-.6px; line-height:1.25; }
.home-refresh .home-section-heading p { margin:10px 0 0; color:#65766b; font-size:15px; }
.home-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.home-refresh .home-service { display:flex; flex-direction:column; align-items:flex-start; padding:27px; border:1px solid #e2e9e5; border-radius:16px; color:#27434a; background:#fff; transition:border-color .15s,box-shadow .15s; text-decoration:none; }
.home-refresh .home-service:hover { border-color:#b3caba; box-shadow:0 8px 25px #254b3610; }
.home-service__icon { display:flex; align-items:center; justify-content:center; width:48px; height:48px; margin-bottom:22px; border-radius:13px; color:#3f697e; background:#eef4f8; }
.home-service__icon--green { color:#4e8159; background:#eef5ed; }
.home-service__icon--sand { color:#9a7a42; background:#faf4e9; }
.home-service__icon .am-icon { width:25px; height:25px; }
.home-refresh .home-service h3 { margin:0 0 11px; color:#29434a; font-size:20px; line-height:1.35; }
.home-refresh .home-service p { margin:0 0 24px; color:#65756b; font-size:14px; line-height:1.7; }
.home-service__link { display:flex; align-items:center; gap:8px; margin-top:auto; color:#3d7253; font-size:13px; font-weight:700; }
.home-service__link .am-icon { width:17px; height:17px; }
.home-regions { margin-bottom:60px; }
.home-regions__layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:30px; align-items:center; }
.home-regions__map { min-width:0; padding:22px; border:1px solid #e4ece5; border-radius:20px; background:#f8faf8; }
.home-regions__map #francemap { width:100%; height:330px; max-width:450px; margin:auto; }
.home-regions__map > span { display:flex; align-items:center; justify-content:center; gap:7px; margin:10px 0 0; color:#77907e; font-size:11px; }
.home-regions__map > span .am-icon { width:15px; height:15px; }
.home-regions__links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.home-refresh .home-regions__links a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:12px 15px; border:1px solid #e3eae5; border-radius:10px; color:#496254; font-size:12px; font-weight:600; background:#fff; text-decoration:none; }
.home-regions__links .am-icon { width:15px; height:15px; color:#87a08d; }
.home-refresh .home-regions__links a:hover { border-color:#a5c4af; background:#f4f8f4; }
.home-refresh #featured-listings .card, .home-refresh .card.h-100.border-0 { border:1px solid #e3eae5!important; border-radius:14px; box-shadow:0 5px 18px #294d3510; background:#fff; }
.home-refresh .card.h-100 .card-body.p-0 { padding:16px!important; }
.home-refresh .card-img-container { background:#f7faf8; }
.home-refresh .region { border-color:#dfe9e1; border-radius:12px; background:#fff; }
.home-refresh .region:hover { background:#f1f7f2; }
.home-refresh .p-featured_ville .am-icon { color:#538564; }
.home-refresh .p-featured_ville { margin-bottom:0; padding:14px; font-size:14px; }
.home-refresh main > .container h3 { color:#28444b; }

@media (min-width:768px) { .social .am-share { display:inline-block; } }
@media (max-width:1100px) {
    .home-hero__intro { grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); gap:34px; }
    .home-search { gap:18px; }
    .home-search__field--city { padding-left:18px; }
    .home-search > .am-button { padding:13px 15px; }
}
@media (max-width:900px) {
    .home-refresh .am-container { width:calc(100% - 40px); }
    .home-hero__intro { grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr); gap:25px; }
    .home-refresh .home-hero h1 { font-size:36px; letter-spacing:-1px; }
    .home-refresh .home-quote { padding:22px; }
    .home-search { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
    .home-search > .am-button { grid-column:1/-1; }
    .home-regions__layout { grid-template-columns:1fr; }
    .home-regions__map { display:none; }
    .home-service { padding:20px!important; }
}
@media (max-width:767px) {
    .social .am-share__label, .social .am-share__buttons { justify-content:flex-start; }
    .home-refresh .home-hero { padding-top:105px; padding-bottom:28px; }
    .home-hero__intro { grid-template-columns:1fr; gap:0; margin-bottom:26px; }
    .home-refresh .home-hero h1 { max-width:580px; font-size:39px; line-height:1.12; }
    .home-refresh .home-hero__copy > p { font-size:15px; }
    .home-eyebrow { margin-bottom:17px!important; }
    .home-hero__benefits { gap:10px 16px; margin-top:18px; }
    .home-hero__benefits li { font-size:11px; }
    .home-quote { display:none; }
    .home-search { grid-template-columns:1fr; gap:17px; padding:21px; border-radius:14px; }
    .home-search__field--city { padding-top:16px; padding-left:0; border-top:1px solid #e5ece7; border-left:0; }
    .home-search > .am-button { width:100%; margin-top:2px; }
    .home-popular { margin-top:17px; gap:7px; }
    .home-popular > span { flex:0 0 100%; margin-bottom:2px; }
    .home-popular a { padding:4px 10px!important; font-size:11px; }
    .home-refresh .home-services, .home-refresh .home-regions { padding-top:40px; }
    .home-refresh .home-section-heading h2 { font-size:25px; }
    .home-service-grid { grid-template-columns:1fr; gap:13px; }
    .home-refresh .home-service { position:relative; padding:22px 22px 22px 88px!important; min-height:155px; }
    .home-service__icon { position:absolute; left:20px; top:24px; width:45px; height:45px; }
    .home-refresh .home-service h3 { font-size:18px; }
    .home-refresh .home-service p { margin-bottom:17px; font-size:13px; line-height:1.5; }
    .home-regions__links { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-refresh .home-regions__links a { padding:11px; font-size:11px; }
    .home-kicker { font-size:10px; letter-spacing:.8px; }
    .home-regions { margin-bottom:40px; }
}
@media (max-width:380px) {
    .home-refresh .am-container { width:calc(100% - 32px); }
    .home-refresh .home-hero h1 { font-size:34px; }
    .home-regions__links { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
    .am-share__button, .home-refresh .am-button, .home-refresh .home-service { transition:none!important; }
}

/* One public header and city picker across the directory and service pages. */
#header-nav.public-header { min-height:76px; padding:14px max(24px,calc((100% - 1280px)/2)); border-bottom:1px solid #e5ece8; background:#fff; box-shadow:0 2px 12px #23483206; z-index:2000; }
#header-nav.public-header .navbar-brand { padding:0; margin-right:24px; }
#header-nav.public-header .logo { display:block; width:200px; max-width:100%; height:auto; }
#header-nav.public-header .navbar-nav { align-items:center; gap:5px; }
#header-nav.public-header .nav-item { margin:0!important; }
#header-nav.public-header .public-header__link { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:10px 12px; border:1px solid transparent; border-radius:9px; color:#28464e; background:transparent; font-size:14px; font-weight:600; line-height:1.4; white-space:nowrap; text-decoration:none; }
#header-nav.public-header .public-header__link .am-icon { width:19px; height:19px; color:#68867a; }
#header-nav.public-header .public-header__link:hover { color:#24583c; background:#f1f6f2; }
#header-nav.public-header .public-header__link--primary { border-color:#357c55; color:#fff; background:#357c55; }
#header-nav.public-header .public-header__link--primary:hover { color:#fff; background:#286442; }
#header-nav.public-header .public-header__link--secondary { border-color:#dce7df; color:#355c46; background:#f2f7f3; }
#header-nav.public-header .public-header__link--secondary:hover { border-color:#afcbb8; background:#e7f1ea; }
#header-nav.public-header a:focus-visible, #header-nav.public-header button:focus-visible { outline:3px solid #76ab8e; outline-offset:3px; }
#header-nav.public-header .navbar-toggler { align-items:center; justify-content:center; width:44px; height:44px; min-height:44px; padding:10px; border:1px solid #dce7df; border-radius:9px; color:#28464e; background:#fff; }
#header-nav.public-header .dropdown-menu { padding:8px; border:1px solid #e1e9e3; border-radius:12px; box-shadow:0 12px 30px #23483212; }
#header-nav.public-header .dropdown-item { padding:10px 13px; border-radius:7px; color:#34554a; font-size:14px; }
#header-nav.public-header .dropdown-item:hover { background:#eef5ef; }
#header-nav.public-header .public-header__mobile-quote { margin-left:auto; margin-right:9px; padding:9px 11px; border-radius:8px; color:#fff; background:#357c55; font-size:12px; font-weight:600; line-height:18px; text-decoration:none; }
.public-header-spacer { height:76px; }
#mainSearch.public-search { top:76px; padding:23px 30px; border-bottom:1px solid #dae6de; background:#fff; box-shadow:0 12px 28px #1e3f2914; z-index:1900; }
#mainSearch.public-search[hidden] { display:none!important; }
.public-search__form { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto 36px; align-items:end; gap:18px; max-width:1180px; margin:auto; }
.public-search__form > div { min-width:0; }
.public-search__form label { display:block; margin-bottom:7px; color:#35564a; font-size:12px; font-weight:700; }
.public-search__form input[type=search], .public-search__form select { width:100%; height:48px; padding:11px 14px; border:1px solid #dce7df; border-radius:10px; background:#f9fbf9; color:#28464e; font-size:14px; }
.public-search__form input[type=search]:focus { border-color:#75a78b; outline:3px solid #e4f0e8; }
.public-search__form input::placeholder { color:#7a8f83; }
.public-search__submit { display:inline-flex; align-items:center; justify-content:center; gap:9px; height:48px; padding:10px 20px; border:0; border-radius:10px; color:#fff; background:#244956; font-size:14px; font-weight:600; }
.public-search__submit:hover { background:#173943; }
.public-search__close { align-self:center; width:36px; height:36px; padding:0; border:1px solid #e0e9e2; border-radius:50%; color:#6c8375; background:#f6f9f6; font-size:25px; line-height:1; }
.public-search__submit:focus-visible, .public-search__close:focus-visible { outline:3px solid #75a78b; outline-offset:3px; }
#mainSearch.public-search .select2-container { width:100%!important; }
select[id*="city"] + .select2-container { min-width:0; }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-container--default .select2-selection--single { display:block; width:100%; height:48px; min-height:48px; padding:0; border:1px solid #dce7df; border-radius:10px; background:#f9fbf9; box-shadow:none; }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-container--default .select2-selection--single .select2-selection__rendered { height:46px; padding:0 54px 0 39px; color:#29494b; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%236b9079' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") 13px center no-repeat; font-size:14px; line-height:46px; text-align:left; }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-selection__placeholder { color:#758a7e!important; }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-container--default .select2-selection--single .select2-selection__arrow { display:block; top:1px; right:10px; width:19px; height:46px; }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-container--default .select2-selection--single .select2-selection__arrow b { width:7px; height:7px; margin:-5px 0 0 -4px; border:solid #789183; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-container--open .select2-selection--single, :is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-container--focus .select2-selection--single { border-color:#75a78b; box-shadow:0 0 0 3px #e6f0e9; }
:is(#mainSearch.public-search,.home-refresh .home-search,#select2-sidebar) .select2-selection__clear { position:absolute; right:34px; float:none; opacity:.7; color:#567561; }
.home-search__field--city .home-search__control > .am-icon { display:none; }
.select2-container .select2-dropdown { overflow:hidden; border:1px solid #cbddd1; border-radius:12px; background:#fff; box-shadow:0 12px 30px #2348321a; }
.select2-container--default .select2-search--dropdown { padding:12px; }
.select2-container--default .select2-search--dropdown .select2-search__field { min-height:42px; padding:8px 12px; border:1px solid #d8e5dc; border-radius:8px; outline:none; color:#28464e; background:#f8fbf9; font-size:14px; }
.select2-container--default .select2-search--dropdown .select2-search__field:focus { border-color:#7ca78c; }
.select2-container--default .select2-results > .select2-results__options { max-height:255px; padding:4px 6px 7px; }
.select2-container--default .select2-results__option { margin:2px 0; padding:10px 12px; border-radius:7px; color:#3d5c4c; font-size:14px; line-height:1.4; }
.select2-container--default .select2-results__option[aria-selected=true] { color:#326c49; background:#f0f6f1; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { color:#245c3a; background:#e5f1e8; }
.select2-container--default .select2-results__option.loading-results, .select2-container--default .select2-results__message { color:#758a7c; font-size:13px; }
@media (max-width:1199px) {
    #header-nav.public-header { padding-right:20px; padding-left:20px; }
    #header-nav.public-header .logo { width:175px; }
    #header-nav.public-header .navbar-brand { margin-right:14px; }
    #header-nav.public-header .navbar-nav { gap:3px; }
    #header-nav.public-header .public-header__link { gap:5px; padding:10px 9px; font-size:13px; }
}
@media (max-width:991px) {
    #header-nav.public-header .navbar-toggler { display:flex; }
    #header-nav.public-header { min-height:69px; padding:12px 20px; }
    #header-nav.public-header .logo { width:170px; }
    #header-nav.public-header .navbar-brand { margin-right:10px; }
    #header-nav.public-header .navbar-collapse { padding-top:14px; }
    #header-nav.public-header .navbar-nav { align-items:stretch; gap:5px; padding-bottom:5px; }
    #header-nav.public-header .public-header__link { justify-content:flex-start; width:100%; min-height:44px; padding:11px 13px; font-size:14px; }
    #header-nav.public-header .dropdown-menu { box-shadow:none; }
    .public-header-spacer { height:69px; }
    #mainSearch.public-search { top:69px; padding:20px; }
    .public-search__form { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:15px; padding-top:20px; }
    .public-search__submit { grid-column:1/-1; }
    .public-search__close { position:absolute; top:9px; right:16px; width:28px; height:28px; font-size:22px; }
}
@media (max-width:575px) {
    #header-nav.public-header { padding-right:16px; padding-left:16px; }
    .public-search__form { grid-template-columns:1fr; }
    .public-search__submit { margin-top:3px; }
}
@media (max-width:380px) {
    #header-nav.public-header .logo { width:145px; }
    #header-nav.public-header .public-header__mobile-quote { padding:8px 9px; font-size:11px; }
}
