/* Shared page furniture for listing pages (canal, sentier) */
.hero-full{position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(24px,3vw,36px) var(--gutter) 0}
.hero-media{position:relative;aspect-ratio:2.2/1;min-height:340px;background:var(--paper);overflow:hidden;border:1px solid var(--rule)}
.hero-media image-slot{width:100%;height:100%;display:block}
.hero-badge{position:absolute;left:0;bottom:0;background:rgba(15,13,10,.86);color:#fff;padding:16px 22px;display:flex;align-items:baseline;gap:14px;backdrop-filter:blur(6px)}
.hero-badge .n{font-family:var(--serif);font-size:clamp(26px,3vw,38px);line-height:1}
.hero-badge .k{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#d9d1c4}
@media (max-width:640px){.hero-media{aspect-ratio:4/3;min-height:0}.hero-badge{position:static;background:var(--ink)}}

/* Essentials strip */
.essentials{max-width:var(--maxw);margin:0 auto;padding:clamp(28px,4vw,44px) var(--gutter)}
.essentials-grid{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,3vw,32px);padding:22px 0}
.essentials-grid .v{font-family:var(--serif);font-size:clamp(24px,3vw,34px);line-height:1;display:block}
.essentials-grid .k{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block;margin-top:8px}
@media (max-width:640px){.essentials-grid{grid-template-columns:repeat(2,1fr)}}

/* Booking widget block */
.widget-block{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) clamp(24px,3vw,36px)}
.widget-box{border:1px dashed var(--terra);background:var(--paper);padding:clamp(24px,4vw,40px);display:grid;grid-template-columns:1fr minmax(280px,380px);gap:clamp(24px,4vw,48px);align-items:center}
@media (max-width:820px){.widget-box{grid-template-columns:1fr}}
.widget-box .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra)}
.widget-box h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,40px);line-height:1.05;margin:10px 0 8px}
.widget-box p{font-size:15px;color:var(--muted);margin:0;max-width:44ch}
.widget-fake{display:grid;gap:10px}
.widget-fake div{height:40px;background:#fff;border:1px solid var(--rule)}
.widget-fake .wide{height:46px;background:var(--ink);border-color:var(--ink)}

/* Prose */
.prose{display:grid;grid-template-columns:220px 1fr;gap:clamp(24px,5vw,64px)}
@media (max-width:820px){.prose{grid-template-columns:1fr}}
.prose-side{font-size:14px;line-height:1.6;color:var(--muted);border-top:1px solid var(--ink);padding-top:14px}
.prose-side strong{display:block;font-family:var(--serif);font-size:19px;color:var(--ink);font-weight:500;margin-bottom:8px}
.prose-body p{font-family:var(--serif);font-size:clamp(19px,2.1vw,24px);line-height:1.5;color:var(--ink-soft);margin:0 0 1em;max-width:48ch}
.prose-body p:first-child::first-letter{font-size:3.4em;float:left;line-height:.82;padding:.05em .12em 0 0;color:var(--terra)}
.prose-body em{font-style:normal;color:var(--terra);font-weight:500}

/* Photo rows */
.photo-row{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);display:grid;gap:clamp(6px,1vw,10px)}
.photo-row.two{grid-template-columns:1fr 1fr}
.photo-row.three{grid-template-columns:1fr 1fr 1fr}
.photo-row > div{aspect-ratio:4/3;background:var(--paper);overflow:hidden;border:1px solid var(--rule)}
.photo-row.wide > div{aspect-ratio:2.6/1}
.photo-row image-slot{width:100%;height:100%;display:block}
@media (max-width:640px){.photo-row.two,.photo-row.three{grid-template-columns:1fr}}

/* Amenities by category */
.amen{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
@media (max-width:820px){.amen{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.amen{grid-template-columns:1fr}}
.amen-cat h4{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;border-bottom:1px solid var(--rule);padding-bottom:8px}
.amen-cat ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.amen-cat li{font-size:15px;color:var(--ink-soft);padding-left:22px;text-indent:-22px}
.amen-cat li::before{content:"\2022";color:var(--terra);font-size:12px;margin-right:10px}
.amen-cat li .caveat{color:var(--muted);font-size:13.5px}

/* Neighbourhood */
.hood{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
@media (max-width:820px){.hood{grid-template-columns:1fr}}
.hood p{font-family:var(--serif);font-size:clamp(18px,2vw,22px);line-height:1.5;color:var(--ink-soft);margin:0 0 1em;max-width:44ch}
.hood-list{list-style:none;margin:0;padding:0;display:grid}
.hood-list li{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--rule);font-size:15px}
.hood-list li:first-child{border-top:1px solid var(--rule)}
.hood-list .d{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}

/* Proof + quotes */
.scores{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(14px,2vw,24px);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0;margin-bottom:clamp(28px,4vw,44px)}
@media (max-width:720px){.scores{grid-template-columns:repeat(3,1fr)}}
.scores .v{font-family:var(--serif);font-size:clamp(20px,2.4vw,26px);line-height:1;display:block}
.scores .k{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:block;margin-top:6px}
.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,36px)}
@media (max-width:720px){.quotes{grid-template-columns:1fr}}
.quote{border-top:1px solid var(--ink);padding-top:16px}
.quote blockquote{font-family:var(--serif);font-size:clamp(19px,2.1vw,24px);line-height:1.45;margin:0 0 12px;color:var(--ink);text-wrap:pretty}
.quote .src{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.headline-score{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.headline-score .n{font-family:var(--serif);font-size:clamp(48px,7vw,84px);line-height:.9}
.headline-score .n .star{color:var(--terra);font-size:.45em;vertical-align:.12em;margin-right:.12em}
.headline-score .meta{font-size:14px;color:var(--muted)}

/* Hosts */
.hosts{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:center}
@media (max-width:820px){.hosts{grid-template-columns:1fr}}
.hosts-photo{aspect-ratio:4/3;background:var(--paper);border:1px solid var(--rule);overflow:hidden}
.hosts-photo image-slot{width:100%;height:100%;display:block}
.hosts h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,44px);line-height:1.02;margin:0 0 4px}
.hosts .role{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.hosts p{font-family:var(--serif);font-size:clamp(18px,1.9vw,21px);line-height:1.5;color:var(--ink-soft);margin:0 0 1em;max-width:44ch}
.hosts em{font-style:normal;color:var(--terra);font-weight:500}
.hosts-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:8px}
.hosts-fact{border-top:1px solid var(--rule);padding:10px 0;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline}
.hosts-fact .k{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.hosts-fact .v{font-family:var(--serif);font-size:17px}

/* FAQ */
.faq{display:grid;gap:0}
.faq details{border-top:1px solid var(--rule)}
.faq details:last-of-type{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:18px 0;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;font-family:var(--serif);font-size:clamp(20px,2.2vw,25px)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--terra);font-family:var(--sans);font-size:20px}
.faq details[open] summary::after{content:"\00d7"}
.faq .a{padding:0 0 20px;font-size:16px;line-height:1.6;color:var(--ink-soft);max-width:62ch}

/* Closing book band */
.book{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.book-inner{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,6vw,72px) var(--gutter);display:grid;grid-template-columns:1fr auto;gap:clamp(24px,4vw,48px);align-items:center}
@media (max-width:820px){.book-inner{grid-template-columns:1fr}}
.book h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.6vw,56px);line-height:1.02;margin:0 0 12px}
.book h2 .it{font-style:italic;color:var(--terra)}
.book p{font-size:15px;color:var(--muted);margin:0;max-width:48ch}
.reg{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--muted);max-width:var(--maxw);margin:0 auto;padding:16px var(--gutter)}
