/* AtypikHouse — identité et composants métier. La base Gutenberg originale reste disponible. */
:root {
  --color-background: #F6F1E8;
  --color-text-primary: #2E2E2E;
  --color-text-secondary: #505A53;
  --color-surface: #fff;
  --color-surface-raised: #F0E9DD;
  --color-border: #D8DCCE;
  --color-accent: #1F4D3A;
  --color-accent-deep: #1F4D3A;
  --color-accent-dark: #163928;
  --color-on-accent: #fff;
  --color-focus: #A94A2C;
  --font-body: "Manrope", system-ui, sans-serif;
  --font-heading: "Manrope", system-ui, sans-serif;
  --radius-small: .5rem;
  --radius-medium: .75rem;
  --radius-large: 1rem;
}
html { scroll-behavior: smooth; }
body { background: var(--atypik-cream,#F6F1E8); color:var(--atypik-ink,#2E2E2E); font-family:var(--font-body); }
main { min-height: 44vh; }
main:focus { outline: none; }
h1, h2, h3 { letter-spacing: -.035em; }
h1 { font-size: clamp(2.5rem, 5.6vw, 4.5rem); line-height: 1.09; }
h2 { font-size: clamp(1.85rem, 3vw, 2.7rem); line-height: 1.18; }
h3 { font-size: clamp(1.14rem, 1.6vw, 1.35rem); line-height: 1.25; }
p { font-size: 1rem; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--atypik-terracotta,#A94A2C); outline-offset: 3px; }
.orly-button--primary { color:#fff; background:#1F4D3A; border-color:#1F4D3A; }
.orly-button--primary:hover { background:#163928; border-color:#163928; color:#fff; }
.orly-accent { color:#A94A2C; }
.orly-site-header.atypik-site-header { background:rgba(246,241,232,.98); border-bottom:1px solid var(--color-border); box-shadow:0 2px 10px rgb(31 77 58 / .035); }
.atypik-site-header .orly-site-header__inner { border-bottom:0; min-height:80px; }
.atypik-site-header .orly-brand { font-weight:800; font-size:1.45rem; letter-spacing:-.04em; color:#1F4D3A; }
.atypik-site-header .custom-logo { max-width: 170px; max-height: 56px; }
.atypik-site-header .orly-site-nav a { color:#2E2E2E; font-weight:600; }
.atypik-site-header .orly-site-nav a:hover { color:#1F4D3A; }
.atypik-header-account { margin-inline-start:auto; padding: .65rem 1.1rem; border:1px solid #1F4D3A; border-radius:8px; font-size:.85rem; font-weight:700; color:#1F4D3A; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.atypik-header-account:hover { background:#1F4D3A; color:#fff; }
.atypik-eyebrow { font-weight:800; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; color:#A94A2C; margin-bottom:1.2rem; }
.atypik-hero { position:relative; isolation:isolate; padding:clamp(4rem, 10vw, 8rem) 0 clamp(4rem,8vw,6rem); background: radial-gradient(ellipse at 89% 20%,rgb(168 181 162 / .4) 0, transparent 40%),linear-gradient(140deg,#F6F1E8,#ECE9DA); overflow:hidden; }
.atypik-hero:after { content:""; position:absolute; z-index:-1; width:45vw; height:45vw; max-width:700px; max-height:700px; border:1px solid rgb(31 77 58 / .12); border-radius:50%; right:-10vw; top:-13vw; box-shadow:0 0 0 5rem rgb(168 181 162 / .06),0 0 0 10rem rgb(168 181 162 / .03); }
.atypik-hero__inner { position:relative; }
.atypik-hero h1 { max-width: 19ch; color:#1F4D3A; font-weight:800; }
.atypik-hero h1 em { font-style:normal; color:#A94A2C; }
.atypik-lead { max-width:60ch; margin-top:1.5rem; color:#505A53; font-size:clamp(1rem,1.45vw,1.18rem); }
.atypik-hero__note { font-size:.75rem; margin-top:1rem; color:#5E665E; }
.atypik-search { width:100%; display:grid; gap:1rem; grid-template-columns:minmax(0,1fr); margin:2.5rem 0 0; padding:1rem; border:1px solid #DBE1D7; background:#fff; border-radius:16px; box-shadow:0 14px 45px rgb(32 51 41 / .08); }
.atypik-field { display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.atypik-field label { color:#2E2E2E; font-weight:700; font-size:.83rem; }
.atypik-field input, .atypik-field select, .atypik-field textarea { width:100%; min-height:52px; border:1px solid #BFCABE; border-radius:8px; padding:.7rem .8rem; color:#2E2E2E; background:#fff; font:inherit; font-size:.92rem; }
.atypik-field input::placeholder { color:#67716A; }
.atypik-btn { appearance:none; border:1px solid transparent; display:inline-flex; text-align:center; align-items:center; justify-content:center; gap:.5rem; min-height:48px; padding:.75rem 1.3rem; border-radius:8px; text-decoration:none; font-family:var(--font-body); font-weight:700; cursor:pointer; transition: background-color .2s, color .2s; }
.atypik-btn--primary { background:#1F4D3A; color:#fff; }
.atypik-btn--primary:hover { background:#153B2D; color:#fff; }
.atypik-btn--secondary { border-color:#1F4D3A; color:#1F4D3A; background:#fff; }
.atypik-btn--secondary:hover { background:#EAF0E9; }
.atypik-section { padding-top:clamp(2.5rem,5vw,4.5rem); padding-bottom:clamp(2.5rem,5vw,4.5rem); }
.atypik-section__heading { display:flex; flex-direction:column; align-items:flex-start; gap:1rem; margin-bottom:2rem; }
.atypik-inline-link { color:#1F4D3A; font-weight:700; font-size:.9rem; }
.atypik-card-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; }
.atypik-stay-card { min-width:0; overflow:hidden; border:1px solid #D6E0D4; background:#fff; border-radius:16px; box-shadow:0 3px 14px rgb(31 77 58 / .04); transition:transform .2s ease,box-shadow .2s ease; }
.atypik-stay-card:hover { transform:translateY(-3px); box-shadow:0 10px 25px rgb(31 77 58 / .1); }
.atypik-stay-card__image { display:block; aspect-ratio:4/3; overflow:hidden; background:linear-gradient(135deg,#B1BDAA,#D8C3A5); }
.atypik-stay-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.atypik-stay-card:hover img { transform:scale(1.035); }
.atypik-stay-card__placeholder { height:100%; display:flex; align-items:center; justify-content:center; color:#1F4D3A; font-weight:800; font-size:1.4rem; }
.atypik-stay-card__body { padding:1.15rem 1.25rem 1.25rem; }
.atypik-stay-card__meta { font-size:.78rem; font-weight:600; color:#587366; margin-bottom:.55rem; }
.atypik-stay-card h3 { margin:0 0 1rem; font-size:1.18rem; }
.atypik-stay-card h3 a { text-decoration:none; }
.atypik-stay-card h3 a:hover { color:#1F4D3A; }
.atypik-stay-card__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:.7rem; color:#636B64; font-size:.85rem; border-top:1px solid #EBECE8; padding-top:1rem; }
.atypik-stay-card__bottom strong { color:#1F4D3A; font-size:1.12rem; }
.atypik-stay-card__bottom small { font-size:.78rem; font-weight:500; }
.atypik-empty { padding:2.5rem; background:#fff; border:1px dashed #A8B5A2; border-radius:16px; }
.atypik-empty p+p { margin-top:.6rem; }
.atypik-value { padding:4rem 0; color:#fff; background:#1F4D3A; }
.atypik-value .atypik-eyebrow { color:#D8C3A5; }
.atypik-value h2 { color:#fff; }
.atypik-value__inner { display:grid; gap:2rem; align-items:center; }
.atypik-value__inner>p { color:#F1F2EE; max-width:55ch; }
.atypik-next-step { text-align:center; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.atypik-next-step p { max-width:60ch; }
.atypik-page-heading { margin:0 0 2rem; }
.atypik-page-heading .atypik-eyebrow { margin-bottom:.7rem; }
.atypik-page-heading h1 { font-size:clamp(2.35rem,4.4vw,3.6rem); color:#1F4D3A; }
.atypik-page-heading p:not(.atypik-eyebrow) { margin-top:.7rem; color:#59695E; }
.atypik-result-count { margin:2.4rem 0 1.5rem; font-size:.86rem; color:#505A53; }
.atypik-breadcrumbs { display:flex; flex-wrap:wrap; gap:.6rem; color:#68746A; font-size:.78rem; margin-bottom:2rem; }
.atypik-breadcrumbs a { text-decoration:none; }
.atypik-breadcrumbs a:hover { color:#1F4D3A; text-decoration:underline; }
.atypik-single-image { width:100%; aspect-ratio:16/7; overflow:hidden; background:#A8B5A2; border-radius:16px; }
.atypik-single-image img { width:100%; height:100%; object-fit:cover; }
.atypik-single-image--empty { display:flex; align-items:center; justify-content:center; font-size:2rem; font-weight:800; color:#1F4D3A; }
.atypik-stay-detail { display:grid; gap:2.5rem; align-items:start; margin-top:2.5rem; }
.atypik-stay-description { min-width:0; }
.atypik-stay-description h2 { font-size:1.7rem; margin:1.8rem 0 1rem; }
.atypik-stay-description h2:first-child { margin-top:0; }
.atypik-stay-description p { margin-bottom:1rem; }
.atypik-amenities { list-style:none; padding:0; display:grid; gap:.7rem; }
.atypik-amenities li:before { content:'✓'; color:#1F4D3A; font-weight:800; margin-right:.6rem; }
.atypik-booking-panel { border:1px solid #D6E0D4; border-radius:16px; background:#fff; padding:1.5rem; box-shadow:0 10px 30px rgb(31 77 58 / .08); }
.atypik-booking-price { font-weight:800; font-size:1.65rem; color:#1F4D3A; margin-bottom:1.4rem; }
.atypik-booking-price small { font-size:.9rem; font-weight:500; color:#55665C; }
.atypik-booking-form { display:grid; gap:1rem; }
.atypik-booking-form__dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.atypik-booking-hint,.atypik-disclaimer { margin-top:1.2rem; font-size:.8rem; color:#6C736C; }
.atypik-notice { padding:.9rem 1rem; background:#FFF4E8; border-left:3px solid #A94A2C; margin-bottom:1rem; }
.atypik-notice--success { background:#EAF4EA; border-left-color:#1F4D3A; }
.atypik-comments { margin-top:2rem; border-top:1px solid var(--color-border); padding-top:1rem; }
.atypik-account,.atypik-account-list { max-width:1000px; margin:2rem auto; }
.atypik-booking-list { display:grid; gap:1rem; }
.atypik-booking-row { padding:1.25rem; border:1px solid var(--color-border); border-radius:12px; background:#fff; margin:1rem 0; }
.atypik-booking-row h3 { margin-bottom:.8rem; }
.atypik-booking-row p { margin-bottom:.6rem; }
.atypik-footer { color:#F6F1E8; background:#163928; padding:3rem 0 2rem; }
.atypik-footer__inner { display:grid; gap:2rem; }
.atypik-footer__brand { font-size:1.6rem; letter-spacing:-.04em; }
.atypik-footer p { color:#E2ECE3; font-size:.83rem; margin-top:.5rem; }
.atypik-footer ul { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin:0; list-style:none; padding:0; }
.atypik-footer a { color:#F6F1E8; font-size:.88rem; text-decoration:none; }
.atypik-footer a:hover { text-decoration:underline; }
.atypik-footer__legal { border-top:1px solid rgb(255 255 255 / .2); padding-top:1rem; }
/* Gutenberg blocks inherited from the personal theme retain their rendering; brand tokens are mapped above. */
@media (min-width:48rem) {
  .atypik-search { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(110px,.5fr) auto; align-items:end; }
  .atypik-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .atypik-section__heading { flex-direction:row; justify-content:space-between; align-items:end; }
  .atypik-value__inner { grid-template-columns:1fr 1fr; }
  .atypik-footer__inner { grid-template-columns:1fr auto; }
  .atypik-footer__legal { grid-column:1/-1; }
}
@media (min-width:64rem) {
  .atypik-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .atypik-stay-detail { grid-template-columns:minmax(0,1fr) minmax(315px,380px); }
  .atypik-booking-panel { position:sticky; top:100px; }
  .atypik-header-account { margin-inline-start:1rem; }
}
@media (max-width:63.999rem) {
  .atypik-site-header .orly-menu-toggle { margin-left:auto; }
  .atypik-site-header .atypik-header-account { margin-left:0; }
  .atypik-site-header .orly-site-nav { order:5; }
}
@media (max-width:30rem) {
  .atypik-booking-form__dates { grid-template-columns:minmax(0,1fr); }
  .atypik-header-account { padding:.55rem .7rem; font-size:.8rem; }
}
@media (prefers-reduced-motion:reduce) {html{scroll-behavior:auto} .atypik-stay-card,.atypik-stay-card img {transition:none;transform:none!important;} }
.atypik-signup { max-width:760px; }
.atypik-signup>p { margin:1rem 0; }
.atypik-signup__form { display:grid; gap:1rem; max-width:540px; padding:2rem; border:1px solid #D6E0D4; border-radius:16px; background:#fff; }
.atypik-page-content { max-width: 1200px; }
.atypik-page-content > * + * { margin-top:1rem; }
.atypik-page-content h1,.atypik-page-content h2,.atypik-page-content h3 { margin-block:1.2rem .8rem; }
.atypik-page-content h1:first-child { margin-top:0; }
.atypik-page-content ul,.atypik-page-content ol { padding-inline-start:1.5rem; }

.atypik-header-signup { min-height:44px; display:inline-flex; align-items:center; padding:.55rem .65rem; font-size:.8rem; font-weight:700; text-decoration:none; color:#1F4D3A; }
.atypik-header-signup:hover { text-decoration:underline; }
