/* Design « Galet » : spa et bien-être zen, sable ratissé, galets polis empilés, formes douces et grand calme. Shippori Mincho + Zen Kaku Gothic New. */
.d-galet {
  --deep: color-mix(in oklab, var(--primary), #000 32%);
  --sand: #efe8dc;
  --bg: #f7f3ec;
  --bg-soft: #efe9df;
  --surface: #fcfaf6;
  --ink: #2f2b26;
  --ink-2: #5b544c;
  --ink-3: #6f675e;
  --line: #e5ddd0;
  --head-w: 500;
  --h1-w: 500;
  --h1-track: .01em;
  --head-track: .01em;
  --btn-r: 999px;
  --section-pad: 128px;
  --footer-bg: color-mix(in oklab, var(--primary), #26231f 72%);
  --shadow: 0 24px 50px -30px rgba(70, 55, 40, .35);
  /* Formes de galets (rayons irréguliers) */
  --peb1: 62% 38% 55% 45% / 52% 46% 54% 48%;
  --peb2: 45% 55% 42% 58% / 58% 44% 56% 42%;
  --peb3: 55% 45% 60% 40% / 46% 58% 42% 54%;
  --soft: 34px 52px 40px 56px / 44px 38px 54px 40px;
  /* Matières : sable ratissé, pierres lisses */
  --raked: repeating-linear-gradient(0deg, rgba(120, 100, 78, .085) 0 1.5px, transparent 1.5px 11px);
  --raked-soft: repeating-linear-gradient(0deg, rgba(120, 100, 78, .045) 0 1px, transparent 1px 12px);
  --basalt: radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .32), transparent 52%), linear-gradient(160deg, #8a847c, #57524c);
  --stone: radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .5), transparent 55%), linear-gradient(160deg, #d6cfc3, #a99f92);
  --warm: radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .38), transparent 55%), linear-gradient(160deg, color-mix(in oklab, var(--primary), #fff 25%), var(--deep));
  --ripples: 0 0 0 12px var(--sand), 0 0 0 13.5px rgba(120, 100, 78, .2), 0 0 0 25px var(--sand), 0 0 0 26.5px rgba(120, 100, 78, .16), 0 0 0 38px var(--sand), 0 0 0 39.5px rgba(120, 100, 78, .11);
}

/* En-tête : léger, aérien */
.d-galet .site-header { background: color-mix(in srgb, var(--bg) 88%, transparent); }
.d-galet .site-header.scrolled { border-bottom-color: transparent; }
.d-galet .brand-mark { border-radius: var(--peb1); background: var(--warm); box-shadow: 0 8px 14px -8px rgba(60, 45, 30, .5); }
.d-galet .brand-text strong { font-weight: 600; letter-spacing: .04em; font-size: 1.18rem; }
.d-galet .brand-text small { letter-spacing: .2em; text-transform: uppercase; font-size: .64rem; }
.d-galet .brand-stars { color: var(--primary); }
.d-galet .nav a { font-size: .86rem; letter-spacing: .04em; padding: .55em .75em; color: var(--ink-2); white-space: nowrap; }
.d-galet .nav a:hover { background: var(--sand); color: var(--ink); }
.d-galet .btn { font-weight: 500; letter-spacing: .08em; }
.d-galet .btn-primary { background: var(--deep); box-shadow: 0 14px 26px -16px var(--deep); }
.d-galet .btn-primary:hover { background: color-mix(in oklab, var(--primary), #000 45%); }
.d-galet .btn-ghost { background: transparent; border-color: color-mix(in oklab, var(--primary), transparent 55%); }

/* Bannière : jardin de sable et cairn de galets */
.d-galet .hero { padding: 96px 0 140px; background: radial-gradient(900px 420px at 50% 0, #fffdf9, transparent 70%), var(--bg); }
.d-galet .hero h1 { font-size: clamp(2.5rem, 5.2vw, 4.3rem); line-height: 1.22; }
.d-galet .hero-sub { color: var(--ink-2); font-size: 1.08rem; line-height: 1.9; }
.d-galet .pill-badge { background: transparent; border: 0; box-shadow: none; color: var(--deep); text-transform: uppercase; letter-spacing: .32em; font-size: .74rem; font-weight: 500; margin-bottom: 30px; }
.d-galet .pill-badge .dot { width: 14px; height: 10px; border-radius: var(--peb1); background: var(--warm); box-shadow: none; }
.d-galet .hero-center .hero-visual { margin-top: 76px; }
.d-galet .hero-art { isolation: isolate; border-radius: 42% 58% 46% 54% / 58% 48% 52% 42%; box-shadow: var(--shadow);
  background: var(--raked), radial-gradient(ellipse at 50% 30%, #f6f0e6, transparent 70%), var(--sand); }
.d-galet .hero-art::before { inset: 0; background: repeating-radial-gradient(ellipse 100% 72% at 50% 70%, transparent 0 20px, rgba(120, 100, 78, .15) 20px 22px), var(--sand);
  -webkit-mask-image: radial-gradient(ellipse 30% 46% at 50% 70%, #000 92%, transparent 100%); mask-image: radial-gradient(ellipse 30% 46% at 50% 70%, #000 92%, transparent 100%); }
.d-galet .art-ring, .d-galet .art-cross, .d-galet .hero-art::after { border: 0; animation: none; width: auto; backdrop-filter: none; box-shadow: 0 10px 14px -8px rgba(55, 45, 35, .45); }
.d-galet .art-ring.r2, .d-galet .hero-center .art-ring.r2 { width: auto; height: 21%; aspect-ratio: 2.7; top: 66%; z-index: 1; border-radius: var(--peb2); background: var(--basalt); }
.d-galet .art-ring.r1, .d-galet .hero-center .art-ring.r1 { width: auto; height: 18%; aspect-ratio: 2.25; top: 50%; z-index: 2; border-radius: var(--peb1); background: var(--stone); }
.d-galet .art-cross, .d-galet .hero-center .art-cross { width: auto; height: 15%; aspect-ratio: 1.85; top: 36.5%; z-index: 3; border-radius: var(--peb3); background: var(--warm); }
.d-galet .art-cross .ic { width: 34%; height: 50%; stroke: rgba(255, 255, 255, .7); filter: none; }
.d-galet .hero-art::after { content: ''; position: absolute; z-index: 4; left: 50%; top: 26%; translate: -50% -50%; height: 10%; aspect-ratio: 1.5; border-radius: var(--peb2); background: var(--stone); }
.d-galet .art-pill { animation: none; width: auto; height: 12%; aspect-ratio: 1.4; border-radius: var(--peb1); background: var(--basalt); color: rgba(255, 255, 255, .7); box-shadow: 0 6px 10px -6px rgba(55, 45, 35, .5), var(--ripples); }
.d-galet .art-pill .ic { width: 40%; height: 40%; }
.d-galet .art-pill.p1, .d-galet .hero-center .art-pill.p1 { left: 15%; top: 30%; }
.d-galet .art-pill.p2, .d-galet .hero-center .art-pill.p2 { right: 16%; top: 24%; height: 9%; background: var(--stone); color: rgba(60, 50, 40, .55); border-radius: var(--peb3); }
.d-galet .art-pill.p3, .d-galet .hero-center .art-pill.p3 { right: 24%; bottom: 20%; height: 14%; background: var(--warm); border-radius: var(--peb2); }
.d-galet .float-card { border-radius: 26px; background: rgba(252, 250, 246, .92); box-shadow: var(--shadow); }
.d-galet .float-card > .ic { color: var(--deep); }

/* Points forts : une longue pierre plate */
.d-galet .hl-grid { border: 0; border-radius: 80px; background: var(--surface); box-shadow: var(--shadow); padding: 8px 20px; }
.d-galet .hl-item + .hl-item { border-left: 0; }
.d-galet .hl-item strong { font-family: var(--font-head); font-weight: 600; font-size: 1.04rem; }
.d-galet .ic-box { border-radius: var(--peb1); background: var(--sand); color: var(--deep); }
.d-galet .hl-item:nth-child(2n) .ic-box, .d-galet .card:nth-child(2n) .ic-box { border-radius: var(--peb2); }
.d-galet .hl-item:nth-child(3n) .ic-box, .d-galet .card:nth-child(3n) .ic-box { border-radius: var(--peb3); }

/* Titres : capitales espacées et petit galet */
.d-galet .eyebrow { display: inline-flex; align-items: center; gap: 14px; font-weight: 500; font-size: .74rem; letter-spacing: .32em; color: var(--deep); }
.d-galet .eyebrow::before { content: ''; width: 16px; height: 11px; border-radius: var(--peb1); background: var(--warm); }
.d-galet .sec-head { margin-bottom: 64px; }
.d-galet .about-copy .sec-head, .d-galet .quote-intro .sec-head, .d-galet .area-copy .sec-head { margin-bottom: 24px; }
.d-galet .sec-head h2 { font-size: clamp(1.9rem, 3.4vw, 2.75rem); line-height: 1.32; }
.d-galet .lead, .d-galet .prose { line-height: 1.9; }

/* Services : pierres plates aux contours doux */
.d-galet .cards { gap: 24px; }
.d-galet .card { border: 0; border-radius: var(--soft); background: var(--surface); box-shadow: 0 1px 0 var(--line), var(--shadow-sm); padding: 36px 30px; }
.d-galet .card:nth-child(2n) { border-radius: 52px 36px 56px 38px / 40px 52px 38px 50px; }
.d-galet .card::after { display: none; }
.d-galet .card:hover { box-shadow: var(--shadow); }
.d-galet .card:hover .ic-box { background: var(--deep); color: #fff; }
.d-galet .card h3, .d-galet .room h3, .d-galet .trust-item h3, .d-galet .news-card h3 { font-weight: 600; font-size: 1.18rem; }

/* La maison : grand galet sur sable ondulé */
.d-galet .about { background: var(--raked-soft), var(--bg-soft); }
.d-galet .about-art { border: 0; border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; color: rgba(255, 255, 255, .85); box-shadow: 0 30px 50px -28px rgba(55, 45, 35, .55);
  background: radial-gradient(circle at 32% 26%, rgba(255, 255, 255, .3), transparent 50%), linear-gradient(160deg, color-mix(in oklab, var(--primary), #fff 18%), var(--deep)); }
.d-galet .about-art .ic { width: 26%; opacity: .85; }
.d-galet .about-art-name { color: #fff; font-weight: 500; letter-spacing: .06em; }
.d-galet .stats div { border: 0; background: var(--surface); border-radius: var(--peb2); text-align: center; padding: 22px 14px; }
.d-galet .stats div:nth-child(2) { border-radius: var(--peb1); }
.d-galet .stats dt { font-family: var(--font-head); font-weight: 500; color: var(--deep); }

/* Encadré : ondes sur l'eau */
.d-galet .cta { border-radius: 56px; background: repeating-radial-gradient(circle at 92% 50%, transparent 0 22px, rgba(255, 255, 255, .07) 22px 23.5px), linear-gradient(120deg, color-mix(in oklab, var(--primary), #000 48%), var(--deep)); }
.d-galet .cta h2 { font-weight: 500; letter-spacing: .02em; }
.d-galet .cta-deco { display: none; }
.d-galet .cta .btn-white { color: var(--deep); }

/* Chambres : galet au centre d'un sable ratissé */
.d-galet .room { border: 0; border-radius: 36px; background: var(--surface); box-shadow: 0 1px 0 var(--line), var(--shadow-sm); }
.d-galet .room-ph { background: var(--raked), var(--sand); }
.d-galet .room-ph .ic { width: 22%; height: auto; aspect-ratio: 1.35; padding: 5% 6%; border-radius: var(--peb1); background: var(--basalt); color: rgba(255, 255, 255, .75); box-shadow: 0 8px 12px -6px rgba(55, 45, 35, .5), var(--ripples); }
.d-galet .room:nth-child(2n) .room-ph .ic { background: var(--warm); border-radius: var(--peb2); }
.d-galet .room:nth-child(3n) .room-ph .ic { background: var(--stone); color: rgba(60, 50, 40, .6); border-radius: var(--peb3); }
.d-galet .room-price { background: rgba(252, 250, 246, .92); color: var(--ink); font-weight: 500; letter-spacing: .04em; }
.d-galet .room-body { padding: 24px 28px 30px; }
.d-galet .room-cat, .d-galet .news-date { color: var(--deep); letter-spacing: .24em; font-weight: 500; }
.d-galet .room-facts .ic, .d-galet .room-book { color: var(--deep); }
.d-galet .pj-chip { border-color: transparent; background: var(--surface); font-weight: 500; }
.d-galet .pj-pager button { border-radius: var(--peb1); }
.d-galet .pj-chip.on, .d-galet .pj-pager button.on { background: var(--deep); border-color: var(--deep); }

/* La carte : une ardoise de sable clair */
.d-galet .menu-sec { background: var(--raked-soft), var(--bg-soft); }
.d-galet .menu-board { border: 0; border-radius: 48px; box-shadow: var(--shadow); padding-top: clamp(60px, 7vw, 84px); }
.d-galet .menu-deco { display: grid; place-items: center; position: absolute; left: 50%; top: 0; translate: -50% -50%; width: 64px; aspect-ratio: 1.3; border-radius: var(--peb1); background: var(--warm); color: #fff; box-shadow: 0 10px 18px -10px rgba(55, 45, 35, .6); }
.d-galet .menu-deco .ic { width: 24px; height: 24px; }
.d-galet .menu-group h3 { font-weight: 600; font-size: 1.25rem; letter-spacing: .06em; color: var(--ink); border-bottom: 0; padding-bottom: 14px; background: linear-gradient(var(--primary) 0 0) 0 100% / 28px 2px no-repeat; }
.d-galet .dish-line strong { font-weight: 500; }
.d-galet .dish-dots { border-bottom: 1px solid var(--line); }
.d-galet .dish-price { font-family: var(--font-head); font-weight: 600; color: var(--deep); }

/* Labels, avis, équipe */
.d-galet .trust { background: var(--bg-soft); }
.d-galet .trust-item, .d-galet .review { border: 0; border-radius: var(--soft); background: var(--surface); box-shadow: 0 1px 0 var(--line); }
.d-galet .trust-item .ic-box { background: var(--sand); }
.d-galet .review { padding: 32px; }
.d-galet .review blockquote { font-family: var(--font-head); line-height: 1.85; color: var(--ink); }
.d-galet .stars { color: var(--primary); }
.d-galet .avatar { border: 0; border-radius: var(--peb1); background: var(--stone); }
.d-galet .member:nth-child(2n) .avatar { border-radius: var(--peb2); }
.d-galet .avatar span { font-family: var(--font-head); color: #fff; font-weight: 500; text-shadow: 0 1px 2px rgba(0, 0, 0, .2); }
.d-galet .review .avatar { border-radius: var(--peb3); background: var(--warm); }

/* Réservation, contact, alentours, FAQ */
.d-galet .panel { border: 0; border-radius: 40px; background: var(--surface); box-shadow: var(--shadow); padding: 40px; }
.d-galet .panel-head > .ic, .d-galet .quote-points .ic { border-radius: var(--peb2); background: var(--sand); color: var(--deep); }
.d-galet .f-field input, .d-galet .f-field select, .d-galet .f-field textarea { border-radius: 18px; border-color: var(--line); background: #fffefb; }
.d-galet .f-field input:focus, .d-galet .f-field select:focus, .d-galet .f-field textarea:focus { border-color: var(--deep); }
.d-galet .status-line, .d-galet .closures { background: var(--bg-soft); border: 0; border-radius: 20px; }
.d-galet .hours-table th, .d-galet .hours-table td { border-bottom: 1px solid var(--line); }
.d-galet .hours-table tr.today th, .d-galet .hours-table tr.today td { color: var(--deep); }
.d-galet .map { border: 0; border-radius: 40px; }
.d-galet .towns li { background: var(--surface); border: 0; color: var(--ink); font-weight: 500; box-shadow: 0 1px 0 var(--line); }
.d-galet .towns li:nth-child(odd) { border-radius: 46% 54% 50% 50% / 60% 55% 45% 40%; }
.d-galet .towns .ic { color: var(--deep); }
.d-galet .faq details { border: 0; border-radius: 30px; box-shadow: 0 1px 0 var(--line); }
.d-galet .faq summary { font-family: var(--font-head); font-weight: 600; }
.d-galet .faq .plus { border-radius: var(--peb1); background: var(--sand); color: var(--deep); }
.d-galet .faq details[open] .plus { background: var(--deep); }
.d-galet .news-img { border-radius: 32px; background: var(--raked), var(--sand); }

/* Pied de page : galet sombre et ondes */
.d-galet .site-footer { background: repeating-radial-gradient(circle at 100% 0, transparent 0 28px, rgba(255, 255, 255, .035) 28px 29.5px), var(--footer-bg); }
.d-galet .site-footer h3 { font-weight: 500; letter-spacing: .28em; font-size: .78rem; color: color-mix(in oklab, var(--primary), #fff 55%); }
.d-galet .brand-light .brand-mark { background: rgba(255, 255, 255, .12); }

@media (max-width: 920px) {
  .d-galet { --section-pad: 96px; }
  .d-galet .hero { padding: 56px 0 90px; }
  .d-galet .hl-grid { border-radius: 40px; padding: 0; }
  .d-galet .hl-item:nth-child(odd) { border-right: 0; }
  .d-galet .hl-item { border-bottom-color: var(--bg-soft); }
}
@media (max-width: 560px) {
  .d-galet .hero-center .hero-visual { margin-top: 48px; }
  .d-galet .hl-grid { border-radius: 32px; }
  .d-galet .art-pill { --ripples: 0 0 0 7px var(--sand), 0 0 0 8px rgba(120, 100, 78, .2), 0 0 0 15px var(--sand), 0 0 0 16px rgba(120, 100, 78, .14); }
  .d-galet .art-pill.p1, .d-galet .hero-center .art-pill.p1 { left: 12%; }
  .d-galet .art-pill.p3, .d-galet .hero-center .art-pill.p3 { right: 9%; bottom: 15%; }
  .d-galet .panel { padding: 30px 22px; border-radius: 30px; }
  .d-galet .cta { border-radius: 36px; }
}
