/* Source: index.html */
:root{--cream:#fdf7e9;--surface:#fffdf7;--ink:#2e2a24;--muted:#6e6659;--accent:#8c6c56;--accent-dark:#705645;--accent-soft:#ede4db;--accent-glow:rgba(140,108,86,.85);--accent-glow-soft:rgba(140,108,86,.5);--footer:#efe7d6;--border:#e5dcc8;--radius:8px;--serif:"Playfair Display",Georgia,serif;--sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.25;color:var(--ink)}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.uh-header{position:sticky;top:0;z-index:50;background:rgba(255,233,190,.9);border-bottom:1px solid var(--border);transition:box-shadow .25s,background .25s}
.uh-header.scrolled{background:rgba(255,233,190,.98);box-shadow:0 4px 16px rgba(46,42,36,.08)}
.uh-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.uh-logo{display:inline-flex;align-items:center;color:var(--ink);white-space:nowrap}
.uh-logo svg{display:block;height:38px;width:auto}
.uh-nav{position:relative;display:flex;align-items:center;gap:22px;flex-wrap:nowrap;white-space:nowrap}
.uh-nav a:not(.uh-book-now){font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);padding:10px 1px;transition:color .25s ease;white-space:nowrap}
.uh-nav a:not(.uh-book-now):hover,.uh-nav a:not(.uh-book-now).active{color:var(--accent)}
.uh-nav .uh-book-now{margin-left:14px}
.uh-underline{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);border-radius:2px;opacity:0;transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),box-shadow .15s ease,opacity .2s ease}
.uh-underline.moving{box-shadow:0 0 8px 1px var(--accent-glow),0 0 16px 2px var(--accent-glow-soft)}
.uh-spark{position:absolute;bottom:-2px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 6px 2px var(--accent-glow);pointer-events:none;animation:uhSparkFade .5s ease-out forwards}
@keyframes uhSparkFade{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(10px) scale(.3)}}
.uh-actions{display:flex;align-items:center;gap:14px}
.uh-lang{font-size:.78rem;font-weight:600;color:var(--muted);letter-spacing:.05em;white-space:nowrap}
.uh-lang a{color:var(--ink);padding:2px 4px}
.uh-lang a.active{color:var(--accent)}
.uh-book-now{background:var(--accent);color:var(--surface);border:1px solid var(--accent);border-radius:999px;padding:.65rem 1.5rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;transition:background .2s,border-color .2s;white-space:nowrap}
.uh-book-now:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:var(--surface)}
.uh-burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.uh-burger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
.uh-hero-photo{position:relative;margin-top:-72px;height:220vh;background:var(--cream)}
.uh-hero-photo-inner{position:sticky;top:0;height:100vh;overflow:hidden;border-bottom:1px solid transparent}
.uh-hero-photo-frame{position:absolute;left:0;right:0;bottom:0;top:0;overflow:hidden;border-radius:18px;transform:translateY(90vh) scale(.9);will-change:transform,border-radius}
.uh-hero-photo-frame img{width:100%;height:100%;object-fit:cover;display:block;animation:uhKenBurns 18s ease-in-out infinite alternate}
.uh-welcome{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:0 20px;pointer-events:none;--split-eyebrow:0%;--split-title:0%}
.uh-welcome-eyebrow{display:block;font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.4em;text-transform:uppercase;margin:0;opacity:0;transform:translateY(18px);animation:uhFadeUp 1.1s cubic-bezier(.22,1,.36,1) .55s forwards;color:transparent;-webkit-text-fill-color:transparent;background-image:linear-gradient(to top,#fff 0%,#fff var(--split-eyebrow),#000 var(--split-eyebrow),#000 100%);-webkit-background-clip:text;background-clip:text}
.uh-welcome-title{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,6vw,4.6rem);line-height:1.1;letter-spacing:.02em;margin:0;opacity:0;transform:translateY(26px);animation:uhFadeUp 1.2s cubic-bezier(.22,1,.36,1) .9s forwards;color:transparent;-webkit-text-fill-color:transparent;background-image:linear-gradient(to top,#fff 0%,#fff var(--split-title),#8c6c56 var(--split-title),#8c6c56 100%);-webkit-background-clip:text;background-clip:text}
@media(prefers-reduced-motion:reduce){.uh-welcome{--split-eyebrow:100%;--split-title:100%}}
@keyframes uhFadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes uhKenBurns{from{transform:scale(1)}to{transform:scale(1.08)}}
.uh-hero-photo.uh-static{height:100vh}
.uh-hero-photo.uh-static .uh-hero-photo-inner{position:relative;height:100%}
.uh-hero-photo.uh-static .uh-hero-photo-frame{transform:none;border-radius:0}
@media(prefers-reduced-motion:reduce){.uh-welcome-eyebrow,.uh-welcome-title{animation:none;opacity:1;transform:none}.uh-hero-photo-frame img{animation:none}}
@media(max-width:600px){.uh-welcome-eyebrow{letter-spacing:.28em;font-size:.72rem}}

/* Scroll/entrance reveal system, matching the hero's fade-up-on-load treatment */
.uh-reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.uh-reveal.is-visible{opacity:1;transform:translateY(0)}
.uh-reveal-delay-1{transition-delay:.14s}
.uh-reveal-delay-2{transition-delay:.28s}
.uh-reveal-img{opacity:0;transform:scale(1.06);transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.3s cubic-bezier(.22,1,.36,1)}
.uh-reveal-img.is-visible{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.uh-reveal,.uh-reveal-img{transition:none;opacity:1;transform:none}}

.uh-hero{background:linear-gradient(160deg,var(--accent-soft) 0%,var(--cream) 55%,#efe7d6 100%);border-bottom:1px solid var(--border);padding:88px 0;text-align:center}
.uh-hero h1{font-size:clamp(2rem,5vw,3.4rem);max-width:820px;margin:0 auto 18px}
.uh-hero p{color:var(--muted);max-width:660px;margin:0 auto;font-size:1.1rem}
.uh-hero .uh-hero-cta{display:inline-block;margin-top:28px;background:var(--accent);color:var(--surface);border:1px solid var(--accent);border-radius:999px;padding:.8rem 2rem;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;transition:background .2s}
.uh-hero .uh-hero-cta:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.uh-section{padding:56px 0}
.uh-section h2{font-size:1.9rem;margin-bottom:20px}
.uh-section p{color:var(--ink);margin-bottom:14px}
.uh-lead{color:var(--muted)}
.uh-lead{column-count: 2;margin: 0 0 22px 0;break-inside: avoid;column-gap: 40px;max-width: 900px;line-height: 1.7;margin: 0 auto;margin-bottom: 0;}
.uh-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;text-align:center;padding:12px}
.uh-cta-line{margin-top:8px;font-weight:600}
.uh-footer{background:var(--footer);border-top:1px solid var(--border);color:var(--muted)}
.uh-footer-inner{padding:26px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.uh-copyright{font-size:.85rem;color:var(--muted)}
.uh-footer a{color:var(--ink)}
.uh-footer a:hover{color:var(--accent)}
.uh-social {display: flex;gap: 12px;}
.uh-social a {display: inline-flex;align-items: center;justify-content: center;width: 38px;height: 38px;border-radius: 50%;border: 1px solid var(--border);background: transparent;}
.uh-social a:hover {background: var(--accent-soft);border-color: var(--accent);color: var(--accent);}
.uh-social img {width: 40px;height: 40px;display: block;}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
.uh-header{-webkit-backdrop-filter:blur(5px) saturate(180%);backdrop-filter:blur(5px) saturate(180%);transition:box-shadow .25s,background .45s,border-color .45s,color .45s,text-shadow .45s}
.uh-header[data-bg="light"],.uh-header.scrolled[data-bg="light"]{background:rgba(255,255,255,.42);border-bottom-color:rgba(255,255,255,.5);--text:#1d1a15;--text-dim:rgba(29,26,21,.68);--text-shadow:0 1px 14px rgba(255,255,255,.5),0 1px 1px rgba(255,255,255,.85)}
.uh-header[data-bg="dark"],.uh-header.scrolled[data-bg="dark"]{background:rgba(15,14,18,.38);border-bottom-color:rgba(255,255,255,.08);--text:#f7f4ee;--text-dim:rgba(247,244,238,.7);--text-shadow:0 1px 14px rgba(0,0,0,.55),0 1px 1px rgba(0,0,0,.85)}
.uh-header.scrolled{box-shadow:0 4px 24px rgba(46,42,36,.1)}
.uh-header .uh-logo,.uh-header .uh-logo span,.uh-header .uh-nav a:not(.uh-book-now),.uh-header .uh-lang,.uh-header .uh-lang a{color:var(--text);text-shadow:var(--text-shadow);transition:color .3s ease,text-shadow .3s ease,border-color .3s ease}
.uh-header .uh-nav a:not(.uh-book-now):hover,.uh-header .uh-nav a:not(.uh-book-now).active{color:var(--text)}
.uh-header .uh-lang{color:var(--text-dim)}
.uh-header .uh-lang a{color:var(--text)}
.uh-header .uh-burger span{background:var(--text)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
.uh-header{background:rgba(255,233,190,.97);border-bottom:1px solid var(--border)}
}
/* Burger menu breakpoint at 1100px. This is safely above the measured
   width the horizontal nav needs to fit on one line without overflow
   (EN ≈935px, DE ≈1066px because of "Zusatzleistungen"/"Jetzt buchen"),
   so the nav can never be forced to wrap to two lines. All tablets and
   narrow laptop windows (≤1100px) get the burger. */
@media(max-width:1100px){
.uh-burger{display:flex}
.uh-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--border);flex-direction:column;align-items:flex-start;padding:14px 20px;gap:4px}
.uh-nav.open{display:flex}
.uh-underline{display:none}
.uh-grid2{grid-template-columns:1fr}
.uh-hero{padding:56px 0}
}
@media print{.uh-header,.uh-footer,.uh-book-now,.uh-hero-cta{display:none}}

/* Source: gallery.html */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.25;color:var(--ink)}
.uh-burger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px}
.uh-page-hero{background:linear-gradient(160deg,var(--accent-soft) 0%,var(--cream) 55%,#efe7d6 100%);border-bottom:1px solid var(--border);padding:52px 0;text-align:center}
.uh-page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem)}
.uh-page-hero p{color:var(--muted);max-width:640px;margin:8px auto 0}
.uh-section{padding:44px 0}
.uh-section h2{font-size:1.9rem;margin-bottom:8px}
.uh-section p{color:var(--ink);margin-bottom:20px}

/* --- Gallery filter tabs --- */
.uh-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:28px}
.uh-filter-btn{font-family:var(--sans);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.55rem 1.25rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.uh-filter-btn:hover{color:var(--accent);border-color:var(--accent)}
.uh-filter-btn.active{background:var(--accent);border-color:var(--accent);color:var(--surface)}

/* --- Gallery grid --- */
.uh-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.uh-photo{position:relative;border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);background-size:cover;background-position:center;overflow:hidden;cursor:pointer;display:block;width:100%;aspect-ratio:3/2;transition:opacity .25s,transform .25s,box-shadow .25s}
.uh-photo:hover{box-shadow:0 8px 22px rgba(46,42,36,.12);transform:translateY(-2px)}
.uh-photo.hidden{display:none}
.uh-photo .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;text-align:center;padding:12px}
.uh-photo .uh-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 12px 8px;font-size:.78rem;font-weight:600;color:var(--surface);background:linear-gradient(0deg,rgba(46,42,36,.72),rgba(46,42,36,0));opacity:0;transition:opacity .2s}
.uh-photo:hover .uh-caption{opacity:1}

/* --- Lightbox --- */
.uh-lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,17,13,.92);display:none;align-items:center;justify-content:center;padding:40px}
.uh-lightbox.open{display:flex}
.uh-lightbox-inner{position:relative;max-width:900px;width:100%;max-height:85vh;display:flex;flex-direction:column;align-items:center}
.uh-lightbox-frame{width:100%;max-height:70vh;min-height:280px;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--muted);background-size:cover;background-position:center;text-align:center;padding:20px}
.uh-lightbox-caption{color:var(--cream);font-family:var(--serif);font-size:1.15rem;margin-top:16px;text-align:center}
.uh-lightbox-close,.uh-lightbox-prev,.uh-lightbox-next{position:absolute;background:rgba(255,253,247,.12);border:1px solid rgba(255,253,247,.3);color:var(--cream);border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:background .2s}
.uh-lightbox-close:hover,.uh-lightbox-prev:hover,.uh-lightbox-next:hover{background:var(--accent);border-color:var(--accent)}
.uh-lightbox-close{top:-52px;right:0}
.uh-lightbox-prev{left:-56px;top:50%;transform:translateY(-50%)}
.uh-lightbox-next{right:-56px;top:50%;transform:translateY(-50%)}
@media(max-width:820px){.uh-lightbox-prev{left:8px}.uh-lightbox-next{right:8px}.uh-lightbox-close{top:8px;right:8px}}

/* Container for the row of social media icon links */
.uh-social {
  display: flex;       /* lay out icon links horizontally */
  gap: 12px;            /* spacing between each icon */
}

/* Individual social icon link (circular button) */
.uh-social a {
  display: inline-flex;
  align-items: center;      /* vertically center icon inside circle */
  justify-content: center;  /* horizontally center icon inside circle */
  width: 38px;
  height: 38px;
  border-radius: 50%;       /* makes the button perfectly circular */
  border: 1px solid var(--border);   /* subtle outline using theme border color */
  background: transparent;           /* transparent background, no fill */
  color: var(--ink);                 /* default icon/text color from theme */
  font-weight: 700;
  font-size: .9rem;
  transition: background .2s, border-color .2s, color .2s; /* smooth hover transitions */
}

/* Hover state: highlight the icon button using the accent color */
.uh-social a:hover {
  background: var(--accent-soft);  /* soft accent background on hover */
  border-color: var(--accent);     /* accent-colored border on hover */
  color: var(--accent);            /* accent-colored icon/text on hover */
}

/* Icon images inside each social link (e.g. SVG/PNG logos) */
.uh-social img {
  width: 40px;
  height: 40px;
  display: block;   /* removes inline image spacing/gaps */
}

.uh-social{display:flex;gap:12px}
.uh-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-weight:700;font-size:.9rem;transition:background .2s,border-color .2s,color .2s}
.uh-social a:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@media(max-width:820px){
.uh-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){.uh-gallery{grid-template-columns:1fr}}
@media print{.uh-header,.uh-footer,.uh-book-now,.uh-lightbox{display:none}}

/* Source: map.html */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.25;color:var(--ink)}
.uh-section2{text-align:center}
.uh-section h2{font-size:1.9rem;margin-bottom:16px}
.uh-map{width:100%;height:420px;border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem;text-align:center;padding:20px;margin-bottom:24px}
.uh-list{padding-left:22px;margin:6px 0 16px}
.uh-list li{margin-bottom:10px}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@media(max-width:820px){
}
@media print{.uh-header,.uh-footer,.uh-book-now{display:none}}

/* Source: services.html */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.25;color:var(--ink)}
.uh-services{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:10px 0 24px}
.uh-service{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;display:flex;align-items:flex-start;gap:18px}
.uh-service-photo{width:160px;aspect-ratio:16 / 9;height:auto;flex:0 0 160px;display:block;object-fit:cover;border:1px solid var(--border);border-radius:var(--radius);background:var(--accent-soft)}
.uh-service-content{flex:1;min-width:0}
.uh-service h4{font-size:1.05rem;margin-bottom:6px}
.uh-service p{font-size:.95rem;color:var(--muted);margin:0}
.uh-service li{font-size:.95rem;color:var(--muted);margin:0}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@media(max-width:820px){
  .uh-services{grid-template-columns:1fr}
  .uh-service{align-items:flex-start}
}
@media print{.uh-header,.uh-footer,.uh-book-now{display:none}}

/* Source: reviews.html */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.25;color:var(--ink)}
.uh-quote{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);padding:22px 26px;margin-bottom:18px;opacity:0;transform:translateY(8px);animation:uh-quote-in .4s ease forwards}
.uh-quote-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.uh-quote-title{font-family:var(--serif);font-weight:600;font-size:1.02rem;color:var(--ink)}
.uh-quote-date{font-size:.8rem;color:var(--muted);white-space:nowrap}
.uh-stars{display:flex;gap:2px;margin-bottom:12px}
.uh-stars svg{width:14px;height:14px}
.uh-stars svg path{fill:var(--border)}
.uh-stars svg.is-filled path{fill:var(--accent)}
.uh-quote p{font-style:italic;color:var(--ink)}
.uh-quote p+p{margin-top:10px}
.uh-quote cite{display:block;margin-top:10px;font-style:normal;font-weight:600;color:var(--muted);font-size:.9rem}
@keyframes uh-quote-in{to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.uh-quote{animation:none;opacity:1;transform:none}}
.uh-load-more{display:block;margin:8px auto 0;padding:.7rem 1.9rem;background:transparent;border:1px solid var(--ink);border-radius:999px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);cursor:pointer;transition:background .2s,color .2s}
.uh-load-more:hover{background:var(--ink);color:var(--surface)}
.uh-load-more:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.uh-load-more[hidden]{display:none}
.uh-review-links{margin-top:24px}
  .uh-review-panel{margin:42px auto 0;max-width:820px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:0 8px 24px rgba(46,42,36,.06)}
  .uh-review-panel h2{margin-bottom:8px}
  .uh-review-panel-intro{color:var(--muted);margin-bottom:18px}
  .uh-review-form{display:grid;gap:16px}
  .uh-review-field{display:grid;gap:7px}
  .uh-review-field label,.uh-review-rating legend{font-size:.86rem;font-weight:600;color:var(--ink)}
  .uh-review-field input,.uh-review-field textarea,.uh-review-field select{width:100%;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);font:inherit;padding:11px 12px}
  .uh-review-field textarea{min-height:150px;resize:vertical}
  .uh-review-field input:focus,.uh-review-field textarea:focus,.uh-review-field select:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}
  .uh-review-rating{border:0;padding:0;margin:0}
  .uh-star-rating{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:3px;margin-top:7px}
  .uh-star-rating input{position:absolute;opacity:0;width:1px;height:1px}
  .uh-star-rating label{display:inline-flex;cursor:pointer;color:var(--border);padding:2px}
  .uh-star-rating svg{width:28px;height:28px;fill:currentColor;transition:color .15s,transform .15s}
  .uh-star-rating label:hover svg,.uh-star-rating label:hover~label svg,.uh-star-rating input:checked~label svg{color:var(--accent);fill:currentColor}
  .uh-star-rating label:hover svg{transform:scale(1.08)}
  .uh-star-rating input:focus-visible+label{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
  .uh-review-consent{display:flex;align-items:flex-start;gap:9px;font-size:.84rem;color:var(--muted)}
  .uh-review-consent input{margin-top:5px;accent-color:var(--accent)}
  .uh-review-submit{justify-self:start;background:var(--accent);color:var(--surface);border:1px solid var(--accent);border-radius:999px;padding:.72rem 1.7rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:background .2s,border-color .2s}
  .uh-review-submit:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
  .uh-review-submit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
  @media(max-width:600px){.uh-review-panel{padding:18px}.uh-review-submit{width:100%}}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@media(max-width:820px){
}
@media print{.uh-header,.uh-footer,.uh-book-now{display:none}}

/* Source: booking.html */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.7}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.25;color:var(--ink)}
.uh-demo{display:inline-block;background:var(--accent-soft);color:var(--accent-dark);border:1px solid var(--accent);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:4px 12px;border-radius:999px;margin-bottom:16px}
.uh-pricing{margin:0 0 28px}
.uh-pricing-gap{margin-top:1.7em}
.uh-pricing-gap--2{margin-top:3.4em}
.uh-h2-center{text-align:center}
.uh-pricing .uh-pricing-note{font-family:var(--serif);font-size:1.05rem;font-weight:600;color:var(--ink);margin-bottom:8px}
.uh-pricing table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.uh-pricing th,.uh-pricing td{padding:.7rem .9rem;border:1px solid var(--border);text-align:center;font-size:.92rem}
.uh-pricing thead th{background:#f1eadb;font-family:var(--serif);text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}
.uh-pricing td.uh-row-label{text-align:left;font-weight:600}
.uh-pricing tbody tr:nth-child(even) td{background:#fbf8f1}
.uh-cals-wrap{position:relative}
.uh-cals{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.uh-cals::-webkit-scrollbar{display:none}
.uh-cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;flex:0 0 calc(50% - 10px);scroll-snap-align:start}
.uh-cal-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(46,42,36,.14);z-index:2;transition:background .2s,border-color .2s,color .2s}
.uh-cal-nav:hover{background:#f3e3d8;border-color:#c96f4a;color:#a6552f}
.uh-cal-prev{left:-18px}
.uh-cal-next{right:-18px}
.uh-cal h4{font-size:1.1rem;margin-bottom:14px;text-align:center}
.uh-cal table{width:100%;border-collapse:collapse;table-layout:fixed}
.uh-cal th,.uh-cal td{border:1px solid var(--border);padding:8px 2px;text-align:center;font-size:.85rem}
.uh-cal th{background:#f1eadb;font-weight:600;text-transform:uppercase;font-size:.72rem;letter-spacing:.05em}
.uh-cal td.av{color:var(--ink)}
.uh-cal td.bk{background:#c96f4a;color:var(--surface)}
.uh-cal td.pd{background:#f3e3d8;color:var(--ink)}
.uh-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:.85rem;color:var(--muted)}
.uh-legend i{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px}
.uh-legend .l-av{background:var(--surface);border:1px solid var(--border)}
.uh-legend .l-bk{background:#c96f4a}
.uh-legend .l-pd{background:#f3e3d8}
.uh-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;max-width:720px}
.uh-booking-request{text-align:center}
.uh-booking-request .uh-form{margin:0 auto;text-align:left}
.uh-form label{display:block;font-weight:600;margin:14px 0 6px}
.uh-form input,.uh-form select,.uh-form textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;color:var(--ink);font-family:var(--sans);font-size:.95rem}
.uh-form input:focus,.uh-form select:focus,.uh-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.uh-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.uh-form .btn{background:var(--accent);border:1px solid var(--accent);border-radius:999px;color:var(--surface);font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.7rem 1.8rem;cursor:pointer;font-size:.85rem;margin-top:18px;font-family:var(--sans);width:auto}
.uh-form .btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.uh-contact{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 26px;max-width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.uh-centered-title h2{text-align:center}
.uh-contact-info{flex:1;min-width:0}
.uh-contact strong{color:var(--ink)}
.uh-contact-image{width:100px;aspect-ratio:3 / 4;height:auto;flex:0 0 100px;border:2px dashed var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.72rem;line-height:1.3;background:var(--accent-soft)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
}
@media(max-width:820px){
.uh-cal{flex:0 0 100%}
.uh-cal-prev{left:2px}
.uh-cal-next{right:2px}
  .uh-form .row{grid-template-columns:1fr}
  .uh-contact{align-items:flex-start}
  .uh-pricing th,.uh-pricing td{padding:.5rem .4rem;font-size:.78rem}
}
@media print{.uh-header,.uh-footer,.uh-book-now{display:none}}

/* ---- Footer social icons: btn-4-style hover (fill-circle rises + icon swaps to brand color) ---- */
.uh-social a{position:relative;overflow:hidden;border-radius:10px}
.uh-social a .icon{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .25s ease,transform .3s ease;z-index:2}
.uh-social a .icon-mono{opacity:1;transform:scale(1)}
.uh-social a .icon-mono img{width:38px;height:38px;display:block}
.uh-social a .icon-color{opacity:0;transform:scale(.6) rotate(-15deg)}
.uh-social a .icon-color svg{width:26px;height:26px;display:block}
.uh-social a::after{content:"";position:absolute;left:50%;top:100%;width:140px;height:140px;border-radius:50%;background:var(--social-accent,var(--accent));transform:translateX(-50%);transition:top .35s ease .05s;z-index:1}
.uh-social a:hover::after{top:-60%}
.uh-social a:hover .icon-mono{opacity:0;transform:scale(.6) rotate(15deg)}
.uh-social a:hover .icon-color{opacity:1;transform:scale(1) rotate(0)}
.uh-social a[data-accent="whatsapp"]{--social-accent:#25d366}
.uh-social a[data-accent="mail"]{--social-accent:#e75a4d}
.uh-social a[data-accent="instagram"]{--social-accent:#c62f94}

/* ==========================================================================
   MOBILE COMPATIBILITY PASS
   All effects/animations/functionality are unchanged (Ken Burns hero,
   scroll-reveal, underline glow, lightbox, star rating, social icon flip).
   These rules only adjust layout so nothing overflows, crowds, or gets
   too small to use on phones/tablets.
   ========================================================================== */

/* Tablets & large phones — nav is now in burger mode at this width,
   so the link spacing rules below target the vertical drop-down menu */
@media(max-width:1100px){
  /* Requested exception: the two-column lead paragraph becomes one column */
  .uh-lead{column-count:1}

  /* Burger menu: "Book Now" needs vertical spacing instead of inline margin;
     regular nav links go full-width for easier tap targets */
  .uh-nav .uh-book-now{margin:10px 0 2px;align-self:flex-start}
  .uh-nav a:not(.uh-book-now){padding:8px 0;width:100%}

  /* Service cards: shrink the fixed photo instead of letting it crowd text */
  .uh-service-photo{width:120px;flex:0 0 120px}

  /* Pricing tables: scroll horizontally rather than squeezing text unreadable */
  .uh-pricing{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .uh-pricing table{min-width:520px}

  /* Contact card: let it wrap instead of forcing a tight row */
  .uh-contact{flex-wrap:wrap}
  .uh-contact-info{flex:1 1 220px}

  .uh-hero-photo{margin-top:-72px}
}

/* Phones */
@media(max-width:600px){
  .uh-header-inner{min-height:64px}
  .uh-logo svg{height:32px}
  .uh-nav{top:64px}

  .uh-hero-photo-inner{height:100vh}

  .uh-section{padding:40px 0}
  .uh-section h2{font-size:1.55rem}
  .uh-hero{padding:44px 0}
  .uh-hero .uh-hero-cta{width:100%;text-align:center}

  /* Service cards stack fully on narrow phones */
  .uh-service{flex-direction:column}
  .uh-service-photo{width:100%;flex:0 0 auto;aspect-ratio:16/9}

  /* Contact card stacks with the photo above the details */
  .uh-contact{flex-direction:column;align-items:center;text-align:center;padding:22px}
  .uh-contact-image{flex:0 0 auto;margin-bottom:4px}

  .uh-form{padding:20px}
  .uh-form .btn{width:100%}

  .uh-footer-inner{flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;gap:14px}
  .uh-footer-inner .uh-social{order:-1}

  .uh-map{height:280px}

  .uh-cal{padding:14px 10px}
  .uh-cal th,.uh-cal td{padding:6px 1px;font-size:.78rem}
  .uh-legend{justify-content:center}

  .uh-pricing-note{font-size:.95rem}
}

/* Small phones */
@media(max-width:380px){
  .uh-welcome-title{font-size:clamp(1.7rem,8vw,2.4rem)}
  .container{padding:0 14px}
  .uh-book-now{padding:.6rem 1.1rem}
  .uh-cal th,.uh-cal td{font-size:.7rem;padding:5px 1px}
  .uh-pricing th,.uh-pricing td{padding:.45rem .35rem;font-size:.72rem}
}

/* ==========================================================================
   Mobile floating "Book Now" button — v2: circle icon that expands into a
   pill with text on hover/focus/tap. Uses the same fixed-position technique
   as before so it doesn't jump while scrolling. Colors match the site
   (accent background, surface-colored icon/text via currentColor).
   ========================================================================== */
.uh-mobile-book-btn{display:none}

@media(max-width:1100px){
  .uh-mobile-book-btn{
    display:flex;
    align-items:center;
    justify-content:center;

    position:fixed;
    position:-webkit-fixed;

    right:15px;
    bottom:80px;
    bottom:calc(80px + env(safe-area-inset-bottom));

    z-index:60;

    width:60px;                      /* collapsed = circle */
    height:60px;
    padding:0;

    background:var(--accent);        /* site accent instead of demo's blue */
    color:var(--surface);            /* icon + text color (via currentColor) */
    border:1px solid var(--accent);
    border-radius:30px;              /* stays a half-height pill in both states */

    text-decoration:none;
    overflow:hidden;
    cursor:pointer;

    box-shadow:0 4px 15px rgba(0,0,0,.3);

    /* the button grows to the left while staying fixed on the right */
    transition:width .35s ease, border-radius .35s ease, transform .2s ease;
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }

  .uh-mobile-book-btn .book-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;

    opacity:1;
    transform:scale(1);
    transition:opacity .2s ease, transform .25s ease;
  }

  .uh-mobile-book-btn .book-text{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;

    color:var(--surface);
    font-family:var(--sans);
    font-size:.8rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.06em;
    white-space:nowrap;

    opacity:0;
    transform:translateX(12px);
    transition:opacity .2s ease, transform .25s ease;
  }

  /* Hover/focus: expand into a "BOOK NOW" pill and hide the icon */
  .uh-mobile-book-btn:hover,
  .uh-mobile-book-btn:focus-visible{
    width:165px;
    background:var(--accent-dark);
    border-color:var(--accent-dark);
  }

  .uh-mobile-book-btn:hover .book-icon,
  .uh-mobile-book-btn:focus-visible .book-icon{
    opacity:0;
    transform:scale(.6);
  }

  .uh-mobile-book-btn:hover .book-text,
  .uh-mobile-book-btn:focus-visible .book-text{
    opacity:1;
    transform:translateX(0);
  }

  .uh-mobile-book-btn:active{
    transform:scale(.94);
    -webkit-transform:scale(.94);
  }
}

@media print{.uh-mobile-book-btn{display:none}}.uh-page-hero{padding:88px 0 24px;text-align:center;background:linear-gradient(160deg,var(--accent-soft) 0%,var(--cream) 70%)}
.uh-page-hero h1{font-size:clamp(1.8rem,4vw,3rem);margin-bottom:12px}
.uh-page-hero p{color:var(--muted)}
.uh-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.uh-gallery-item{border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.uh-gallery-item img{width:100%;height:100%;object-fit:cover}
