/* Service illustrations and the accessible booking chooser share one visual language. */
.local-guide { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; padding:80px clamp(24px,7vw,110px); background:#ece7dc; }
.local-guide h2 { font-size:clamp(32px,4vw,50px); line-height:1.3; margin-bottom:22px; }
.local-guide-intro p,.local-guide details p { font-size:14px; line-height:1.9; color:#57534b; }
.local-guide details { border-top:1px solid #c9c0ae; padding:20px 0; }
.local-guide summary { display:flex; justify-content:space-between; gap:20px; font-size:14px; font-weight:600; cursor:pointer; list-style:none; line-height:1.7; }
.local-guide summary::-webkit-details-marker { display:none; }
.local-guide summary span { color:#8b6a34; font-size:20px; }
.local-guide details[open] summary span { transform:rotate(45deg); }
.local-guide details p { margin:15px 0 0; }
@media(max-width:900px) { .local-guide { grid-template-columns:1fr; gap:25px; padding:60px 22px; } }
.service-illustration { display:block; width:52px; height:52px; flex-shrink:0; }
.service-number { display:grid; place-items:center; width:58px; height:64px; }
.service-list .service-scope { color:#d1c3a9; font-size:12px; margin:0 0 7px; }
.service-choice-field { min-width:0; padding:0; margin:0; border:0; }
.service-choice-field legend { padding:0; margin-bottom:14px; color:#b1aea5; font:600 11px var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.service-choice-grid { display:none; }
.enhanced .service-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.booking-form .service-choice { position:relative; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:10px 12px; min-height:146px; width:100%; padding:18px 16px; border:1px solid #49463e; border-radius:8px; background:#25251f; color:#eee9df; text-align:start; cursor:pointer; font-family:var(--sans); transition:border-color .2s,background .2s; }
.service-choice-icon { grid-row:1/3; color:#a99b81; }
.service-choice-icon .service-illustration { width:48px; height:56px; }
.service-choice-copy { display:grid; gap:7px; padding-inline-end:12px; }
.service-choice-copy strong { font-size:14px; line-height:1.45; font-weight:600; }
.service-choice-copy small { color:#aaa69b; font-size:11px; line-height:1.6; }
.service-choice-price { grid-column:2; font-size:13px; font-weight:600; color:#d7bc86; unicode-bidi:isolate; }
.service-choice-check { position:absolute; top:10px; inset-inline-end:10px; display:grid; place-items:center; width:18px; height:18px; border:1px solid #5e584b; border-radius:50%; color:transparent; font-size:11px; }
.booking-form .service-choice:hover { border-color:#a9946d; background:#2d2b24; }
.booking-form .service-choice[aria-checked=true] { border-color:#d0ad70; background:#383124; box-shadow:inset 0 0 0 1px #d0ad70; }
.service-choice[aria-checked=true] .service-choice-icon { color:#e1bf82; }
.service-choice[aria-checked=true] .service-choice-check { background:#d0ad70; border-color:#d0ad70; color:#201c15; }
.booking-form .service-choice:focus-visible { outline:2px solid #eee5d4; outline-offset:4px; }
[dir=rtl] .service-choice-field legend { letter-spacing:0; }
.booking-form .service-picker-trigger { width:100%; min-height:104px; display:grid; grid-template-columns:52px minmax(0,1fr) auto 20px; align-items:center; gap:16px; padding:18px 20px; border:1px solid #66593f; border-radius:8px; background:#2b281f; color:#eee9df; text-align:start; cursor:pointer; font-family:var(--sans); }
.service-picker-trigger .service-choice-icon { grid-row:auto; color:#d7bc86; }
.service-picker-trigger .service-choice-price { grid-column:auto; }
.service-picker-arrow { color:#d7bc86; font-size:22px; }
.booking-form .service-picker-trigger:hover { border-color:#d0ad70; background:#332d22; }
.booking-form .service-picker-trigger:focus-visible { outline:2px solid #d7bc86; outline-offset:4px; }
.service-picker-dialog { width:min(720px,calc(100vw - 40px)); max-height:calc(100dvh - 64px); margin:auto; padding:26px; border:1px solid #766140; border-radius:16px; background:#20201c; color:#eee9df; box-shadow:0 30px 90px #0009; overflow:auto; overscroll-behavior:contain; }
.service-picker-dialog:not([open]) { display:none; }
.service-picker-dialog::backdrop { background:#080806ba; backdrop-filter:blur(6px); }
.service-picker-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.service-picker-heading h3 { margin:0; font:500 24px var(--sans); line-height:1.5; }
.booking-form .service-picker-close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; border:1px solid #565044; border-radius:50%; background:transparent; color:#e6d4b3; font-size:28px; cursor:pointer; }
.service-picker-dialog .service-choice:last-child:nth-child(odd) { grid-column:1/-1; }
.service-picker-dialog[open] { animation:service-panel-in .22s ease-out; }
@keyframes service-panel-in { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .service-picker-dialog[open] { animation:none; } }
.booking-copy > .shop-phone, .visit-details .shop-phone { display:inline-flex; align-items:center; gap:12px; min-height:52px; max-width:100%; padding:12px 16px; border:1px solid currentColor; border-radius:12px; font:600 17px var(--sans); letter-spacing:.025em; white-space:nowrap; direction:ltr; unicode-bidi:isolate; }
.booking-copy > .shop-phone { color:#ddc18d; background:rgba(184,154,98,.08); margin-top:20px; }
.visit-details .shop-phone { color:var(--ink); margin-block:8px; background:rgba(184,154,98,.06); }
.shop-phone svg { flex:none; }
.shop-phone:hover { background:rgba(184,154,98,.18); }
.shop-phone:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.booking-form input[name="phone"] { direction:ltr; unicode-bidi:isolate; text-align:start; }
html[dir="rtl"] .booking-form input[name="phone"]:placeholder-shown { text-align:right; }
html[dir="rtl"] .flatpickr-weekday { letter-spacing:0; direction:rtl; font-size:10px!important; }
@media(max-width:700px) {
  .booking-form input, .booking-form select, .booking-form textarea { min-width:0; max-width:100%; font-size:16px; }
  .booking-copy > .shop-phone, .visit-details .shop-phone { font-size:16px; }
}
/* A blurred header creates a containing block and clips its fixed menu. */
@media(max-width:900px) {
  .menu-open .header { backdrop-filter:none; -webkit-backdrop-filter:none; background:#17150e; }
  .header nav { height:100dvh; padding:100px 24px calc(40px + env(safe-area-inset-bottom)); z-index:1; gap:18px; overflow-y:auto; overscroll-behavior:contain; }
  .header > .logo, .header > .menu-toggle { position:relative; z-index:2; }
  .header .site-lang { position:relative; z-index:3; }
  .header nav a { max-width:100%; min-height:48px; text-align:center; font-size:clamp(27px,7vw,36px); line-height:1.35; }
}
@media(max-width:600px) {
  .enhanced .service-choice-grid { grid-template-columns:1fr; }
  .booking-form .service-choice { min-height:108px; grid-template-columns:52px minmax(0,1fr); padding:16px 20px; }
  .service-choice-copy strong { font-size:15px; }
  .service-list article .service-number { width:44px; }
  .service-number .service-illustration { width:40px; height:48px; }
  .service-list article { grid-template-columns:48px 1fr auto; }
  .service-list article > strong { display:block; grid-column:2; font-size:18px; padding-bottom:14px; }
  .service-list article > a { grid-column:3; grid-row:1/3; }
  .booking-form .service-picker-trigger { grid-template-columns:44px minmax(0,1fr) 20px; gap:8px 14px; padding:16px; }
  .service-picker-trigger .service-choice-icon { grid-row:1/3; }
  .service-picker-trigger .service-choice-price { grid-column:2; }
  .service-picker-arrow { grid-column:3; grid-row:1/3; }
  .service-picker-dialog { width:100%; max-width:none; max-height:88dvh; margin:auto 0 0; padding:20px 18px calc(20px + env(safe-area-inset-bottom)); border-radius:20px 20px 0 0; border-bottom:0; }
  .service-picker-heading { position:sticky; top:-20px; z-index:1; background:#20201c; margin:0 -2px 16px; padding:6px 2px 12px; }
  .service-picker-heading h3 { font-size:20px; }
}
