/* Riad Razoli, Sidi Fateh, médina de Rabat.
   Charte tirée de la maison (aucun logo publié) : le corail des galeries, le safran des portes peintes, le fer
   forgé presque noir des rampes, le turquoise des fenêtres de la terrasse. Josefin Sans (géométrique des années
   1920, comme le médaillon Art déco sculpté sur leur mur) pour les titres, Hanken Grotesk pour le texte.
   Motif : le médaillon (profil, étoiles, dents de scie, plume), redessiné au trait. */

@font-face{font-family:"Josefin Sans";font-style:normal;font-weight:300 600;font-display:swap;
  src:url("assets/fonts/josefin.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400 600;font-display:swap;
  src:url("assets/fonts/hanken.woff2") format("woff2")}

:root{
  --lait:#FBF7F1; --blanc:#FFFDF9; --sable:#F3EADF; --sable-f:#E8DACA;
  --corail:#D2654C; --corail-f:#A9452F; --corail-b:#AD4A34;
  --safran:#E7AC3B; --safran-c:#F2C468;
  --fer:#1D2421; --fer-2:#252E2A; --fer-3:#141A17;
  --turquoise:#3BB3A6;
  --encre:#241F1C; --gris:#6B605A; --gris-c:#B9B0A6; --texte-c:#E6DED4;
  --filet:rgba(36,31,28,.12); --filet-c:rgba(251,247,241,.16);
  --titre:"Josefin Sans","Avenir Next","Century Gothic",sans-serif;
  --texte:"Hanken Grotesk","Helvetica Neue",sans-serif;
  --wrap:1240px; --gout:24px; --r:6px; --rr:22px;
  --ease:cubic-bezier(.32,.72,0,1);
  --t:.45s var(--ease);
  --ombre:0 30px 60px -30px rgba(29,36,33,.35),0 10px 24px -18px rgba(29,36,33,.2);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--lait);color:var(--encre);font-family:var(--texte);font-size:1.0625rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--titre);font-weight:300;line-height:1.08;margin:0;letter-spacing:.005em;text-wrap:balance}
h2{font-size:clamp(2.2rem,3.8vw,3.4rem)}
h3{font-size:1.6rem;font-weight:400}
p{margin:0}
h1+p,h2+p,h3+p{margin-top:22px}
p+p{margin-top:14px}
ul,ol,dl{margin:0;padding:0;list-style:none}
dd{margin:0}
.wrap{width:min(var(--wrap),100% - 2*var(--gout));margin-inline:auto}
.saut{position:absolute;left:12px;top:-60px;z-index:300;background:var(--fer);color:var(--lait);padding:10px 16px;font-family:var(--titre);text-decoration:none}
.saut:focus{top:12px}
:focus-visible{outline:2px solid var(--corail-f);outline-offset:3px}

/* --------------------------------------------------------------- shared -- */
.surligne{font-family:var(--titre);font-weight:600;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--corail-f);margin-bottom:16px}
.surligne--clair{color:var(--safran)}
/* Josefin's capitals sit high in their line box: the extra top padding centres them in a pill */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:.2em 30px 0;border:1px solid var(--fer);border-radius:999px;
  background:var(--fer);color:var(--lait);font-family:var(--titre);font-weight:600;font-size:.84rem;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;transition:background var(--t),color var(--t),border-color var(--t),transform .2s var(--ease)}
.btn:hover{background:var(--corail-f);border-color:var(--corail-f)}
.btn:active{transform:scale(.98)}
.btn--petit{min-height:44px;padding:.2em 20px 0;font-size:.78rem}
.btn--ligne{background:transparent;color:var(--fer)}
.btn--ligne:hover{background:var(--fer);color:var(--lait);border-color:var(--fer)}
.btn--safran{background:var(--safran);border-color:var(--safran);color:var(--fer)}
.btn--safran:hover{background:var(--safran-c);border-color:var(--safran-c);color:var(--fer)}
.btn--ligne-clair{background:transparent;border-color:rgba(251,247,241,.55);color:var(--lait)}
.btn--ligne-clair:hover{background:var(--lait);border-color:var(--lait);color:var(--fer)}
.lien{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-family:var(--titre);font-weight:600;font-size:.84rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--corail-f);text-decoration:none;padding-top:.2em}
.lien::after{content:"";width:28px;height:1px;background:currentColor;transition:width var(--t)}
.lien:hover::after{width:46px}

.bloc{padding:clamp(84px,11vw,140px) 0}
/* sections below the first screen are laid out (and their lazy photos fetched) only as they approach */
main#contenu>section:not(.hero):not(.ph):not(.faits){content-visibility:auto;contain-intrinsic-size:auto 900px}
.bloc--sable{background:var(--sable)}
.tete{margin-bottom:52px;max-width:660px}
.tete--centre{margin-inline:auto;text-align:center}
.tete p{color:var(--gris)}

/* a photo in a tray: an outer shell and an inner core with concentric corners */
.cadre{padding:8px;border-radius:var(--rr);background:rgba(36,31,28,.05);box-shadow:inset 0 0 0 1px rgba(36,31,28,.06)}
.cadre>img,.cadre>picture img{border-radius:calc(var(--rr) - 8px)}

/* the medallion: their own carved emblem, traced from the photo, used as a mask so it takes any colour.
   It is stamped in once (a disc opening from the centre with a short turn), then still. */
.med{display:block;aspect-ratio:985/982;color:var(--corail-f)}
.med i{display:block;width:100%;height:100%;background:currentColor;
  -webkit-mask:url("assets/logo/medaillon.svg") center/contain no-repeat;mask:url("assets/logo/medaillon.svg") center/contain no-repeat}
.med--marque i,.med--rsv i,.med--small i{-webkit-mask-image:url("assets/logo/medaillon-b.svg");mask-image:url("assets/logo/medaillon-b.svg")}
.med.is-trace i{animation:frappe 1.5s var(--ease) .1s backwards}
@keyframes frappe{from{clip-path:circle(0% at 50% 50%);transform:rotate(-24deg) scale(.92)}to{clip-path:circle(72% at 50% 50%);transform:none}}

.ico{display:block;width:34px;height:34px;flex:none;color:var(--corail-f)}
.ico svg{display:block;width:34px;height:34px}

/* ------------------------------------------------------------------ nav -- */
.nav{position:fixed;inset:0 0 auto;z-index:100;color:var(--lait);transition:background var(--t),color var(--t),box-shadow var(--t)}
.nav__in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;width:min(1380px,100% - 2*var(--gout));margin-inline:auto;height:88px;transition:height var(--t)}
.nav.is-solid{background:rgba(251,247,241,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--encre);box-shadow:0 1px 0 var(--filet)}
.nav.is-solid .nav__in{height:72px}
.nav__logo{justify-self:start;text-decoration:none;color:inherit}
.marque{display:inline-flex;align-items:center;gap:13px;white-space:nowrap}
.med--marque{width:40px;color:inherit}
.nav.is-solid .med--marque{color:var(--corail-f)}
.marque__txt{display:flex;flex-direction:column;gap:5px;padding-top:4px}
.marque__nom{font-family:var(--titre);font-weight:400;font-size:1.18rem;letter-spacing:.2em;text-transform:uppercase;line-height:1}
.marque__sous{font-family:var(--titre);font-weight:600;font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;line-height:1;opacity:.75}
.nav__links{display:flex;align-items:center;gap:34px}
.nav__links a{font-family:var(--titre);font-weight:400;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:8px 0 5px;border-bottom:1px solid transparent;transition:border-color var(--t)}
.nav__links a:hover,.nav__links a.active{border-bottom-color:currentColor}
.nav__extra{display:none}
.nav__droite{justify-self:end;display:flex;align-items:center;gap:20px}
.nav__langue{font-family:var(--titre);font-weight:600;font-size:.78rem;letter-spacing:.16em;text-decoration:none;opacity:.88;padding-top:.2em}
.nav__langue:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.nav:not(.is-solid) .nav__droite .btn{background:rgba(251,247,241,.1);border-color:rgba(251,247,241,.6);color:var(--lait);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.nav:not(.is-solid) .nav__droite .btn:hover{background:var(--lait);color:var(--fer)}
.nav__burger{display:none;position:relative;z-index:2;width:44px;height:44px;border:0;background:transparent;padding:0}
.nav__burger span{position:absolute;left:11px;right:11px;height:1.5px;background:currentColor;transition:transform var(--t),opacity var(--t)}
.nav__burger span:nth-child(1){top:15px}.nav__burger span:nth-child(2){top:21px}.nav__burger span:nth-child(3){top:27px}
.nav.menu-open .nav__burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav.menu-open .nav__burger span:nth-child(2){opacity:0}
.nav.menu-open .nav__burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1080px){
  .nav__in{grid-template-columns:1fr auto;height:72px}
  .nav.is-solid .nav__in{height:64px}
  .nav__burger{display:block}
  .nav__droite{gap:10px}
  .nav__droite .nav__langue{display:none}
  .nav__links{position:fixed;inset:0;justify-self:stretch;align-self:stretch;z-index:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;
    background:var(--fer);color:var(--lait);padding:96px 32px 40px;
    transform:translateY(-100%);visibility:hidden;transition:transform .5s var(--ease),visibility 0s linear .5s}
  .nav__links.nav-open{transform:none;visibility:visible;transition:transform .5s var(--ease),visibility 0s}
  .nav__links a{color:var(--lait);font-weight:300;font-size:1.9rem;letter-spacing:.08em;padding:10px 0 6px}
  .nav__links .nav__extra{display:inline-flex;margin-top:26px}
  .nav__links .btn.nav__extra{background:var(--safran);border-color:var(--safran);color:var(--fer);font-size:.84rem;letter-spacing:.16em}
  .nav__links a.nav__langue{font-size:.86rem;font-weight:600;letter-spacing:.16em;border:0;margin-top:12px;opacity:.85;color:var(--lait)}
  .nav.menu-open{color:var(--lait);background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .nav.menu-open .med--marque{color:var(--safran)}
  .nav.menu-open .nav__logo{position:relative;z-index:2}
  .nav.menu-open .nav__droite .btn{visibility:hidden}
}
@media (max-width:520px){
  .med--marque{width:34px}
  .marque{gap:10px}
  .marque__nom{font-size:1rem;letter-spacing:.16em}
  .marque__sous{font-size:.56rem;letter-spacing:.3em}
  .nav__droite .btn--petit{padding:.2em 15px 0;letter-spacing:.1em;min-height:40px}
}
@media (max-width:360px){
  .marque__sous{display:none}
}

/* ----------------------------------------------------------------- hero -- */
/* One photo at a time, full screen, never two side by side (Jad, 2026-10-13). The photo keeps its colours:
   a veil only at the top (for the menu) and at the bottom (behind the title and the date bar). */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;max-height:1240px;color:var(--lait);overflow:hidden;background:var(--fer)}
.hero__media{position:absolute;inset:0}
.hero__media picture,.hero__base,.hero__diapo{position:absolute;inset:0;width:100%;height:100%}
.hero__base,.hero__diapo{object-fit:cover}
.hero__diapo{opacity:0;transition:opacity 2s cubic-bezier(.45,0,.2,1)}
.hero__diapo.is-on{opacity:1}
.hero__base.is-kb,.hero__diapo.is-kb{animation:kb 10s cubic-bezier(.25,.1,.25,1) forwards}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.03)}}
.hero::before{content:"";position:absolute;inset:0 0 auto;height:200px;z-index:1;pointer-events:none;
  background:linear-gradient(rgba(20,26,23,.62),rgba(20,26,23,.28) 50%,rgba(20,26,23,0))}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(75% 70% at 12% 92%,rgba(20,26,23,.86) 0%,rgba(20,26,23,.62) 38%,rgba(20,26,23,.18) 70%,rgba(20,26,23,0) 100%),
    linear-gradient(to top,rgba(20,26,23,.62) 0%,rgba(20,26,23,.2) 26%,rgba(20,26,23,0) 44%)}
.hero__in{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;gap:clamp(22px,3.4vh,40px);padding-bottom:clamp(22px,4vh,44px)}
.hero__titre{font-weight:350;font-size:clamp(3.2rem,7.6vw,7.8rem);line-height:.92;letter-spacing:.08em;text-transform:uppercase;margin-left:-.04em;
  text-shadow:0 2px 30px rgba(20,26,23,.45)}
.hero__sub{max-width:36ch;margin-top:18px;font-size:clamp(1.06rem,1.45vw,1.28rem);line-height:1.5;color:#F2EBE2}
.hero__pied-in{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}

/* the date bar: a pane of frosted glass holding a cream core */
.barre{display:grid;grid-template-columns:1fr 1fr .8fr auto;align-items:stretch;width:min(820px,100%);padding:7px;border-radius:26px;
  background:rgba(251,247,241,.14);box-shadow:inset 0 0 0 1px rgba(251,247,241,.28),0 30px 60px -30px rgba(10,14,12,.7);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.barre__champ{display:flex;flex-direction:column;justify-content:center;padding:11px 20px 10px;background:var(--lait);color:var(--encre);min-width:0;
  border-right:1px solid var(--filet)}
.barre__champ:first-child{border-radius:19px 0 0 19px}
.barre__champ--voy{border-right:0;border-radius:0 19px 19px 0;margin-right:7px}
.barre__champ label{font-family:var(--titre);font-weight:600;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);padding-top:.15em}
.barre__champ input,.barre__champ select{-webkit-appearance:none;appearance:none;width:100%;min-height:30px;margin-top:2px;padding:0;border:0;background:transparent;
  font-family:var(--texte);font-size:1.02rem;font-weight:500;color:var(--encre);line-height:1.3}
.barre__champ input::-webkit-date-and-time-value{text-align:left;margin:0}
.barre__champ input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.barre__champ select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%236B605A' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right center;padding-right:18px}
.barre__btn{min-height:auto;padding:.2em 34px 0;border-radius:19px}

/* which photo is showing: number, rule, name */
.hero__leg{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-family:var(--titre);line-height:1;white-space:nowrap}
.hero__num,.hero__cap{transition:opacity .5s var(--ease)}
.hero__leg.is-change .hero__num,.hero__leg.is-change .hero__cap{opacity:0}
.hero__num{font-size:1.5rem;font-weight:300;letter-spacing:.06em}
.hero__sur{font-size:.74rem;letter-spacing:.16em;color:var(--texte-c);padding-top:.2em}
.hero__cap{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;padding:.2em 0 0 52px;position:relative}
.hero__cap::before{content:"";position:absolute;left:0;top:50%;width:38px;height:1px;background:var(--safran)}

@media (max-width:1100px){
  .hero__leg{display:none}
}
@media (max-width:760px){
  .hero::after{background:linear-gradient(to top,rgba(20,26,23,.9) 0%,rgba(20,26,23,.62) 34%,rgba(20,26,23,.2) 62%,rgba(20,26,23,0) 80%)}
  .hero__in{gap:18px;padding-bottom:16px}
  .hero__titre{font-size:clamp(2.7rem,13.4vw,3.6rem);letter-spacing:.06em}
  .hero__sub{font-size:1rem;margin-top:10px}
  .barre{grid-template-columns:1fr 1fr;padding:6px;border-radius:22px;gap:0}
  .barre__champ{padding:8px 14px 7px}
  .barre__champ:first-child{border-radius:16px 0 0 0}
  .barre__champ:nth-child(2){border-right:0;border-radius:0 16px 0 0}
  .barre__champ--voy{border-radius:0 0 0 16px;margin-right:0;border-top:1px solid var(--filet);border-right:1px solid var(--filet)}
  .barre__champ input,.barre__champ select{font-size:.98rem;min-height:26px}
  .barre__btn{border-radius:0 0 16px 0;min-height:50px;padding:.2em 12px 0}
}
@media (max-height:700px) and (max-width:760px){
  .hero__titre{font-size:2.6rem}
  .hero__sub{font-size:.95rem;max-width:32ch}
}

/* ---------------------------------------------------------------- faits -- */
.faits{background:var(--lait)}
.faits__l{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:54px 0 50px;border-bottom:1px solid var(--filet)}
.faits__l li{display:flex;flex-direction:column;gap:16px}
.faits__l p{display:flex;flex-direction:column;line-height:1.35}
.faits__l strong{font-family:var(--titre);font-weight:400;font-size:1.14rem;letter-spacing:.02em}
.faits__l span{color:var(--gris);font-size:.97rem;margin-top:4px}
@media (max-width:980px){
  .faits__l{grid-template-columns:1fr 1fr;gap:34px 24px}
}
@media (max-width:520px){
  .faits__l{padding:40px 0 38px;gap:28px 18px}
  .ico,.ico svg{width:30px;height:30px}
  .faits__l strong{font-size:1.02rem}
  .faits__l span{font-size:.9rem}
}

/* --------------------------------------------- editorial: photo + text -- */
.maison__in,.patio__in,.acces__in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(44px,7vw,110px);align-items:center}
.maison__txt,.patio__txt,.acces__txt{max-width:500px}
.maison__txt p,.patio__txt p,.acces__txt p{color:#4B423D}
.med--bloc{width:86px;margin-bottom:28px}
.maison__media,.patio__media,.acces__media{padding:8px;border-radius:var(--rr);background:rgba(36,31,28,.05);box-shadow:inset 0 0 0 1px rgba(36,31,28,.06),var(--ombre)}
.maison__media img,.patio__media img,.acces__media img{width:100%;height:620px;object-fit:cover;border-radius:calc(var(--rr) - 8px)}
.patio__in{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.acces__media img{height:540px}

/* -------------------------------------------------------------- vitrine -- */
.vit__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(44px,6vw,96px);align-items:center}
.vit__media{position:relative;height:700px;width:100%;max-width:580px;justify-self:end;padding:8px;border-radius:var(--rr);
  background:rgba(36,31,28,.05);box-shadow:inset 0 0 0 1px rgba(36,31,28,.06),var(--ombre)}
.vit__img{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:cover;border-radius:calc(var(--rr) - 8px);opacity:0;transition:opacity .8s var(--ease)}
.vit__img.is-on{opacity:1}
.vit__cap{position:absolute;left:24px;right:24px;bottom:22px;margin:0;padding:10px 14px 9px;border-radius:12px;background:rgba(251,247,241,.92);
  font-size:.9rem;line-height:1.35;color:var(--encre);opacity:0;transition:opacity .6s var(--ease)}
.vit__cap.is-on{opacity:1}
.vit__liste{margin-top:34px;border-bottom:1px solid var(--filet)}
.vit__l{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:20px;width:100%;padding:18px 0 17px 20px;border:0;border-top:1px solid var(--filet);
  background:transparent;text-align:left;position:relative;transition:background var(--t)}
.vit__l::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-4px;border-radius:50%;background:var(--corail);transform:scale(0);transition:transform var(--t)}
.vit__l.is-on::before,.vit__l:hover::before{transform:scale(1)}
.vit__n{font-family:var(--titre);font-weight:400;font-size:1.36rem;line-height:1.2;grid-column:1;padding-top:.12em}
.vit__d{grid-column:1;color:var(--gris);font-size:.95rem;margin-top:3px}
.vit__p{grid-column:2;grid-row:1/3;font-family:var(--titre);font-weight:600;font-size:.95rem;letter-spacing:.06em;color:var(--corail-f);white-space:nowrap;padding-top:.15em}
.vit__note{margin-top:18px;font-size:.93rem;color:var(--gris);max-width:54ch}
.vit__btns{display:flex;flex-wrap:wrap;align-items:center;gap:22px 32px;margin-top:30px}
.vit__btns .lien{margin-top:0}

/* --------------------------------------------- la terrasse (fer forgé) -- */
.ter{background:radial-gradient(120% 90% at 85% 10%,var(--fer-2) 0%,var(--fer) 55%,var(--fer-3) 100%);color:var(--lait);padding:clamp(90px,11vw,150px) 0;overflow:hidden}
.ter__in{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(44px,6vw,96px);align-items:center}
.ter h2{color:var(--lait)}
.ter__txt{max-width:470px}
.ter__txt p{color:var(--texte-c)}
.ter__prix{font-family:var(--titre);font-weight:600;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;color:var(--safran)!important;margin-top:26px!important;padding-top:.2em}
.ter__txt .btn{margin-top:32px}
/* the photo is cut to the hexagon of the terrace windows, whose outline is drawn around it */
.ter__scene{position:relative;width:min(420px,72%);aspect-ratio:400/560;justify-self:center;margin-left:clamp(0px,6vw,90px)}
.ter__photo{position:absolute;inset:0}
.ter__photo img{width:100%;height:100%;object-fit:cover;clip-path:polygon(50% 0,100% 18%,100% 82%,50% 100%,0 82%,0 18%)}
.fen{position:absolute;left:-40%;top:-3.57%;width:145%;height:auto;overflow:visible;color:var(--turquoise);pointer-events:none}
.fen .f-l{stroke-width:1.6;stroke-dasharray:1}
.fen .f-l2{opacity:.45;stroke-width:1.1}
.fen .f-l3{opacity:.55}
.ter.is-vu .fen .f-l{animation:trace 2.2s cubic-bezier(.65,0,.35,1) backwards}
.ter.is-vu .fen .f-l2{animation-delay:.35s}
.ter.is-vu .fen .f-l3{animation-delay:.7s}
.ter__inc{position:absolute;right:-16%;bottom:-6%;width:44%;margin:0;padding:6px;border-radius:16px;background:var(--lait);box-shadow:0 30px 50px -24px rgba(0,0,0,.6)}
.ter__inc img{width:100%;aspect-ratio:640/780;object-fit:cover;border-radius:11px}
.ter__inc figcaption{padding:9px 4px 3px;font-family:var(--titre);font-weight:600;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--encre);line-height:1.3}
.ter--maison{background:radial-gradient(120% 90% at 15% 10%,var(--fer-2) 0%,var(--fer) 55%,var(--fer-3) 100%)}
.ter--maison .ter__in{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.ter--maison .ter__scene{order:-1;margin-left:clamp(0px,8vw,120px)}

/* ---------------------------------------------------------------- avis -- */
.temoins__pile{position:relative;max-width:900px;margin-inline:auto;text-align:center}
.temoin{margin:0;padding:0 8px}
.temoin+.temoin{margin-top:50px}
.temoin blockquote{margin:0}
.temoin blockquote::before{content:"";display:block;width:52px;height:22px;margin:0 auto 22px;background:var(--corail-f);
  -webkit-mask:url("assets/logo/etoiles.svg") center/contain no-repeat;mask:url("assets/logo/etoiles.svg") center/contain no-repeat}
.temoin p{font-family:var(--titre);font-weight:300;font-size:clamp(1.55rem,2.7vw,2.3rem);line-height:1.32;letter-spacing:.005em}
.temoin figcaption{margin-top:26px;font-family:var(--titre);font-weight:600;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gris)}
.temoins.js-car .temoins__pile{display:grid}
.temoins.js-car .temoin{grid-area:1/1;margin:0;opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility 0s linear .9s}
.temoins.js-car .temoin.is-on{opacity:1;visibility:visible;transition:opacity .9s var(--ease) .15s,visibility 0s}
.temoins__nav{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:44px}
.temoins__fl{width:48px;height:48px;border:1px solid var(--filet);border-radius:50%;background:transparent;display:grid;place-items:center;color:var(--encre);transition:border-color var(--t),background var(--t)}
.temoins__fl:hover{border-color:var(--corail-f);background:var(--lait)}
.temoins__fl svg{width:18px;height:18px}
.temoins__compte{font-family:var(--titre);font-weight:600;font-size:.84rem;letter-spacing:.16em;color:var(--gris);min-width:48px;text-align:center;padding-top:.2em}

/* ------------------------------------------------------- réservez en direct -- */
.direct{background:var(--corail-b);color:var(--lait);padding:clamp(84px,10vw,124px) 0;text-align:center}
.direct__in{max-width:700px}
.med--direct{width:104px;margin:0 auto 30px;color:var(--lait)}
.direct h2{color:var(--lait)}
.direct p{color:var(--lait)}
.direct__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:36px}
.direct .btn--safran:hover{background:var(--lait);border-color:var(--lait)}

/* ---------------------------------------------------------------- footer -- */
.pied{background:var(--fer);color:var(--texte-c);padding:84px 0 32px;font-size:.98rem}
.pied__haut{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.pied__marque{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-decoration:none;color:var(--lait)}
.marque--pied .med--marque{width:56px;color:var(--safran)}
.marque--pied .marque__nom{font-size:1.4rem}
.marque--pied .marque__sous{font-size:.66rem}
.pied__h{font-family:var(--titre);font-weight:600;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gris-c);margin-bottom:18px;padding-top:.2em}
.pied li+li{margin-top:8px}
.pied a{color:var(--lait);text-decoration:none}
.pied a:hover{text-decoration:underline;text-underline-offset:4px}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;padding-top:24px;border-top:1px solid var(--filet-c);font-size:.86rem;color:var(--gris-c)}
.pied .credit{font-family:var(--titre);font-weight:600;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--gris-c)}
.pied .credit:hover{color:var(--lait);text-decoration:none}

/* --------------------------------------------------------- page banner -- */
.ph{position:relative;min-height:58vh;min-height:58svh;display:flex;align-items:flex-end;color:var(--lait);overflow:hidden;background:var(--fer)}
.ph__media{position:absolute;inset:0}
.ph__media picture,.ph__media img{width:100%;height:100%}
.ph__media img{object-fit:cover}
.ph::before{content:"";position:absolute;inset:0 0 auto;height:180px;z-index:1;background:linear-gradient(rgba(20,26,23,.6),rgba(20,26,23,0))}
.ph::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,26,23,.8) 0%,rgba(20,26,23,.48) 38%,rgba(20,26,23,0) 72%),linear-gradient(to top,rgba(20,26,23,.55),rgba(20,26,23,0) 48%)}
.ph__in{position:relative;z-index:2;padding:150px 0 clamp(48px,7vh,76px)}
.med--ph{width:78px;margin-bottom:24px;color:var(--safran)}
.ph h1{font-size:clamp(2.9rem,6.4vw,5.6rem);line-height:1;letter-spacing:.06em;text-transform:uppercase}
.ph p{max-width:46ch;color:#F2EBE2;font-size:1.12rem}
@media (max-width:760px){
  .ph{min-height:62vh;min-height:62svh}
  .ph::after{background:linear-gradient(to top,rgba(20,26,23,.88) 0%,rgba(20,26,23,.45) 55%,rgba(20,26,23,.1) 100%)}
  .ph h1{font-size:clamp(2.4rem,11vw,3.4rem)}
  .ph p{font-size:1rem}
}

/* ------------------------------------------------------------- chambres -- */
.fiche{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(44px,6vw,96px);align-items:center}
.fiche+.fiche{margin-top:clamp(90px,11vw,140px)}
.fiche--inv .fiche__media{order:2;justify-self:end}
.fiche__media{width:min(100%,620px)}
.fiche__grand{display:block;width:100%;padding:8px;border:0;border-radius:var(--rr);background:rgba(36,31,28,.05);box-shadow:inset 0 0 0 1px rgba(36,31,28,.06),var(--ombre);cursor:zoom-in}
.fiche__grand img{width:100%;height:600px;object-fit:cover;border-radius:calc(var(--rr) - 8px);transition:transform 1s var(--ease)}
.fiche__grand:hover img{transform:scale(1.015)}
.fiche__vigs{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;padding-left:8px}
.vig{width:66px;height:66px;padding:0;border:1px solid transparent;background:none;border-radius:12px;overflow:hidden;opacity:.72;transition:opacity var(--t),border-color var(--t)}
.vig img{width:100%;height:100%;object-fit:cover}
.vig:hover,.vig[aria-pressed="true"]{opacity:1;border-color:var(--corail-f)}
.fiche__txt{max-width:480px}
.fiche__txt>h2{margin-bottom:30px}
.fiche__type h2{font-size:clamp(2rem,3vw,2.7rem)}
.fiche__type h3{font-size:1.65rem;font-weight:300}
.fiche__type p{color:#4B423D}
.fiche__type+.fiche__type{margin-top:34px;padding-top:34px;border-top:1px solid var(--filet)}
.fiche__prix{font-family:var(--titre);font-weight:400;font-size:1.45rem;color:var(--encre)!important;margin-top:18px!important}
.fiche__prix span{font-family:var(--texte);font-weight:400;font-size:.95rem;color:var(--gris)}
.fiche__type .btn{margin-top:22px}
.fiche__note{margin-top:26px;font-size:.93rem;color:var(--gris)}
.sdb__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(44px,6vw,96px);align-items:center}
.sdb__txt{max-width:460px}
.sdb__txt p{color:#4B423D}
.sdb__photos{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:520px}
.sdb__ph{padding:0;border:0;background:var(--sable-f);cursor:zoom-in;border-radius:16px;overflow:hidden}
.sdb__ph:first-child{grid-row:1/3}
.sdb__ph img{width:100%;height:100%;object-fit:cover}
.autres__g{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.autres__t{padding:0;border:0;background:var(--sable);cursor:zoom-in;border-radius:16px;overflow:hidden}
.autres__t img{width:100%;height:440px;object-fit:cover;transition:transform 1s var(--ease)}
.autres__t:hover img{transform:scale(1.03)}
.bon__l{display:grid;grid-template-columns:1fr 1fr;column-gap:64px;border-top:1px solid var(--filet)}
.bon__l>div{padding:22px 0;border-bottom:1px solid var(--filet);display:grid;grid-template-columns:170px 1fr;gap:20px}
.bon__l dt{font-family:var(--titre);font-weight:600;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;padding-top:.35em}
.bon__l dd{color:#4B423D;font-size:1rem}

/* -------------------------------------------------------------- la maison -- */
.orga__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(44px,6vw,96px);align-items:center}
.orga__txt p{color:var(--gris)}
.orga__l{counter-reset:o;border-top:1px solid var(--filet)}
.orga__l li{counter-increment:o;display:flex;align-items:baseline;gap:24px;padding:20px 0 18px;border-bottom:1px solid var(--filet);font-family:var(--titre);font-weight:300;font-size:1.45rem;line-height:1.3}
.orga__l li::before{content:"0" counter(o);flex:none;width:34px;font-weight:600;font-size:.8rem;letter-spacing:.14em;color:var(--corail-f)}
.mos__g{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mos__t{padding:0;border:0;background:var(--sable);cursor:zoom-in;border-radius:16px;overflow:hidden}
.mos__t img{width:100%;height:320px;object-fit:cover;transition:transform 1s var(--ease)}
.mos__t:hover img{transform:scale(1.03)}
.pied-a__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(44px,6vw,96px);align-items:start}
.pied-a__txt .ico{margin-bottom:24px;width:44px;height:44px}
.pied-a__txt .ico svg{width:44px;height:44px}
.pied-a__txt p{color:var(--gris)}
.pied-a__l li,.acces__l li{display:flex;align-items:baseline;gap:14px;padding:17px 0 15px;border-bottom:1px solid var(--filet)}
.pied-a__l li:first-child{border-top:1px solid var(--filet)}
.pied-a__l span,.acces__l span{font-family:var(--titre);font-weight:300;font-size:1.32rem}
.pied-a__l b,.acces__l b{margin-left:auto;font-family:var(--titre);font-weight:600;font-size:.86rem;letter-spacing:.1em;color:var(--corail-f);white-space:nowrap;text-align:right}

/* ---------------------------------------------------------------- galerie -- */
.gal__chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:38px}
.chip{min-height:44px;padding:.2em 20px 0;border:1px solid var(--filet);border-radius:999px;background:transparent;font-family:var(--titre);font-weight:600;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--encre);transition:background var(--t),border-color var(--t),color var(--t)}
.chip:hover{border-color:var(--corail-f)}
.chip[aria-pressed="true"]{background:var(--fer);border-color:var(--fer);color:var(--lait)}
.gal__g{columns:3 300px;column-gap:12px}
.gal__t{display:block;width:100%;margin:0 0 12px;padding:0;border:0;background:var(--sable);cursor:zoom-in;break-inside:avoid;border-radius:14px;overflow:hidden}
.gal__t img{width:100%;height:auto;transition:transform 1s var(--ease)}
.gal__t:hover img{transform:scale(1.02)}
.gal__t.is-out{display:none}

/* --------------------------------------------------------------- contact -- */
.contact__in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(44px,6vw,84px);align-items:stretch}
.contact__dl>div{padding:19px 0 17px;border-bottom:1px solid var(--filet)}
.contact__dl>div:first-child{border-top:1px solid var(--filet)}
.contact__dl dt{font-family:var(--titre);font-weight:600;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.contact__dl dd{margin-top:6px;font-size:1.12rem}
.contact__dl a{text-decoration:none;border-bottom:1px solid var(--filet)}
.contact__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.contact__carte{min-height:480px;border-radius:var(--rr);overflow:hidden;background:var(--sable);padding:8px;box-shadow:inset 0 0 0 1px rgba(36,31,28,.06)}
.contact__carte iframe{display:block;width:100%;height:100%;min-height:464px;border:0;border-radius:calc(var(--rr) - 8px)}
.acces__l{margin-top:26px}
.acces__l li:first-child{border-top:1px solid var(--filet)}

/* ----------------------------------------------------------------- viewer -- */
.vis{position:fixed;inset:0;z-index:160;display:none;background:rgba(20,26,23,.96);color:var(--lait)}
.vis.is-open{display:grid;grid-template-rows:auto 1fr auto}
.vis__haut{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}
.vis__compte{font-family:var(--titre);font-weight:600;font-size:.84rem;letter-spacing:.16em;padding-top:.2em}
.vis__x,.vis__fl{width:48px;height:48px;border:1px solid var(--filet-c);border-radius:50%;background:transparent;color:var(--lait);display:grid;place-items:center;font-size:1.6rem;line-height:1}
.vis__x:hover,.vis__fl:hover{border-color:var(--lait)}
.vis__milieu{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:0 16px;min-height:0}
.vis__milieu img{max-width:100%;max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);width:auto;height:auto;margin:auto;object-fit:contain;border-radius:8px}
.vis__fl svg{width:20px;height:20px}
.vis__leg{text-align:center;padding:14px 20px 22px;font-size:.96rem;color:var(--gris-c)}

/* ------------------------------------------------------------ responsive -- */
@media (max-width:1100px){
  .pied__haut{grid-template-columns:1fr 1fr}
  .ter__inc{right:-8%}
}
@media (max-width:860px){
  :root{--gout:20px;--rr:18px}
  body{font-size:1.03rem}
  .maison__in,.patio__in,.acces__in,.vit__in,.ter__in,.ter--maison .ter__in,.fiche,.sdb__in,.pied-a__in,.contact__in,.orga__in{grid-template-columns:1fr}
  .maison__media img,.patio__media img{height:440px}
  .patio__media{order:-1}
  .acces__media img{height:400px}
  .vit__media{order:-1;height:440px;max-width:none;justify-self:stretch}
  .ter__scene{width:min(64vw,360px);margin:30px auto 40px;justify-self:center}
  .ter--maison .ter__scene{order:0;margin:30px auto 40px}
  .ter__inc{right:-22%;width:48%}
  .fiche--inv .fiche__media{order:0;justify-self:start}
  .fiche__media{width:100%}
  .fiche__grand img{height:440px}
  .sdb__photos{height:420px}
  .autres__g{grid-template-columns:1fr;gap:10px}
  .autres__t img{height:300px}
  .bon__l{grid-template-columns:1fr}
  .bon__l>div{grid-template-columns:1fr;gap:4px}
  .mos__g{grid-template-columns:1fr 1fr;gap:10px}
  .mos__t:first-child{grid-column:1/-1}
  .mos__t img{height:220px}
  .mos__t:first-child img{height:300px}
  .orga__l li{font-size:1.25rem}
  .contact__carte,.contact__carte iframe{min-height:360px}
}
@media (max-width:760px){
  .gal__g{columns:2;column-gap:10px}
  .gal__t{margin-bottom:10px;border-radius:12px}
  .pied__haut{grid-template-columns:1fr;gap:32px}
  .vit__n{font-size:1.2rem}
  .vit__l{padding-left:16px}
  .vis__milieu{grid-template-columns:1fr;padding:0 10px}
  .vis__fl{position:absolute;bottom:64px}
  .vis__fl[data-pas="-1"]{left:20px}
  .vis__fl[data-pas="1"]{right:20px}
}
@media (max-width:420px){
  .ter__scene{width:62vw}
  .ter__inc{right:-26%;width:50%}
  .gal__chips{gap:8px}
  .chip{padding:.2em 13px 0;font-size:.7rem;letter-spacing:.12em}
  .sdb__photos{height:360px}
}

/* ================================================================
   Booking window (.rsv), built on .claude/rules/booking-modal.md.
   The scroll architecture is the rule's; colours, radii and
   fonts are this house's.
   ================================================================ */
.rsv{position:fixed;inset:0;z-index:140;display:flex;align-items:flex-start;justify-content:center;
  padding:24px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;visibility:hidden;opacity:0;transition:opacity .3s var(--ease),visibility 0s linear .3s}
.rsv.is-open{visibility:visible;opacity:1;transition:opacity .3s var(--ease),visibility 0s}
.rsv__backdrop{position:fixed;inset:0;background:rgba(20,26,23,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.rsv__card{position:relative;display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-rows:minmax(0,1fr);
  width:min(960px,calc(100vw - 40px));margin:auto;
  max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);
  overflow:hidden;background:var(--lait);border-radius:26px;box-shadow:0 50px 100px -40px rgba(10,14,12,.8)}
.rsv__aside{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:20px;background:var(--fer);color:var(--lait);padding:36px 30px}
.rsv__body{display:flex;flex-direction:column;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;padding:36px 32px 30px}
.rsv__body > *{flex-shrink:0}
.rsv__close{position:absolute;top:14px;right:14px;z-index:2;width:42px;height:42px;border:1px solid var(--filet);border-radius:50%;background:var(--lait);color:var(--encre);font-size:1.5rem;line-height:1;display:grid;place-items:center}
.med--rsv{width:64px;color:var(--safran);align-self:flex-start}
.rsv__h{font-size:2.1rem;color:var(--lait);letter-spacing:.04em}
.rsv__aside p{color:var(--texte-c);font-size:.98rem;margin-top:12px}
.rsv__photo{margin-top:auto;border-radius:16px;overflow:hidden}
.rsv__photo img{width:100%;height:220px;object-fit:cover}
.rsv__steps{display:flex;gap:6px}
.rsv__steps i{flex:1;height:3px;background:rgba(251,247,241,.18);border-radius:2px;transition:background var(--t)}
.rsv__steps i.on{background:var(--safran)}
.rsv__bloc+.rsv__bloc{margin-top:26px}
.rsv__lbl{font-family:var(--titre);font-weight:600;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--corail-f);margin-bottom:12px;padding-top:.2em}
.rsv__lbl b{font-weight:400;color:var(--gris);letter-spacing:.08em;text-transform:none}
.rsv__lbl--envoi{margin-top:22px;margin-bottom:10px}
.rsv__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rsv__field label{display:block;font-weight:500;font-size:.95rem;margin-bottom:6px}
.rsv__field input[type="date"]{-webkit-appearance:none;appearance:none;display:block;width:100%;
  min-height:48px;line-height:1.3;padding:0 14px;background:var(--blanc);border:1px solid var(--filet);border-radius:14px;
  font-family:var(--texte);font-size:16px;color:var(--encre)}
.rsv__field input[type="date"]::-webkit-date-and-time-value{text-align:left;margin:0}
.rsv__field input[type="date"]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.rsv__nuits{margin-top:8px;font-size:.94rem;color:var(--gris);min-height:1.4em}
.rsv__cpt{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 6px;background:var(--blanc);border:1px solid var(--filet);border-radius:14px}
.rsv__cpt button{width:36px;height:36px;border:0;border-radius:50%;background:var(--sable);font-size:1.2rem;line-height:1}
.rsv__cpt button:disabled{opacity:.35;cursor:default}
.rsv__cpt output{font-family:var(--titre);font-weight:600;font-size:1.1rem;padding-top:.15em}
.rsv__packs{display:flex;flex-direction:column;gap:8px}
.rsv__row{display:flex;align-items:center;gap:10px}
.rsv__pack{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:8px 12px 8px 10px;border:1px solid var(--filet);border-radius:14px;background:var(--blanc);text-align:left;transition:border-color var(--t),background var(--t)}
.rsv__pack[aria-pressed="true"]{border-color:var(--corail-f);background:#FCEFE8}
.rsv__box{flex:none;width:20px;height:20px;border:1px solid var(--gris);border-radius:6px;display:grid;place-items:center}
.rsv__pack[aria-pressed="true"] .rsv__box{background:var(--corail-f);border-color:var(--corail-f)}
.rsv__pack[aria-pressed="true"] .rsv__box::after{content:"";width:10px;height:5px;border:2px solid var(--blanc);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.rsv__pack img{flex:none;width:52px;height:52px;object-fit:cover;border-radius:10px}
.rsv__pack-n{display:flex;flex-direction:column;font-family:var(--titre);font-weight:400;font-size:1.04rem;line-height:1.25;min-width:0;padding-top:.1em}
.rsv__pack-n small{font-family:var(--texte);font-weight:400;font-size:.86rem;color:var(--gris)}
.rsv__pack-n small.rsv__pack-prix{font-family:var(--titre);font-weight:600;color:var(--corail-f);font-size:.82rem;letter-spacing:.06em}
.rsv__compte{margin-top:8px;font-size:.92rem;color:var(--gris);min-height:1.3em}
.rsv__opt--2{margin-top:8px}
.rsv__opt{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--filet);border-radius:14px;background:var(--blanc);cursor:pointer}
.rsv__opt input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--corail-f);flex:none}
.rsv__opt span{display:flex;flex-direction:column;font-family:var(--titre);font-weight:400;font-size:1.02rem;line-height:1.25;padding-top:.1em}
.rsv__opt small{font-family:var(--texte);font-weight:400;font-size:.86rem;color:var(--gris)}
.rsv__msg{width:100%;padding:12px 14px;border:1px solid var(--filet);border-radius:14px;background:var(--blanc);font-family:var(--texte);font-size:16px;color:var(--encre);resize:vertical}
.rsv__recap{margin-top:22px;padding:16px 18px;background:var(--sable);border-radius:14px;font-size:.97rem}
.rsv__recap p+p{margin-top:4px}
.rsv__estim{font-family:var(--titre);font-weight:600;color:var(--corail-f);letter-spacing:.04em}
.rsv__hint{margin-top:14px;font-size:.94rem;color:var(--gris);min-height:1.4em}
.rsv__actions{display:flex;flex-wrap:wrap;gap:10px}
.rsv__actions .btn{flex:1 1 200px;min-width:0}
.rsv__actions .btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.rsv__note{margin-top:16px;font-size:.87rem;line-height:1.5;color:var(--gris)}
@media (max-width:1020px){
  .rsv__card{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);width:min(620px,calc(100vw - 40px));
    max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px)}
  .rsv__aside{flex-direction:row;align-items:center;gap:16px;padding:20px 64px 18px 24px}
  .rsv__aside p,.rsv__photo{display:none}
  .rsv__steps{display:none}
  .med--rsv{width:44px;flex:none}
  .rsv__h{font-size:1.6rem}
}
@media (max-width:680px){
  .rsv{padding:0}
  .rsv__card{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);width:100vw;margin:0;border-radius:0;
    height:100vh;max-height:100vh;height:100dvh;max-height:100dvh}
  .rsv__packs{max-height:none}
  .rsv__body{padding:22px 18px 26px}
  .rsv__grid{gap:10px}
  .rsv__pack img{width:44px;height:44px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
