
/* ---- style.css ---- */
:root{
  --ink:#243027;
  --muted:#667067;
  --green:#335844;
  --green-dark:#203d2e;
  --green-soft:#dfe8df;
  --cream:#f2ecdf;
  --soft:#f8f5ee;
  --white:#fff;
  --line:#ddd7cb;
  --gold:#a98755;
  --shadow:0 18px 50px rgba(27,44,32,.11);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
.narrow{max-width:760px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(0,0,0,.06);backdrop-filter:blur(12px)}
.nav-wrap{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--green-dark);color:#fff;font-family:Georgia,serif;font-weight:700;letter-spacing:.02em}
.brand strong,.brand small{display:block}
.brand strong{font-family:Georgia,serif;font-size:1.13rem;font-weight:600}
.brand small{font-size:.7rem;color:var(--muted);letter-spacing:.035em}
.main-nav{display:flex;align-items:center;gap:25px;font-size:.94rem}
.nav-cta,.button{background:var(--green);color:#fff;padding:12px 18px;border-radius:999px;border:0;display:inline-block;font-weight:700}
.nav-cta:hover,.button:hover{background:var(--green-dark)}
.menu-toggle{display:none;background:none;border:0;font-size:1.5rem}

.hero{min-height:720px;position:relative;display:flex;align-items:center}
.hero-photo{background-image:url("../images/hero-dordogne.jpg");background-size:cover;background-position:center 58%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,35,26,.78) 0%,rgba(19,35,26,.56) 44%,rgba(19,35,26,.18) 78%,rgba(19,35,26,.08) 100%)}
.hero-inner{position:relative;color:#fff;padding:96px 0 78px}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:700;margin:0 0 14px}
.eyebrow.green{color:var(--green)}
.hero h1,.page-hero h1,.property-hero h1{font-family:Georgia,serif;font-weight:400;line-height:.99;margin:.12em 0;font-size:clamp(3rem,6vw,5.65rem);max-width:890px}
.hero h1 em{font-weight:400;color:#efe6d5}
.hero-copy,.lead{font-size:1.17rem;max-width:720px}
.hero-copy{color:rgba(255,255,255,.91)}

.search-bar{margin-top:34px;background:#fff;color:var(--ink);padding:10px;border-radius:14px;display:grid;grid-template-columns:1.55fr .55fr auto;gap:8px;box-shadow:0 20px 55px rgba(0,0,0,.22);max-width:930px}
.search-bar label{display:flex;flex-direction:column;padding:7px 12px}
.search-bar label+label{border-left:1px solid #ebe6dc}
.search-bar span{font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em}
.search-bar input,.search-bar select{border:0;outline:0;font-size:1rem;padding:6px 0 2px;background:transparent;color:var(--ink)}
.search-bar button{border:0;background:var(--green);color:#fff;border-radius:10px;padding:0 25px;font-weight:700;font-size:.95rem}
.hero-points{display:flex;gap:26px;flex-wrap:wrap;margin-top:22px;font-size:.85rem;color:rgba(255,255,255,.88)}

.trust-strip{background:var(--green-dark);color:#fff}
.trust-inner{padding:20px 0}
.trust-inner p{margin:0;max-width:1000px;color:#e4e9e5}
.trust-inner strong{color:#fff}

.section{padding:90px 0}
.section-soft{background:var(--soft)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}
.section h2,.owner-cta h2,.panel h2{font-family:Georgia,serif;font-size:clamp(2.15rem,4vw,3.45rem);line-height:1.08;font-weight:400;margin:.1em 0 .4em}
.section-intro{max-width:690px;color:var(--muted);margin:12px 0 0}
.text-link,.card-link{color:var(--green);font-weight:700}

.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.property-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.045);transition:.22s}
.property-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.property-image{height:265px;position:relative;overflow:hidden}
.demo-image:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(0,0,0,.2))}
.demo-1{background:linear-gradient(135deg,#80957f,#c6ad87)}
.demo-2{background:linear-gradient(135deg,#9b885f,#667c61)}
.demo-3{background:linear-gradient(135deg,#7b8077,#b49c74)}
.badge{position:absolute;left:14px;top:14px;background:#fff;padding:6px 10px;border-radius:999px;font-size:.73rem;font-weight:700}
.photo-note{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:rgba(255,255,255,.82);font-size:.83rem;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}
.property-content{padding:22px}
.property-content h3{font-family:Georgia,serif;font-size:1.72rem;font-weight:500;margin:.12em 0 .5em}
.location{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:var(--green);font-weight:700;margin-bottom:2px}
.property-meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:.82rem;margin:0 0 18px}
.property-meta span:not(:last-child):after{content:" ·";color:#aaa}

.area-heading{margin-bottom:28px}
.area-showcase{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:280px 280px;gap:18px}
.area-card{position:relative;border-radius:var(--radius);overflow:hidden;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;isolation:isolate}
.area-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,32,24,.76),rgba(18,32,24,.08) 70%);z-index:-1}
.area-card strong{display:block;font-family:Georgia,serif;font-size:2rem;font-weight:400;line-height:1.05;margin:4px 0}
.area-card>span:last-child{color:rgba(255,255,255,.86);max-width:590px;font-size:.93rem}
.area-kicker{text-transform:uppercase;letter-spacing:.11em;font-size:.68rem;font-weight:700;color:#fff}
.area-noir{grid-row:1 / 3;background:url("../images/sarlat.jpg") center 53%/cover no-repeat}
.area-pourpre{background:
  linear-gradient(125deg,rgba(67,92,60,.15),rgba(67,92,60,.15)),
  url("../images/hero-dordogne.jpg") center 78%/cover no-repeat}
.area-vert{background:
  linear-gradient(125deg,rgba(43,81,57,.18),rgba(43,81,57,.18)),
  url("../images/hero-dordogne.jpg") right 32%/cover no-repeat}
.area-blanc{display:none}

.direct-section{background:#fff}
.split{display:grid;grid-template-columns:.9fr 1.15fr;gap:70px}
.direct-copy p:last-child{color:var(--muted);max-width:510px}
.benefits{display:grid;gap:0}
.benefits div{display:grid;grid-template-columns:54px 1fr;column-gap:14px;padding:22px 0;border-bottom:1px solid var(--line)}
.benefits strong,.benefits span:not(.benefit-number){grid-column:2;display:block}
.benefits strong{font-size:1.12rem}
.benefits span:not(.benefit-number){color:var(--muted)}
.benefit-number{grid-row:1 / 3;color:var(--gold);font-family:Georgia,serif;font-size:1.2rem}

.owner-cta{background:var(--green-dark);color:#fff;padding:76px 0}
.owner-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:40px}
.owner-cta-inner>div{max-width:770px}
.owner-cta p{color:#d8e0da}
.button-light{background:#fff;color:var(--green-dark);padding:14px 21px;border-radius:999px;font-weight:700;white-space:nowrap}

.site-footer{background:#18241c;color:#dfe6e0;padding:60px 0 22px}
.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:35px}
.site-footer a{display:block;margin:7px 0;color:#dfe6e0}
.footer-brand{margin-bottom:16px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:20px;color:#aab7ae;font-size:.9rem}

.page-main{min-height:65vh}
.page-hero,.property-hero{padding:90px 0;background:var(--cream)}
.page-hero h1,.property-hero h1{font-size:clamp(2.6rem,5vw,4.6rem)}
.compact{max-width:820px;grid-template-columns:1.3fr .5fr auto}
.notice{color:var(--muted);font-size:.93rem}
.panel{background:#fff;border:1px solid var(--line);padding:28px;border-radius:var(--radius);margin-top:28px}
.login-form{display:grid;gap:16px}
.login-form label{display:grid;gap:7px;font-weight:700}
.login-form input{padding:12px;border:1px solid var(--line);border-radius:10px}
.property-placeholder{height:420px;border-radius:var(--radius);display:grid;place-items:center;background:linear-gradient(135deg,#a9b2a7,#d3cbbb);color:#fff;font-size:1.2rem;margin-top:28px}
.property-layout{display:grid;grid-template-columns:1.5fr .7fr;gap:50px}
.contact-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;height:max-content;box-shadow:var(--shadow)}

@media(max-width:850px){
  .menu-toggle{display:block}
  .main-nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}
  .main-nav.open{display:flex}
  .hero{min-height:650px}
  .hero-overlay{background:linear-gradient(rgba(19,35,26,.68),rgba(19,35,26,.58))}
  .hero-inner{padding:74px 0 52px}
  .search-bar,.compact{grid-template-columns:1fr}
  .search-bar label+label{border-left:0;border-top:1px solid #ebe6dc}
  .search-bar button{padding:14px}
  .property-grid,.split,.property-layout,.footer-grid{grid-template-columns:1fr}
  .area-showcase{grid-template-columns:1fr;grid-template-rows:330px 250px 250px}
  .area-noir{grid-row:auto}
  .owner-cta-inner,.section-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:560px){
  .container{width:min(100% - 28px,1180px)}
  .hero h1{font-size:3.05rem}
  .hero-points{gap:9px 16px}
  .section{padding:68px 0}
  .property-image{height:235px}
}

/* ---- phase5.css ---- */
.editor-page .page-hero{padding-top:64px}.editor-hero .container{max-width:1180px}
.editor-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:28px}
.completion-card{width:210px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.completion-card strong{display:block;font:500 2rem Georgia,serif}.completion-card span{color:var(--muted);font-size:.85rem}
.completion-track{height:7px;border-radius:99px;background:#e9e4d9;margin-top:12px;overflow:hidden}.completion-track i{display:block;height:100%;background:var(--green)}
.listing-editor{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.editor-tabs{display:flex;gap:4px;overflow-x:auto;padding:12px;border-bottom:1px solid var(--line);background:#fbfaf7;position:sticky;top:82px;z-index:9}
.editor-tabs button{border:0;background:transparent;padding:11px 14px;border-radius:999px;font-weight:700;white-space:nowrap;color:var(--muted);cursor:pointer}
.editor-tabs button.active{background:var(--green);color:#fff}
.editor-panel{display:none;padding:34px}.editor-panel.active{display:block}
.editor-panel h2{margin-top:0}.editor-panel h3{font-family:Georgia,serif;font-size:1.5rem;font-weight:500;margin:28px 0 12px}
.editor-panel label{display:grid;gap:7px;font-weight:700;margin-bottom:16px}
.editor-panel input,.editor-panel select,.editor-panel textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}
.field-grid{display:grid;gap:14px}.field-grid.two{grid-template-columns:repeat(2,1fr)}.field-grid.three{grid-template-columns:repeat(3,1fr)}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;margin-bottom:16px}.check-grid label{display:flex;gap:9px;align-items:center;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-weight:600}.check-grid input{width:auto}
.hint{padding:12px 14px;background:var(--soft);border-radius:10px;color:var(--muted);font-size:.9rem;margin:8px 0 20px}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.photo-tile{position:relative}.photo-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}.photo-tile span{position:absolute;left:8px;bottom:8px;background:#fff;padding:4px 8px;border-radius:99px;font-size:.72rem;font-weight:700}
.upload-box{border:2px dashed var(--line);padding:26px;border-radius:14px;text-align:center;cursor:pointer}.upload-box strong,.upload-box span{display:block}.upload-box span{color:var(--muted);font-weight:400}.upload-box input{margin-top:14px}
.editor-actions{display:flex;gap:10px;flex-wrap:wrap;padding:18px 34px;border-top:1px solid var(--line);background:#fbfaf7;position:sticky;bottom:0}.button.secondary{background:#777}
.form-errors{border-color:#b34b4b;margin-bottom:18px}
@media(max-width:850px){.editor-top{align-items:flex-start;flex-direction:column}.completion-card{width:100%}.field-grid.two,.field-grid.three,.check-grid,.photo-grid{grid-template-columns:1fr}.editor-panel{padding:22px}.editor-tabs{top:82px}.editor-actions{padding:14px 22px}}

/* ---- phase6.css ---- */
.listing-head{background:var(--cream);padding:70px 0 40px}
.listing-title-row{display:flex;justify-content:space-between;gap:35px;align-items:flex-end}
.listing-title-row h1{font:400 clamp(3rem,6vw,5.4rem)/1 Georgia,serif;margin:.1em 0}
.listing-title-row .lead{max-width:780px}
.listing-facts{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.listing-facts span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 12px;font-size:.86rem;white-space:nowrap}
.listing-facts strong{font-family:Georgia,serif;font-size:1.1rem}
.listing-gallery{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:30px;height:520px}
.listing-gallery.single{grid-template-columns:1fr}
.listing-gallery img{width:100%;height:100%;object-fit:cover}
.gallery-main{overflow:hidden;border-radius:18px}.gallery-main img{border-radius:18px}
.gallery-side{display:grid;grid-template-rows:1fr 1fr;gap:10px;overflow:hidden}
.gallery-side img{border-radius:18px}
.listing-gallery-placeholder{height:380px;border-radius:18px;background:linear-gradient(135deg,#8fa18b,#c9b997);display:grid;place-items:center;color:#fff;margin-top:30px;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}
.listing-body .property-layout{grid-template-columns:minmax(0,1.6fr) minmax(280px,.6fr);align-items:start}
.listing-main{min-width:0}.listing-section{padding:0 0 48px;margin-bottom:48px;border-bottom:1px solid var(--line)}
.listing-section:last-child{border-bottom:0}
.listing-section h2{font:400 clamp(2rem,4vw,3rem)/1.08 Georgia,serif;margin:.1em 0 .6em}
.prose{font-size:1.05rem;line-height:1.75}
.fact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fact-grid div{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:20px}
.fact-grid strong,.fact-grid span{display:block}.fact-grid strong{font:400 2rem Georgia,serif}.fact-grid span{color:var(--muted);font-size:.85rem}
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.feature-grid div{padding:12px 14px;background:var(--soft);border-radius:10px}
.booking-card{position:sticky;top:110px;border:1px solid var(--line);border-radius:18px;padding:26px;background:#fff;box-shadow:var(--shadow)}
.from-price span,.from-price strong{display:block}.from-price span{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.from-price strong{font:400 2.8rem Georgia,serif;margin:.05em 0 .2em}
.booking-primary{width:100%;text-align:center;margin:8px 0 12px}.booking-link{display:block;padding:11px 0;border-bottom:1px solid var(--line);color:var(--green);font-weight:700}
.owner-note{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.owner-note strong,.owner-note span{display:block}.owner-note span{color:var(--muted);font-size:.84rem}
.search-hero{padding-bottom:55px}.search-filters{display:grid;grid-template-columns:1.5fr 1fr .55fr auto auto;gap:10px;align-items:end;margin-top:30px}
.search-filters label{display:grid;gap:6px;font-weight:700}.search-filters input,.search-filters select{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}
.checkbox-filter{display:flex!important;align-items:center;gap:8px;padding-bottom:11px;white-space:nowrap}.checkbox-filter input{width:auto}
.results-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.results-heading h2{margin:0}
.result-image{background-size:cover;background-position:center;background-color:#9eaa9e}.result-price{margin:8px 0 0}.result-price strong{font-size:1.2rem}
.department-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.department-grid a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;transition:.2s}.department-grid a:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.department-grid strong,.department-grid span{display:block}.department-grid strong{font:400 1.6rem Georgia,serif}.department-grid span{color:var(--muted);font-size:.9rem;margin-top:4px}
@media(max-width:900px){
  .listing-title-row{align-items:flex-start;flex-direction:column}.listing-facts{justify-content:flex-start}
  .listing-gallery{height:auto;grid-template-columns:1fr}.gallery-main{height:390px}.gallery-side{grid-template-columns:1fr 1fr;grid-template-rows:none}.gallery-side img{height:210px}
  .listing-body .property-layout{grid-template-columns:1fr}.booking-card{position:static}
  .search-filters{grid-template-columns:1fr 1fr}.search-filters .button{min-height:48px}
  .department-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .listing-gallery .gallery-main{height:280px}.gallery-side{display:none}
  .fact-grid,.feature-grid,.department-grid,.search-filters{grid-template-columns:1fr}
}
/* ---- phase7.css ---- */
.owner-property-list{display:grid;gap:0}
.owner-property-row{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}
.owner-property-row>div:first-child strong,.owner-property-row>div:first-child span{display:block}
.owner-property-row>div:first-child span{color:var(--muted);font-size:.88rem}
.owner-status{padding:6px 10px;border-radius:999px;background:var(--soft);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.status-approved{background:#e7efe8;color:#315844}
.status-pending{background:#f5eddc;color:#7c622c}
.status-suspended{background:#f3e2e2;color:#8a3d3d}
.owner-property-actions{display:flex;gap:14px;align-items:center}
.owner-property-actions form{margin:0}
.danger-link{appearance:none;border:0;background:none;padding:0;font:inherit;font-weight:700;cursor:pointer;color:#a33d3d}

.photo-help{color:var(--muted);margin-top:-6px}

.photo-manager{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-bottom:24px
}
.photo-manager.order-saved{opacity:.75}

.managed-photo{
  position:relative;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.035)
}
.managed-photo.dragging{opacity:.45;outline:2px dashed var(--green)}

.managed-photo-image{position:relative;background:#eee}
.managed-photo-image img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover
}

.photo-drag-handle{
  position:absolute;
  top:9px;
  right:9px;
  z-index:3;
  width:32px;
  height:36px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(0,0,0,.1);
  border-radius:9px;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  font-weight:900;
  letter-spacing:-2px;
  cursor:grab
}

.cover-badge{
  position:absolute;
  left:10px;
  bottom:10px;
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  box-shadow:0 2px 8px rgba(0,0,0,.12)
}

.photo-toolbar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  min-height:58px;
  padding:10px 12px !important;
  border-top:1px solid var(--line);
  background:#fff
}

.photo-toolbar form{margin:0 !important}

.photo-toolbar-move,
.photo-toolbar-actions{
  display:flex !important;
  align-items:center !important;
  gap:7px !important
}
.photo-toolbar-actions{
  margin-left:auto;
  justify-content:flex-end
}
.photo-toolbar-move form{
  display:flex !important;
  gap:6px !important
}

/* Same rounded outlined style as the earlier controls */
.photo-icon-btn,
.photo-btn{
  appearance:none;
  box-sizing:border-box;
  min-height:34px;
  border:1px solid #d8d1c5 !important;
  border-radius:9px !important;
  background:#fff !important;
  font:700 .78rem/1 Arial,sans-serif !important;
  cursor:pointer;
  box-shadow:none !important
}

.photo-icon-btn{
  width:36px;
  padding:0 !important;
  display:inline-grid !important;
  place-items:center;
  color:var(--ink) !important;
  font-size:1rem !important
}
.photo-icon-btn:hover{background:#f5f1e8 !important}

.photo-btn{
  width:auto !important;
  padding:8px 11px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap;
  color:var(--green) !important
}
.photo-btn:hover{background:#f5f1e8 !important}

.photo-btn.current-cover{
  color:#697269 !important;
  background:#f2f4f1 !important;
  border-color:#d9dfd9 !important;
  cursor:default
}

.photo-btn-delete{
  color:#a33d3d !important;
  background:#fffafa !important;
  border-color:#eccccc !important
}
.photo-btn-delete:hover{background:#f9eded !important}

.photo-btn-replace{
  color:var(--green) !important;
  cursor:pointer
}
.photo-btn-replace input{
  display:none !important
}

@media(max-width:1050px){
  .photo-manager{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .owner-property-row{grid-template-columns:1fr auto}
  .owner-property-actions{grid-column:1/-1}
  .photo-manager{grid-template-columns:1fr}
  .photo-toolbar{
    flex-wrap:wrap !important
  }
  .photo-toolbar-actions{
    margin-left:0;
    width:100%;
    justify-content:flex-start
  }
}

.photo-upload-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:14px
}
.photo-upload-actions .button{
  min-width:190px;
  text-align:center
}
@media(max-width:560px){
  .photo-upload-actions{
    justify-content:stretch
  }
  .photo-upload-actions .button{
    width:100%
  }
}

/* ---- phase8.css ---- */
.property-summary{
  padding:58px 0 28px;
  background:var(--cream)
}
.back-search{
  display:inline-block;
  margin-bottom:22px;
  color:var(--green);
  font-weight:700
}
.property-summary-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:34px;
  align-items:end
}
.property-summary h1{
  margin:.05em 0 .2em;
  font:400 clamp(3rem,6vw,5.3rem)/1 Georgia,serif
}
.property-subtitle{
  max-width:820px;
  margin:0;
  font-size:1.15rem;
  color:var(--muted)
}
.summary-facts{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end
}
.summary-facts span{
  border:1px solid var(--line);
  background:#fff;
  padding:9px 12px;
  border-radius:999px;
  font-size:.84rem;
  white-space:nowrap
}

.property-gallery-section{
  padding:0 0 38px;
  background:var(--cream)
}
.public-gallery{
  position:relative;
  display:grid;
  grid-template-columns:1.55fr 1fr;
  gap:10px;
  height:520px
}
.public-gallery.one-image{
  grid-template-columns:1fr
}
.gallery-primary,
.gallery-secondary .gallery-photo{
  padding:0;
  border:0;
  background:none;
  overflow:hidden;
  cursor:pointer
}
.gallery-primary{
  border-radius:18px
}
.gallery-primary img,
.gallery-secondary img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .2s ease
}
.gallery-photo:hover img{
  transform:scale(1.015)
}
.gallery-secondary{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:10px
}
.gallery-secondary .gallery-photo{
  position:relative;
  border-radius:14px
}
.gallery-more{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(20,35,27,.55);
  color:#fff;
  font-weight:700;
  font-size:1.05rem
}
.view-all-photos{
  position:absolute;
  right:16px;
  bottom:16px;
  border:1px solid rgba(0,0,0,.16);
  border-radius:999px;
  background:rgba(255,255,255,.95);
  padding:10px 15px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.1)
}
.property-no-photos{
  height:360px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(135deg,#8fa18b,#c9b997);
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.8rem
}

.property-content-section{
  padding-top:72px
}
.public-property-layout{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.58fr);
  gap:64px;
  align-items:start
}
.property-content-block{
  padding-bottom:46px;
  margin-bottom:46px;
  border-bottom:1px solid var(--line)
}
.property-content-block:last-child{
  margin-bottom:0
}
.property-content-block h2{
  margin:.08em 0 .6em;
  font:400 clamp(2rem,4vw,3rem)/1.08 Georgia,serif
}
.property-description{
  font-size:1.04rem;
  line-height:1.78
}

.public-fact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px
}
.public-fact-grid div{
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft);
  padding:20px
}
.public-fact-grid strong,
.public-fact-grid span{
  display:block
}
.public-fact-grid strong{
  font:400 2rem Georgia,serif
}
.public-fact-grid span{
  color:var(--muted);
  font-size:.84rem
}

.public-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px
}
.public-feature-grid div{
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:12px 14px
}
.feature-tick{
  color:var(--green);
  font-weight:900
}

.location-card{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding:20px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft)
}
.location-card strong,
.location-card span{
  display:block
}
.location-card span{
  color:var(--muted)
}
.walkable-note{
  padding:8px 11px;
  border-radius:999px;
  background:#fff;
  color:var(--green);
  font-size:.84rem;
  font-weight:700;
  white-space:nowrap
}
.privacy-note{
  color:var(--muted);
  font-size:.86rem
}

.public-booking-card{
  position:sticky;
  top:108px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:26px;
  box-shadow:var(--shadow)
}
.public-price span,
.public-price strong{
  display:block
}
.public-price span{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  color:var(--muted)
}
.public-price strong{
  margin:.04em 0 .2em;
  font:400 2.8rem Georgia,serif
}
.booking-intro{
  color:var(--muted)
}
.booking-actions{
  display:grid;
  gap:9px;
  margin:18px 0
}
.booking-main-button{
  text-align:center
}
.booking-secondary-button{
  display:block;
  padding:11px 14px;
  border:1px solid var(--green);
  border-radius:999px;
  text-align:center;
  color:var(--green);
  font-weight:700
}
.booking-contact-list{
  margin-top:18px;
  border-top:1px solid var(--line)
}
.booking-contact-list a{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--line)
}
.booking-contact-list span{
  color:var(--muted);
  font-size:.78rem
}
.booking-contact-list strong{
  text-align:right;
  font-size:.88rem
}
.listed-by{
  padding-top:18px
}
.listed-by span,
.listed-by strong,
.listed-by small{
  display:block
}
.listed-by span,
.listed-by small{
  color:var(--muted)
}
.listed-by strong{
  margin:2px 0
}

.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none
}
.gallery-lightbox.open{
  display:block
}
.gallery-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,18,13,.92)
}
.gallery-lightbox-dialog{
  position:relative;
  z-index:2;
  width:min(1200px,calc(100% - 40px));
  height:calc(100% - 40px);
  margin:20px auto;
  display:grid;
  grid-template-columns:58px 1fr 58px;
  align-items:center
}
.gallery-lightbox figure{
  margin:0;
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:1fr auto;
  height:100%
}
.gallery-lightbox-image{
  width:100%;
  height:100%;
  object-fit:contain;
  min-height:0
}
.gallery-lightbox figcaption{
  min-height:38px;
  display:flex;
  justify-content:center;
  align-items:center;
  color:#fff;
  font-size:.85rem
}
.gallery-prev,
.gallery-next,
.gallery-close{
  border:0;
  background:rgba(255,255,255,.12);
  color:#fff;
  cursor:pointer
}
.gallery-prev,
.gallery-next{
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:2rem
}
.gallery-close{
  position:absolute;
  right:0;
  top:0;
  z-index:3;
  width:44px;
  height:44px;
  border-radius:50%;
  font-size:1.8rem
}

body.gallery-open{
  overflow:hidden
}

@media(max-width:900px){
  .property-summary-grid{
    grid-template-columns:1fr
  }
  .summary-facts{
    justify-content:flex-start
  }
  .public-gallery{
    height:auto;
    grid-template-columns:1fr
  }
  .gallery-primary{
    height:390px
  }
  .gallery-secondary{
    height:220px
  }
  .public-property-layout{
    grid-template-columns:1fr
  }
  .public-booking-card{
    position:static
  }
}

@media(max-width:620px){
  .property-summary{
    padding-top:42px
  }
  .public-gallery{
    display:block
  }
  .gallery-primary{
    height:290px
  }
  .gallery-secondary{
    display:none
  }
  .view-all-photos{
    right:12px;
    bottom:12px
  }
  .public-fact-grid,
  .public-feature-grid{
    grid-template-columns:1fr
  }
  .location-card{
    align-items:flex-start;
    flex-direction:column
  }
  .gallery-lightbox-dialog{
    width:100%;
    height:100%;
    margin:0;
    grid-template-columns:44px 1fr 44px
  }
}

/* ---- phase9.css ---- */
.tab-submit-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid var(--line)
}
.tab-submit-button{
  min-width:140px;
  text-align:center
}
@media(max-width:560px){
  .tab-submit-actions{
    justify-content:stretch
  }
  .tab-submit-button{
    width:100%
  }
}

/* ---- phase10.css ---- */
.dashboard-head-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap
}
.count-pill{
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:22px;
  margin-left:5px;
  padding:0 6px;
  border-radius:999px;
  background:#fff;
  color:var(--green);
  font-size:.72rem
}

.property-enquiry{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--line)
}
.property-enquiry h3{
  margin:0 0 14px;
  font:400 1.7rem Georgia,serif
}
.guest-enquiry-form{
  display:grid;
  gap:11px
}
.guest-enquiry-form label{
  display:grid;
  gap:5px;
  font-size:.8rem;
  font-weight:700
}
.guest-enquiry-form label span{
  color:var(--muted);
  font-weight:400
}
.guest-enquiry-form input,
.guest-enquiry-form textarea{
  width:100%;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  font:inherit
}
.enquiry-date-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px
}
.enquiry-submit-button{
  width:100%;
  margin-top:3px
}
.enquiry-honeypot{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important
}
.enquiry-success,
.enquiry-errors{
  margin-bottom:12px;
  padding:11px 12px;
  border-radius:10px;
  font-size:.85rem
}
.enquiry-success{
  background:#e9f2ea;
  color:#2d593d
}
.enquiry-errors{
  background:#f8eaea;
  color:#7d3434
}
.enquiry-errors ul{
  margin:5px 0 0;
  padding-left:18px
}

.enquiry-list{
  display:grid;
  gap:16px
}
.enquiry-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:22px;
  box-shadow:0 8px 24px rgba(0,0,0,.035)
}
.enquiry-card.is-new{
  border-left:5px solid var(--green)
}
.enquiry-card-head{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start
}
.enquiry-card-head h2{
  margin:.12em 0 .05em;
  font:400 1.8rem Georgia,serif
}
.enquiry-card-head p{
  margin:0;
  color:var(--muted)
}
.enquiry-card-head time{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.8rem;
  white-space:nowrap
}
.enquiry-property{
  color:var(--green);
  font-weight:700;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em
}
.new-badge{
  display:inline-block;
  padding:5px 9px;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-size:.72rem;
  font-weight:700
}
.enquiry-stay{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:18px 0
}
.enquiry-stay span{
  min-width:130px;
  padding:10px 12px;
  border-radius:10px;
  background:var(--soft)
}
.enquiry-stay strong{
  display:block;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--muted)
}
.enquiry-message{
  padding:15px;
  border-radius:10px;
  background:#fbfaf7;
  line-height:1.65
}
.enquiry-actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:18px
}
.enquiry-actions form{
  margin:0
}

@media(max-width:650px){
  .enquiry-card-head{
    flex-direction:column
  }
  .enquiry-date-grid{
    grid-template-columns:1fr
  }
}


/* Phase 10.2 — prevent enquiry fields overflowing the booking card */
.public-booking-card,
.public-booking-card *,
.property-enquiry,
.property-enquiry *{
  box-sizing:border-box;
}

.public-booking-card{
  min-width:0;
}

.property-enquiry,
.guest-enquiry-form{
  width:100%;
  min-width:0;
}

.guest-enquiry-form label,
.guest-enquiry-form input,
.guest-enquiry-form textarea,
.guest-enquiry-form select{
  min-width:0;
  max-width:100%;
}

.guest-enquiry-form input,
.guest-enquiry-form textarea{
  display:block;
  width:100%;
}

.enquiry-date-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  width:100%;
  min-width:0;
}

.enquiry-date-grid > label{
  min-width:0;
}

.enquiry-date-grid input[type="date"],
.enquiry-date-grid input[type="number"]{
  width:100%;
  min-width:0;
  max-width:100%;
}

@media(max-width:1180px){
  .public-booking-card{
    padding-left:20px;
    padding-right:20px;
  }
  .property-enquiry h3{
    font-size:1.45rem;
  }
}

@media(max-width:650px){
  .enquiry-date-grid{
    grid-template-columns:1fr;
  }
}


/* Phase 10.3 — compact owner email action */
.booking-contact-list .booking-email-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin:0 0 10px;
  padding:10px 14px;
  border:1px solid var(--green);
  border-radius:999px;
  color:var(--green);
  background:#fff;
  font-weight:700;
  text-align:center;
  text-decoration:none;
}
.booking-contact-list .booking-email-button:hover{
  background:var(--green);
  color:#fff;
}


/* Phase 10.4 — compact owner call action */
.booking-contact-list .booking-call-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin:0 0 10px;
  padding:10px 14px;
  border:1px solid var(--green);
  border-radius:999px;
  color:var(--green);
  background:#fff;
  font-weight:700;
  text-align:center;
  text-decoration:none;
}
.booking-contact-list .booking-call-button:hover{
  background:var(--green);
  color:#fff;
}


/* Phase 10.5 — compact accommodation facts and icon facilities */
.public-fact-grid{
  display:none;
}

.public-fact-strip{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft);
}

.fact-item{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:6px 8px;
}

.fact-icon,
.feature-icon{
  flex:0 0 auto;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  color:var(--green);
}

.fact-icon svg,
.feature-icon svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.fact-item > span:last-child{
  min-width:0;
}

.fact-item strong,
.fact-item small{
  display:block;
}

.fact-item strong{
  font:400 1.45rem/1 Georgia,serif;
}

.fact-item small{
  margin-top:3px;
  color:var(--muted);
  font-size:.76rem;
  line-height:1.15;
}

.public-feature-grid.compact{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.public-feature-grid.compact .feature-item{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:10px 12px;
  border:0;
  border-radius:10px;
  background:var(--soft);
}

.public-feature-grid.compact .feature-icon{
  width:28px;
  height:28px;
}

.public-feature-grid.compact .feature-icon svg{
  width:21px;
  height:21px;
}

.public-feature-grid.compact .feature-item > span:last-child{
  min-width:0;
  font-size:.9rem;
  line-height:1.2;
}

.feature-tick{
  display:none;
}

@media(max-width:1100px){
  .public-fact-strip{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .public-feature-grid.compact{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .public-fact-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:10px;
  }
  .public-feature-grid.compact{
    grid-template-columns:1fr;
  }
}

/* ---- phase11.css ---- */
.owner-stats-overview{
  margin-bottom:22px;
}
.owner-stats-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:12px;
}
.owner-stats-heading h2{
  margin:.08em 0 0;
  font:400 2rem Georgia,serif;
}
.owner-stats-heading > span{
  color:var(--muted);
  font-size:.82rem;
}
.owner-stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.owner-stats-grid > div{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.owner-stats-grid strong,
.owner-stats-grid span{
  display:block;
}
.owner-stats-grid strong{
  font:400 1.8rem Georgia,serif;
  color:var(--ink);
}
.owner-stats-grid span{
  margin-top:3px;
  color:var(--muted);
  font-size:.78rem;
}
.owner-property-stats{
  display:flex!important;
  gap:7px;
  flex-wrap:wrap;
  margin-top:7px;
}
.owner-property-stats span{
  display:inline-flex!important;
  padding:4px 7px;
  border-radius:999px;
  background:var(--soft);
  color:var(--muted)!important;
  font-size:.7rem!important;
}
@media(max-width:800px){
  .owner-stats-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:520px){
  .owner-stats-heading{
    align-items:flex-start;
    flex-direction:column;
  }
  .owner-stats-grid{
    grid-template-columns:1fr 1fr;
  }
}


/* Phase 11.2 — permanent enquiry deletion */
.enquiry-delete-button{
  background:#fffafa !important;
  color:#a33d3d !important;
  border:1px solid #e8caca !important;
}
.enquiry-delete-button:hover{
  background:#f7e8e8 !important;
  color:#8f2f2f !important;
}


/* Phase 11.3 — stats reset controls */
.stats-heading-tools{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.stats-heading-tools form,
.inline-reset-form{
  margin:0;
}
.stats-reset-link{
  appearance:none;
  border:0;
  background:none;
  padding:0;
  color:#8f3d3d;
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  cursor:pointer;
}
.stats-reset-link:hover{
  text-decoration:underline;
}
.owner-property-actions .inline-reset-form{
  display:inline-flex;
}

/* ---- phase12.css ---- */
.availability-owner-grid{
  display:grid;
  grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);
  gap:20px;
  align-items:start
}
.availability-form{display:grid;gap:14px}
.availability-form label{display:grid;gap:6px;font-weight:700}
.availability-form label span{font-weight:400;color:var(--muted)}
.availability-form input{
  width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);
  border-radius:9px;background:#fff;font:inherit
}
.availability-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.availability-owner-note{
  display:grid;gap:4px;margin-top:18px;padding:13px;border-radius:10px;background:var(--soft);
  color:var(--muted);font-size:.84rem
}
.availability-owner-note strong{color:var(--ink)}
.availability-list-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}
.availability-list-head h2{margin:.08em 0 0}.availability-list-head>span{color:var(--muted)}
.availability-block-list{display:grid}
.availability-block-row{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px 0;border-top:1px solid var(--line)
}
.availability-block-row strong,.availability-block-row span,.availability-block-row small{display:block}
.availability-block-row span{margin-top:3px}
.availability-block-row small{margin-top:4px;color:var(--muted)}

.dh-availability-card{
  max-width:650px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
  box-shadow:0 6px 20px rgba(0,0,0,.035)
}
.dh-calendar-header{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:start;
  gap:10px;
  margin-bottom:12px
}
.dh-calendar-header>div{text-align:center}
.dh-calendar-header strong{
  display:block;font:700 1rem/1.2 Arial,sans-serif;color:#6d6d6d
}
.dh-calendar-header span{
  display:block;margin-top:4px;color:var(--muted);font-size:.78rem
}
.dh-cal-nav{
  width:40px;height:40px;border:1px solid #d7d7d7;border-radius:6px;
  background:#fff;color:#148e8e;font-size:1.7rem;line-height:1;cursor:pointer
}
.dh-calendar-grid{
  border:1px solid #e5e5e5;border-radius:8px;padding:10px;background:#fff;
  display:grid;grid-template-columns:repeat(7,1fr);gap:6px
}
.dh-cal-weekday{
  text-align:center;font-weight:700;color:#696969;font-size:.76rem;padding:5px 0
}
.dh-calendar-days{
  grid-column:1/-1;display:grid;grid-template-columns:repeat(7,1fr);gap:6px
}
.dh-cal-day{
  aspect-ratio:1/1;min-height:38px;border:1px solid #d5d5d5;background:#f8fff7;
  color:#496649;display:grid;place-items:center;cursor:pointer;font:400 .82rem Arial,sans-serif
}
.dh-cal-day:hover:not(:disabled){outline:2px solid #3b9191;outline-offset:-2px}
.dh-cal-day.booked{background:#d55252;color:#fff;border-color:#ca4a4a;cursor:not-allowed}
.dh-cal-day.selected{background:#3d9292;color:#fff;border-color:#3d9292}
.dh-cal-day.past{opacity:.35;cursor:not-allowed}
.dh-cal-day.empty{visibility:hidden;border:0}
.dh-calendar-legend{
  display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);
  color:var(--muted);font-size:.78rem
}
.dh-calendar-legend span{display:flex;align-items:center;gap:6px}
.dh-calendar-legend i{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.12)}
.legend-available{background:#f0fff0}.legend-booked{background:#d55252}.legend-selected{background:#3d9292}
.dh-calendar-hint{margin:10px 0 0;color:var(--muted);font-size:.8rem}

@media(max-width:900px){
  .availability-owner-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .availability-date-grid{grid-template-columns:1fr}
  .dh-calendar-grid,.dh-calendar-days{gap:4px}
  .dh-cal-day{min-height:34px}
}


/* Phase 12.1 — split/changeover dates */
.dh-cal-day{
  position:relative;
  overflow:hidden;
}
.dh-cal-day.booked{
  background:#d55252;
  color:#fff;
  border-color:#ca4a4a;
  cursor:not-allowed;
}

/*
 * Arrival boundary: available to the departing previous guest, booked for
 * the arriving stay. Diagonal split mirrors the HolidayHouseFrance calendar.
 */
.dh-cal-day.changeover-start{
  background:
    linear-gradient(135deg, #f0fff0 0 49.5%, #d55252 50% 100%);
  color:#465a46;
  border-color:#cfcfcf;
  cursor:not-allowed;
}

/*
 * Departure boundary: booked on the departing side, available for the next
 * guest to arrive.
 */
.dh-cal-day.changeover-end{
  background:
    linear-gradient(135deg, #d55252 0 49.5%, #f0fff0 50% 100%);
  color:#465a46;
  border-color:#cfcfcf;
  cursor:pointer;
}
.dh-cal-day.changeover-start::after,
.dh-cal-day.changeover-end::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg, transparent 49%, rgba(255,255,255,.55) 50%, transparent 51%);
}
.legend-changeover{
  background:linear-gradient(135deg,#d55252 0 49%,#f0fff0 50% 100%);
}


/* Phase 12.3 — selected departure/changeover date should look selected */
.dh-cal-day.selected,
.dh-cal-day.changeover-start.selected,
.dh-cal-day.changeover-end.selected{
  background:#3d9292 !important;
  color:#fff !important;
  border-color:#3d9292 !important;
  text-decoration:none !important;
}
.dh-cal-day.changeover-start.selected::after,
.dh-cal-day.changeover-end.selected::after{
  display:none !important;
}


/* Seasonal rates */
.rates-owner-grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:20px;align-items:start}
.season-rate-form{display:grid;gap:14px}.season-rate-form label{display:grid;gap:6px;font-weight:700}.season-rate-form input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit}
.rate-date-grid,.rate-money-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rate-colour-control{display:flex;align-items:center;gap:10px;min-height:44px}.rate-colour-control input[type=color]{width:52px;height:40px;padding:3px}.rate-colour-control small,.rate-help{color:var(--muted);font-weight:400}.rate-form-actions{display:flex;gap:10px;flex-wrap:wrap}.rates-list-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}.rates-list-head h2{margin:.08em 0 0}.rates-list-head>span{color:var(--muted)}
.season-rate-list{display:grid}.season-rate-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.season-swatch{width:14px;height:42px;border-radius:5px;background:var(--season-colour);border:1px solid rgba(0,0,0,.08)}.season-rate-main strong,.season-rate-main span,.season-rate-main small{display:block}.season-rate-main span{margin-top:2px}.season-rate-main small{margin-top:4px;color:var(--muted)}.season-rate-actions{display:flex;align-items:center;gap:12px}.season-rate-actions form{margin:0}.rate-error{margin:10px 0;padding:10px 12px;border-radius:9px;background:#f8eaea;color:#8b3535}
.seasonal-rates-callout{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.seasonal-rates-callout strong,.seasonal-rates-callout span,.seasonal-rates-callout small{display:block}.seasonal-rates-callout span{margin-top:2px}.seasonal-rates-callout small{margin-top:4px;color:var(--muted)}
.public-rate-list{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}.public-rate-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:13px;align-items:center;padding:14px 16px;background:#fff;border-top:1px solid var(--line)}.public-rate-row:first-child{border-top:0}.public-rate-row .season-swatch{height:46px}.public-rate-row>div:nth-child(2) strong,.public-rate-row>div:nth-child(2) span{display:block}.public-rate-row>div:nth-child(2) span{margin-top:3px;color:var(--muted);font-size:.82rem}.public-rate-price{text-align:right}.public-rate-price strong,.public-rate-price span,.public-rate-price small{display:block}.public-rate-price strong{font:400 1.35rem Georgia,serif}.public-rate-price strong small{display:inline;font:400 .72rem Arial,sans-serif;color:var(--muted)}.public-rate-price span,.public-rate-price small{margin-top:3px;color:var(--muted);font-size:.78rem}.public-rate-fallback{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
@media(max-width:900px){.rates-owner-grid{grid-template-columns:1fr}}@media(max-width:650px){.rate-date-grid,.rate-money-grid{grid-template-columns:1fr}.season-rate-row,.public-rate-row{grid-template-columns:12px minmax(0,1fr)}.season-rate-actions,.public-rate-price{grid-column:2;text-align:left}.seasonal-rates-callout{align-items:flex-start;flex-direction:column}}


/* ---- Phase 13.1 EUR / GBP currency switching ---- */
.currency-segmented{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:3px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff
}
.currency-segmented button{
  appearance:none;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--green);
  padding:7px 11px;
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap
}
.currency-segmented button.active{
  background:var(--green);
  color:#fff
}
.owner-currency-switch{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:16px
}
.owner-currency-switch>span{
  font-weight:700
}
.rate-currency-label{
  color:var(--muted);
  font-weight:400
}
.public-rates-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:16px;
  margin-bottom:18px
}
.public-rates-heading h2{
  margin-bottom:0
}
.public-currency-switch.compact{
  margin-top:8px
}
.public-booking-card .public-currency-switch.compact{
  display:flex;
  width:max-content;
  margin:0 0 14px
}
.results-heading-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  flex-wrap:wrap
}
@media(max-width:650px){
  .public-rates-heading{
    align-items:flex-start;
    flex-direction:column
  }
  .results-heading{
    align-items:flex-start;
    gap:12px
  }
  .results-heading-tools{
    justify-content:flex-start
  }
}


/* ---- Phase 13.2 compact rates + compact calendar on wide screens ---- */
.rates-calendar-layout{
  display:grid;
  grid-template-columns:minmax(220px,270px) minmax(430px,560px);
  gap:22px;
  align-items:start;
  justify-content:start;
  padding:30px 0;
  border-top:1px solid var(--line);
}
.rates-calendar-layout > .property-content-block{
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}

/* Smaller seasonal pricing column */
.rates-calendar-layout .public-rates-heading{
  display:block;
  margin:0 0 10px;
}
.rates-calendar-layout .public-rates-heading .eyebrow{
  margin-bottom:4px;
}
.rates-calendar-layout .public-rates-heading h2{
  margin:0;
  font-size:1.55rem;
  line-height:1.05;
}
.rates-calendar-layout .public-rates-heading .public-currency-switch{
  margin-top:9px;
}
.rates-calendar-layout .currency-segmented button{
  padding:5px 8px;
  font-size:.68rem;
}
.rates-calendar-layout .public-rate-list{
  border-radius:9px;
  overflow:hidden;
}
.rates-calendar-layout .public-rate-row{
  display:grid;
  grid-template-columns:7px minmax(0,1fr);
  gap:7px;
  padding:8px 9px;
  align-items:start;
}
.rates-calendar-layout .season-swatch{
  width:7px;
  min-width:7px;
  height:32px;
  border-radius:4px;
}
.rates-calendar-layout .public-rate-row > div:nth-child(2){
  min-width:0;
}
.rates-calendar-layout .public-rate-row > div:nth-child(2) > strong{
  display:block;
  font-size:.78rem;
  line-height:1.1;
}
.rates-calendar-layout .public-rate-row > div:nth-child(2) > span{
  display:block;
  margin-top:3px;
  font-size:.66rem;
  line-height:1.2;
  color:var(--muted);
}
.rates-calendar-layout .public-rate-price{
  grid-column:2;
  display:flex;
  align-items:baseline;
  gap:6px;
  flex-wrap:wrap;
  margin-top:2px;
  text-align:left;
}
.rates-calendar-layout .public-rate-price strong{
  font-size:.9rem;
  line-height:1;
}
.rates-calendar-layout .public-rate-price strong small{
  font-size:.58rem;
}
.rates-calendar-layout .public-rate-price > span,
.rates-calendar-layout .public-rate-price > small{
  font-size:.65rem;
}
.rates-calendar-layout .privacy-note{
  margin-top:9px;
  font-size:.68rem;
  line-height:1.35;
}
.rates-calendar-layout .public-rate-fallback{
  font-size:.78rem;
}

/* Calendar is deliberately reduced on PC/laptop so pricing can sit beside it */
.rates-calendar-layout .availability-public-block h2{
  margin:0 0 10px;
  font-size:1.65rem;
}
.rates-calendar-layout .availability-public-block > .eyebrow{
  margin-bottom:4px;
}
.rates-calendar-layout .dh-availability-card{
  width:100%;
  max-width:540px;
  box-sizing:border-box;
  padding:11px;
}
.rates-calendar-layout .dh-calendar-header{
  grid-template-columns:36px 1fr 36px;
  gap:8px;
  margin-bottom:9px;
}
.rates-calendar-layout .dh-cal-nav{
  width:34px;
  height:34px;
  font-size:1.35rem;
}
.rates-calendar-layout .dh-calendar-header strong{
  font-size:.9rem;
}
.rates-calendar-layout .dh-calendar-header span{
  margin-top:2px;
  font-size:.67rem;
}
.rates-calendar-layout .dh-calendar-grid{
  padding:8px;
  gap:4px;
}
.rates-calendar-layout .dh-calendar-days{
  gap:4px;
}
.rates-calendar-layout .dh-cal-weekday{
  padding:3px 0;
  font-size:.66rem;
}
.rates-calendar-layout .dh-cal-day{
  min-height:31px;
  font-size:.69rem;
}
.rates-calendar-layout .dh-calendar-legend{
  gap:10px;
  margin-top:9px;
  padding-top:8px;
  font-size:.68rem;
}
.rates-calendar-layout .dh-calendar-legend i{
  width:11px;
  height:11px;
}
.rates-calendar-layout .dh-calendar-hint{
  margin-top:8px;
  font-size:.68rem;
  line-height:1.35;
}

/* Tablet: stack, but keep both sections a little tighter than before */
@media(max-width:980px){
  .rates-calendar-layout{
    grid-template-columns:1fr;
    gap:24px;
  }
  .rates-calendar-layout .public-rates-block{
    max-width:620px;
  }
  .rates-calendar-layout .dh-availability-card{
    max-width:620px;
  }
}

/* Mobile: restore comfortable single-column controls */
@media(max-width:620px){
  .rates-calendar-layout{
    padding:24px 0;
  }
  .rates-calendar-layout .public-rates-heading h2,
  .rates-calendar-layout .availability-public-block h2{
    font-size:1.45rem;
  }
  .rates-calendar-layout .dh-cal-day{
    min-height:34px;
    font-size:.72rem;
  }
}


/* ---- Phase 13.3 equal-height rates / availability panels ---- */
@media(min-width:981px){
  .rates-calendar-layout{
    align-items:stretch;
  }

  .rates-calendar-layout > .public-rates-block,
  .rates-calendar-layout > .availability-public-block{
    height:100%;
    box-sizing:border-box;
  }

  .rates-calendar-layout > .public-rates-block{
    display:flex;
    flex-direction:column;
  }

  .rates-calendar-layout > .public-rates-block .privacy-note{
    margin-top:auto;
    padding-top:10px;
  }
}


/* ---- Phase 14.2 Host Profile / Meet the Host ---- */
.host-profile-panel{
  max-width:850px;
}
.host-profile-form{
  display:grid;
  gap:28px;
}
.host-photo-section{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:14px;
}
.host-photo-preview-wrap{
  width:150px;
  height:150px;
}
.host-photo-preview,
.host-photo-placeholder,
.host-modal-photo,
.host-modal-photo-placeholder{
  width:100%;
  height:100%;
  border-radius:50%;
  object-fit:cover;
  display:grid;
  place-items:center;
}
.host-photo-preview,
.host-modal-photo{
  border:4px solid #fff;
  box-shadow:0 10px 28px rgba(27,48,34,.12);
}
.host-photo-placeholder,
.host-modal-photo-placeholder{
  background:var(--soft);
  font-size:3rem;
}
.host-photo-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
}
.smile-tip{
  max-width:620px;
  display:grid;
  gap:4px;
  padding:12px 15px;
  border-radius:12px;
  background:#fff8dd;
  color:#6d5a20;
}
.smile-tip strong{
  font-size:1rem;
}
.host-copy-section,
.host-story-form{
  display:grid;
  gap:18px;
}
.host-copy-section label,
.host-story-form label{
  display:grid;
  gap:7px;
  font-weight:700;
}
.host-copy-section textarea,
.host-copy-section input,
.host-story-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px 13px;
  font:inherit;
  resize:vertical;
}

/* Camera modal */
.camera-modal,
.host-modal{
  position:fixed;
  inset:0;
  z-index:1000;
}
.camera-modal[hidden],
.host-modal[hidden]{
  display:none;
}
.camera-modal-backdrop,
.host-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,24,18,.58);
  backdrop-filter:blur(2px);
}
.camera-modal-card,
.host-modal-card{
  position:relative;
  z-index:1;
  width:min(720px,calc(100% - 32px));
  max-height:calc(100vh - 40px);
  overflow:auto;
  margin:20px auto;
  padding:26px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 30px 80px rgba(0,0,0,.25);
}
.camera-close,
.host-modal-close{
  position:absolute;
  top:14px;
  right:16px;
  width:36px;
  height:36px;
  border:0;
  border-radius:50%;
  background:var(--soft);
  color:var(--ink);
  font-size:1.5rem;
  cursor:pointer;
}
.camera-preview-frame{
  aspect-ratio:1/1;
  max-width:460px;
  margin:18px auto;
  overflow:hidden;
  border-radius:18px;
  background:#111;
}
.camera-preview-frame video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.camera-modal-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
}
.camera-help{
  text-align:center;
  color:var(--muted);
  font-size:.82rem;
}
.modal-open{
  overflow:hidden;
}

/* Public Meet the Host */
.meet-host-button{
  margin-top:12px;
  width:100%;
  border:1px solid var(--green);
  border-radius:999px;
  background:#fff;
  color:var(--green);
  padding:10px 14px;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.meet-host-button:hover{
  background:var(--soft);
}
.host-modal-card{
  width:min(760px,calc(100% - 32px));
  padding:30px;
}
.host-modal-photo-wrap{
  width:108px;
  height:108px;
  margin:0 auto 16px;
}
.host-modal-card h2{
  text-align:center;
  margin:0 0 24px;
  font:400 2rem/1.1 Georgia,serif;
}
.host-modal-card section{
  padding:18px 0;
  border-top:1px solid var(--line);
}
.host-modal-card h3{
  margin:0 0 8px;
  font-size:.95rem;
}
.host-modal-copy{
  color:#283229;
  line-height:1.55;
  font-size:.93rem;
}
.host-languages{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
@media(max-width:600px){
  .camera-modal-card,
  .host-modal-card{
    width:calc(100% - 20px);
    max-height:calc(100vh - 20px);
    margin:10px auto;
    padding:20px;
  }
}


/* ---- Phase 14.3 Host Profile visibility + three-section host story ---- */
.host-story-sections{
  display:grid;
  gap:20px;
}
.host-story-section-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.host-story-section-heading h2,
.host-story-form .panel h2{
  margin:.08em 0 .25em;
  font:400 2rem/1.08 Georgia,serif;
}
.host-story-section-heading p{
  margin:0;
  color:var(--muted);
}
.host-story-profile-preview{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:20px;
  align-items:start;
  margin-top:22px;
}
.host-story-avatar-wrap{
  width:110px;
  height:110px;
}
.host-story-avatar,
.host-story-avatar-placeholder{
  width:100%;
  height:100%;
  border-radius:50%;
  object-fit:cover;
  display:grid;
  place-items:center;
}
.host-story-avatar{
  border:4px solid #fff;
  box-shadow:0 10px 25px rgba(27,48,34,.12);
}
.host-story-avatar-placeholder{
  background:var(--soft);
  font-size:2.5rem;
}
.host-story-profile-preview > div:last-child > strong{
  display:block;
  margin-bottom:8px;
  font-size:1.05rem;
}
.host-story-profile-preview p{
  margin:.35em 0 .8em;
  color:#303a31;
  line-height:1.55;
}
.muted-copy,
.host-modal-empty{
  color:var(--muted) !important;
  font-style:italic;
}
.host-story-form .panel{
  display:grid;
  gap:12px;
}
.host-story-form .panel label{
  font-size:.85rem;
}
.host-modal-profile-section{
  text-align:left;
  border-top:0 !important;
  padding-top:0 !important;
}
.host-modal-section-label{
  margin:0 0 16px;
  color:var(--green);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  text-align:center;
}
.host-modal-profile-section .host-modal-copy{
  margin-top:8px;
}
.host-modal-profile-section .host-languages{
  margin-top:16px;
}
@media(max-width:650px){
  .host-story-section-heading{
    flex-direction:column;
  }
  .host-story-profile-preview{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
}


/* ---- Phase 14.4 Highlights + Why Book Direct ---- */
.why-love-section h2{
  margin-bottom:16px;
}
.why-love-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.why-love-card{
  display:flex;
  align-items:flex-start;
  gap:11px;
  min-height:78px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.why-love-icon{
  flex:0 0 auto;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--soft);
  color:var(--green);
  font-size:1rem;
  font-weight:800;
}
.why-love-card strong,
.why-love-card small{
  display:block;
}
.why-love-card strong{
  margin-bottom:4px;
  font-size:.86rem;
}
.why-love-card small{
  color:var(--muted);
  font-size:.72rem;
  line-height:1.35;
}

.why-book-direct-card{
  margin-top:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft);
}
.why-book-direct-card .eyebrow{
  margin-bottom:10px;
}
.why-book-direct-card ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:9px;
}
.why-book-direct-card li{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:7px;
  align-items:start;
  color:#344036;
  font-size:.75rem;
  line-height:1.35;
}
.why-book-direct-card li span{
  color:var(--green);
  font-weight:900;
}
.why-book-direct-card li strong{
  font-weight:600;
}

@media(max-width:980px){
  .why-love-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:620px){
  .why-love-grid{
    grid-template-columns:1fr;
  }
}


/* ---- Phase 14.5 Premium Gallery ---- */
.gallery-primary{
  position:relative;
}
.gallery-count-badge{
  position:absolute;
  left:14px;
  bottom:14px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(20,31,23,.76);
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  backdrop-filter:blur(6px);
  pointer-events:none;
}
.gallery-photo img{
  transition:transform .28s ease, filter .28s ease;
}
.gallery-photo:hover img{
  transform:scale(1.015);
  filter:saturate(1.03);
}

.gallery-lightbox-dialog{
  position:relative;
  overflow:hidden;
}
.gallery-lightbox-tools{
  position:absolute;
  top:14px;
  right:14px;
  z-index:4;
  display:flex;
  gap:8px;
}
.gallery-fullscreen,
.gallery-lightbox-tools .gallery-close{
  position:static;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  background:rgba(16,22,18,.68);
  color:#fff;
  font:inherit;
  font-size:1.2rem;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.gallery-image-stage{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  transition:opacity .16s ease, transform .16s ease;
}
.gallery-image-stage.changing{
  opacity:.35;
  transform:scale(.992);
}
.gallery-lightbox-dialog figure{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
}
.gallery-lightbox-dialog figcaption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:44px;
  padding:10px 14px;
}
.gallery-caption{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(255,255,255,.78);
  font-size:.78rem;
}
.gallery-counter{
  flex:0 0 auto;
  font-weight:700;
}
.gallery-lightbox-dialog:fullscreen{
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  border-radius:0;
  background:#0c0f0d;
}
.gallery-lightbox-dialog:fullscreen figure{
  height:100vh;
}
.gallery-lightbox-dialog:fullscreen .gallery-image-stage{
  max-height:calc(100vh - 52px);
}

@media(max-width:700px){
  .gallery-count-badge{
    left:10px;
    bottom:10px;
    padding:6px 9px;
    font-size:.67rem;
  }
  .gallery-lightbox-tools{
    top:10px;
    right:10px;
  }
  .gallery-fullscreen,
  .gallery-lightbox-tools .gallery-close{
    width:38px;
    height:38px;
  }
  .gallery-caption{
    display:none;
  }
  .gallery-lightbox-dialog figcaption{
    justify-content:center;
  }
}


/* ---- Phase 14.6 Premium Location Section ---- */
.location-premium-section h2{
  margin-bottom:16px;
}
.location-premium-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.location-area-panel{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:18px;
  background:
    radial-gradient(circle at 88% 20%, rgba(57,105,75,.08), transparent 34%),
    var(--soft);
}
.location-pin-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  color:var(--green);
}
.location-pin-icon svg,
.location-benefit-icon svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.location-area-copy strong,
.location-area-copy span{
  display:block;
}
.location-area-copy strong{
  margin-bottom:3px;
  font:400 1.35rem/1 Georgia,serif;
}
.location-area-copy span{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
}
.location-map-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 13px;
  border:1px solid var(--green);
  border-radius:999px;
  color:var(--green);
  background:#fff;
  font-size:.75rem;
  font-weight:700;
  white-space:nowrap;
}
.location-map-button:hover{
  background:var(--green);
  color:#fff;
}
.location-benefits{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
}
.location-benefits > div{
  display:flex;
  align-items:flex-start;
  gap:11px;
  min-height:76px;
  padding:15px 17px;
  border-top:1px solid var(--line);
}
.location-benefits > div:nth-child(even){
  border-left:1px solid var(--line);
}
.location-benefit-icon{
  flex:0 0 auto;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  color:var(--green);
}
.location-benefits strong,
.location-benefits small{
  display:block;
}
.location-benefits strong{
  margin-bottom:3px;
  font-size:.82rem;
}
.location-benefits small{
  color:var(--muted);
  font-size:.7rem;
  line-height:1.35;
}
.location-privacy-note{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:11px;
  color:var(--muted);
  font-size:.74rem;
  line-height:1.4;
}
.location-privacy-note span{
  color:var(--green);
  font-weight:700;
}
.location-privacy-note p{
  margin:0;
}
.location-privacy-note strong{
  color:#475449;
}
@media(max-width:720px){
  .location-area-panel{
    grid-template-columns:auto 1fr;
  }
  .location-map-button{
    grid-column:1/-1;
    width:100%;
  }
}
@media(max-width:560px){
  .location-benefits{
    grid-template-columns:1fr;
  }
  .location-benefits > div:nth-child(even){
    border-left:0;
  }
}


/* ---- Phase 14.7 Map-only popup ---- */
.location-map-button{
  appearance:none;
  font:inherit;
  cursor:pointer;
}
.location-map-modal{
  position:fixed;
  inset:0;
  z-index:1200;
}
.location-map-modal[hidden]{
  display:none;
}
.location-map-backdrop{
  position:absolute;
  inset:0;
  background:rgba(13,22,16,.58);
  backdrop-filter:blur(3px);
}
.location-map-dialog{
  position:relative;
  z-index:1;
  width:min(980px,calc(100% - 36px));
  max-height:calc(100vh - 36px);
  margin:18px auto;
  overflow:hidden;
  border-radius:18px;
  background:#fff;
  box-shadow:0 30px 90px rgba(0,0,0,.3);
}
.location-map-modal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--line);
}
.location-map-modal-head .eyebrow{
  margin-bottom:3px;
}
.location-map-modal-head h2{
  margin:0;
  font:400 1.55rem/1.08 Georgia,serif;
}
.location-map-close{
  flex:0 0 auto;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:var(--soft);
  color:var(--ink);
  font-size:1.45rem;
  cursor:pointer;
}
.location-map-frame-wrap{
  width:100%;
  height:min(68vh,650px);
  min-height:420px;
  background:#ecefe9;
}
.location-map-frame{
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.location-map-modal-note{
  margin:0;
  padding:11px 20px 13px;
  color:var(--muted);
  font-size:.74rem;
  line-height:1.4;
  border-top:1px solid var(--line);
}
@media(max-width:650px){
  .location-map-dialog{
    width:calc(100% - 16px);
    margin:8px auto;
    max-height:calc(100vh - 16px);
  }
  .location-map-frame-wrap{
    height:68vh;
    min-height:360px;
  }
  .location-map-modal-head{
    padding:14px 15px 11px;
  }
  .location-map-modal-head h2{
    font-size:1.25rem;
  }
  .location-map-modal-note{
    padding:10px 15px 12px;
  }
}


/* ---- Phase 14.8 Leaflet / OpenStreetMap privacy map ---- */
.location-map-frame-wrap{
  position:relative;
}
.location-map-frame{
  position:relative;
  z-index:1;
  background:#edf1eb;
}
.location-map-loading{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  padding:30px;
  text-align:center;
  background:#edf1eb;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.5;
}
.location-map-loading[hidden]{
  display:none;
}
.location-map-frame .leaflet-control-zoom a{
  color:var(--green);
}
.location-map-frame .leaflet-control-attribution{
  font-size:9px;
  background:rgba(255,255,255,.85);
}
.dh-map-label-wrap{
  background:transparent !important;
  border:0 !important;
}
.dh-map-label{
  display:block;
  width:max-content;
  max-width:180px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(33,70,50,.92);
  color:#fff;
  font:700 12px/1.2 Arial,sans-serif;
  text-align:center;
  box-shadow:0 5px 16px rgba(20,40,29,.18);
}


/* ---- Phase 14.9 Holiday House France reusable map component ---- */
.dh-map-modal{
  position:fixed;
  inset:0;
  z-index:1300;
}
.dh-map-modal[hidden]{
  display:none;
}
.dh-map-backdrop{
  position:absolute;
  inset:0;
  background:rgba(13,22,16,.6);
  backdrop-filter:blur(3px);
}
.dh-map-dialog{
  position:relative;
  z-index:1;
  width:min(1000px,calc(100% - 34px));
  max-height:calc(100vh - 34px);
  margin:17px auto;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
  border-radius:18px;
  background:#fff;
  box-shadow:0 30px 90px rgba(0,0,0,.32);
}
.dh-map-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding:17px 19px 14px;
  border-bottom:1px solid var(--line);
}
.dh-map-head .eyebrow{
  margin-bottom:3px;
}
.dh-map-head h2{
  margin:0;
  font:400 1.55rem/1.08 Georgia,serif;
}
.dh-map-close{
  flex:0 0 auto;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:var(--soft);
  color:var(--ink);
  font-size:1.4rem;
  cursor:pointer;
}
.dh-map-stage{
  position:relative;
  height:min(68vh,660px);
  min-height:430px;
  overflow:hidden;
  background:#edf1eb;
}
.dh-map-canvas{
  position:absolute;
  inset:0;
}
.dh-map-status{
  position:absolute;
  inset:0;
  z-index:500;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:30px;
  background:#edf1eb;
  color:var(--muted);
  text-align:center;
  font-size:.84rem;
}
.dh-map-status[hidden]{
  display:none;
}
.dh-map-status.error{
  color:#6b4d4d;
}
.dh-map-spinner{
  width:18px;
  height:18px;
  border:2px solid rgba(47,101,73,.2);
  border-top-color:var(--green);
  border-radius:50%;
  animation:dhMapSpin .7s linear infinite;
}
@keyframes dhMapSpin{
  to{transform:rotate(360deg)}
}
.dh-map-foot{
  display:flex;
  gap:8px;
  align-items:flex-start;
  padding:10px 18px 12px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.73rem;
  line-height:1.4;
}
.dh-map-privacy-icon{
  color:var(--green);
  font-weight:800;
}
.dh-map-canvas .leaflet-control-zoom{
  border:0;
  box-shadow:0 5px 18px rgba(25,45,32,.14);
}
.dh-map-canvas .leaflet-control-zoom a{
  color:var(--green);
  border-color:var(--line);
}
.dh-map-canvas .leaflet-control-attribution{
  background:rgba(255,255,255,.84);
  font-size:9px;
}
.dh-map-label-holder{
  background:none !important;
  border:0 !important;
}
.dh-map-label{
  display:block;
  width:max-content;
  max-width:190px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(33,70,50,.93);
  color:#fff;
  font:700 12px/1.2 Arial,sans-serif;
  text-align:center;
  box-shadow:0 5px 16px rgba(20,40,29,.18);
}
@media(max-width:650px){
  .dh-map-dialog{
    width:calc(100% - 14px);
    max-height:calc(100vh - 14px);
    margin:7px auto;
  }
  .dh-map-head{
    padding:13px 14px 11px;
  }
  .dh-map-head h2{
    font-size:1.2rem;
  }
  .dh-map-stage{
    height:70vh;
    min-height:360px;
  }
  .dh-map-foot{
    padding:9px 13px 11px;
  }
}


/* ---- Phase 15.1 Explore Map Engine ---- */
.dh-map-toolbar{
  display:flex;
  gap:7px;
  padding:10px 12px;
  overflow-x:auto;
  border-bottom:1px solid var(--line);
  background:#fff;
  scrollbar-width:thin;
}
.dh-map-filter{
  flex:0 0 auto;
  appearance:none;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#3e4b40;
  padding:7px 10px;
  font:inherit;
  font-size:.71rem;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.dh-map-filter:hover{
  border-color:var(--green);
  color:var(--green);
}
.dh-map-filter.active{
  border-color:var(--green);
  background:var(--green);
  color:#fff;
}
.dh-place-marker-holder{
  background:none !important;
  border:0 !important;
}
.dh-place-marker{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:2px solid #fff;
  border-radius:50%;
  background:rgba(255,255,255,.96);
  box-shadow:0 5px 15px rgba(22,42,29,.22);
  font-size:17px;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.dh-place-marker:hover{
  transform:translateY(-2px) scale(1.07);
  box-shadow:0 7px 18px rgba(22,42,29,.28);
}
.dh-place-leaflet-popup .leaflet-popup-content-wrapper{
  border-radius:13px;
  box-shadow:0 10px 30px rgba(20,35,25,.18);
}
.dh-place-leaflet-popup .leaflet-popup-content{
  margin:13px 15px;
}
.dh-place-popup-title{
  display:flex;
  align-items:center;
  gap:7px;
  margin-bottom:7px;
}
.dh-place-popup-title > span{
  font-size:1.15rem;
}
.dh-place-popup-title strong{
  color:#253329;
  font-size:.88rem;
}
.dh-place-top-pick{
  display:inline-flex;
  margin-bottom:7px;
  padding:3px 7px;
  border-radius:999px;
  background:#fff4cc;
  color:#705d19;
  font-size:.64rem;
  font-weight:800;
}
.dh-place-popup p{
  margin:0;
  color:#536055;
  font-size:.74rem;
  line-height:1.4;
}
@media(max-width:650px){
  .dh-map-toolbar{
    padding:8px;
  }
  .dh-map-filter{
    padding:6px 9px;
    font-size:.68rem;
  }
}

/* ---- Phase 15.2 Map V2 orientation labels ---- */
.dh-orientation-holder{background:none!important;border:0!important;pointer-events:none!important}
.dh-orientation-label{display:block;width:max-content;max-width:180px;transform:translateX(-50%);padding:2px 5px;border-radius:5px;background:rgba(255,255,255,.82);color:#435048;text-shadow:0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff;font:600 11px/1.2 Arial,sans-serif;white-space:nowrap;box-shadow:0 1px 4px rgba(39,55,44,.07)}
.dh-orientation-label.major{color:#25362c;font-size:12px;font-weight:800}
.dh-orientation-label.home{padding:3px 7px;background:rgba(47,101,73,.94);color:#fff;text-shadow:none;font-size:11px;font-weight:800}
@media(max-width:650px){.dh-orientation-label{font-size:10px}.dh-orientation-label.major{font-size:11px}}


/* ---- Phase 15.3 denser town/village orientation labels ---- */
.dh-orientation-label{
  background:rgba(255,255,255,.72);
  box-shadow:none;
  color:#4a574d;
  font-weight:650;
}
.dh-orientation-label.major{
  background:rgba(255,255,255,.82);
  color:#26372d;
  font-size:12px;
  font-weight:800;
}


/* ---- Phase 15.4 Towns & Villages only ---- */
.dh-map-toolbar,
.dh-map-filter,
.dh-place-marker-holder,
.dh-place-marker,
.dh-place-leaflet-popup,
.dh-place-popup{
  display:none !important;
}

/* Give the map a little more vertical room now the filter row is gone. */
.dh-map-stage{
  height:min(72vh,700px);
}

.dh-orientation-label{
  background:rgba(255,255,255,.76);
  color:#3f4d43;
  font-weight:650;
}

.dh-orientation-label.major{
  background:rgba(255,255,255,.88);
  color:#203128;
  font-size:12px;
  font-weight:800;
}


/* ---- Phase 15.5 automatic regional place labels ---- */
/* Old manually maintained orientation markers are no longer used. */
.dh-orientation-holder,
.dh-orientation-label{
  display:none !important;
}

/* Keep CARTO's labels visually above the background but below our property marker. */
.dh-map-canvas .leaflet-overlay-pane{
  z-index:400;
}
.dh-map-canvas .leaflet-marker-pane{
  z-index:600;
}


/* ---- Phase 16.2 Premium At-a-Glance strip ---- */
.premium-fact-strip{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:0;
  margin-top:16px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}

.premium-fact-strip .fact-item{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:74px;
  padding:14px 13px;
  border:0;
  border-right:1px solid var(--line);
  border-radius:0;
  background:#fff;
}

.premium-fact-strip .fact-item:last-child{
  border-right:0;
}

.premium-fact-strip .fact-icon{
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--soft);
  color:var(--green);
}

.premium-fact-strip .fact-icon svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.premium-fact-strip .fact-item > span:last-child{
  min-width:0;
}

.premium-fact-strip strong,
.premium-fact-strip small{
  display:block;
}

.premium-fact-strip strong{
  font:400 1.25rem/1 Georgia,serif;
  color:#223128;
}

.premium-fact-strip small{
  margin-top:4px;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.15;
}

@media(max-width:1050px){
  .premium-fact-strip{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .premium-fact-strip .fact-item{
    border-bottom:1px solid var(--line);
  }

  .premium-fact-strip .fact-item:nth-child(3n){
    border-right:0;
  }

  .premium-fact-strip .fact-item:nth-last-child(-n+3){
    border-bottom:0;
  }
}

@media(max-width:620px){
  .premium-fact-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .premium-fact-strip .fact-item{
    min-height:66px;
    padding:12px;
  }

  .premium-fact-strip .fact-item:nth-child(3n){
    border-right:1px solid var(--line);
  }

  .premium-fact-strip .fact-item:nth-child(2n){
    border-right:0;
  }

  .premium-fact-strip .fact-item:nth-last-child(-n+3){
    border-bottom:1px solid var(--line);
  }

  .premium-fact-strip .fact-item:nth-last-child(-n+2){
    border-bottom:0;
  }
}


/* Accommodation strip refinement */
.premium-fact-strip.centered .fact-item{
  flex-direction:column;
  justify-content:center;
  text-align:center;
  gap:6px;
  min-height:64px;
  padding:10px 8px;
}
.premium-fact-strip.centered .fact-icon{
  width:30px;height:30px;
}
.premium-fact-strip.centered strong{
  font-size:1.1rem;
  line-height:1;
}
.premium-fact-strip.centered small{
  font-size:.76rem;
  margin-top:2px;
}


/* ---- Clean Master: centred Accommodation summary ---- */
.premium-fact-strip{
  width:min(820px,92%);
  margin:18px auto 0;
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}

.premium-fact-strip .fact-item{
  flex:0 1 150px;
  min-width:120px;
  min-height:84px;
  padding:12px 14px;
  border:0;
  border-right:1px solid var(--line);
  border-radius:0;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
}

.premium-fact-strip .fact-item:last-child{
  border-right:0;
}

.premium-fact-strip .fact-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--soft);
  color:var(--green);
}

.premium-fact-strip .fact-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.premium-fact-strip .fact-item > span:last-child{
  display:block;
  min-width:0;
}

.premium-fact-strip strong{
  display:block;
  font:400 1.28rem/1 Georgia,serif;
  color:#223128;
}

.premium-fact-strip small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.15;
}

@media(max-width:900px){
  .premium-fact-strip{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .premium-fact-strip .fact-item{
    min-width:0;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }

  .premium-fact-strip .fact-item:nth-child(3n){
    border-right:0;
  }

  .premium-fact-strip .fact-item:nth-last-child(-n+3){
    border-bottom:0;
  }
}

@media(max-width:620px){
  .premium-fact-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .premium-fact-strip .fact-item:nth-child(3n){
    border-right:1px solid var(--line);
  }

  .premium-fact-strip .fact-item:nth-child(2n){
    border-right:0;
  }

  .premium-fact-strip .fact-item:nth-last-child(-n+3){
    border-bottom:1px solid var(--line);
  }

  .premium-fact-strip .fact-item:nth-last-child(-n+2){
    border-bottom:0;
  }
}


/* ---- Rates owner / currency note ---- */
.rates-owner-note{
  margin:10px 0 0;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.45;
}


/* ---- Phase 17.1 Premium Book Direct ---- */
.public-booking-card{
  position:sticky;
  top:22px;
  border:1px solid rgba(35,49,40,.13);
  border-radius:18px;
  box-shadow:0 14px 38px rgba(30,46,35,.08);
}

.public-booking-card .public-price{
  display:flex;
  align-items:baseline;
  gap:7px;
  margin-bottom:10px;
}

.public-booking-card .public-price span{
  color:var(--muted);
  font-size:.72rem;
}

.public-booking-card .public-price strong{
  font-size:2rem;
  line-height:1;
  letter-spacing:-.03em;
}

.booking-trust-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0 8px;
}

.booking-trust-row span{
  padding:5px 8px;
  border-radius:999px;
  background:var(--soft);
  color:#35523f;
  font-size:.66rem;
  font-weight:800;
}

.booking-intro{
  margin:8px 0 14px;
  font-size:.75rem;
  line-height:1.45;
}

.booking-estimate{
  margin:0 0 15px;
  padding:13px;
  border:1px solid rgba(47,101,73,.2);
  border-radius:12px;
  background:#f7faf7;
}

.booking-estimate[hidden]{display:none!important}

.booking-estimate-kicker{
  display:block;
  margin-bottom:7px;
  color:var(--green);
  font-size:.63rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-estimate-main{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
}

.booking-estimate-main strong:first-child{
  font:400 1.05rem/1.15 Georgia,serif;
}

.booking-estimate-main strong:last-child{
  font:400 1.45rem/1 Georgia,serif;
}

.booking-estimate small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.65rem;
  line-height:1.35;
}

.booking-estimate .booking-estimate-note{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--line);
  font-size:.61rem;
}

.property-enquiry{
  margin-top:17px;
  padding-top:17px;
  border-top:1px solid var(--line);
}

.property-enquiry h3{
  margin:0 0 12px;
  font-size:1rem;
}

.guest-enquiry-form{
  gap:10px;
}

.guest-enquiry-form label{
  font-size:.68rem;
  font-weight:750;
}

.guest-enquiry-form input,
.guest-enquiry-form textarea{
  border-radius:9px;
}

.enquiry-submit-button{
  width:100%;
  min-height:45px;
  font-weight:800;
}

.enquiry-security-note{
  margin:0;
  text-align:center;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.35;
}

@media(max-width:980px){
  .public-booking-card{
    position:static;
  }
}


/* ---- Phase 17.2 Premium Property Gallery ---- */
.property-gallery-section .container{
  max-width:1240px;
}

.public-gallery{
  position:relative;
}

.gallery-primary{
  position:relative;
}

.gallery-primary img,
.gallery-secondary img{
  transition:transform .28s ease, filter .28s ease;
}

.gallery-photo:hover img{
  transform:scale(1.018);
  filter:saturate(1.03);
}

.gallery-count-badge{
  position:absolute;
  left:14px;
  bottom:14px;
  z-index:2;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(17,28,21,.76);
  color:#fff;
  font-size:.7rem;
  font-weight:800;
  backdrop-filter:blur(6px);
  pointer-events:none;
}

.view-all-photos{
  box-shadow:0 6px 18px rgba(20,35,25,.12);
}

.gallery-lightbox-dialog{
  position:relative;
  overflow:hidden;
}

.gallery-lightbox-tools{
  position:absolute;
  top:14px;
  right:14px;
  z-index:5;
  display:flex;
  gap:8px;
}

.gallery-fullscreen,
.gallery-lightbox-tools .gallery-close{
  position:static;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  background:rgba(16,22,18,.70);
  color:#fff;
  font:inherit;
  font-size:1.15rem;
  cursor:pointer;
  backdrop-filter:blur(8px);
}

.gallery-image-stage{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  transition:opacity .16s ease, transform .16s ease;
}

.gallery-image-stage.changing{
  opacity:.32;
  transform:scale(.992);
}

.gallery-lightbox-dialog figure{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
}

.gallery-lightbox-dialog figcaption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:48px;
  padding:10px 15px;
}

.gallery-caption{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:rgba(255,255,255,.76);
  font-size:.76rem;
}

.gallery-counter{
  flex:0 0 auto;
  font-size:.76rem;
  font-weight:800;
}

.gallery-lightbox-dialog:fullscreen{
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  border-radius:0;
  background:#0b0f0c;
}

.gallery-lightbox-dialog:fullscreen figure{
  height:100vh;
}

.gallery-lightbox-dialog:fullscreen .gallery-image-stage{
  max-height:calc(100vh - 50px);
}

@media(min-width:900px){
  .public-gallery{
    min-height:500px;
  }
}

@media(max-width:700px){
  .gallery-count-badge{
    left:10px;
    bottom:10px;
    padding:6px 9px;
    font-size:.65rem;
  }

  .gallery-lightbox-tools{
    top:10px;
    right:10px;
  }

  .gallery-fullscreen,
  .gallery-lightbox-tools .gallery-close{
    width:38px;
    height:38px;
  }

  .gallery-caption{
    display:none;
  }

  .gallery-lightbox-dialog figcaption{
    justify-content:center;
  }
}


/* ---- Phase 17.3 Amenities / Facilities polish ---- */
.amenities-grid{
  align-items:stretch;
}

.amenities-grid .feature-item{
  min-height:56px;
  padding:12px 14px;
}

.amenities-grid .feature-item[hidden]{
  display:none !important;
}

.amenities-grid .feature-icon{
  width:34px;
  height:34px;
}

.amenities-grid .feature-icon svg{
  width:18px;
  height:18px;
}

.amenities-toggle-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  margin-top:12px;
  padding:8px 13px;
  border:1px solid var(--green);
  border-radius:999px;
  background:#fff;
  color:var(--green);
  font:inherit;
  font-size:.72rem;
  font-weight:800;
  cursor:pointer;
}

.amenities-toggle-button:hover{
  background:var(--green);
  color:#fff;
}

@media(max-width:700px){
  .amenities-grid .feature-item{
    min-height:50px;
    padding:10px 12px;
  }

  .amenities-toggle-button{
    width:100%;
  }
}


/* ---- Phase 17.4 Availability Calendar Polish ---- */
.availability-public-block .dh-calendar-wrap{
  margin-top:14px;
}

.dh-calendar{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(28,44,33,.05);
}

.dh-calendar-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 13px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#fff,#fafbf9);
}

.dh-calendar-toolbar strong{
  font:400 1rem/1.2 Georgia,serif;
  color:#26352b;
  text-align:center;
}

.dh-calendar-toolbar button{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--green);
  font-size:1rem;
  cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}

.dh-calendar-toolbar button:hover{
  border-color:var(--green);
  background:var(--green);
  color:#fff;
}

.dh-calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  padding:7px 9px 3px;
  color:#718078;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.dh-calendar-weekdays span{
  text-align:center;
}

.dh-calendar-days{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px;
  padding:7px 9px 11px;
}

.dh-calendar-day{
  position:relative;
  aspect-ratio:1/1;
  min-height:34px;
  display:grid;
  place-items:center;
  border:1px solid transparent;
  border-radius:9px;
  background:#fff;
  color:#334238;
  font-size:.72rem;
  font-weight:700;
  cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}

.dh-calendar-day:not(.disabled):hover{
  z-index:2;
  transform:translateY(-1px);
  border-color:rgba(47,101,73,.28);
  box-shadow:0 4px 10px rgba(32,50,38,.08);
}

.dh-calendar-day.disabled{
  cursor:not-allowed;
  opacity:.46;
}

.dh-calendar-day.today::after{
  content:"";
  position:absolute;
  bottom:4px;
  left:50%;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--green);
  transform:translateX(-50%);
}

.dh-calendar-day.selected{
  color:#fff;
  font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.32);
}

.dh-calendar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:9px 13px;
  padding:10px 11px;
  border-top:1px solid var(--line);
  background:#fbfcfa;
}

.dh-calendar-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#5e6b62;
  font-size:.63rem;
  font-weight:650;
}

.dh-calendar-legend i{
  width:12px;
  height:12px;
  border-radius:3px;
  border:1px solid rgba(34,50,39,.10);
}

.dh-calendar-hint{
  margin:0;
  padding:10px 11px 12px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.68rem;
  line-height:1.4;
}

@media(max-width:650px){
  .dh-calendar-toolbar{
    padding:10px;
  }

  .dh-calendar-toolbar button{
    width:32px;
    height:32px;
  }

  .dh-calendar-days{
    gap:3px;
    padding:6px 7px 10px;
  }

  .dh-calendar-day{
    min-height:32px;
    border-radius:8px;
    font-size:.68rem;
  }

  .dh-calendar-legend{
    gap:7px 10px;
  }
}


/* ---- Phase 17.5 Guest Reviews ---- */
.reviews-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}

.reviews-score{
  display:flex;
  align-items:center;
  gap:6px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
}

.reviews-score-star,
.review-stars{
  color:#b88b22;
}

.reviews-score strong{
  font:400 1.1rem/1 Georgia,serif;
}

.reviews-score small{
  color:var(--muted);
  font-size:.68rem;
}

.reviews-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.review-card{
  padding:16px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}

.review-card-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.review-card-head strong,
.review-card-head span{
  display:block;
}

.review-card-head > div > span{
  margin-top:3px;
  color:var(--muted);
  font-size:.65rem;
}

.review-stars{
  white-space:nowrap;
  letter-spacing:1px;
  font-size:.72rem;
}

.review-stars span{
  display:inline;
  color:#d8ddd8;
}

.review-copy{
  margin:13px 0 0;
  color:#455249;
  font-size:.78rem;
  line-height:1.55;
}

.review-source{
  display:block;
  margin-top:11px;
  color:var(--muted);
  font-size:.62rem;
}

.review-owner-response{
  margin-top:13px;
  padding:11px 12px;
  border-radius:10px;
  background:var(--soft);
}

.review-owner-response strong{
  color:var(--green);
  font-size:.67rem;
}

.review-owner-response p{
  margin:5px 0 0;
  font-size:.72rem;
  line-height:1.45;
}

.reviews-owner-layout{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:20px;
  align-items:start;
}

.owner-review-form{
  display:grid;
  gap:12px;
}

.owner-review-form label{
  display:grid;
  gap:6px;
  font-size:.72rem;
  font-weight:750;
}

.owner-review-form label span{
  color:var(--muted);
  font-weight:500;
}

.owner-review-form input,
.owner-review-form textarea,
.owner-review-form select{
  width:100%;
  box-sizing:border-box;
}

.review-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.review-publish-check{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:center;
  gap:8px!important;
}

.review-publish-check input{
  width:auto;
}

.owner-review-list{
  display:grid;
  gap:11px;
}

.owner-review-card{
  padding:13px;
  border:1px solid var(--line);
  border-radius:11px;
}

.owner-review-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.owner-review-head > div span{
  display:block;
  margin-top:3px;
  color:#b88b22;
  font-size:.7rem;
}

.owner-review-card > small{
  color:var(--muted);
}

.owner-review-card > p{
  margin:9px 0;
  font-size:.75rem;
  line-height:1.5;
}

.review-publish-status{
  height:max-content;
  padding:4px 7px;
  border-radius:999px;
  font-size:.61rem;
  font-weight:800;
}

.review-publish-status.published{
  background:#e7f3ea;
  color:#326342;
}

.review-publish-status.hidden{
  background:#eee;
  color:#666;
}

.owner-review-actions{
  display:flex;
  gap:8px;
  margin-top:10px;
}

@media(max-width:800px){
  .reviews-grid,
  .reviews-owner-layout{
    grid-template-columns:1fr;
  }

  .reviews-heading{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:520px){
  .review-form-row{
    grid-template-columns:1fr;
  }
}


/* ---- Phase 17.6 Explore Nearby ---- */
.nearby-discovery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:15px}
.nearby-discovery-heading>div>p:last-child{max-width:650px;margin:.35rem 0 0;color:var(--muted);font-size:.76rem;line-height:1.5}
.nearby-map-button{flex:0 0 auto}
.nearby-place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nearby-place-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.nearby-place-topline{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}
.nearby-place-type{color:var(--green);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.nearby-place-distance{color:var(--muted);font-size:.63rem;font-weight:700}
.nearby-place-card h3{margin:0;font:400 1.02rem/1.2 Georgia,serif}
.nearby-place-card p{margin:7px 0 0;color:#566158;font-size:.72rem;line-height:1.45}
.nearby-owner-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}
.owner-nearby-form{display:grid;gap:12px}
.owner-nearby-form label{display:grid;gap:6px;font-size:.72rem;font-weight:750}
.owner-nearby-form input,.owner-nearby-form select,.owner-nearby-form textarea{width:100%;box-sizing:border-box}
.owner-nearby-list{display:grid;gap:10px}
.owner-nearby-card{display:flex;justify-content:space-between;gap:14px;padding:13px;border:1px solid var(--line);border-radius:11px}
.owner-nearby-card strong,.owner-nearby-card span{display:block}
.owner-nearby-card span{margin-top:3px;color:var(--muted);font-size:.65rem}
.owner-nearby-card p{margin:7px 0 0;font-size:.72rem;line-height:1.45}
@media(max-width:800px){.nearby-place-grid,.nearby-owner-layout{grid-template-columns:1fr}.nearby-discovery-heading{align-items:flex-start;flex-direction:column}.nearby-map-button{width:100%}.owner-nearby-card{flex-direction:column}}


/* ---- Phase 17.6A Nearby editor + auto-distance ---- */
.distance-input-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
}

.distance-detect-button{
  min-width:96px;
  padding:0 10px;
  border:1px solid var(--green);
  border-radius:8px;
  background:#fff;
  color:var(--green);
  font:inherit;
  font-size:.68rem;
  font-weight:800;
  cursor:pointer;
}

.distance-detect-button:hover{
  background:var(--green);
  color:#fff;
}

.distance-detect-button:disabled{
  cursor:wait;
  opacity:.55;
}

.owner-nearby-form label > small{
  margin-top:2px;
  color:var(--muted);
  font-size:.61rem;
  font-weight:500;
  line-height:1.35;
}

.nearby-form-actions{
  display:flex;
  gap:8px;
}

.nearby-current-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}

.owner-nearby-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}

.owner-nearby-actions form{
  margin:0;
}

@media(max-width:720px){
  .nearby-current-heading{
    align-items:stretch;
    flex-direction:column;
  }

  .nearby-current-heading > button{
    width:100%;
  }

  .owner-nearby-actions{
    flex-wrap:wrap;
  }

  .distance-input-row{
    grid-template-columns:1fr;
  }

  .distance-detect-button{
    min-height:38px;
  }
}

/* Phase 17.6C — owner-curated places on area map */
.dh-curated-marker-wrap{background:transparent!important;border:0!important}
.dh-curated-marker{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
  max-width:190px;padding:6px 10px;border:2px solid #2f6549;border-radius:999px;
  background:#fff;color:#173d2b;box-shadow:0 2px 8px rgba(20,45,32,.16);
  font:800 .68rem/1.1 Arial,sans-serif;cursor:pointer;
}
.dh-curated-marker span{font-weight:700;color:#496456}
.dh-curated-marker:hover{background:#2f6549;color:#fff}
.dh-curated-marker:hover span{color:#fff}
.dh-curated-popup strong{display:block;font:700 1rem/1.2 Georgia,serif;color:#183629;margin-bottom:3px}
.dh-curated-popup-type{display:block;color:#2f6549;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.dh-curated-popup p{margin:7px 0 0;font-size:.72rem;line-height:1.4;color:#4f5b53}


/* ---- Phase 17.7 Host profile polish ---- */
.premium-host-summary{
  display:grid;
  gap:11px;
}

.listed-by-label{
  color:var(--muted);
  font-size:.7rem;
}

.listed-host-main{
  display:flex;
  align-items:center;
  gap:11px;
}

.listed-host-avatar,
.listed-host-avatar-placeholder{
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:50%;
}

.listed-host-avatar{
  object-fit:cover;
}

.listed-host-avatar-placeholder{
  display:grid;
  place-items:center;
  background:var(--soft);
  font-size:1.35rem;
}

.listed-host-main strong,
.listed-host-main small{
  display:block;
}

.listed-host-main small{
  margin-top:2px;
  color:var(--muted);
  font-size:.65rem;
}

.listed-host-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}

.listed-host-facts span{
  padding:8px 9px;
  border-radius:9px;
  background:var(--soft);
  color:#536158;
  font-size:.63rem;
  line-height:1.3;
}

.listed-host-facts strong{
  display:block;
  margin-bottom:2px;
  color:#274331;
  font-size:.6rem;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.host-modal-facts{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin:9px 0 18px;
}

.host-modal-facts span{
  min-width:120px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--muted);
  font-size:.67rem;
}

.host-modal-facts strong{
  display:block;
  margin-bottom:2px;
  color:var(--green);
  font-size:.61rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.host-profile-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.host-profile-meta-grid label{
  display:grid;
  gap:6px;
}

.host-profile-meta-grid small{
  color:var(--muted);
  font-size:.62rem;
  line-height:1.35;
  font-weight:500;
}

@media(max-width:650px){
  .host-profile-meta-grid,
  .listed-host-facts{
    grid-template-columns:1fr;
  }

  .host-modal-facts{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* ---- Phase 17.8 Similar Properties ---- */
.similar-properties-section{
  padding-top:44px;
  padding-bottom:54px;
  border-top:1px solid var(--line);
  background:#faf9f5;
}

.similar-properties-heading{
  margin-bottom:18px;
}

.similar-property-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.similar-property-card{
  background:#fff;
}

.similar-property-card .result-image{
  min-height:210px;
}

.similar-property-card .property-content{
  padding:14px;
}

.similar-property-card .property-content h3{
  margin-top:3px;
}

.similar-property-card .result-price{
  margin-top:11px;
}

@media(max-width:900px){
  .similar-property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .similar-property-grid{
    grid-template-columns:1fr;
  }

  .similar-properties-heading{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ---- Phase 18 Detailed Amenities ---- */
.amenities-editor-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-top:22px;
}
.amenities-editor-head h3{margin-bottom:4px}
.amenity-search-label{min-width:270px}
.amenity-category-list{display:grid;gap:12px;margin-top:12px}
.amenity-category-card{
  margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;
}
.amenity-category-card h4{margin:0 0 11px;font-size:.84rem;color:#233d2e}
.amenity-choice-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;
}
.amenity-choice-grid label{
  display:flex;align-items:flex-start;gap:7px;padding:8px 9px;border-radius:8px;background:#fafaf7;
  font-size:.69rem;line-height:1.3;cursor:pointer;
}
.amenity-choice-grid label:has(input:checked){background:#edf5ef;color:#244b35}
.amenity-choice-grid input{width:auto;margin-top:2px}
.amenities-pet-policy{margin:11px 0 0;color:var(--muted);font-size:.7rem}
.amenities-modal[hidden]{display:none!important}
.amenities-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px}
.amenities-modal-backdrop{position:absolute;inset:0;background:rgba(18,28,21,.68)}
.amenities-modal-card{
  position:relative;z-index:1;width:min(820px,96vw);max-height:88vh;overflow:auto;
  padding:24px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.amenities-modal-close{
  position:absolute;top:14px;right:14px;width:38px;height:38px;border:0;border-radius:50%;
  background:var(--soft);font-size:1.3rem;cursor:pointer;
}
.amenities-modal-card>h2{margin:4px 50px 18px 0}
.amenities-modal-category{padding:15px 0;border-top:1px solid var(--line)}
.amenities-modal-category h3{margin:0 0 10px;font-size:.86rem}
.amenities-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
.amenities-modal-grid span{font-size:.72rem;line-height:1.4;color:#45554a}
@media(max-width:850px){
  .amenity-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenities-editor-head{align-items:stretch;flex-direction:column}
  .amenity-search-label{min-width:0}
}
@media(max-width:560px){
  .amenity-choice-grid,.amenities-modal-grid{grid-template-columns:1fr}
  .amenities-modal{padding:8px}
  .amenities-modal-card{padding:20px 16px}
}


/* ---- Phase 18.1 Property description Read More ---- */
.property-description.is-collapsible[data-collapsed="true"] .property-description-copy{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:12;
  overflow:hidden;
}

.property-description-toggle{
  margin-top:12px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--green);
  font:inherit;
  font-size:.72rem;
  font-weight:800;
  cursor:pointer;
}

.property-description-toggle:hover{
  text-decoration:underline;
}

.property-description-counter{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.62rem;
  text-align:right;
}


/* ---- Holiday House France main logo ---- */
.brand-logo-link{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}
.brand-logo{
  display:block;
  width:auto;
  height:64px;
  max-width:230px;
  object-fit:contain;
}
.footer-brand-logo{
  height:82px;
  max-width:280px;
}
@media(max-width:760px){
  .brand-logo{
    height:52px;
    max-width:185px;
  }
  .footer-brand-logo{
    height:68px;
    max-width:230px;
  }
}


/* ---- HHF brand lock-up refinement ---- */
.brand-lockup{
  gap:12px;
}
.brand-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.brand-copy strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.02rem;
  line-height:1.05;
  color:var(--ink);
  white-space:nowrap;
}
.brand-copy small{
  margin-top:4px;
  font-size:.58rem;
  line-height:1.2;
  color:var(--muted);
  white-space:nowrap;
}
.footer-text-brand{
  display:inline-flex;
  margin-bottom:10px;
}
.site-footer .footer-text-brand .brand-copy strong{
  color:#fff;
  font-size:1.02rem;
}
.site-footer .footer-text-brand .brand-copy small{
  color:rgba(255,255,255,.72);
}
@media(max-width:760px){
  .brand-lockup{gap:8px}
  .brand-copy strong{font-size:.86rem}
  .brand-copy small{font-size:.52rem}
}


/* ---- Homepage search region width refinement ---- */
.search-bar.search-bar-regional{
  grid-template-columns:minmax(245px,1.65fr) minmax(230px,1.25fr) minmax(105px,.6fr) auto;
}
.search-bar.search-bar-regional .search-region select{
  padding-right:32px;
}
@media(max-width:900px){
  .search-bar.search-bar-regional{
    grid-template-columns:minmax(210px,1.35fr) minmax(220px,1.2fr) minmax(100px,.55fr) auto;
  }
}
@media(max-width:760px){
  .search-bar.search-bar-regional{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:480px){
  .search-bar.search-bar-regional{
    grid-template-columns:1fr;
  }
}


/* ---- Random regional homepage hero ---- */
.hero{
  position:relative;
  background-size:cover;
  background-position:center;
}
.hero-photo-caption{
  position:absolute;
  right:18px;
  bottom:12px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(10,28,20,.58);
  color:rgba(255,255,255,.92);
  font-size:.58rem;
  line-height:1.2;
  letter-spacing:.02em;
  backdrop-filter:blur(3px);
}
@media(max-width:760px){
  .hero-photo-caption{
    right:10px;
    bottom:8px;
    font-size:.52rem;
  }
}


/* ---- Phase 20 Bedroom & Bed Configuration ---- */
.bedroom-editor-callout{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);
}
.bedroom-editor-callout strong,.bedroom-editor-callout span,.bedroom-editor-callout small{display:block}
.bedroom-editor-callout span{margin-top:3px;font-size:.73rem}
.bedroom-editor-callout small{margin-top:3px;color:var(--muted);font-size:.62rem}

.bedroom-config-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;
}
.bedroom-config-stats span{
  padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted);font-size:.66rem;
}
.bedroom-config-stats strong{display:block;margin-bottom:3px;color:var(--green);font:400 1.35rem/1 Georgia,serif}

.bedroom-warning{
  margin-bottom:18px;padding:13px 15px;border:1px solid #dfc47a;border-radius:11px;background:#fff8df;
}
.bedroom-warning strong{color:#6d5310}
.bedroom-warning ul{margin:7px 0 0;padding-left:18px;font-size:.7rem;line-height:1.5}

.bedroom-owner-layout{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;align-items:start;
}
.bedroom-owner-form{display:grid;gap:12px}
.bedroom-owner-form h3{margin:8px 0 0;font-size:.82rem}
.bed-count-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
}
.bed-count-grid label{font-size:.67rem}
.bed-count-grid input{width:100%;box-sizing:border-box}
.bedroom-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.owner-bedroom-list{display:grid;gap:10px}
.owner-bedroom-card{
  display:flex;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff;
}
.owner-bedroom-card strong,.owner-bedroom-card span,.owner-bedroom-card small{display:block}
.owner-bedroom-card span{margin-top:4px;font-size:.68rem}
.owner-bedroom-card small{margin-top:3px;color:var(--muted);font-size:.62rem}

.bedroom-config-heading{
  display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;
}
.bedroom-summary-pill{
  padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;
  color:var(--muted);font-size:.65rem;font-weight:700;
}
.bedroom-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bedroom-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.bedroom-card-head{display:flex;align-items:center;gap:10px}
.bedroom-icon{
  width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--soft);font-size:1rem;
}
.bedroom-card h3{margin:0;font:400 1.02rem/1.2 Georgia,serif}
.bedroom-card small{color:var(--muted);font-size:.62rem}
.bedroom-beds{margin:10px 0 0;font-size:.72rem;font-weight:700;color:#33473a}
.bedroom-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.bedroom-features span{
  padding:5px 7px;border-radius:999px;background:var(--soft);color:#56635a;font-size:.6rem;
}

@media(max-width:800px){
  .bedroom-owner-layout,.bedroom-card-grid{grid-template-columns:1fr}
  .bedroom-config-stats{grid-template-columns:1fr}
  .bedroom-config-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
  .bed-count-grid,.bedroom-check-grid{grid-template-columns:1fr 1fr}
  .owner-bedroom-card,.bedroom-editor-callout{flex-direction:column}
}
@media(max-width:420px){
  .bed-count-grid,.bedroom-check-grid{grid-template-columns:1fr}
}


/* ---- Mobile booking journey reorder ----
   Desktop/tablet layout is unchanged. On narrow screens the property content
   becomes a deliberate booking journey:
   Highlights -> About -> Accommodation -> Facilities -> Rates/Availability
   -> Enquiry -> Book Direct -> Location -> Explore Nearby -> Host.
*/
@media(max-width:700px){
  .public-property-layout{
    display:flex !important;
    flex-direction:column;
    gap:0;
  }

  .public-property-main,
  .public-booking-card{
    display:contents;
  }

  .mobile-order-highlights{order:10}
  .mobile-order-about{order:20}
  .mobile-order-accommodation{order:30}
  .mobile-order-bedrooms{order:35}
  .mobile-order-facilities{order:40}
  .mobile-order-rates-calendar{order:50}
  .mobile-order-enquiry{order:60}
  .mobile-order-book-direct{order:70}
  .mobile-order-location{order:80}
  .mobile-order-nearby{order:90}
  .mobile-order-host{order:100}

  /* Restore the card treatment to the pieces formerly inside the sidebar. */
  .booking-direct-content,
  .property-enquiry,
  .host-mobile-group{
    width:100%;
    box-sizing:border-box;
  }

  .booking-direct-content{
    margin-top:20px;
    padding:20px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    box-shadow:var(--shadow);
  }

  .property-enquiry{
    margin-top:20px;
  }

  .host-mobile-group{
    margin-top:20px;
    padding:20px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
  }

  /* Most important mobile flow: calendar immediately followed by enquiry. */
  .mobile-order-rates-calendar{
    margin-bottom:0;
  }

  .mobile-order-enquiry{
    margin-top:12px;
  }

  .mobile-order-location{
    margin-top:28px;
  }
}


/* ---- Calendar selected-stay quote ---- */
.calendar-stay-summary{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #c8d8ce;
  border-radius:12px;
  background:#f6faf7;
}

.calendar-stay-kicker{
  display:block;
  margin-bottom:5px;
  color:var(--green);
  font-size:.61rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.calendar-stay-line{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
}

.calendar-stay-line strong:first-child{
  color:#263c2e;
  font-size:.76rem;
  font-weight:700;
}

.calendar-stay-line strong:last-child{
  flex:0 0 auto;
  font:400 1.18rem/1 Georgia,serif;
  color:#25392c;
}

.calendar-stay-summary > small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:.59rem;
  line-height:1.35;
}

.calendar-stay-summary .booking-estimate-note{
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid var(--line);
}

@media(max-width:700px){
  .calendar-stay-summary{
    margin-top:10px;
    padding:11px 12px;
  }

  .calendar-stay-line{
    gap:8px;
  }

  .calendar-stay-line strong:first-child{
    font-size:.7rem;
  }

  .calendar-stay-line strong:last-child{
    font-size:1.05rem;
  }
}

@media(max-width:430px){
  .calendar-stay-line{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
}


/* ---- Phase 21 Nearby Facilities & Activities ---- */
.nearby-facilities-owner-form{display:grid;gap:18px}
.nearby-facility-owner-category{margin:0}
.nearby-facility-owner-list{display:grid;gap:8px;margin-top:14px}
.nearby-facility-owner-row{
  display:grid;
  grid-template-columns:minmax(220px,1.25fr) minmax(0,.8fr);
  gap:12px;
  align-items:end;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.nearby-facility-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:center;
  gap:8px!important;
  font-size:.72rem!important;
  font-weight:750!important;
}
.nearby-facility-check input{width:auto!important}
.nearby-distance-editor{
  display:grid;
  grid-template-columns:minmax(90px,1fr) 100px;
  gap:7px;
}
.nearby-distance-editor label,.nearby-custom-label{
  font-size:.62rem!important;
}
.nearby-custom-label{grid-column:1/-1}
.nearby-facility-note-label{display:grid;gap:6px;margin-top:14px;font-size:.7rem;font-weight:750}
.nearby-facility-note-label>span{color:var(--muted);font-size:.6rem;font-weight:500}
.nearby-facility-note-label small{text-align:right;color:var(--muted);font-size:.6rem}
.nearby-facility-save{justify-content:flex-end}

.nearby-facilities-heading{margin-bottom:14px}
.nearby-facility-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nearby-facility-category-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.nearby-facility-category-card h3{margin:0 0 10px;font:400 1rem/1.2 Georgia,serif}
.nearby-facility-list{display:grid;gap:7px}
.nearby-facility-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  padding-bottom:7px;
  border-bottom:1px solid #eeeae1;
}
.nearby-facility-row:last-child{padding-bottom:0;border-bottom:0}
.nearby-facility-row strong{font-size:.7rem;color:#33473a}
.nearby-facility-row span{flex:0 0 auto;color:var(--muted);font-size:.62rem}
.nearby-facility-category-card>p{
  margin:12px 0 0;
  padding-top:10px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.68rem;
  line-height:1.45;
}

@media(max-width:700px){
  .nearby-facility-category-grid{grid-template-columns:1fr}
  .mobile-order-nearby-facilities{order:95}
}
@media(max-width:620px){
  .nearby-facility-owner-row{grid-template-columns:1fr}
  .nearby-distance-editor{grid-template-columns:minmax(0,1fr) 105px}
}

/* Phase 21 revised: nearby facilities inline in Facilities & suitability */
.nearby-inline-editor{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.nearby-inline-category{margin-top:12px}
.nearby-inline-list{display:grid;gap:8px}
.nearby-inline-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(150px,1fr) 120px 95px;gap:8px;align-items:end;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff}
.nearby-inline-row label{font-size:.61rem}
.nearby-inline-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:7px!important;font-size:.68rem!important;font-weight:750!important}
.nearby-inline-check input{width:auto!important}
.nearby-inline-note{display:grid;gap:5px;margin-top:12px;font-size:.68rem;font-weight:750}
.nearby-inline-note>span,.nearby-inline-note small{color:var(--muted);font-size:.59rem;font-weight:500}.nearby-inline-note small{text-align:right}
.nearby-facility-row>div{display:grid;gap:2px}.nearby-facility-row small{color:var(--muted);font-size:.59rem}
@media(max-width:850px){.nearby-inline-row{grid-template-columns:1fr 1fr}.nearby-inline-check{grid-column:1/-1}}
@media(max-width:560px){.nearby-inline-row{grid-template-columns:1fr}.nearby-inline-check{grid-column:auto}}


/* ---- Search: restrained More Filters ---- */
.search-filter-actions{
  display:flex;
  align-items:stretch;
  gap:10px;
  grid-column:1/-1;
}
.search-filter-actions>.button{
  min-width:130px;
}
.more-filters{
  position:relative;
  flex:1;
}
.more-filters>summary{
  list-style:none;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--green);
  font-weight:800;
  cursor:pointer;
}
.more-filters>summary::-webkit-details-marker{display:none}
.more-filters>summary::after{
  content:"＋";
  margin-left:8px;
  font-weight:700;
}
.more-filters[open]>summary::after{content:"−"}
.more-filters-panel{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-top:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.more-filters-panel .filter-select{
  grid-row:span 2;
}
.filter-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:center;
  gap:7px!important;
  min-height:42px;
  padding:8px 10px!important;
  border:1px solid #e9e4da;
  border-radius:9px;
  background:#faf9f5;
  font-size:.7rem!important;
  cursor:pointer;
}
.filter-check:has(input:checked){
  border-color:#b9d0c0;
  background:#eef6f0;
  color:#28503a;
}
.more-filters-panel .filter-group-heading{
  grid-column:1 / -1;
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid rgba(17,50,74,.12);
  color:var(--navy);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.more-filters-panel .filter-select + .filter-group-heading{
  border-top:0;
  padding-top:2px;
}
.filter-check input{
  width:auto!important;
  margin:0!important;
}
@media(max-width:850px){
  .more-filters-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .search-filter-actions{flex-direction:column}
  .more-filters-panel{grid-template-columns:1fr}
  .more-filters-panel .filter-select{grid-row:auto}
  .search-filter-actions>.button{width:100%}
}

/* ---- Owner dashboard: cleaner property action toolbar ---- */
.owner-property-actions{
  display:flex;
  align-items:center;
  gap:0!important;
  padding:5px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#faf9f5;
}
.owner-property-actions .owner-action-link,
.owner-property-actions .stats-reset-link,
.owner-property-actions .danger-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 10px!important;
  margin:0!important;
  border-radius:8px;
  text-decoration:none!important;
  font-size:.72rem!important;
  font-weight:750!important;
  white-space:nowrap;
}
.owner-property-actions .owner-action-link{
  color:var(--green)!important;
}
.owner-property-actions .owner-action-link:hover{
  background:#edf4ef;
}
.owner-property-actions .owner-action-link:not(:first-of-type)::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:1px;
  background:#ddd7cc;
}
.owner-property-actions .stats-reset-link{
  color:#8b5547!important;
}
.owner-property-actions .danger-link{
  color:#a43d3d!important;
}
.owner-property-actions .danger-link:hover{
  background:#fff0f0!important;
}
.owner-property-actions form{
  display:flex;
  margin:0!important;
}
@media(max-width:1000px){
  .owner-property-actions{
    flex-wrap:wrap;
    gap:3px!important;
  }
  .owner-property-actions .owner-action-link::before{display:none!important}
}
@media(max-width:650px){
  .owner-property-actions{
    width:100%;
    align-items:stretch;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px!important;
  }
  .owner-property-actions>a,
  .owner-property-actions>form,
  .owner-property-actions>form>button{
    width:100%;
    box-sizing:border-box;
  }
  .owner-property-actions .owner-action-link,
  .owner-property-actions .stats-reset-link,
  .owner-property-actions .danger-link{
    justify-content:center;
    min-height:38px;
    background:#fff;
    border:1px solid #e6e0d6!important;
  }
}


/* ---- Owner listing completeness ---- */
.listing-completeness{
  width:min(430px,100%);
  margin-top:11px;
  padding:10px 12px;
  border:1px solid #e3ddd2;
  border-radius:10px;
  background:#faf9f5;
}
.listing-completeness-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:7px;
}
.listing-completeness-top strong{
  color:#294b39;
  font-size:.7rem;
}
.listing-completeness-top span{
  color:#58665d;
  font-size:.66rem;
  font-weight:800;
}
.listing-completeness-track{
  height:7px;
  overflow:hidden;
  border-radius:999px;
  background:#e7e4dc;
}
.listing-completeness-track>span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:#315f48;
}
.listing-completeness p{
  margin:7px 0 0;
  color:#687168;
  font-size:.6rem;
  line-height:1.4;
}
.listing-completeness p strong{color:#47564b}
.listing-completeness.is-complete{
  border-color:#c9dbcf;
  background:#f0f6f1;
}
@media(max-width:650px){
  .listing-completeness{width:100%}
}


/* ---- Regional / department landing pages ---- */
.region-hero{
  min-height:490px;
  display:flex;
  align-items:flex-end;
  background:linear-gradient(135deg,#173a2a,#315f48);
  color:#fff;
  background-size:cover;
  background-position:center;
}
.region-hero-inner{padding:82px 0 58px}
.region-back-link{
  display:inline-block;
  margin-bottom:34px;
  color:rgba(255,255,255,.82);
  font-size:.72rem;
  font-weight:750;
}
.region-hero .eyebrow{color:#f6f0e3}
.region-hero h1{
  max-width:900px;
  margin:.05em 0 .2em;
  color:#fff;
  font:400 clamp(3rem,7vw,5.8rem)/.98 Georgia,serif;
}
.region-hero h1 em{color:#f5ead5;font-weight:400}
.region-hero-copy{
  max-width:660px;
  margin:0;
  font-size:1.12rem;
  line-height:1.55;
  color:rgba(255,255,255,.9);
}
.region-hero-actions{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:26px;
}
.region-hero-actions>span{
  color:rgba(255,255,255,.78);
  font-size:.7rem;
}

.region-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:70px;
  align-items:start;
}
.region-intro-grid h2{margin-top:6px}
.region-intro-copy{
  max-width:760px;
  font-size:1.04rem;
  line-height:1.75;
}
.region-intro-copy p:first-child{margin-top:0}
.region-intro-copy p:last-child{margin-bottom:0}

.region-highlight-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.region-highlight-card{
  padding:22px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.region-highlight-card h3{
  margin:0 0 9px;
  font:400 1.15rem/1.2 Georgia,serif;
}
.region-highlight-card p{
  margin:0;
  color:var(--muted);
  font-size:.74rem;
  line-height:1.55;
}

.region-empty-listings{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:26px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.region-empty-listings h3{margin:0 0 6px}
.region-empty-listings p{margin:0;color:var(--muted)}

.region-place-links{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.region-place-links a{
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--green);
  font-size:.72rem;
  font-weight:750;
}
.region-place-links a:hover{
  border-color:#abc3b2;
  background:#f2f7f3;
}
.region-owner-cta{margin-top:0}

@media(max-width:900px){
  .region-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .region-intro-grid{grid-template-columns:1fr;gap:20px}
}
@media(max-width:620px){
  .region-hero{min-height:430px}
  .region-hero-inner{padding:64px 0 42px}
  .region-back-link{margin-bottom:24px}
  .region-hero h1{font-size:3.05rem}
  .region-hero-actions{align-items:flex-start;flex-direction:column}
  .region-highlight-grid{grid-template-columns:1fr}
  .region-empty-listings{align-items:flex-start;flex-direction:column}
}


/* ---- Regional page navigation + department-wide CTA ---- */
.region-switcher{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:30px;
}
.region-switcher a{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  background:rgba(20,46,33,.34);
  color:#fff;
  font-size:.62rem;
  font-weight:750;
  text-decoration:none;
  backdrop-filter:blur(2px);
}
.region-switcher a:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.8);
}
.region-switcher a.active{
  background:#fff;
  border-color:#fff;
  color:#2f5e46;
}

@media(max-width:700px){
  .region-switcher{
    gap:6px;
    margin-bottom:24px;
  }
  .region-switcher a{
    padding:6px 9px;
    font-size:.58rem;
  }
}


/* ---- Regional empty-listing state ---- */
.region-empty-listings-simple{
  display:block;
}
.region-empty-listings-simple>div{
  max-width:760px;
}


/* ---- Legal / policy pages ---- */
.legal-page{
  padding:58px 0 76px;
}
.legal-page .legal-container{
  max-width:940px;
}
.legal-page h1{
  margin:6px 0 12px;
  color:var(--green);
  font:400 clamp(2.3rem,5vw,3.8rem)/1.04 Georgia,serif;
}
.legal-page .legal-intro{
  max-width:820px;
  margin:0 0 30px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.7;
}
.legal-card{
  margin:0 0 14px;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.legal-card h2{
  margin:0 0 10px;
  color:#203228;
  font:400 1.45rem/1.2 Georgia,serif;
}
.legal-card h3{
  margin:18px 0 8px;
  font-size:1rem;
}
.legal-card p,
.legal-card li{
  color:#44544a;
  font-size:.92rem;
  line-height:1.68;
}
.legal-card ul{
  margin:8px 0 0;
  padding-left:20px;
}
.legal-meta{
  margin:0 0 22px;
  color:var(--muted);
  font-size:.78rem;
}
.legal-callout{
  padding:14px 16px;
  border-left:3px solid var(--green);
  border-radius:8px;
  background:var(--soft);
  color:#33463a;
  font-size:.9rem;
  line-height:1.6;
}
.cookie-table{
  width:100%;
  border-collapse:collapse;
  margin:12px 0 0;
  font-size:.88rem;
}
.cookie-table th,
.cookie-table td{
  padding:11px 10px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}
.cookie-table th{
  color:#526158;
  font-size:.75rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.cookie-controls{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:14px;
}
.cookie-status{
  display:inline-block;
  margin-top:10px;
  padding:7px 10px;
  border-radius:999px;
  background:#edf3ee;
  color:#2e6047;
  font-size:.78rem;
  font-weight:700;
}
@media(max-width:650px){
  .legal-page{padding:40px 0 58px}
  .legal-card{padding:18px}
  .cookie-table{min-width:680px}
  .cookie-table-wrap{overflow-x:auto}
}


/* ============================================================
   HHF gallery lightbox — frosted / translucent presentation
   ============================================================ */
.gallery-lightbox{
  --gallery-image-max-height:546px;
}

.gallery-lightbox-backdrop{
  background:rgba(17,35,27,.62) !important;
  backdrop-filter:blur(15px) saturate(.72);
  -webkit-backdrop-filter:blur(15px) saturate(.72);
  overflow:hidden;
}

.gallery-lightbox-backdrop::before{
  content:"";
  position:absolute;
  inset:-35px;
  background-image:var(--gallery-backdrop-image);
  background-position:center;
  background-size:cover;
  filter:blur(30px) brightness(.50) saturate(.68);
  opacity:.38;
  transform:scale(1.08);
}

.gallery-lightbox-dialog{
  width:min(1380px,calc(100% - 44px)) !important;
  height:calc(100% - 36px) !important;
  margin:18px auto !important;
  grid-template-columns:72px minmax(0,1fr) 72px !important;
  grid-template-rows:minmax(0,1fr) 104px;
  column-gap:12px;
  row-gap:10px;
  overflow:visible !important;
}

.gallery-lightbox-dialog figure{
  grid-column:2;
  grid-row:1;
  height:auto !important;
  align-self:center;
  min-height:0;
  grid-template-rows:auto auto !important;
}

.gallery-image-stage{
  height:auto !important;
  min-height:0;
}

.gallery-lightbox-image{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:min(var(--gallery-image-max-height),calc(100vh - 190px)) !important;
  object-fit:contain;
  margin:auto;
  border-radius:3px;
  box-shadow:0 18px 55px rgba(0,0,0,.30);
}

.gallery-lightbox-dialog figcaption{
  padding:10px 4px 0 !important;
  min-height:34px !important;
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.65);
}

.gallery-caption{
  color:rgba(255,255,255,.94) !important;
  font-size:.82rem !important;
  font-weight:600;
}

.gallery-counter{
  font-size:.82rem !important;
  color:#fff;
}

.gallery-prev,
.gallery-next{
  align-self:center;
  justify-self:center;
  background:rgba(39,103,70,.88) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:0 6px 22px rgba(0,0,0,.18);
  backdrop-filter:blur(8px);
}

.gallery-prev{grid-column:1;grid-row:1}
.gallery-next{grid-column:3;grid-row:1}

.gallery-lightbox-tools{
  top:4px !important;
  right:4px !important;
}

.gallery-thumbnail-rail{
  grid-column:1 / -1;
  grid-row:2;
  display:flex;
  align-items:center;
  gap:10px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:7px 12px 12px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.45) transparent;
}

.gallery-thumbnail{
  flex:0 0 92px;
  width:92px;
  height:76px;
  padding:0;
  border:2px solid transparent;
  border-radius:7px;
  overflow:hidden;
  background:rgba(255,255,255,.12);
  opacity:.72;
  cursor:pointer;
  transition:opacity .15s ease,border-color .15s ease,transform .15s ease;
}

.gallery-thumbnail:hover{
  opacity:1;
  transform:translateY(-2px);
}

.gallery-thumbnail.active{
  opacity:1;
  border-color:#f3ead7;
  box-shadow:0 0 0 1px rgba(255,255,255,.25);
}

.gallery-thumbnail img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.gallery-lightbox-dialog:fullscreen{
  display:grid !important;
  grid-template-columns:72px minmax(0,1fr) 72px !important;
  grid-template-rows:minmax(0,1fr) 104px !important;
  background:rgba(17,35,27,.78) !important;
  padding:18px 22px 0;
}

.gallery-lightbox-dialog:fullscreen figure{
  height:auto !important;
}

.gallery-lightbox-dialog:fullscreen .gallery-image-stage{
  max-height:none !important;
}

.gallery-lightbox-dialog:fullscreen .gallery-lightbox-image{
  max-height:min(var(--gallery-image-max-height),calc(100vh - 190px)) !important;
}

@media(max-width:760px){
  .gallery-lightbox{
    --gallery-image-max-height:70vh;
  }
  .gallery-lightbox-dialog{
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    grid-template-columns:48px minmax(0,1fr) 48px !important;
    grid-template-rows:minmax(0,1fr) 86px;
    padding:10px 4px 0;
  }
  .gallery-thumbnail{
    flex-basis:72px;
    width:72px;
    height:60px;
  }
  .gallery-thumbnail-rail{
    gap:7px;
    padding-inline:8px;
  }
  .gallery-prev,.gallery-next{
    width:40px;
    height:40px;
  }
}


/* Owner photo titles */
.photo-title-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
  padding:10px 0 4px;
}
.photo-title-form label{
  display:grid;
  gap:5px;
  margin:0;
}
.photo-title-form label>span{
  color:#526159;
  font-size:.78rem;
  font-weight:700;
}
.photo-title-form input{
  width:100%;
  min-width:0;
  padding:9px 10px;
  border:1px solid #d8d1c5;
  border-radius:8px;
  background:#fff;
  font:inherit;
}
.photo-title-save{
  white-space:nowrap;
}
@media(max-width:620px){
  .photo-title-form{
    grid-template-columns:1fr;
  }
  .photo-title-save{
    width:100%;
  }
}


/* ============================================================
   HHF PUBLIC PROPERTY — COMPACT / REFINED SCALE
   Scoped to the visitor property page only.
   ============================================================ */

.public-property{
  font-size:15px;
  line-height:1.5;
}

.public-property .container{
  width:min(1180px,calc(100% - 36px));
}

.public-property .property-summary{
  padding:42px 0 30px;
}

.public-property .property-content-section{
  padding:44px 0 54px;
}

.public-property .property-content-block{
  margin-bottom:42px;
}

.public-property .property-summary h1{
  max-width:800px;
  margin:.12em 0 .22em;
  font-size:clamp(2.25rem,4vw,3.65rem);
  line-height:1.03;
}

.public-property .property-subtitle{
  max-width:790px;
  margin:0;
  font-size:1rem;
  line-height:1.5;
}

.public-property .back-search{font-size:.82rem}

.public-property .eyebrow{
  margin-bottom:8px;
  font-size:.68rem;
  letter-spacing:.14em;
}

.public-property .property-content-block h2,
.public-property .nearby-facilities-heading h2,
.public-property .reviews-heading h2{
  margin:.08em 0 .38em;
  font-size:clamp(1.9rem,3vw,2.65rem);
  line-height:1.08;
}

.public-property .property-content-block h3{
  font-size:1.08rem;
  line-height:1.25;
}

.public-property .property-content-block p,
.public-property .property-content-block li{
  font-size:.94rem;
  line-height:1.55;
}

.public-property .public-property-layout{gap:34px}

.public-property .why-love-card,
.public-property .amenity-card,
.public-property .bedroom-card,
.public-property .nearby-place-card,
.public-property .location-premium-card,
.public-property .nearby-facility-category-card,
.public-property .review-card{
  border-radius:13px;
}

.public-property .why-love-card{padding:15px}
.public-property .why-love-card strong{font-size:.94rem}
.public-property .why-love-card small{font-size:.78rem}

.public-property .bedroom-card{padding:15px}
.public-property .bedroom-card h3{margin:0 0 7px;font-size:1rem}
.public-property .bedroom-card p,
.public-property .bedroom-card small{font-size:.8rem}

.public-property .amenities-grid{gap:8px 12px}
.public-property .amenity-item,
.public-property .amenity-row{font-size:.86rem}

.public-property .nearby-places-grid{gap:10px}
.public-property .nearby-place-card{padding:14px 15px}
.public-property .nearby-place-card h3{margin:2px 0 5px;font-size:1rem}
.public-property .nearby-place-card p{margin:0;font-size:.82rem;line-height:1.45}
.public-property .nearby-place-card small,
.public-property .nearby-place-card span{font-size:.73rem}

.public-property .nearby-facility-category-grid{gap:12px}
.public-property .nearby-facility-category-card{padding:15px}
.public-property .nearby-facility-category-card h3{margin:0 0 8px;font-size:1rem}
.public-property .nearby-facility-row{padding:9px 0}
.public-property .nearby-facility-row strong{font-size:.82rem}
.public-property .nearby-facility-row small,
.public-property .nearby-facility-row span{font-size:.72rem}
.public-property .nearby-facility-category-card > p{margin:10px 0 0;font-size:.76rem;line-height:1.45}

.public-property .public-booking-card{
  padding:20px;
  border-radius:14px;
}

.public-property .public-price strong{font-size:2rem}
.public-property .booking-trust-row{gap:6px;font-size:.76rem}

/* Reviews now sit below Useful things nearby and act as a compact social-proof finale. */
.public-property .property-reviews-section{
  padding-top:4px;
  margin-top:8px;
}

.public-property .reviews-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}

.public-property .reviews-heading h2{margin-bottom:0}

.public-property .reviews-score{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  column-gap:6px;
  align-items:center;
  min-width:105px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.public-property .reviews-score-star{
  grid-row:1 / 3;
  color:#b88b22;
  font-size:1.1rem;
}

.public-property .reviews-score strong{font:700 1.05rem/1 Georgia,serif}
.public-property .reviews-score small{color:var(--muted);font-size:.68rem}

.public-property .reviews-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.public-property .review-card{
  padding:15px;
  border:1px solid var(--line);
  background:#fff;
}

.public-property .review-card-head{gap:10px}
.public-property .review-card-head strong{font-size:.9rem}
.public-property .review-card-head span{font-size:.72rem}
.public-property .review-stars{font-size:.76rem;letter-spacing:1px}

.public-property .review-copy{
  margin:10px 0 0;
  font-size:.84rem !important;
  line-height:1.52 !important;
}

.public-property .review-source{
  display:block;
  margin-top:9px;
  color:var(--muted);
  font-size:.68rem;
}

.public-property .review-owner-response{
  margin-top:11px;
  padding:10px 11px;
}

.public-property .review-owner-response strong{font-size:.74rem}
.public-property .review-owner-response p{margin:4px 0 0;font-size:.76rem !important}

.public-property .property-gallery-section{padding-bottom:28px}

@media(max-width:900px){
  .public-property .reviews-grid{grid-template-columns:1fr}
  .public-property .property-content-block{margin-bottom:34px}
}

@media(max-width:600px){
  .public-property{font-size:14px}
  .public-property .container{width:min(100% - 24px,1180px)}
  .public-property .property-summary{padding:30px 0 22px}
  .public-property .property-content-section{padding:32px 0 42px}
  .public-property .property-summary h1{font-size:2.1rem}
  .public-property .property-content-block h2,
  .public-property .nearby-facilities-heading h2,
  .public-property .reviews-heading h2{font-size:1.85rem}
  .public-property .reviews-heading{align-items:flex-start;flex-direction:column}
}


/* Compact review excerpt control */
.public-property .review-more-button{
  appearance:none;
  border:0;
  padding:0;
  margin:7px 0 0;
  background:transparent;
  color:var(--green);
  font:700 .76rem/1.2 inherit;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
}

.public-property .review-more-button:hover{
  text-decoration-thickness:2px;
}

.public-property .review-copy[hidden]{
  display:none !important;
}


/* ============================================================
   HHF VISITOR SITE — DEFINITIVE COMPACT SCALE PASS
   Added after all existing rules so it wins the cascade.
   Owner Portal is excluded.
   ============================================================ */

body:not(.owner-portal){
  font-size:14px;
  line-height:1.48;
}

/* Header: materially slimmer */
body:not(.owner-portal) .nav-wrap{
  min-height:64px;
}
body:not(.owner-portal) .site-header .brand img{
  max-height:54px;
  width:auto;
}
body:not(.owner-portal) .site-header .brand strong{
  font-size:1rem;
}
body:not(.owner-portal) .site-header .brand small{
  font-size:.62rem;
}
body:not(.owner-portal) .main-nav{
  gap:20px;
  font-size:.82rem;
}
body:not(.owner-portal) .nav-cta{
  padding:9px 15px;
  font-size:.82rem;
}

/* Global visitor headings/spacing */
body:not(.owner-portal) .section{
  padding:60px 0;
}
body:not(.owner-portal) .section-heading{
  margin-bottom:24px;
}
body:not(.owner-portal) .section h2,
body:not(.owner-portal) .owner-cta h2,
body:not(.owner-portal) .panel h2{
  font-size:clamp(1.75rem,3vw,2.55rem);
}
body:not(.owner-portal) .lead{
  font-size:1rem;
}
body:not(.owner-portal) .eyebrow{
  font-size:.64rem;
}

/* PROPERTY PAGE — make the size reduction unmistakable */
body:not(.owner-portal) .public-property .property-summary{
  padding:30px 0 22px !important;
}
body:not(.owner-portal) .public-property .property-summary h1{
  font-size:clamp(2rem,3.3vw,3rem) !important;
  line-height:1.04 !important;
}
body:not(.owner-portal) .public-property .property-subtitle{
  font-size:.9rem !important;
}
body:not(.owner-portal) .public-property .summary-facts span{
  padding:6px 9px !important;
  font-size:.74rem !important;
}
body:not(.owner-portal) .public-property .property-content-section{
  padding:32px 0 44px !important;
}
body:not(.owner-portal) .public-property .public-property-layout{
  gap:28px !important;
}
body:not(.owner-portal) .public-property .property-content-block{
  padding-bottom:28px !important;
  margin-bottom:28px !important;
}
body:not(.owner-portal) .public-property .property-content-block h2,
body:not(.owner-portal) .public-property .nearby-facilities-heading h2,
body:not(.owner-portal) .public-property .reviews-heading h2{
  font:400 clamp(1.55rem,2.4vw,2.15rem)/1.08 Georgia,serif !important;
  margin:.06em 0 .32em !important;
}
body:not(.owner-portal) .public-property .property-content-block h3{
  font-size:.95rem !important;
}
body:not(.owner-portal) .public-property .property-content-block p,
body:not(.owner-portal) .public-property .property-content-block li{
  font-size:.82rem !important;
  line-height:1.48 !important;
}

/* Keep the main About description as comfortable to read as the region copy.
   Other property-page cards and supporting text remain deliberately compact. */
body:not(.owner-portal) .public-property .property-description{
  color:var(--muted);
  font-size:.94rem !important;
  line-height:1.65 !important;
}

/* Cards/rows */
body:not(.owner-portal) .public-property .why-love-card,
body:not(.owner-portal) .public-property .bedroom-card,
body:not(.owner-portal) .public-property .nearby-place-card,
body:not(.owner-portal) .public-property .nearby-facility-category-card,
body:not(.owner-portal) .public-property .review-card{
  padding:12px !important;
}
body:not(.owner-portal) .public-property .why-love-card strong,
body:not(.owner-portal) .public-property .nearby-place-card h3,
body:not(.owner-portal) .public-property .nearby-facility-category-card h3{
  font-size:.88rem !important;
}
body:not(.owner-portal) .public-property .why-love-card small,
body:not(.owner-portal) .public-property .nearby-place-card p,
body:not(.owner-portal) .public-property .nearby-facility-row strong{
  font-size:.74rem !important;
}
body:not(.owner-portal) .public-property .nearby-facility-row{
  padding:7px 0 !important;
}
body:not(.owner-portal) .public-property .nearby-facility-row small,
body:not(.owner-portal) .public-property .nearby-facility-row span{
  font-size:.66rem !important;
}

/* Reviews: compact enough to scan, not dominate */
body:not(.owner-portal) .public-property .reviews-grid{
  gap:10px !important;
}
body:not(.owner-portal) .public-property .review-card-head strong{
  font-size:.82rem !important;
}
body:not(.owner-portal) .public-property .review-card-head span,
body:not(.owner-portal) .public-property .review-stars{
  font-size:.67rem !important;
}
body:not(.owner-portal) .public-property .review-copy{
  font-size:.76rem !important;
  line-height:1.45 !important;
}
body:not(.owner-portal) .public-property .review-source{
  font-size:.62rem !important;
}
body:not(.owner-portal) .public-property .review-owner-response{
  padding:8px 9px !important;
}
body:not(.owner-portal) .public-property .review-owner-response strong{
  font-size:.68rem !important;
}
body:not(.owner-portal) .public-property .review-owner-response p{
  font-size:.7rem !important;
}
body:not(.owner-portal) .public-property .review-more-button{
  font-size:.7rem !important;
}

/* Booking card */
body:not(.owner-portal) .public-property .public-booking-card{
  padding:16px !important;
}
body:not(.owner-portal) .public-property .public-price strong{
  font-size:1.7rem !important;
}

/* Footer slightly tighter to match */
body:not(.owner-portal) .site-footer{
  padding:44px 0 18px;
}
body:not(.owner-portal) .site-footer,
body:not(.owner-portal) .site-footer a{
  font-size:.78rem;
}
body:not(.owner-portal) .footer-bottom{
  margin-top:28px;
  padding-top:16px;
  font-size:.72rem;
}

@media(max-width:700px){
  body:not(.owner-portal) .nav-wrap{min-height:60px}
  body:not(.owner-portal) .public-property .property-summary h1{
    font-size:1.9rem !important;
  }
  body:not(.owner-portal) .public-property .property-content-block h2,
  body:not(.owner-portal) .public-property .nearby-facilities-heading h2,
  body:not(.owner-portal) .public-property .reviews-heading h2{
    font-size:1.55rem !important;
  }
}


/* Review score: explicit scale and visually matching five-star rating */
.public-property .reviews-score{
  grid-template-columns:1fr !important;
  grid-template-rows:auto auto auto !important;
  gap:3px !important;
  min-width:118px !important;
  text-align:center;
}

.public-property .reviews-score-stars{
  color:#b88b22;
  font-size:.82rem;
  letter-spacing:1px;
  line-height:1;
}

.public-property .reviews-score-stars span{
  color:#d9d2c5;
}

.public-property .reviews-score strong{
  font:700 1.02rem/1.1 Georgia,serif !important;
}

.public-property .reviews-score small{
  font-size:.66rem !important;
}

.public-property .review-owner-copy{
  margin:4px 0 0;
  font-size:.7rem !important;
  line-height:1.45 !important;
}

.public-property .review-owner-response .review-more-button{
  margin-top:6px;
}


/* ============================================================
   REVIEW CARDS — ALIGNED INTERNAL ROWS
   Name/stars | review | source | owner heading | owner response
   ============================================================ */
.public-property .reviews-grid{
  align-items:stretch !important;
}
.public-property .review-card{
  display:grid !important;
  grid-template-rows:
    42px        /* reviewer / stars */
    118px       /* review preview + See more */
    38px        /* source */
    30px        /* Owner Response heading */
    108px;      /* owner response preview + See more */
  height:100% !important;
  padding:0 !important;
  overflow:hidden;
}
.public-property .review-card-head{
  grid-row:1;
  min-height:0 !important;
  padding:12px 14px 8px !important;
  margin:0 !important;
  border-bottom:1px solid #eee8de;
  box-sizing:border-box;
}
.public-property .review-card > .review-copy-wrap{
  grid-row:2;
  min-height:0 !important;
  padding:10px 14px !important;
  margin:0 !important;
  display:flex !important;
  flex-direction:column !important;
  box-sizing:border-box;
  overflow:hidden;
}
.public-property .review-card > .review-copy-wrap .review-more-button{
  margin-top:auto !important;
  align-self:flex-start;
}
.public-property .review-source{
  grid-row:3;
  display:flex !important;
  align-items:center;
  min-height:0 !important;
  margin:0 !important;
  padding:8px 14px !important;
  border-top:1px solid #eee8de;
  border-bottom:1px solid #eee8de;
  box-sizing:border-box;
}
.public-property .review-owner-response{
  grid-row:4 / 6;
  display:grid !important;
  grid-template-rows:30px 108px;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#f7f4ed !important;
}
.public-property .review-owner-response > strong{
  grid-row:1;
  display:flex;
  align-items:center;
  padding:0 14px;
  border-bottom:1px solid #ebe4d8;
  box-sizing:border-box;
}
.public-property .review-owner-response > .review-copy-wrap{
  grid-row:2;
  min-height:0 !important;
  padding:10px 14px !important;
  margin:0 !important;
  display:flex !important;
  flex-direction:column !important;
  box-sizing:border-box;
  overflow:hidden;
}
.public-property .review-owner-response .review-more-button{
  margin-top:auto !important;
  align-self:flex-start;
}

/* Keep the layout aligned even when a source or owner response is absent. */
.public-property .review-card:not(:has(.review-source))::before{
  content:"";
  grid-row:3;
  border-top:1px solid #eee8de;
  border-bottom:1px solid #eee8de;
}
.public-property .review-card:not(:has(.review-owner-response))::after{
  content:"";
  grid-row:4 / 6;
  background:#f7f4ed;
}

/* Expanded content can grow naturally; alignment applies to collapsed state. */
.public-property .review-card:has(.review-more-button[aria-expanded="true"]){
  grid-template-rows:auto auto 38px 30px auto;
}
.public-property .review-card:has(.review-more-button[aria-expanded="true"]) .review-copy-wrap{
  overflow:visible;
}

@media(max-width:900px){
  .public-property .review-card{
    display:block !important;
    padding:12px !important;
  }
  .public-property .review-card-head,
  .public-property .review-card > .review-copy-wrap,
  .public-property .review-source,
  .public-property .review-owner-response{
    min-height:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .public-property .review-card:not(:has(.review-source))::before,
  .public-property .review-card:not(:has(.review-owner-response))::after{
    display:none;
  }
  .public-property .review-owner-response{
    display:block !important;
    padding:9px !important;
    border-radius:8px !important;
    margin-top:10px !important;
  }
  .public-property .review-owner-response > strong{
    padding:0 0 6px !important;
  }
  .public-property .review-owner-response > .review-copy-wrap{
    padding:0 !important;
  }
}

/* Internal compliance number on public ad — discreet, not promotional. */
.public-property .property-registration-line{
  margin:28px auto 6px;
  padding:18px 12px 0;
  border-top:1px solid #e9e2d7;
  color:#737d76;
  font-size:.72rem;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  width:100%;
}
.public-property .property-registration-house{
  display:block;
  width:28px;
  height:27px;
  object-fit:contain;
  margin:0 auto 4px;
}
.public-property .property-registration-line span{
  font-weight:600;
}
.public-property .property-registration-line strong{
  color:#59635d;
  font-size:.76rem;
  font-weight:700;
}

/* Registration/privacy explanation in Owner Area */
.owner-registration-info{
  margin-top:14px;
  padding:14px 16px;
  border:1px solid #d9d0bf;
  border-left:4px solid #1f6549;
  border-radius:10px;
  background:#f7f4ec;
  font-size:.82rem;
  line-height:1.5;
}
.owner-registration-info p{margin:7px 0;}
.owner-registration-info a{font-weight:700;color:#1f6549;}
.owner-registration-info.compact{margin-top:10px;}

/* Review rows: keep See more visible in every collapsed card. */
.public-property .review-card > .review-copy-wrap,
.public-property .review-owner-response > .review-copy-wrap{
  display:grid !important;
  grid-template-rows:minmax(0,1fr) auto !important;
  gap:5px !important;
}
.public-property .review-card > .review-copy-wrap .review-copy-preview,
.public-property .review-owner-response > .review-copy-wrap .review-copy-preview{
  min-height:0 !important;
  overflow:hidden !important;
  margin:0 !important;
}
.public-property .review-card > .review-copy-wrap .review-more-button,
.public-property .review-owner-response > .review-copy-wrap .review-more-button{
  display:inline-block !important;
  position:relative !important;
  z-index:2 !important;
  margin:0 !important;
  align-self:end !important;
  justify-self:start !important;
}
/* Give 200-character excerpts enough room while preserving aligned rows. */
.public-property .review-card{
  grid-template-rows:42px 136px 38px 30px 126px !important;
}
.public-property .review-owner-response{
  grid-template-rows:30px 126px !important;
}
.public-property .review-card:has(.review-more-button[aria-expanded="true"]){
  grid-template-rows:auto auto 38px 30px auto !important;
}
@media(max-width:900px){
  .public-property .review-card{display:block !important;}
}

/* v235 — owner Nearby Places drag-and-drop ordering */
.owner-nearby-card{position:relative;align-items:center}
.owner-nearby-card-copy{min-width:0;flex:1 1 auto}
.nearby-drag-handle{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-width:132px;cursor:grab;touch-action:none;user-select:none;white-space:nowrap;
}
.nearby-drag-handle:hover{background:#eef5f0;border-color:#9ab5a3}
.nearby-drag-handle:active,.owner-nearby-card.is-dragging .nearby-drag-handle{cursor:grabbing}
.nearby-drag-icon{font-size:1rem;line-height:1;color:var(--green);font-weight:900}
.owner-nearby-card.is-dragging{z-index:5;border-color:#6f9b7d;background:#f6fbf7;box-shadow:0 10px 28px rgba(26,66,43,.16);transform:scale(1.01)}
.owner-nearby-list.is-sorting{user-select:none}
.owner-nearby-list.is-saving{opacity:.72;pointer-events:none}
@media(max-width:800px){
  .owner-nearby-card{display:flex;flex-direction:column;align-items:stretch}
  .owner-nearby-actions{width:100%;justify-content:flex-end}
  .nearby-drag-handle{min-width:132px}
}

/* HHF calendar / iCal sync */
.ical-alert,.ical-no-conflicts{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;margin:0 0 18px}.ical-alert strong,.ical-alert span,.ical-no-conflicts strong,.ical-no-conflicts span{display:block}.ical-alert.error{border-color:#e5b8b8;background:#fff7f7}.ical-alert.success,.ical-no-conflicts{border-color:#b9d8c0;background:#f7fcf8}.ical-conflicts{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:22px;padding:20px;border:1px solid #e3b6a9;border-radius:18px;background:#fff9f6;margin:0 0 22px}.ical-conflicts h2{margin:.1rem 0 .35rem}.ical-conflict-list{display:grid;gap:8px}.ical-conflict-list article{padding:11px 13px;border-radius:12px;background:#fff;border:1px solid #edd2ca}.ical-conflict-list strong,.ical-conflict-list span{display:block}.ical-conflict-list span{margin-top:3px;color:var(--muted)}
.availability-form select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink)}.ical-panel{margin-top:22px}.ical-feed-list{display:grid}.ical-feed-row{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid var(--line)}.ical-feed-row:first-child{border-top:0}.ical-feed-row strong,.ical-feed-row span,.ical-feed-row small{display:block}.ical-feed-row span{margin-top:3px}.ical-feed-row small{margin-top:4px;color:var(--muted)}.ical-error-text{color:#9d3b32!important}.ical-feed-actions form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.small-link{border:0;background:transparent;padding:5px 0;color:var(--green);font:inherit;font-weight:700;cursor:pointer}.button.small{padding:8px 12px}.ical-export-box{display:grid;grid-template-columns:1fr auto;gap:10px;margin:14px 0 8px}.ical-export-box input{min-width:0;width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fafafa;color:var(--ink)}
@media(max-width:760px){.ical-conflicts{grid-template-columns:1fr}.ical-feed-row{display:grid}.ical-export-box{grid-template-columns:1fr}.ical-export-box .button{width:100%}}

/* Registration footer: reviews flow cleanly into the centred Mairie badge. */
.public-property .property-reviews-section{
  border-bottom:none !important;
}
.public-property .property-registration-line{
  border-top:none !important;
}

/* v254 — tighten the gap between public reviews and the registration badge. */
.public-property .property-registration-line{
  margin-top:12px !important;
  padding-top:8px !important;
}


/* v255 — remove the inherited large content-block gap after Reviews.
   The registration badge should follow the review cards with only
   a normal section-sized breathing space. */
body:not(.owner-portal) .public-property .property-reviews-section{
  padding-bottom:0 !important;
  margin-bottom:6px !important;
}

body:not(.owner-portal) .public-property .property-registration-line{
  margin-top:8px !important;
  padding-top:4px !important;
}

/* ---- Owner UI polish: Host Story spacing + Host Profile width ---- */
/* Keep the Host Story cards visually grouped: approximately half the old gap. */
.host-story-sections{
  gap:10px;
}
.host-story-form{
  gap:10px;
}

/* Match the Host Profile card to the full-width Host Story cards. */
.host-profile-panel{
  max-width:none;
  width:100%;
  box-sizing:border-box;
}

/* v257 — Host Story: use the same gap between cards as Section 3 → Save button. */
.host-story-sections > .panel,
.host-story-form > .panel{
  margin-top:0 !important;
}
.host-story-sections,
.host-story-form{
  gap:10px !important;
}


/* v258 — Host Profile facts: three equal columns with 10px gaps. */
.host-profile-meta-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
}
@media(max-width:650px){
  .host-profile-meta-grid{
    grid-template-columns:1fr !important;
  }
}


/* v259 — Host Profile: keep all three profile-fact controls exactly the same height. */
.host-profile-meta-grid input,
.host-profile-meta-grid select{
  width:100%;
  height:46px !important;
  min-height:46px !important;
  box-sizing:border-box;
  padding:0 13px !important;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  line-height:46px;
}

.host-profile-meta-grid select{
  line-height:normal;
}


/* v260 — Nearby Places: match Host Story header-to-card spacing.
   The generic .panel adds its own top margin; remove that inside
   the Nearby Places two-card layout so only the normal page-header
   gap remains. */
.nearby-owner-layout > .panel{
  margin-top:0 !important;
}

/* Seasonal-rate calendar colours — visitor calendar. The owner's chosen
   season colour replaces the pale available colour, while booked and selected
   states retain their existing priority. */
.availability-public-block .dh-cal-day.has-season-colour:not(.booked):not(.changeover-start):not(.changeover-end):not(.selected){
  background:var(--season-colour,#f0fff0);
}
.availability-public-block .dh-cal-day.has-season-colour.changeover-start:not(.selected){
  background:linear-gradient(135deg,var(--season-colour,#f0fff0) 0 49.5%,#d55252 50% 100%);
}
.availability-public-block .dh-cal-day.has-season-colour.changeover-end:not(.selected){
  background:linear-gradient(135deg,#d55252 0 49.5%,var(--season-colour,#f0fff0) 50% 100%);
}
.availability-public-block .dh-calendar-legend .legend-season{
  border-color:rgba(0,0,0,.14);
}
.availability-public-block .dh-calendar-legend .legend-season-item{
  white-space:nowrap;
}


/* Public property — seasonal pricing year selector */
.public-property .public-rate-year-filter{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 10px;
}
.public-property .public-rate-year-filter > span{
  color:#66736b;
  font-size:12px;
  font-weight:700;
}
.public-property .public-rate-year-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.public-property .public-rate-year-buttons button{
  min-width:54px;
  padding:6px 10px;
  border:1px solid #d7cfbf;
  border-radius:999px;
  background:#fff;
  color:#214b39;
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.public-property .public-rate-year-buttons button:hover{
  background:#f6f1e8;
}
.public-property .public-rate-year-buttons button.active{
  border-color:#2f654f;
  background:#2f654f;
  color:#fff;
}
.public-property .public-rate-row[hidden]{
  display:none !important;
}


/* Rates / Availability section spacing:
   prevent generic content-card spacing from inflating the gap,
   and match the balanced divider spacing used by Location -> Explore Nearby. */
body:not(.owner-portal) .public-property .rates-calendar-layout > .property-content-block{
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}
body:not(.owner-portal) .public-property .rates-calendar-layout{
  position:relative;
  padding-bottom:28px !important;
  margin-bottom:28px !important;
  border-bottom:1px solid var(--line) !important;
}
body:not(.owner-portal) .public-property .rates-calendar-layout::after{
  content:none !important;
}

/* Top listing review rating box */
.summary-facts-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
}
.summary-rating{
  flex:0 0 auto;
  min-width:92px;
  padding:7px 10px 8px;
  border:1px solid #ddd2c1;
  border-radius:10px;
  background:#fff;
  color:inherit;
  text-align:center;
  text-decoration:none;
  line-height:1.05;
}
.summary-rating-stars{
  display:block;
  color:#b78100;
  font-size:12px;
  letter-spacing:1px;
  margin-bottom:3px;
}
.summary-rating strong{
  display:block;
  font-family:Georgia,serif;
  font-size:17px;
  line-height:1.05;
}
.summary-rating small{
  display:block;
  margin-top:2px;
  font-size:10px;
}
.summary-rating:hover{text-decoration:none}
@media(max-width:820px){
  .summary-facts-row{justify-content:space-between;gap:10px}
  .summary-rating{min-width:82px}
}


/* Facilities -> Rates divider: equal breathing room above and below the single line. */
body:not(.owner-portal) .public-property .mobile-order-facilities{
  border-bottom:1px solid var(--line) !important;
  padding-bottom:28px !important;
  margin-bottom:28px !important;
}
body:not(.owner-portal) .public-property .rates-calendar-layout{
  border-top:0 !important;
  padding-top:0 !important;
}

/* =========================================================
   HOMEPAGE — COMPACT DESKTOP SCALE + FULL SEARCH
   Scoped to .home-page so other public/owner pages are untouched.
   ========================================================= */
.home-page .hero{
  min-height:590px;
}
.home-page .hero-inner{
  padding:62px 0 48px;
}
.home-page .hero h1{
  font-size:clamp(2.8rem,5vw,4.75rem);
  max-width:780px;
}
.home-page .hero-copy{
  max-width:670px;
  font-size:1.02rem;
  line-height:1.5;
}
.home-page .hero-points{
  margin-top:16px;
  gap:18px;
  font-size:.78rem;
}
.home-page .trust-inner{
  padding:14px 0;
  font-size:.9rem;
}
.home-page .section{
  padding:64px 0;
}
.home-page .section-heading{
  margin-bottom:24px;
}
.home-page .section h2,
.home-page .owner-cta h2{
  font-size:clamp(1.9rem,3vw,2.85rem);
}
.home-page .section-intro{
  margin-top:7px;
  font-size:.92rem;
}
.home-page .property-grid{
  gap:18px;
}
.home-page .property-image{
  height:220px;
}
.home-page .property-content{
  padding:17px 18px;
}
.home-page .property-content h3{
  font-size:1.45rem;
}
.home-page .property-meta{
  margin-bottom:12px;
}
.home-page .department-grid{
  margin-top:22px;
  gap:11px;
}
.home-page .department-grid a{
  padding:16px 18px;
  border-radius:12px;
}
.home-page .department-grid strong{
  font-size:1.35rem;
}
.home-page .department-grid span{
  font-size:.82rem;
}
.home-page .split{
  gap:48px;
}
.home-page .benefits div{
  padding:16px 0;
}
.home-page .benefits strong{
  font-size:1rem;
}
.home-page .benefits span:not(.benefit-number){
  font-size:.88rem;
}
.home-page .owner-cta{
  padding:52px 0;
}
.home-page .button-light{
  padding:11px 18px;
}

/* Multi-department destination pages (Normandy and Pays de la Loire). */
.home-page .department-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.regional-overview-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.regional-overview-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 78% 42%,rgba(255,255,255,.12),transparent 27%),
    linear-gradient(135deg,#123324 0%,#315f48 58%,#244735 100%);
}
.regional-overview-map{
  position:absolute;
  z-index:-1;
  top:-12%;
  right:2%;
  width:min(46vw,610px);
  height:124%;
  background:url('../images/france-regions-clean.svg') center/contain no-repeat;
  opacity:.14;
  filter:brightness(0) invert(1);
  pointer-events:none;
}
.regional-highlights-section{
  padding-top:0!important;
}
.regional-department-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.regional-department-card{
  display:flex;
  flex-direction:column;
  min-height:220px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  transition:transform .18s ease,box-shadow .18s ease;
}
.regional-department-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
}
.regional-department-card>span{
  color:#768077;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
}
.regional-department-card h3{
  margin:7px 0 9px;
  color:#234838;
  font:400 1.28rem/1.2 Georgia,serif;
}
.regional-department-card p{
  margin:0 0 18px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55;
}
.regional-department-card strong{
  margin-top:auto;
  color:var(--green);
  font-size:.72rem;
}
.regional-at-glance{
  border-top:1px solid rgba(255,255,255,.12);
  background:#234838;
  color:#fff;
}
.regional-at-glance .container{
  display:flex;
  align-items:center;
  gap:20px;
  padding-top:18px;
  padding-bottom:18px;
}
.regional-at-glance strong{
  white-space:nowrap;
  font-family:Georgia,serif;
  font-size:1.05rem;
  font-weight:400;
}
.regional-at-glance span{
  color:rgba(255,255,255,.76);
  font-size:.78rem;
}
@media(max-width:1080px){
  .regional-department-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .regional-overview-map{right:-18%;width:82vw;opacity:.1}
  .regional-department-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .regional-at-glance .container{align-items:flex-start;flex-direction:column;gap:5px}
}
@media(max-width:900px){
  .home-page .department-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .home-page .department-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .regional-department-grid{grid-template-columns:1fr}
  .regional-department-card{min-height:0}
}

/* Homepage search: Where / Department / Guests / Arrival / Departure,
   with More filters on row two and Search on the right. */
.home-page .home-search{
  width:100%;
  margin-top:24px;
  padding:10px;
  display:grid;
  grid-template-columns:1.45fr .95fr .82fr .64fr .64fr;
  gap:8px 10px;
  border-radius:14px;
  background:#f3edde;
  color:var(--ink);
  box-shadow:0 18px 45px rgba(0,0,0,.20);
}
.home-page .home-search>label{
  display:grid;
  gap:4px;
  min-width:0;
}
.home-page .home-search>label>span{
  font-size:.72rem;
  font-weight:800;
  color:#19251e;
}
.home-page .home-search input,
.home-page .home-search select{
  width:100%;
  min-width:0;
  height:44px;
  padding:0 11px;
  border:1px solid #d9d2c5;
  border-radius:9px;
  background:#fff;
  color:var(--ink);
  font:600 .82rem Arial,Helvetica,sans-serif;
  outline:none;
}
.home-page .home-search input:focus,
.home-page .home-search select:focus{
  border-color:#7d9d89;
  box-shadow:0 0 0 2px rgba(51,88,68,.10);
}
.home-page .home-search-actions{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 130px;
  gap:10px;
  align-items:start;
}
.home-page .home-search-actions>button{
  height:46px;
  border:0;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.home-page .home-search-actions>button:hover{
  background:var(--green-dark);
}
.home-page .home-more-filters>summary{
  min-height:46px;
  border-radius:9px;
}
.home-page .home-more-filters .more-filters-panel{
  position:relative;
  z-index:4;
  margin-top:7px;
}

@media(max-width:900px){
  .home-page .hero{min-height:560px}
  .home-page .home-search{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .home-page .home-search-actions{grid-column:1/-1}
}
@media(max-width:600px){
  .home-page .hero{min-height:auto}
  .home-page .hero-inner{padding:54px 0 42px}
  .home-page .hero h1{font-size:2.75rem}
  .home-page .section{padding:52px 0}
  .home-page .home-search{grid-template-columns:1fr}
  .home-page .home-search-actions{grid-template-columns:1fr}
}


/* =========================================================
   HOMEPAGE PROPERTY CARDS — compact 4-across browse cards
   Maximum 8 are rendered by index.php.
   ========================================================= */
.home-page .homepage-property-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,260px));
  gap:14px;
  justify-content:start;
  align-items:stretch;
}

.home-page .homepage-property-card{
  width:100%;
  min-width:0;
  border-radius:11px;
  box-shadow:none;
}

.home-page .homepage-property-card:hover{
  transform:translateY(-2px);
  box-shadow:0 7px 20px rgba(0,0,0,.06);
}

.home-page .homepage-property-card > a{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
}

.home-page .homepage-property-card .property-image{
  height:138px !important;
  flex:0 0 138px;
}

.home-page .homepage-property-card .property-content{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:10px 11px 11px !important;
}

.home-page .homepage-property-card .property-content h3{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px;
  margin:0 0 6px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.91rem !important;
  line-height:1.2;
  font-weight:700;
}

.home-page .homepage-property-card .property-content h3 small{
  font:600 .76rem/1.2 Arial,Helvetica,sans-serif;
  color:var(--muted);
}

.home-page .homepage-property-card .property-meta{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 7px !important;
  color:#4f5f56;
  font-size:.72rem;
  line-height:1.25;
}

.home-page .homepage-property-card .property-meta span + span::before{
  content:" · ";
  margin:0 4px;
}

.home-page .homepage-card-price{
  margin:0 0 6px;
  color:#25352c;
  font-size:.72rem;
  line-height:1.2;
}

.home-page .homepage-card-price strong{
  color:var(--ink);
  font-size:1rem;
}

.home-page .homepage-property-card .card-link{
  margin-top:auto;
  color:var(--green);
  font-size:.72rem;
  line-height:1.2;
  font-weight:800;
}

.home-page .homepage-property-card .badge{
  font-size:.62rem;
  padding:4px 7px;
}

@media(max-width:1120px){
  .home-page .homepage-property-grid{
    grid-template-columns:repeat(3,minmax(0,260px));
  }
}
@media(max-width:850px){
  .home-page .homepage-property-grid{
    grid-template-columns:repeat(2,minmax(0,260px));
  }
}
@media(max-width:580px){
  .home-page .homepage-property-grid{
    grid-template-columns:1fr;
  }
  .home-page .homepage-property-card{
    max-width:360px;
  }
  .home-page .homepage-property-card .property-image{
    height:165px !important;
    flex-basis:165px;
  }
}


/* =========================================================
   SEARCH RESULTS — compact property cards to match homepage
   ========================================================= */
.search-page .search-property-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,260px));
  gap:14px;
  justify-content:start;
  align-items:stretch;
}

.search-page .search-property-card{
  width:100%;
  min-width:0;
  border-radius:11px;
  box-shadow:none;
}

.search-page .search-property-card:hover{
  transform:translateY(-2px);
  box-shadow:0 7px 20px rgba(0,0,0,.06);
}

.search-page .search-property-card > a{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
}

.search-page .search-property-card .property-image{
  height:138px !important;
  flex:0 0 138px;
}

.search-page .search-property-card .property-content{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:10px 11px 11px !important;
}

.search-page .search-property-card .property-content h3{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px;
  margin:0 0 6px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.91rem !important;
  line-height:1.2;
  font-weight:700;
}

.search-page .search-property-card .property-content h3 small{
  font:600 .76rem/1.2 Arial,Helvetica,sans-serif;
  color:var(--muted);
}

.search-page .search-property-card .property-meta{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 7px !important;
  color:#4f5f56;
  font-size:.72rem;
  line-height:1.25;
}

.search-page .search-property-card .property-meta span + span::before{
  content:" · ";
  margin:0 4px;
}

.search-page .search-card-price{
  margin:0 0 6px;
  color:#25352c;
  font-size:.72rem;
  line-height:1.2;
}

.search-page .search-card-price strong{
  color:var(--ink);
  font-size:1rem;
}

.search-page .search-property-card .card-link{
  margin-top:auto;
  color:var(--green);
  font-size:.72rem;
  line-height:1.2;
  font-weight:800;
}

.search-page .search-property-card .badge{
  font-size:.62rem;
  padding:4px 7px;
}

@media(max-width:1120px){
  .search-page .search-property-grid{
    grid-template-columns:repeat(3,minmax(0,260px));
  }
}
@media(max-width:850px){
  .search-page .search-property-grid{
    grid-template-columns:repeat(2,minmax(0,260px));
  }
}
@media(max-width:580px){
  .search-page .search-property-grid{
    grid-template-columns:1fr;
  }
  .search-page .search-property-card{
    max-width:360px;
  }
  .search-page .search-property-card .property-image{
    height:165px !important;
    flex-basis:165px;
  }
}


/* =========================================================
   FOUNDING MEMBER — first 50 Holiday House France properties
   ========================================================= */
.property-image{
  position:relative;
}

.founding-badge{
  position:absolute;
  z-index:3;
  top:9px;
  left:9px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 8px;
  border:1px solid rgba(151,117,38,.45);
  border-radius:999px;
  background:rgba(255,251,235,.96);
  color:#6e5417;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  font-size:.64rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.02em;
  white-space:nowrap;
}

.founding-member-property-badge{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  align-self:center;
  padding:5px 9px;
  border:1px solid #c8ad69;
  border-radius:999px;
  background:#fff9e8;
  color:#6e5417;
  font-size:.69rem;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
}

.property-host-section .host-summary-three-column .founding-member-property-badge{
  grid-column:1 / 3;
  grid-row:4;
  margin-top:5px;
}

@media(max-width:620px){
  .founding-badge{
    top:7px;
    left:7px;
    font-size:.61rem;
  }
}


/* Rich department destination guides */
.region-local-knowledge{
  margin-top:18px!important;
  padding:13px 15px;
  border-left:3px solid #8aa792;
  border-radius:6px;
  background:#f4f7f2;
  font-size:.9rem;
}
.region-guide-intro-grid,
.region-travel-grid{
  display:grid;
  grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);
  gap:54px;
  align-items:start;
}
.region-guide-kicker h2,
.region-travel-grid h2{
  margin:6px 0 0;
  max-width:440px;
}
.region-guide-copy,
.region-travel-copy{
  max-width:760px;
  color:var(--muted);
  line-height:1.72;
}
.region-guide-copy p:first-child,
.region-travel-copy p:first-child{margin-top:0}
.region-guide-copy p:last-child,
.region-travel-copy p:last-child{margin-bottom:0}
.region-guide-heading{margin-bottom:24px}
.region-place-card-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.region-place-card{
  min-height:180px;
  padding:20px;
  border:1px solid #ddd5c7;
  border-radius:12px;
  background:#fff;
}
.region-place-card h3{
  margin:0 0 9px;
  color:#234838;
  font-size:1.08rem;
}
.region-place-card p{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.55;
}
.region-experience-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.region-experience-card{
  padding:24px;
  border-top:3px solid #557762;
  border-radius:0 0 12px 12px;
  background:#faf8f3;
}
.region-experience-card h3{
  margin:0 0 10px;
  color:#234838;
  font-size:1.15rem;
}
.region-experience-card p{
  margin:0;
  color:var(--muted);
  line-height:1.62;
}
.region-season-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.region-season-card{
  padding:20px;
  border:1px solid #ddd5c7;
  border-radius:12px;
  background:#fff;
}
.region-season-icon{
  display:block;
  margin-bottom:8px;
  font-size:1.45rem;
}
.region-season-card h3{
  margin:0 0 8px;
  color:#234838;
  font-size:1.08rem;
}
.region-season-card p{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.55;
}
@media(max-width:980px){
  .region-place-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .region-season-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .region-experience-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .region-guide-intro-grid,
  .region-travel-grid{grid-template-columns:1fr;gap:20px}
}
@media(max-width:560px){
  .region-place-card-grid,
  .region-season-grid{grid-template-columns:1fr}
  .region-place-card{min-height:0}
}


/* Four Périgords */
.region-perigord-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.region-perigord-card{
  padding:24px;
  border:1px solid #d9d1c3;
  border-radius:13px;
  background:#fffdf9;
}
.region-perigord-card h3{
  margin:0 0 5px;
  color:#234838;
  font-size:1.3rem;
}
.region-perigord-strap{
  margin:0 0 13px!important;
  color:#6b755f!important;
  font-size:.84rem!important;
  font-weight:700;
}
.region-perigord-card > p:not(.region-perigord-strap):not(.region-perigord-places){
  color:var(--muted);
  line-height:1.62;
}
.region-perigord-places{
  margin:15px 0 0!important;
  padding-top:12px;
  border-top:1px solid #e5ded3;
  color:#315b47!important;
  font-size:.82rem!important;
  font-weight:700;
}
@media(max-width:760px){
  .region-perigord-grid{grid-template-columns:1fr}
}

/* Compact long destination pages */
.region-place-card[hidden]{display:none!important}
.region-place-toggle-wrap{
  display:flex;
  justify-content:center;
  margin-top:22px;
}
.region-place-toggle{
  padding:10px 18px;
  border:1px solid #557762;
  border-radius:999px;
  background:#fff;
  color:#315b47;
  font:700 .86rem/1 Arial,Helvetica,sans-serif;
  cursor:pointer;
}
.region-place-toggle:hover{background:#f3f7f4}


/* V4: compact destination guide + sticky navigation */
.region-guide-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 270px;
  gap:26px;
  align-items:start;
  padding-top:10px;
  padding-bottom:18px;
}
.region-guide-main > .section{
  padding:30px 0;
}
.region-guide-main > .section.section-soft{
  margin-left:-18px;
  margin-right:-18px;
  padding-left:18px;
  padding-right:18px;
  border-radius:14px;
}
.region-guide-main > .section > .container{
  width:100%;
  max-width:none;
  padding-left:0;
  padding-right:0;
}
.region-guide-main .section-heading{
  margin-bottom:17px;
}
.region-guide-main .region-place-card-grid,
.region-guide-main .region-perigord-grid,
.region-guide-main .region-experience-grid{
  gap:12px;
}
.region-guide-main .region-place-card{
  min-height:0;
  padding:16px;
}
.region-guide-main .region-perigord-card,
.region-guide-main .region-experience-card{
  padding:18px;
}
.region-guide-sidebar{
  min-width:0;
}
.region-sidebar-sticky{
  position:sticky;
  top:86px;
  display:grid;
  gap:12px;
}
.region-jump-card,
.region-sidebar-seasons,
.region-at-glance{
  padding:15px;
  border:1px solid #ddd5c7;
  border-radius:12px;
  background:#fff;
}
.region-sidebar-title{
  margin:0 0 9px;
  color:#234838;
  font:700 .9rem/1.2 Arial,Helvetica,sans-serif;
}
.region-jump-card{
  display:grid;
}
.region-jump-card a{
  padding:7px 0;
  border-top:1px solid #eee8de;
  color:#315b47;
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
}
.region-jump-card a:first-of-type{border-top:0}
.region-jump-card a:hover{text-decoration:underline}
.region-sidebar-season-grid{
  display:grid;
  gap:6px;
}
.region-sidebar-season{
  border-top:1px solid #eee8de;
}
.region-sidebar-season:first-child{border-top:0}
.region-sidebar-season summary{
  display:flex;
  gap:7px;
  align-items:center;
  padding:7px 0;
  color:#315b47;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.region-sidebar-season summary::-webkit-details-marker{display:none}
.region-sidebar-season summary::after{
  content:'+';
  margin-left:auto;
  color:#7b867e;
}
.region-sidebar-season[open] summary::after{content:'−'}
.region-sidebar-season p{
  margin:0 0 9px;
  color:var(--muted);
  font-size:.77rem;
  line-height:1.48;
}
.region-at-glance p:last-child{
  margin:0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55;
}
#region-guide-top,
#places-to-stay,
#four-perigords,
#towns-villages,
#things-to-do,
#when-to-visit,
#getting-around{
  scroll-margin-top:100px;
}
@media(max-width:900px){
  .region-guide-layout{grid-template-columns:1fr}
  .region-guide-sidebar{order:-1}
  .region-sidebar-sticky{position:static}
  .region-jump-card{
    display:flex;
    flex-wrap:wrap;
    gap:6px 12px;
  }
  .region-jump-card .region-sidebar-title{width:100%}
  .region-jump-card a{
    border:0;
    padding:4px 0;
  }
  .region-sidebar-seasons,
  .region-at-glance{display:none}
}


/* V5 — tighter Dordogne guide, truly sticky sidebar, homepage-size listing card */
.region-page > .region-intro-section{
  padding:34px 0 28px !important;
}
.region-page .region-intro-grid{
  gap:34px;
}
.region-page .region-intro-copy{
  font-size:.94rem;
  line-height:1.58;
}
.region-page .region-local-knowledge{
  margin-top:12px!important;
  padding:10px 12px;
}
.region-guide-layout{
  gap:22px;
  padding-top:0;
}
.region-guide-main > .section{
  padding:22px 0 !important;
}
.region-guide-main > .section + .section{
  border-top:1px solid #eee8de;
}
.region-guide-main > .section.section-soft{
  margin-left:0;
  margin-right:0;
  padding-left:0;
  padding-right:0;
  background:transparent;
}
.region-guide-main .section-heading{
  margin-bottom:13px;
}
.region-guide-main .section-heading h2{
  margin-bottom:5px;
}
.region-guide-main .section-intro{
  margin-top:5px;
  line-height:1.5;
}
.region-guide-main .region-perigord-card,
.region-guide-main .region-experience-card,
.region-guide-main .region-place-card{
  padding:14px;
}
.region-guide-main .region-perigord-card p,
.region-guide-main .region-experience-card p,
.region-guide-main .region-place-card p{
  line-height:1.48;
}
.region-guide-sidebar{
  position:sticky;
  top:78px;
  align-self:start;
  max-height:calc(100vh - 92px);
  overflow-y:auto;
  scrollbar-width:thin;
}
.region-sidebar-sticky{
  position:static !important;
  top:auto !important;
}
.region-sidebar-highlights{
  padding:15px;
  border:1px solid #ddd5c7;
  border-radius:12px;
  background:#fff;
}
.region-sidebar-mini{
  border-top:1px solid #eee8de;
}
.region-sidebar-mini:first-of-type{border-top:0}
.region-sidebar-mini summary{
  padding:7px 0;
  color:#315b47;
  font-size:.79rem;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.region-sidebar-mini summary::-webkit-details-marker{display:none}
.region-sidebar-mini summary::after{
  content:'+';
  float:right;
  color:#7b867e;
}
.region-sidebar-mini[open] summary::after{content:'−'}
.region-sidebar-mini p{
  margin:0 0 9px;
  color:var(--muted);
  font-size:.75rem;
  line-height:1.45;
}

/* Region + department property cards: 5-across on desktop */
.region-property-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  justify-content:start;
}
.region-property-card{
  width:100%;
  min-width:0;
  border-radius:11px;
  box-shadow:none;
}
.region-property-card:hover{
  transform:translateY(-2px);
  box-shadow:0 7px 20px rgba(0,0,0,.06);
}
.region-property-card > a{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
}
.region-property-card .property-image{
  height:138px!important;
  flex:0 0 138px;
}
.region-property-card .property-content{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:10px 11px 11px!important;
}
.region-property-card .property-content h3{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px;
  margin:0 0 6px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.91rem!important;
  line-height:1.2;
  font-weight:700;
}
.region-property-card .property-content h3 small{
  font:600 .76rem/1.2 Arial,Helvetica,sans-serif;
  color:var(--muted);
}
.region-property-card .property-meta{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 7px!important;
  color:#4f5f56;
  font-size:.72rem;
  line-height:1.25;
}
.region-property-card .property-meta span + span::before{
  content:" · ";
  margin:0 4px;
}
.region-card-price{
  margin:0 0 6px;
  color:#25352c;
  font-size:.72rem;
  line-height:1.2;
}
.region-card-price strong{
  color:var(--ink);
  font-size:1rem;
}
.region-property-card .card-link{
  margin-top:auto;
  color:var(--green);
  font-size:.72rem;
  line-height:1.2;
  font-weight:800;
}
.region-property-card .badge,
.region-property-card .founding-badge{
  font-size:.62rem;
  padding:4px 7px;
}
@media(max-width:1180px){
  .region-property-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:960px){
  .region-property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .region-guide-sidebar{
    position:static;
    max-height:none;
    overflow:visible;
  }
  .region-sidebar-highlights{display:none}
}
@media(max-width:740px){
  .region-property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .region-property-grid{grid-template-columns:1fr}
}


/* V6 — subtle Dordogne photography: colour without sacrificing readability */
.region-guide-main .region-photo-band{
  position:relative; isolation:isolate; overflow:hidden;
  margin:8px -18px; padding:28px 18px !important;
  border:1px solid rgba(76,96,82,.12); border-radius:15px;
  background-position:center; background-size:cover;
}
.region-guide-main .region-photo-band::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(255,253,248,.87);
}
.region-guide-main .region-photo-limeuil{background-image:url('../images/regions/dordogne/limeuil-hanging-gardens.jpg');background-position:center 54%}
.region-guide-main .region-photo-roque{background-image:url('../images/regions/dordogne/la-roque-gageac.jpg');background-position:center 48%}
.region-guide-main .region-photo-brantome{background-image:url('../images/regions/dordogne/brantome-dronne-nono-vlf.jpg');background-position:center 52%}
.region-guide-main .region-photo-perigueux{background-image:url('../images/regions/dordogne/perigueux-maisons-des-quais-pere-igor.jpg');background-position:center 42%}
.region-guide-main .region-photo-band .region-perigord-card,
.region-guide-main .region-photo-band .region-place-card,
.region-guide-main .region-photo-band .region-experience-card{
  background:rgba(255,255,255,.86); backdrop-filter:blur(1px);
}
.region-guide-main .region-photo-band .region-travel-copy{
  padding:14px 16px; border-radius:11px; background:rgba(255,255,255,.80);
}
@media(max-width:900px){
  .region-guide-main .region-photo-band{margin:6px 0;padding:22px 14px !important}
  .region-guide-main .region-photo-band::after{background:rgba(255,253,248,.91)}
}


/* V8 RECOVERY — full-width visual bands WITHOUT breaking the main/sidebar grid */
.region-guide-layout-bg{
  position:relative;
  isolation:isolate;
}

.region-guide-layout-bg > .region-guide-main,
.region-guide-layout-bg > .region-guide-sidebar{
  position:relative;
  z-index:2;
}

.region-guide-bg-layer{
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  overflow:hidden;
  border-radius:15px;
  background-size:cover;
  background-repeat:no-repeat;
  pointer-events:none;
}

/* Separate overlay layer fixes the 1–2px seam around the faded image edges */
.region-guide-bg-layer::after{
  content:"";
  position:absolute;
  inset:-2px;
  background:rgba(255,253,248,.74);
  border-radius:inherit;
}

.region-guide-bg-limeuil{
  background-image:url('../images/regions/dordogne/limeuil-hanging-gardens.jpg');
  background-position:center 52%;
}
.region-guide-bg-roque{
  background-image:url('../images/regions/dordogne/la-roque-gageac.jpg');
  background-position:center 48%;
}
.region-guide-bg-brantome{
  background-image:url('../images/regions/dordogne/brantome-dronne-nono-vlf.jpg');
  background-position:center 50%;
}
.region-guide-bg-perigueux{
  background-image:url('../images/regions/dordogne/perigueux-maisons-des-quais-pere-igor.jpg');
  background-position:center 43%;
}

/* The original per-section V6 photo backgrounds are disabled on desktop;
   the new outer layers provide the photo instead. */
@media(min-width:901px){
  .region-guide-main .region-photo-band{
    background-image:none !important;
    background-color:transparent !important;
    border-color:transparent !important;
  }
  .region-guide-main .region-photo-band::before,
  .region-guide-main .region-photo-band::after{
    display:none !important;
  }

  .region-guide-main .region-photo-band .region-perigord-card,
  .region-guide-main .region-photo-band .region-place-card,
  .region-guide-main .region-photo-band .region-experience-card{
    background:rgba(255,255,255,.91) !important;
  }

  .region-guide-main .region-photo-band .region-travel-copy{
    background:rgba(255,255,255,.90) !important;
  }
}

/* Keep mobile/tablet behaviour simple and safe: use the original in-section backgrounds. */
@media(max-width:900px){
  .region-guide-bg-layer{
    display:none !important;
  }
}


/* =========================================================
   V9 — photo bands stop BEFORE sidebar + proper sticky sidebar
   ========================================================= */

/* Main/sidebar grid */
.region-guide-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 270px;
  gap:24px;
  align-items:start;
  overflow:visible !important;
}

/* Photo sections stay entirely inside the main content column */
.region-guide-main{
  min-width:0;
  overflow:visible;
}

.region-guide-main .region-photo-band{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:10px 0 !important;
  padding:26px 18px !important;
  border:0 !important;
  border-radius:15px;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  clip-path:none !important;
  transform:none !important;
}

/* Ensure the photo and fade extend fully under the rounded edges */
.region-guide-main .region-photo-band::before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-2;
  background:inherit;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:inherit;
  border-radius:17px;
}

.region-guide-main .region-photo-band::after{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  background:rgba(255,253,248,.76);
  border-radius:17px;
}

/* Individual Dordogne backgrounds */
.region-guide-main .region-photo-limeuil{
  background-image:url('../images/regions/dordogne/limeuil-hanging-gardens.jpg') !important;
  background-position:center 52% !important;
}
.region-guide-main .region-photo-roque{
  background-image:url('../images/regions/dordogne/la-roque-gageac.jpg') !important;
  background-position:center 48% !important;
}
.region-guide-main .region-photo-brantome{
  background-image:url('../images/regions/dordogne/brantome-dronne-nono-vlf.jpg') !important;
  background-position:center 50% !important;
}
.region-guide-main .region-photo-perigueux{
  background-image:url('../images/regions/dordogne/perigueux-maisons-des-quais-pere-igor.jpg') !important;
  background-position:center 43% !important;
}

/* Readable translucent cards over images */
.region-guide-main .region-photo-band .region-perigord-card,
.region-guide-main .region-photo-band .region-place-card,
.region-guide-main .region-photo-band .region-experience-card{
  background:rgba(255,255,255,.91) !important;
  backdrop-filter:blur(1px);
}
.region-guide-main .region-photo-band .region-travel-copy{
  padding:16px 18px;
  border-radius:12px;
  background:rgba(255,255,255,.90) !important;
  backdrop-filter:blur(1px);
}

/* TRUE sticky sidebar: follows the page, stops with the guide */
.region-guide-sidebar{
  position:sticky !important;
  top:82px !important;
  align-self:start !important;
  z-index:4;
  max-height:calc(100vh - 96px);
  overflow-y:auto;
  overflow-x:hidden;
}

.region-sidebar-sticky{
  position:static !important;
  top:auto !important;
}

/* Remove any V8 full-width background layers if older CSS still exists */
.region-guide-bg-layer{
  display:none !important;
}

/* Keep section spacing tight */
.region-guide-main > .section{
  padding-top:20px !important;
  padding-bottom:20px !important;
}

/* Tablet/mobile: sidebar returns to normal flow */
@media(max-width:900px){
  .region-guide-layout{
    grid-template-columns:1fr;
  }
  .region-guide-sidebar{
    position:static !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .region-guide-main .region-photo-band{
    margin:8px 0 !important;
    padding:22px 14px !important;
  }
  .region-guide-main .region-photo-band::after{
    background:rgba(255,253,248,.82);
  }
}


/* V10 — stronger fade for guaranteed text readability */
.region-guide-main .region-photo-band::after{
  background:rgba(255,253,248,.90) !important;
}
.region-guide-main .region-photo-band .region-perigord-card,
.region-guide-main .region-photo-band .region-place-card,
.region-guide-main .region-photo-band .region-experience-card{
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:none !important;
}
.region-guide-main .region-photo-band .region-travel-copy{
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:none !important;
}
@media(max-width:900px){
  .region-guide-main .region-photo-band::after{
    background:rgba(255,253,248,.93) !important;
  }
}


/* =========================================================
   V11 FINAL PHOTO FIX
   One image only, no tiling, fade baked into background itself.
   This deliberately avoids the conflicting V8/V9 pseudo layers.
   ========================================================= */

.region-guide-main .region-photo-band{
  overflow:hidden !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
}

/* Disable ALL old photo overlay pseudo-elements */
.region-guide-main .region-photo-band::before,
.region-guide-main .region-photo-band::after{
  content:none !important;
  display:none !important;
}

/* The cream fade is part of the background-image itself.
   Therefore it cannot disappear because of pseudo-element conflicts. */
.region-guide-main .region-photo-limeuil{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/dordogne/limeuil-hanging-gardens.jpg') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-size:cover,cover !important;
  background-position:center,center 52% !important;
}

.region-guide-main .region-photo-roque{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/dordogne/la-roque-gageac.jpg') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-size:cover,cover !important;
  background-position:center,center 48% !important;
}

.region-guide-main .region-photo-brantome{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/dordogne/brantome-dronne-nono-vlf.jpg') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-size:cover,cover !important;
  background-position:center,center 50% !important;
}

.region-guide-main .region-photo-perigueux{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/dordogne/perigueux-maisons-des-quais-pere-igor.jpg') !important;
  background-repeat:no-repeat,no-repeat !important;
  background-size:cover,cover !important;
  background-position:center,center 43% !important;
}

/* Cards stay very readable over the faded photographs */
.region-guide-main .region-photo-band .region-perigord-card,
.region-guide-main .region-photo-band .region-place-card,
.region-guide-main .region-photo-band .region-experience-card,
.region-guide-main .region-photo-band .region-travel-copy{
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:none !important;
}

@media(max-width:900px){
  .region-guide-main .region-photo-limeuil,
  .region-guide-main .region-photo-roque,
  .region-guide-main .region-photo-brantome,
  .region-guide-main .region-photo-perigueux{
    background-blend-mode:normal !important;
  }
}


/* =========================================================
   V12 — reduce oversized white gaps between Dordogne sections
   ========================================================= */

/* General department page rhythm */
.region-page .section{
  padding-top:24px !important;
  padding-bottom:24px !important;
}

/* Tighten intro-to-properties / properties-to-guide spacing */
.region-page .region-intro-section{
  padding-bottom:18px !important;
}
.region-page .region-properties-section{
  padding-top:16px !important;
  padding-bottom:18px !important;
}

/* Guide starts much closer to the properties section */
.region-guide-layout{
  margin-top:0 !important;
  padding-top:0 !important;
}
.region-guide-main > .section{
  padding-top:18px !important;
  padding-bottom:18px !important;
}

/* Remove large inherited margins from headings / content blocks */
.region-guide-main .section-heading{
  margin-top:0 !important;
  margin-bottom:12px !important;
}
.region-guide-main h2{
  margin-top:0 !important;
}
.region-guide-main .region-photo-band{
  margin-top:6px !important;
  margin-bottom:6px !important;
}

/* Reduce gap after property card grid / CTA rows */
.region-properties-section .property-grid,
.region-properties-section .region-property-grid{
  margin-bottom:0 !important;
}
.region-properties-section .section-heading{
  margin-bottom:14px !important;
}

/* If a section immediately follows another, don't double-stack whitespace */
.region-page .section + .section{
  margin-top:0 !important;
}

/* Desktop-only extra tightening where the screenshot showed the largest gap */
@media(min-width:901px){
  .region-page .region-properties-section + .region-guide-layout,
  .region-page .region-guide-layout{
    margin-top:0 !important;
  }
}

/* Mobile remains compact but comfortable */
@media(max-width:900px){
  .region-page .section{
    padding-top:20px !important;
    padding-bottom:20px !important;
  }
  .region-guide-main > .section{
    padding-top:16px !important;
    padding-bottom:16px !important;
  }
}


/* =========================================================
   LOT GUIDE PHOTOGRAPHY
   Same proven treatment as Dordogne:
   one image, cover, no repeat, cream fade, main column only.
   ========================================================= */
.region-guide-main .region-photo-lot-saint-cirq,
.region-guide-main .region-photo-lot-rocamadour,
.region-guide-main .region-photo-lot-cahors,
.region-guide-main .region-photo-lot-carennac{
  overflow:hidden !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
}

.region-guide-main .region-photo-lot-saint-cirq{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/lot/saint-cirq-lapopie-einaz80.jpg') !important;
  background-position:center,center 52% !important;
}

.region-guide-main .region-photo-lot-rocamadour{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/lot/rocamadour-einaz80.jpg') !important;
  background-position:center,center 48% !important;
}

.region-guide-main .region-photo-lot-cahors{
  background-image:
    linear-gradient(rgba(255,253,248,.86),rgba(255,253,248,.86)),
    url('../images/regions/lot/cahors-pont-valentre-hhf.jpg') !important;
  background-position:center,center 50% !important;
}

.region-guide-main .region-photo-lot-carennac{
  background-image:
    linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),
    url('../images/regions/lot/carennac-dordogne-therese-gaige.jpg') !important;
  background-position:center,center 52% !important;
}

.region-guide-main .region-photo-lot-saint-cirq .region-perigord-card,
.region-guide-main .region-photo-lot-rocamadour .region-place-card,
.region-guide-main .region-photo-lot-cahors .region-experience-card,
.region-guide-main .region-photo-lot-carennac .region-travel-copy{
  background:rgba(255,255,255,.96) !important;
}


/* LOT-ET-GARONNE GUIDE PHOTOGRAPHY */
.region-guide-main .region-photo-leg-pujols,
.region-guide-main .region-photo-leg-bonaguil,
.region-guide-main .region-photo-leg-agen,
.region-guide-main .region-photo-leg-duras{
  overflow:hidden !important; background-repeat:no-repeat !important; background-size:cover !important;
}
.region-guide-main .region-photo-leg-pujols{
  background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/lot-et-garonne/pujols-mossot.jpg') !important;
  background-position:center,center 52% !important;
}
.region-guide-main .region-photo-leg-bonaguil{
  background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/lot-et-garonne/chateau-bonaguil-lucie-laroche.jpg') !important;
  background-position:center,center 48% !important;
}
.region-guide-main .region-photo-leg-agen{
  background-image:linear-gradient(rgba(255,253,248,.87),rgba(255,253,248,.87)),url('../images/regions/lot-et-garonne/agen-canal-garonne-lantus.jpg') !important;
  background-position:center,center 50% !important;
}
.region-guide-main .region-photo-leg-duras{
  background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/lot-et-garonne/chateau-duras-xabi-rome-herault.jpg') !important;
  background-position:center,center 50% !important;
}
.region-guide-main .region-photo-leg-pujols .region-perigord-card,
.region-guide-main .region-photo-leg-bonaguil .region-place-card,
.region-guide-main .region-photo-leg-agen .region-experience-card,
.region-guide-main .region-photo-leg-duras .region-travel-copy{
  background:rgba(255,255,255,.96) !important;
}


/* CORRÈZE GUIDE PHOTOGRAPHY */
.region-guide-main .region-photo-correze-collonges,
.region-guide-main .region-photo-correze-argentat,
.region-guide-main .region-photo-correze-uzerche,
.region-guide-main .region-photo-correze-turenne{
  overflow:hidden !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
}
.region-guide-main .region-photo-correze-collonges{
  background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/correze/collonges-la-rouge-globetrotteur17.jpg') !important;
  background-position:center,center 50% !important;
}
.region-guide-main .region-photo-correze-argentat{
  background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/correze/argentat-sur-dordogne-pom.jpg') !important;
  background-position:center,center 62% !important;
}
.region-guide-main .region-photo-correze-uzerche{
  background-image:linear-gradient(rgba(255,253,248,.87),rgba(255,253,248,.87)),url('../images/regions/correze/uzerche-krzysztof-golik.jpg') !important;
  background-position:center,center 50% !important;
}
.region-guide-main .region-photo-correze-turenne{
  background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/correze/turenne-grassrootsgroundswell.jpg') !important;
  background-position:center,center 45% !important;
}
.region-guide-main .region-photo-correze-collonges .region-perigord-card,
.region-guide-main .region-photo-correze-argentat .region-place-card,
.region-guide-main .region-photo-correze-uzerche .region-experience-card,
.region-guide-main .region-photo-correze-turenne .region-travel-copy{
  background:rgba(255,255,255,.96) !important;
}

/* CHARENTE GUIDE PHOTOGRAPHY */
.region-guide-main .region-photo-charente-cognac,
.region-guide-main .region-photo-charente-angouleme,
.region-guide-main .region-photo-charente-aubeterre,
.region-guide-main .region-photo-charente-river{
 overflow:hidden!important;background-repeat:no-repeat!important;background-size:cover!important;
}
.region-guide-main .region-photo-charente-cognac{background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/charente/cognac-charente-pere-igor.jpg')!important;background-position:center,center 52%!important;}
.region-guide-main .region-photo-charente-angouleme{background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/charente/angouleme-panorama.jpg')!important;background-position:center,center!important;}
.region-guide-main .region-photo-charente-aubeterre{background-image:linear-gradient(rgba(255,253,248,.87),rgba(255,253,248,.87)),url('../images/regions/charente/aubeterre-sur-dronne-cobber17.jpg')!important;background-position:center,center 45%!important;}
.region-guide-main .region-photo-charente-river{background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/charente/charente-river-angouleme-antimuonium.jpg')!important;background-position:center,center 52%!important;}
.region-guide-main .region-photo-charente-cognac .region-perigord-card,
.region-guide-main .region-photo-charente-angouleme .region-place-card,
.region-guide-main .region-photo-charente-aubeterre .region-experience-card,
.region-guide-main .region-photo-charente-river .region-travel-copy{background:rgba(255,255,255,.96)!important;}

/* GIRONDE GUIDE PHOTOGRAPHY */
.region-guide-main .region-photo-gironde-bordeaux,.region-guide-main .region-photo-gironde-stemilion,.region-guide-main .region-photo-gironde-pilat,.region-guide-main .region-photo-gironde-blaye{overflow:hidden!important;background-repeat:no-repeat!important;background-size:cover!important}
.region-guide-main .region-photo-gironde-bordeaux{background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/gironde/bordeaux-garonne-velvet.jpg')!important;background-position:center,center 48%!important}
.region-guide-main .region-photo-gironde-stemilion{background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/gironde/saint-emilion-varvac.jpg')!important;background-position:center,center 48%!important}
.region-guide-main .region-photo-gironde-pilat{background-image:linear-gradient(rgba(255,253,248,.87),rgba(255,253,248,.87)),url('../images/regions/gironde/dune-du-pilat-jack-soley.jpg')!important;background-position:center,center 50%!important}
.region-guide-main .region-photo-gironde-blaye{background-image:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)),url('../images/regions/gironde/blaye-jacques-dassie.jpg')!important;background-position:center,center 50%!important}
.region-guide-main .region-photo-gironde-bordeaux .region-perigord-card,.region-guide-main .region-photo-gironde-stemilion .region-place-card,.region-guide-main .region-photo-gironde-pilat .region-experience-card,.region-guide-main .region-photo-gironde-blaye .region-travel-copy{background:rgba(255,255,255,.96)!important}

/* Owner plans / pricing */
.plans-page{background:#fff}.plans-hero{background:linear-gradient(180deg,#f4efe3 0%,#faf8f3 100%);padding:64px 0 38px;border-bottom:1px solid #e6decf}.plans-hero-inner{max-width:980px}.plans-hero h1{margin:5px 0 14px;color:#173f30;font-family:Georgia,serif;font-size:clamp(38px,5vw,62px);line-height:1.02}.plans-intro{max-width:800px;margin:0;color:#586960;font-size:17px;line-height:1.6}.plans-preview-banner{display:grid;gap:4px;margin-top:24px;padding:14px 16px;border:1px solid #e2c979;border-radius:10px;background:#fff9e8;color:#685827}.plans-preview-banner span{font-size:13px}.plans-section{padding-top:42px}.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.plan-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid #ded6c8;border-radius:16px;overflow:hidden;box-shadow:0 8px 25px rgba(28,56,44,.06)}.plan-card.is-featured{border:2px solid #32684f;transform:translateY(-6px)}.plan-popular{position:absolute;top:0;right:18px;padding:6px 10px;background:#32684f;color:#fff;border-radius:0 0 8px 8px;font-size:10px;font-weight:800;letter-spacing:.04em}.plan-card-head{padding:24px 22px 18px;border-bottom:1px solid #eee8dc}.plan-card-head>p:last-child{margin:10px 0 0;color:#68756e;line-height:1.5;font-size:13px}.plan-price{display:flex;align-items:flex-end;gap:7px;margin-top:8px}.plan-price strong{font-family:Georgia,serif;font-size:38px;color:#173f30}.plan-price span{padding-bottom:6px;color:#6a776f;font-size:12px}.plan-features{list-style:none;margin:0;padding:19px 22px;display:grid;gap:11px;flex:1}.plan-features li{display:flex;gap:9px;align-items:flex-start;color:#40554a;font-size:13px;line-height:1.4}.plan-features li span{color:#2f694e;font-weight:900}.plan-card-action{padding:0 22px 22px}.plan-card-action .button{display:block;text-align:center}.plan-coming-soon{display:block;padding:10px;border-radius:8px;background:#f5f2eb;color:#7a7469;text-align:center;font-size:11px}.plans-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.plans-principles>div{display:grid;gap:4px;padding:15px;border:1px solid #e1dbcf;border-radius:11px;background:#faf9f6}.plans-principles strong{color:#224c3a}.plans-principles span{font-size:12px;line-height:1.45;color:#69756f}.plans-founding-note{margin:30px 0 10px;padding:24px;border-radius:14px;background:#eef5ef;border:1px solid #cfe0d2}.plans-founding-note h2{margin:4px 0 8px;color:#173f30}.plans-founding-note p:last-child{margin:0;color:#5f6e66;line-height:1.55}.plans-founding-note .eyebrow{margin:0}@media(max-width:850px){.plans-grid{grid-template-columns:1fr}.plan-card.is-featured{transform:none}.plans-principles{grid-template-columns:1fr}.plans-hero{padding:42px 0 28px}}


/* =========================================================
   OWNER PLANS V2 — IONOS-style vertical comparison columns
   ========================================================= */
.plans-section{
  padding-top:38px;
}

.plans-section > .container{
  max-width:1180px;
}

.plans-comparison{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}

.plan-compare-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  background:#fff;
  border:1px solid #dcd6cb;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 5px 18px rgba(28,56,44,.05);
}

.plan-compare-card.is-featured{
  border:2px solid #2f654d;
}

.plan-compare-card.is-premier{
  background:#173f30;
  border-color:#173f30;
  color:#fff;
}

.plan-compare-head{
  display:flex;
  flex-direction:column;
  min-height:275px;
  padding:25px 24px 20px;
  border-bottom:1px solid #ece6db;
}

.plan-compare-card.is-premier .plan-compare-head{
  border-bottom-color:rgba(255,255,255,.16);
}

.plan-compare-head h2{
  margin:0;
  color:#173f30;
  font-size:22px;
  line-height:1.2;
}

.plan-compare-card.is-premier .plan-compare-head h2{
  color:#fff;
}

.plan-compare-head > p{
  min-height:45px;
  margin:8px 0 18px;
  color:#68756e;
  font-size:13px;
  line-height:1.45;
}

.plan-compare-card.is-premier .plan-compare-head > p{
  color:#dbe6df;
}

.plan-price-block{
  margin-top:auto;
}

.plan-price-kicker{
  display:block;
  margin-bottom:4px;
  color:#586960;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.plan-compare-card.is-premier .plan-price-kicker{
  color:#dce8e1;
}

.plan-compare-card .plan-price{
  display:flex;
  align-items:flex-end;
  gap:8px;
  margin:0;
}

.plan-compare-card .plan-price strong{
  color:#173f30;
  font-family:Georgia,serif;
  font-size:46px;
  line-height:1;
}

.plan-compare-card.is-premier .plan-price strong{
  color:#fff;
}

.plan-compare-card .plan-price span{
  padding-bottom:3px;
  color:#68756e;
  font-size:11px;
  line-height:1.25;
}

.plan-compare-card.is-premier .plan-price span{
  color:#dce8e1;
}

.plan-compare-card .plan-card-action{
  padding:18px 0 0;
}

.plan-compare-card .plan-card-action .button,
.plan-compare-card .plan-coming-soon{
  display:block;
  width:100%;
  box-sizing:border-box;
  text-align:center;
}

.plan-compare-card.is-premier .plan-card-action .button{
  background:#fff;
  color:#173f30;
}

.plan-compare-card.is-premier .plan-coming-soon{
  background:rgba(255,255,255,.12);
  color:#eef5f1;
}

.plan-compare-features{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:0 24px 22px;
}

.plan-feature-row{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:8px;
  align-items:start;
  min-height:48px;
  padding:13px 0;
  border-bottom:1px solid #eee8dc;
  color:#40554a;
  font-size:13px;
  line-height:1.42;
}

.plan-feature-row:last-child{
  border-bottom:0;
}

.plan-compare-card.is-premier .plan-feature-row{
  border-bottom-color:rgba(255,255,255,.14);
  color:#fff;
}

.plan-feature-tick{
  color:#2f694e;
  font-weight:900;
}

.plan-compare-card.is-premier .plan-feature-tick{
  color:#fff;
}

.plan-compare-card .plan-popular{
  top:0;
  right:18px;
  z-index:2;
}

@media(max-width:900px){
  .plans-comparison{
    grid-template-columns:1fr;
    gap:18px;
  }
  .plan-compare-head{
    min-height:0;
  }
  .plan-compare-head > p{
    min-height:0;
  }
  .plan-feature-row{
    min-height:0;
  }
}

/* =========================================================
   PUBLIC PROPERTY GRIDS — count-aware homepage/search layout
   Matches the property-grid-cols-* classes emitted by PHP.
   ========================================================= */
.home-page .homepage-property-grid.property-grid-cols-1,
.search-page .search-property-grid.property-grid-cols-1{grid-template-columns:minmax(0,260px)}
.home-page .homepage-property-grid.property-grid-cols-2,
.search-page .search-property-grid.property-grid-cols-2{grid-template-columns:repeat(2,minmax(0,260px))}
.home-page .homepage-property-grid.property-grid-cols-3,
.search-page .search-property-grid.property-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-page .homepage-property-grid.property-grid-cols-4,
.search-page .search-property-grid.property-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.home-page .homepage-property-grid.property-grid-cols-5,
.search-page .search-property-grid.property-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}

/* =========================================================
   SEARCH HERO — photographic destination header and filter panel
   ========================================================= */
.search-page .search-hero{
  position:relative;
  isolation:isolate;
  min-height:500px;
  padding:76px 0 48px;
  overflow:hidden;
  background:#294d3d;
  color:#fff;
}
.search-hero-bg,.search-hero-shade{
  position:absolute;
  inset:0;
  z-index:-2;
}
.search-hero-bg{
  background-repeat:no-repeat;
  background-size:cover;
  opacity:0;
  transform:scale(1.015);
  transition:opacity .7s ease,transform 1.2s ease;
}
.search-hero-bg.is-active{opacity:1;transform:scale(1)}
.search-hero-shade{
  z-index:-1;
  background:linear-gradient(90deg,rgba(14,35,27,.76) 0%,rgba(18,43,33,.52) 50%,rgba(15,35,28,.28) 100%),linear-gradient(0deg,rgba(11,27,21,.34),transparent 55%);
}
.search-hero-inner{position:relative;z-index:1}
.search-hero-copy{
  max-width:740px;
  text-shadow:0 2px 16px rgba(0,0,0,.28);
  transition:opacity .18s ease,transform .18s ease;
}
.search-hero-copy.is-switching{opacity:.35;transform:translateY(4px)}
.search-hero-copy .eyebrow{margin:0 0 8px;color:#fff}
.search-hero-copy h1{margin:0 0 10px;color:#fff}
.search-hero-copy .lead{max-width:690px;margin:0;color:rgba(255,255,255,.92)}
.search-page .search-hero-panel{
  position:relative;
  display:grid;
  grid-template-columns:1.45fr 1.05fr .55fr .85fr .85fr;
  gap:10px;
  align-items:end;
  margin-top:34px;
  padding:18px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:15px;
  background:rgba(255,255,255,.95);
  box-shadow:0 18px 45px rgba(10,29,21,.23);
  color:var(--ink);
  text-shadow:none;
  backdrop-filter:blur(10px);
}
.search-page .search-hero-panel label{font-size:.76rem;color:#29483a}
.search-page .search-hero-panel input,
.search-page .search-hero-panel select{width:100%;box-sizing:border-box;min-height:46px}
.search-page .search-hero-panel .search-filter-actions{margin-top:1px}

@media(max-width:1120px){
  .home-page .homepage-property-grid[class*="property-grid-cols-"],
  .search-page .search-property-grid[class*="property-grid-cols-"]{grid-template-columns:repeat(3,minmax(0,1fr))}
  .search-page .search-hero-panel{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:850px){
  .home-page .homepage-property-grid[class*="property-grid-cols-"],
  .search-page .search-property-grid[class*="property-grid-cols-"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search-page .search-hero{min-height:0;padding:58px 0 38px}
  .search-page .search-hero-panel{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}
}
@media(max-width:580px){
  .home-page .homepage-property-grid[class*="property-grid-cols-"],
  .search-page .search-property-grid[class*="property-grid-cols-"]{grid-template-columns:1fr}
  .search-page .search-hero{padding:44px 0 28px}
  .search-page .search-hero-copy h1{font-size:2.65rem}
  .search-page .search-hero-panel{grid-template-columns:1fr;margin-top:24px}
}


/* Normandy — D-Day & Battle of Normandy layout */
.regional-special-history-section .section-heading > div{width:100%}
.regional-special-history-section .section-heading .section-intro{max-width:none}
.regional-special-history-section .region-highlight-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:900px){
  .regional-special-history-section .region-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .regional-special-history-section .region-highlight-grid{grid-template-columns:1fr}
}

/* Normandy — D-Day & Battle of Normandy photographic feature */
.regional-special-history-section .regional-special-history-note{
  max-width:920px;
  margin:24px 0 0;
  padding-left:16px;
  border-left:3px solid var(--green);
}
.normandy-history-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:26px;
}
.normandy-history-photo{
  position:relative;
  min-width:0;
  margin:0;
  overflow:hidden;
  border:1px solid #ddd5c7;
  border-radius:14px;
  background:#fff;
}
.normandy-history-photo-lead{grid-column:span 2;grid-row:span 2}
.normandy-history-photo img{
  display:block;
  width:100%;
  height:220px;
  object-fit:cover;
}
.normandy-history-photo-lead img{height:100%;min-height:470px}
.normandy-history-photo figcaption{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:38px 16px 15px;
  background:linear-gradient(transparent,rgba(8,27,19,.88));
  color:#fff;
}
.normandy-history-photo figcaption strong{
  display:block;
  margin-bottom:3px;
  font-size:1rem;
}
.normandy-history-photo figcaption span{
  display:block;
  font-size:.78rem;
  line-height:1.4;
  color:rgba(255,255,255,.94);
}
@media(max-width:900px){
  .normandy-history-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .normandy-history-photo-lead{grid-column:span 2;grid-row:auto}
  .normandy-history-photo-lead img{height:360px;min-height:0}
}
@media(max-width:600px){
  .normandy-history-gallery{grid-template-columns:1fr;gap:12px}
  .normandy-history-photo-lead{grid-column:auto}
  .normandy-history-photo img,.normandy-history-photo-lead img{height:250px;min-height:0}
  .normandy-history-photo figcaption{position:static;padding:12px 14px;background:#173d2d}
}


/* Photographic region heroes */
.region-hero--normandy{
  background-image:
    linear-gradient(90deg,rgba(9,35,27,.90) 0%,rgba(9,35,27,.72) 36%,rgba(9,35,27,.22) 67%,rgba(9,35,27,.08) 100%),
    url('../images/regions/normandy/hero.webp');
  background-position:center center;
  background-size:cover;
}
.region-hero--normandy::before{display:none}
.region-hero--normandy .regional-overview-map{display:none}
@media(max-width:760px){
  .region-hero--normandy{
    background-image:
      linear-gradient(90deg,rgba(9,35,27,.90),rgba(9,35,27,.62)),
      url('../images/regions/normandy/hero.webp');
    background-position:58% center;
  }
}


/* Additional photographic region heroes */
.region-hero--nouvelle-aquitaine{
  background-image:linear-gradient(90deg,rgba(9,35,27,.91) 0%,rgba(9,35,27,.72) 37%,rgba(9,35,27,.22) 68%,rgba(9,35,27,.08) 100%),url('../images/regions/nouvelle-aquitaine/hero.webp');
  background-position:center center;background-size:cover;
}
.region-hero--occitanie{
  background-image:linear-gradient(90deg,rgba(9,35,27,.91) 0%,rgba(9,35,27,.72) 37%,rgba(9,35,27,.22) 68%,rgba(9,35,27,.08) 100%),url('../images/regions/occitanie/hero.webp');
  background-position:center center;background-size:cover;
}
.region-hero--pays-de-la-loire{
  background-image:linear-gradient(90deg,rgba(9,35,27,.91) 0%,rgba(9,35,27,.72) 37%,rgba(9,35,27,.22) 68%,rgba(9,35,27,.08) 100%),url('../images/regions/pays-de-la-loire/hero.webp');
  background-position:center center;background-size:cover;
}
.region-hero--nouvelle-aquitaine::before,.region-hero--occitanie::before,.region-hero--pays-de-la-loire::before{display:none}
.region-hero--nouvelle-aquitaine .regional-overview-map,.region-hero--occitanie .regional-overview-map,.region-hero--pays-de-la-loire .regional-overview-map{display:none}
@media(max-width:760px){
 .region-hero--nouvelle-aquitaine,.region-hero--occitanie,.region-hero--pays-de-la-loire{background-position:58% center}
}


/* ---- Search hero compact filters + trust strip (2026-09-01) ---- */
.search-page .search-filter-actions{align-items:flex-start}
.search-page .search-filter-actions>.button{
  flex:0 0 130px;
  width:130px;
  min-width:130px;
  height:48px;
  min-height:48px;
  padding:0 18px;
  align-self:flex-start;
}
.search-page .more-filters-panel{
  gap:6px;
  margin-top:7px;
  padding:10px;
}
.search-page .more-filters-panel .filter-select{grid-row:auto}
.search-page .more-filters-panel .filter-select select{min-height:36px;height:36px;padding-top:5px;padding-bottom:5px}
.search-page .filter-check{
  min-height:34px;
  padding:5px 8px!important;
}
.search-page .more-filters-panel .filter-group-heading{
  margin-top:0;
  padding-top:5px;
  font-size:.7rem;
}
.search-page .more-filters-panel .filter-select + .filter-group-heading{padding-top:0}

.search-trust-strip{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.search-trust-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px;
  padding-top:18px;
  padding-bottom:18px;
}
.search-trust-item{display:flex;align-items:center;gap:14px;min-width:0}
.search-trust-icon{
  flex:0 0 48px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid #dfe7e1;
  border-radius:50%;
  color:var(--green);
  background:#fff;
  box-shadow:0 4px 12px rgba(17,50,74,.08);
  font-size:1.45rem;
  line-height:1;
  font-weight:700;
}
.search-trust-item div{display:grid;gap:4px}
.search-trust-item strong{color:var(--ink);font-family:Georgia,serif;font-size:.94rem;font-weight:600}
.search-trust-item span:not(.search-trust-icon){color:var(--muted);font-size:.72rem;line-height:1.45}
@media(max-width:850px){
  .search-trust-grid{gap:18px}
  .search-trust-item{align-items:flex-start}
}
@media(max-width:700px){
  .search-trust-grid{grid-template-columns:1fr;gap:14px}
  .search-trust-item span:not(.search-trust-icon) br{display:none}
}
@media(max-width:560px){
  .search-page .search-filter-actions>.button{width:100%;min-width:0;flex-basis:auto}
}

/* ---- Search region/department cascade + balanced filter/trust grids (2026-09-01) ---- */
.search-page .search-hero-panel{
  grid-template-columns:1.35fr .9fr 1.05fr .52fr .82fr .82fr;
}
.search-page .more-filters-panel{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.search-trust-grid{
  grid-template-columns:repeat(3,minmax(0,290px));
  justify-content:center;
  column-gap:64px;
}
@media(max-width:1120px){
  .search-page .search-hero-panel{grid-template-columns:repeat(3,minmax(0,1fr))}
  .search-trust-grid{column-gap:34px}
}
@media(max-width:850px){
  .search-page .more-filters-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search-trust-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px}
}
@media(max-width:700px){
  .search-trust-grid{grid-template-columns:1fr;justify-content:stretch}
}
@media(max-width:560px){
  .search-page .more-filters-panel{grid-template-columns:1fr}
}
/* HHF information, about and legal pages */
.hhf-info-hero{position:relative;min-height:235px;display:flex;align-items:flex-end;background:linear-gradient(90deg,rgba(18,45,35,.86),rgba(18,45,35,.48)),url('../images/hero/sarlat.jpg') center 48%/cover no-repeat;color:#fff;overflow:hidden}
.hhf-info-hero .container{padding-top:58px;padding-bottom:42px}
.hhf-info-hero .eyebrow{margin:0 0 8px;color:#fff;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;opacity:.88}
.hhf-info-hero h1{max-width:820px;margin:0;font:400 clamp(38px,5vw,58px)/1.02 Georgia,serif;color:#fff}
.hhf-info-hero p:last-child{max-width:none;width:100%;margin:13px 0 0;font-size:16px;line-height:1.55;color:rgba(255,255,255,.92)}
.hhf-info-page{background:#f5f2ea;color:#17271f}
.hhf-info-shell{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:34px;align-items:start;padding-top:38px;padding-bottom:62px}
.hhf-info-content{min-width:0;background:#fff;border:1px solid #e0d8c9;border-radius:18px;padding:34px 38px;box-shadow:0 10px 28px rgba(35,48,41,.045)}
.hhf-info-content .eyebrow{margin-top:0}
.hhf-info-content h2{margin:30px 0 8px;font:400 25px/1.2 Georgia,serif;color:#193328}
.hhf-info-content h2:first-of-type{margin-top:8px}
.hhf-info-content p{font-size:15px;line-height:1.72;color:#33433a}
.hhf-info-content .lead,.hhf-info-content .legal-intro{font-size:17px;line-height:1.65;color:#536158}
.hhf-info-sidebar{position:sticky;top:92px;display:grid;gap:16px}
.hhf-info-sidebar-card,.hhf-info-sidebar-note{background:#fff;border:1px solid #e0d8c9;border-radius:16px;padding:18px}
.hhf-info-sidebar-title{margin:0 0 10px;font:400 23px/1.1 Georgia,serif;color:#193328}
.hhf-info-nav{display:grid}
.hhf-info-nav a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 9px;border-top:1px solid #ece6da;color:#33473c;text-decoration:none;font-size:13px;font-weight:650}
.hhf-info-nav a:first-child{border-top:0}
.hhf-info-nav a:hover{color:#1f6046;background:#f8f6f0}
.hhf-info-nav a.is-active{margin:2px -5px;padding-left:14px;padding-right:14px;border:0;border-radius:9px;background:#eaf2ed;color:#195239;font-weight:800}
.hhf-info-sidebar-note{background:#244f3d;color:#fff}
.hhf-info-sidebar-note strong,.hhf-info-sidebar-note span,.hhf-info-sidebar-note a{display:block}
.hhf-info-sidebar-note strong{font:400 18px/1.25 Georgia,serif}
.hhf-info-sidebar-note span{margin:8px 0 13px;font-size:12px;line-height:1.5;opacity:.86}
.hhf-info-sidebar-note a{color:#fff;font-size:12px;font-weight:800;text-decoration:none}
.hhf-info-sidebar-note a:hover{text-decoration:underline}
.hhf-info-content .benefits{margin-top:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hhf-info-content .benefits>div{padding:20px;border:1px solid #e3dccf;border-radius:14px;background:#faf8f3}
.hhf-info-content .benefit-number{font-size:11px;color:#2d634d;letter-spacing:.12em}
.hhf-info-content .benefits strong{margin:8px 0 5px;font:400 20px/1.15 Georgia,serif}
.hhf-info-content .benefits span:last-child{font-size:13px;line-height:1.55}
.hhf-info-content .about-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:22px}
.hhf-info-content .about-actions .text-link{margin-left:5px}
.hhf-legal-section{padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid #ece5d9}
.hhf-legal-section:last-of-type{border-bottom:0;margin-bottom:0}
.hhf-legal-section h2{margin:0 0 8px!important;font-size:22px}
.hhf-info-content .legal-updated{margin:28px 0 0;padding:16px 18px;border:1px solid #e2dbce;border-radius:11px;background:#faf8f3;color:#657168;font-size:13px}
.hhf-info-page.photo-info .hhf-info-content{padding:28px 30px}
.hhf-info-page .photo-credits{padding:0}
.hhf-info-page .photo-credits .container{max-width:none;padding:0}
.hhf-info-page .photo-credits h1,.hhf-info-page .photo-credits>.container>.eyebrow,.hhf-info-page .photo-credits>.container>.intro{display:none}
.hhf-info-page .photo-credits .credits-help{margin:0 0 18px;font-size:14px;line-height:1.6;color:#536158}
.hhf-info-page .credit-region{background:#faf8f3}
@media(max-width:900px){.hhf-info-shell{grid-template-columns:1fr}.hhf-info-sidebar{position:static;grid-template-columns:1fr 1fr}.hhf-info-content .benefits{grid-template-columns:1fr}.hhf-info-hero{min-height:210px}}
@media(max-width:650px){.hhf-info-hero .container{padding-top:42px;padding-bottom:30px}.hhf-info-hero{min-height:190px}.hhf-info-hero h1{font-size:38px}.hhf-info-shell{padding-top:20px;padding-bottom:38px;gap:20px}.hhf-info-content,.hhf-info-page.photo-info .hhf-info-content{padding:24px 19px;border-radius:14px}.hhf-info-sidebar{grid-template-columns:1fr}.hhf-info-content h2{font-size:22px}.hhf-info-content .lead,.hhf-info-content .legal-intro{font-size:16px}}

/* Contact page within shared HHF information layout */
.contact-info-content{padding:30px 34px}
.contact-support-card{padding:0;border:0;background:transparent}
.contact-support-card h2{margin:0 0 18px!important;font:400 25px/1.2 Georgia,serif;color:#193328}
.contact-support-form{display:grid;gap:14px}
.contact-support-form label{display:grid;gap:6px;color:#33473a;font-size:12px;font-weight:800}
.contact-support-form input,.contact-support-form select,.contact-support-form textarea{width:100%;padding:11px;border:1px solid #d5cec1;border-radius:9px;background:#fff;color:#203228;font:inherit;font-size:12px}
.contact-support-form textarea{min-height:150px;resize:vertical}
.contact-support-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-support-help{margin:0;color:#6a756e;font-size:12px;line-height:1.55}
.contact-success{margin-bottom:18px;padding:15px 17px;border:1px solid #cbdccb;border-left:4px solid #2e6047;border-radius:10px;background:#f2f8f2;color:#244638}
.contact-errors{margin-bottom:18px;padding:15px 17px;border:1px solid #e0c6c3;border-left:4px solid #9a4139;border-radius:10px;background:#fff7f5;color:#69362f}
.contact-errors ul{margin:7px 0 0;padding-left:20px}
.contact-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.hhf-info-sidebar-mini h3{margin:0 0 7px;color:#173b2b;font:400 18px/1.2 Georgia,serif}
.hhf-info-sidebar-mini p{margin:0;color:#5d6962;font-size:12px;line-height:1.55}
.hhf-info-sidebar-mini a{display:inline-flex;margin-top:9px;color:#245a41;font-size:12px;font-weight:800;text-decoration:none}
.hhf-info-sidebar-mini a:hover{text-decoration:underline}

/* Restore the original compact, folder-style Photo Credits list inside the new page shell */
.hhf-info-page.photo-info .photo-credits{padding:0}
.hhf-info-page.photo-info .photo-credits .container{max-width:none;padding:0}
.hhf-info-page.photo-info .photo-credits .credits-help{font-size:12px;line-height:1.55;max-width:850px;margin:0 0 14px;color:#536158;opacity:.8}
.hhf-info-page.photo-info .credit-region{margin:0 0 12px;border:1px solid var(--line);border-radius:12px;background:#f7f5ef;overflow:hidden}
.hhf-info-page.photo-info .credit-region>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:15px;font-weight:800}
.hhf-info-page.photo-info .credit-region>summary::-webkit-details-marker{display:none}
.hhf-info-page.photo-info .credit-region>summary::before{content:"📁";font-size:14px}
.hhf-info-page.photo-info .credit-region-body{padding:10px}
.hhf-info-page.photo-info .credit-region .credit-group{margin-left:0}
.hhf-info-page.photo-info .credit-group{margin:0 0 8px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.hhf-info-page.photo-info .credit-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 13px;font-size:14px;font-weight:700;line-height:1.25}
.hhf-info-page.photo-info .credit-group summary::-webkit-details-marker{display:none}
.hhf-info-page.photo-info .credit-group summary::before{content:"›";font-size:18px;line-height:1;transition:transform .16s ease}
.hhf-info-page.photo-info .credit-group[open] summary::before{transform:rotate(90deg)}
.hhf-info-page.photo-info .credit-group summary span:first-child{margin-right:auto}
.hhf-info-page.photo-info .credit-count{font-size:11px;font-weight:500;opacity:.62;white-space:nowrap}
.hhf-info-page.photo-info .credit-group[open] summary{border-bottom:1px solid var(--line)}
.hhf-info-page.photo-info .credits-table-wrap{overflow-x:auto}
.hhf-info-page.photo-info .credits-table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.4}
.hhf-info-page.photo-info .credits-table th,.hhf-info-page.photo-info .credits-table td{padding:7px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.hhf-info-page.photo-info .credits-table th{font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.hhf-info-page.photo-info .credits-table tbody tr:last-child td{border-bottom:0}
.hhf-info-page.photo-info .credits-table a{font-size:12px}
.hhf-info-page.photo-info .photo-credits .note{font-size:11px;line-height:1.45;margin-top:12px;opacity:.68}
@media(max-width:650px){
  .contact-info-content{padding:24px 19px}
  .contact-support-row{grid-template-columns:1fr}
  .hhf-info-page.photo-info .credit-group summary{padding:9px 11px}
  .hhf-info-page.photo-info .credits-table{min-width:650px}
}


/* Contact balance + tighter information/legal section rhythm */
.contact-info-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.contact-info-cards .hhf-info-sidebar-card{height:100%;box-sizing:border-box}
@media(max-width:650px){.contact-info-cards{grid-template-columns:1fr}}

/* Legal/info section dividers: exactly 12px of section spacing either side */
.hhf-info-content .hhf-legal-section{
  margin:0;
  padding:12px 0;
  border-bottom:1px solid #ece5d9;
}
.hhf-info-content .hhf-legal-section:first-of-type{padding-top:0;}
.hhf-info-content .hhf-legal-section:last-of-type{
  border-bottom:0;
  padding-bottom:0;
}
.hhf-info-content .hhf-legal-section > h2:first-child{
  margin:0 0 8px!important;
}
.hhf-info-content .hhf-legal-section > :last-child{
  margin-bottom:0!important;
}

/* HHF info/legal hero alignment — 2026-09-01
   Keep every About/Contact/Credits/Legal hero on the same three-row rhythm:
   eyebrow / two-line title area / subtitle. */
.hhf-info-page.legal-page{
  padding:0;
}
.hhf-info-page .hhf-info-hero{
  height:235px;
  min-height:235px;
}
.hhf-info-page .hhf-info-hero .container{
  box-sizing:border-box;
}
.hhf-info-page .hhf-info-hero h1{
  min-height:2.04em;
}

@media(max-width:900px){
  .hhf-info-page .hhf-info-hero{
    height:210px;
    min-height:210px;
  }
}
@media(max-width:650px){
  .hhf-info-page .hhf-info-hero{
    height:190px;
    min-height:190px;
  }
}

/* HHF info hero vertical balance — 2026-09-01
   Centre the fixed three-row hero block vertically so the whitespace above
   the eyebrow and below the subtitle is visually equal on every info page. */
.hhf-info-page .hhf-info-hero{
  align-items:stretch;
}
.hhf-info-page .hhf-info-hero .container{
  height:100%;
  padding-top:28px;
  padding-bottom:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

@media(max-width:900px){
  .hhf-info-page .hhf-info-hero .container{
    padding-top:24px;
    padding-bottom:24px;
  }
}
@media(max-width:650px){
  .hhf-info-page .hhf-info-hero .container{
    padding-top:20px;
    padding-bottom:20px;
  }
}


/* Owner account closure guard */
.owner-settings-danger{margin-top:24px;border:1px solid #e3b8b8;background:#fffafa}
.owner-settings-danger .eyebrow.red{color:#a52b2b}
.owner-danger-details{margin-top:14px;border-top:1px solid #ead4d4;padding-top:12px}
.owner-danger-details summary{cursor:pointer;font-weight:800;color:#8e2323;display:inline-block}
.owner-danger-confirm{margin-top:14px;padding:16px;border:1px solid #e3b8b8;border-radius:14px;background:#fff}
.owner-danger-confirm .login-form{max-width:620px}
.owner-danger-check{display:flex!important;gap:10px;align-items:flex-start!important}
.owner-danger-check input{width:auto!important;margin-top:4px;flex:0 0 auto}
.owner-danger-button{background:#9e2d2d!important;border-color:#9e2d2d!important}
.owner-danger-button:hover{background:#812323!important;border-color:#812323!important}

/* Account closure — full-width final row beneath Settings save action */
@media(min-width:901px){
  .owner-settings-page .owner-settings-danger{
    grid-column:1 / -1;
    width:100%;
    max-width:none;
    margin-top:0;
    box-sizing:border-box;
  }
}
.owner-settings-danger .owner-danger-details summary{
  display:block;
  width:100%;
  text-align:center;
  box-sizing:border-box;
}

/* =========================================================
   OWNER PLANS V2 — public sales page
   ========================================================= */
.plans-page-v2{background:#fbfaf7}.plans-hero-v2{position:relative;overflow:hidden;padding:78px 0 64px;background:radial-gradient(circle at 88% 16%,rgba(224,193,115,.25),transparent 25%),linear-gradient(135deg,#f6f0e3 0%,#fff 52%,#edf4ef 100%);border-bottom:1px solid #e6ded0}.plans-hero-v2:after{content:"";position:absolute;right:-120px;bottom:-180px;width:430px;height:430px;border:1px solid rgba(38,91,66,.11);border-radius:50%;box-shadow:0 0 0 48px rgba(38,91,66,.035),0 0 0 96px rgba(38,91,66,.025);pointer-events:none}.plans-hero-inner-v2{position:relative;z-index:1;max-width:1120px}.plans-hero-v2 h1{max-width:820px;margin:8px 0 18px;color:#173f30;font-family:Georgia,serif;font-size:clamp(46px,6vw,76px);line-height:.98;letter-spacing:-.035em}.plans-hero-v2 h1 span{color:#a47624}.plans-intro-v2{max-width:780px;margin:0;color:#50645a;font-size:19px;line-height:1.65}.plans-hero-promises{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.plans-hero-promises span{display:flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid #d9ded8;border-radius:999px;background:rgba(255,255,255,.82);box-shadow:0 4px 15px rgba(23,63,48,.04);color:#53655c;font-size:13px}.plans-hero-promises b{color:#173f30;font-size:14px}.plans-section-v2{padding:58px 0 70px}.plans-section-heading{max-width:760px;margin:0 auto 36px;text-align:center}.plans-section-heading h2{margin:5px 0 10px;color:#173f30;font-family:Georgia,serif;font-size:clamp(30px,4vw,44px);line-height:1.1}.plans-section-heading>p:last-child{margin:0;color:#65746c;line-height:1.65}.plans-page-v2 .plans-comparison{gap:18px;align-items:stretch}.plans-page-v2 .plan-compare-card{border-radius:20px;box-shadow:0 12px 35px rgba(27,56,43,.08);transition:transform .2s ease,box-shadow .2s ease}.plans-page-v2 .plan-compare-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(27,56,43,.12)}.plans-page-v2 .plan-compare-card.is-featured{border:2px solid #32684f;box-shadow:0 16px 42px rgba(47,101,77,.14)}.plans-page-v2 .plan-compare-card.is-premier{background:linear-gradient(155deg,#173f30 0%,#0f3024 100%)}.plans-page-v2 .plan-popular,.plan-premier-label{position:absolute;top:0;right:18px;z-index:2;padding:7px 11px;border-radius:0 0 9px 9px;font-size:10px;font-weight:900;letter-spacing:.06em}.plans-page-v2 .plan-popular{background:#32684f;color:#fff}.plan-premier-label{background:#d7b05b;color:#173f30}.plans-page-v2 .plan-compare-head{min-height:315px;padding:30px 26px 22px}.plan-name-row{display:flex;align-items:center;gap:9px;padding-right:90px}.plans-page-v2 .plan-compare-head h3{margin:0;color:#173f30;font-family:Georgia,serif;font-size:28px}.plans-page-v2 .is-premier .plan-compare-head h3{color:#fff}.plan-free-pill{padding:4px 7px;border-radius:999px;background:#e8f2eb;color:#286045;font-size:9px;font-weight:900;letter-spacing:.06em}.plans-page-v2 .plan-compare-head>p{min-height:58px;margin:10px 0 20px;font-size:14px;line-height:1.5}.plans-page-v2 .plan-price strong{font-size:54px;letter-spacing:-.035em}.plans-page-v2 .plan-price-block small{display:block;margin-top:8px;color:#718078;font-size:11px}.plans-page-v2 .is-premier .plan-price-block small{color:#d6e2dc}.plans-page-v2 .plan-price-block small b{color:inherit}.plans-page-v2 .plan-card-action{padding-top:20px}.plans-page-v2 .plan-card-action .button{border-radius:10px;padding:12px 14px;font-weight:800}.plans-page-v2 .plan-compare-features{padding:20px 26px 25px}.plan-includes{margin:0 0 5px;color:#87928c;font-size:10px;font-weight:900;letter-spacing:.09em}.is-premier .plan-includes{color:#b8c9c0}.plans-page-v2 .plan-feature-row{min-height:0;padding:11px 0;font-size:13px}.plans-page-v2 .plan-feature-tick{display:grid;place-items:center;width:18px;height:18px;margin-top:1px;border-radius:50%;background:#e6f1e9;color:#286047;font-size:11px}.plans-page-v2 .is-premier .plan-feature-tick{background:rgba(255,255,255,.14);color:#fff}.plans-renewal-note{max-width:830px;margin:18px auto 0;text-align:center;color:#7a817d;font-size:11px;line-height:1.55}.plans-value-banner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;margin-top:54px;padding:36px 42px;border-radius:22px;background:linear-gradient(120deg,#eaf3ed,#f8f4e9);border:1px solid #d8e2da}.plans-value-banner h2{max-width:700px;margin:5px 0 10px;color:#173f30;font-family:Georgia,serif;font-size:34px;line-height:1.12}.plans-value-banner p:last-child{max-width:760px;margin:0;color:#5c6c64;line-height:1.6}.plans-zero-commission{display:flex;align-items:center;gap:12px;padding-left:30px;border-left:1px solid #cdd9d1}.plans-zero-commission strong{color:#173f30;font-family:Georgia,serif;font-size:62px;line-height:1}.plans-zero-commission span{color:#52645b;font-size:12px;font-weight:800;line-height:1.3;text-transform:uppercase;letter-spacing:.04em}.plans-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}.plans-why-grid article{padding:24px 20px;border:1px solid #e0ddd5;border-radius:16px;background:#fff}.plans-why-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:16px;border-radius:11px;background:#edf4ef;color:#24553f;font-size:13px;font-weight:900}.plans-why-grid h3{margin:0 0 8px;color:#173f30;font-size:17px}.plans-why-grid p{margin:0;color:#68766f;font-size:12px;line-height:1.55}.plans-founding-note-v2{display:grid;grid-template-columns:auto 1fr;gap:25px;align-items:center;margin-top:24px;padding:30px 34px;background:#fff8e8;border:1px solid #ead7a8}.founding-mark{display:grid;place-items:center;width:94px;height:94px;border:1px solid #cba552;border-radius:50%;color:#9b7427;text-align:center;font-size:11px;font-weight:900;line-height:1.25;letter-spacing:.07em}.plans-founding-note-v2 h2{font-family:Georgia,serif;font-size:27px}.plans-final-cta{max-width:850px;margin:58px auto 0;text-align:center}.plans-final-cta h2{margin:6px 0 12px;color:#173f30;font-family:Georgia,serif;font-size:clamp(30px,4vw,42px);line-height:1.12}.plans-final-cta>p:last-of-type{margin:0 auto;color:#65746c;line-height:1.65}.plans-final-cta .button{margin-top:22px;padding:13px 22px;border-radius:10px}@media(max-width:900px){.plans-why-grid{grid-template-columns:repeat(2,1fr)}.plans-value-banner{grid-template-columns:1fr}.plans-zero-commission{padding:20px 0 0;border-left:0;border-top:1px solid #cdd9d1}.plans-page-v2 .plan-compare-card:hover{transform:none}}@media(max-width:600px){.plans-hero-v2{padding:52px 0 42px}.plans-intro-v2{font-size:16px}.plans-hero-promises{display:grid;grid-template-columns:1fr 1fr}.plans-hero-promises span{border-radius:12px}.plans-value-banner{padding:27px 23px}.plans-value-banner h2{font-size:28px}.plans-zero-commission strong{font-size:50px}.plans-why-grid{grid-template-columns:1fr}.plans-founding-note-v2{grid-template-columns:1fr;padding:25px}.founding-mark{width:78px;height:78px}.plans-page-v2 .plan-compare-head{padding:28px 22px 20px}.plans-page-v2 .plan-compare-features{padding:18px 22px 23px}}

/* ============================================================
   HHF PROPERTY GALLERY — FIX GRID INTRINSIC-HEIGHT OVERFLOW
   The fixed-height gallery was being forced taller by the intrinsic
   minimum size of its image buttons, overflowing its own section and
   allowing the content/sidebar below to appear underneath the photos.
   ============================================================ */
@media(min-width:901px){
  body:not(.owner-portal) .public-property .public-gallery{
    grid-template-rows:minmax(0,1fr) !important;
    min-height:0 !important;
    overflow:hidden;
  }
  body:not(.owner-portal) .public-property .gallery-primary,
  body:not(.owner-portal) .public-property .gallery-secondary,
  body:not(.owner-portal) .public-property .gallery-secondary .gallery-photo{
    min-height:0 !important;
    min-width:0 !important;
  }
  body:not(.owner-portal) .public-property .gallery-secondary{
    grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  }
  body:not(.owner-portal) .public-property .gallery-primary img,
  body:not(.owner-portal) .public-property .gallery-secondary img{
    min-height:0 !important;
    min-width:0 !important;
  }

  /* Normal sticky sidebar behaviour: because the gallery now occupies its
     correct layout height, the card begins below it and cannot sit beneath it. */
  body:not(.owner-portal) .public-property .public-booking-card{
    position:sticky !important;
    top:108px !important;
  }
}

/* ---- Region-first search + consistent More Filter cards (2026-09-07) ---- */
.filter-card{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;min-height:42px;padding:8px 10px!important;border:1px solid #e9e4da;border-radius:9px;background:#faf9f5;font-size:.7rem!important;cursor:pointer;min-width:0}
.filter-card-select select{flex:0 0 92px;width:92px!important;min-width:92px!important;height:30px!important;min-height:30px!important;padding:3px 24px 3px 7px!important;border:1px solid #d9d2c5;border-radius:6px;background:#fff;font-size:.7rem!important}
.filter-card-select span{display:block;min-width:0;white-space:nowrap;font-weight:600}
.search-page .search-hero-panel{grid-template-columns:1.45fr .95fr .72fr .82fr .82fr}
.search-page .more-filters-panel,.home-page .home-more-filters .more-filters-panel{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1120px){.search-page .search-hero-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.search-page .more-filters-panel,.home-page .home-more-filters .more-filters-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.search-page .more-filters-panel,.home-page .home-more-filters .more-filters-panel{grid-template-columns:1fr}.filter-card-select select{flex-basis:105px;width:105px!important;min-width:105px!important}}


/* Audit 18 final mobile listing sequence:
   Book Direct + Why Book Direct are physically rendered after the gallery.
   The original sidebar copies remain desktop-only. */
.hhf-mobile-book-direct-stack{
  display:none;
}
@media(max-width:700px){
  .hhf-mobile-book-direct-stack{
    display:block;
    margin-top:18px;
    margin-bottom:4px;
  }
  .hhf-mobile-book-direct-card,
  .hhf-mobile-why-book-direct-card{
    background:#fff;
    border:1px solid #e3d9ca;
    border-radius:18px;
    padding:20px;
    box-shadow:0 8px 22px rgba(31,54,45,.05);
  }
  .hhf-mobile-why-book-direct-card{
    margin-top:16px;
  }
  .hhf-mobile-why-book-direct-card ul{
    list-style:none;
    margin:12px 0 0;
    padding:0;
  }
  .hhf-mobile-why-book-direct-card li{
    display:flex;
    gap:9px;
    align-items:flex-start;
    margin:9px 0;
  }
  .hhf-mobile-why-book-direct-card li span{
    color:#315f4b;
    font-weight:800;
  }

  /* Hide only the original sidebar copies on mobile. */
  .public-booking-card > .booking-direct-content,
  .public-booking-card > .why-book-direct-card{
    display:none !important;
  }

  /* Keep the enquiry in its existing mobile position. */
  .public-booking-card > .property-enquiry{
    display:block;
  }
}


/* Audit 18: polish the mobile Book Direct card now it is in the correct place. */
@media(max-width:700px){
  .hhf-mobile-book-direct-card{
    padding:22px 20px 20px;
  }

  .hhf-mobile-book-direct-card .public-price{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:18px;
    row-gap:2px;
    align-items:end;
    margin-top:10px;
  }
  .hhf-mobile-book-direct-card .public-price > span:first-child{
    grid-column:1;
    grid-row:1;
  }
  .hhf-mobile-book-direct-card .public-price > strong:first-of-type{
    grid-column:1;
    grid-row:2;
  }
  .hhf-mobile-book-direct-card .public-price > span:not(.public-price-unit):not(:first-child){
    grid-column:2;
    grid-row:1;
  }
  .hhf-mobile-book-direct-card .public-price > strong:nth-of-type(2){
    grid-column:2;
    grid-row:2;
  }
  .hhf-mobile-book-direct-card .public-price .public-price-unit{
    grid-column:1 / -1;
    grid-row:3;
    margin-top:5px;
  }

  .hhf-mobile-book-direct-card .public-currency-switch{
    margin-top:14px;
  }

  .hhf-mobile-book-direct-card .booking-trust-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:16px;
  }
  .hhf-mobile-book-direct-card .booking-trust-row span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    text-align:center;
    padding:8px 10px;
    border-radius:999px;
  }
}


/* Audit 18: final compact mobile Book Direct layout. */
@media(max-width:700px){
  .hhf-mobile-book-direct-card{
    display:grid;
    grid-template-columns:1fr auto;
    column-gap:14px;
    row-gap:14px;
    align-items:center;
  }

  .hhf-mobile-book-direct-card > .eyebrow{
    grid-column:1;
    grid-row:1;
    margin:0;
    align-self:center;
  }

  .hhf-mobile-book-direct-card > .public-currency-switch{
    grid-column:2;
    grid-row:1;
    margin:0;
    justify-self:end;
  }

  .hhf-mobile-book-direct-card > .public-price{
    grid-column:1 / -1;
    grid-row:2;
    display:grid;
    grid-template-columns:auto 1fr auto 1fr auto;
    gap:7px;
    align-items:baseline;
    margin:0;
  }

  .hhf-mobile-book-direct-card .public-price > span:first-child,
  .hhf-mobile-book-direct-card .public-price > strong:first-of-type,
  .hhf-mobile-book-direct-card .public-price > span:not(.public-price-unit):not(:first-child),
  .hhf-mobile-book-direct-card .public-price > strong:nth-of-type(2),
  .hhf-mobile-book-direct-card .public-price .public-price-unit{
    grid-column:auto;
    grid-row:auto;
    margin:0;
  }

  .hhf-mobile-book-direct-card .public-price > span:not(.public-price-unit){
    font-weight:800;
    font-size:.75rem;
    letter-spacing:.06em;
  }

  .hhf-mobile-book-direct-card .public-price > strong{
    font-size:1.55rem;
    white-space:nowrap;
  }

  .hhf-mobile-book-direct-card .public-price .public-price-unit{
    white-space:nowrap;
    font-weight:700;
  }

  .hhf-mobile-book-direct-card > .booking-trust-row{
    grid-column:1 / -1;
    grid-row:3;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:0;
  }

  .hhf-mobile-book-direct-card .booking-trust-row span{
    width:100%;
    box-sizing:border-box;
  }

  /* User preference: do not show Why Book Direct on mobile. */
  .hhf-mobile-why-book-direct-card{
    display:none !important;
  }
}


/* Mobile Book Direct heading: match FROM / TO label size. */
@media(max-width:700px){
  .hhf-mobile-book-direct-card > .eyebrow{
    font-size:.75rem;
    letter-spacing:.06em;
  }
}


/* Mobile only: BOOK DIRECT exactly matches FROM / TO label typography. */
@media(max-width:700px){
  .hhf-mobile-book-direct-card > .eyebrow.green{
    font-size:.75rem !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    letter-spacing:.06em !important;
  }
}


/* Mobile only: hard-hide the ORIGINAL desktop/sidebar Book Direct block.
   This class is attached directly to that original block in property.php,
   so it remains hidden regardless of grid/flex/display:contents ordering. */
@media(max-width:700px){
  .desktop-book-direct-only{
    display:none !important;
  }
  .public-booking-card > .why-book-direct-card{
    display:none !important;
  }
}


/* ---- Public seasonal rates: compact long rate lists ---- */
.public-rate-more{
  width:100%;
  margin:8px 0 0;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--soft);
  color:var(--green,#2f654f);
  font:700 .78rem Arial,sans-serif;
  cursor:pointer;
}
.public-rate-more:hover{background:#fff}
.public-rate-more[hidden]{display:none!important}
