/* Návrh 01: jemné vizuální sjednocení při zachování původního rozložení. */
:root {
  --border: #e2dacb;
  --shadow: 0 5px 16px rgba(35, 57, 42, .07);
  --radius-lg: 5px;
}

body { background: #f7f3eb; }
.panel, .hero-home { border-color: #e2dacb !important; box-shadow: 0 4px 16px rgba(35,57,42,.045) !important; }
.panel::before, .hero-home::before { background: #17382b !important; }
.panel, .hero, .hero-offer-card, .service-picker-btn, .copy-row { border-radius: 5px; }
.hero-intro-italic { line-height: 1.75; }
.hero-content h2.hero-title-editorial { white-space: normal !important; text-wrap: balance; }
.hero-offer-card, .service-main-card, .legal-card, .process-card { box-shadow: none; }
.hero-offer-card i { color: #637b62; }
.hero-content p, .service-main-card p, .page-intro, .about-simple-copy p { font-size: .94rem; line-height: 1.78; }
.hero-offer-card small { font-size: .82rem; }
.subtitle, .contact-list li, .maps-link { font-size: .82rem; }
.kicker { font-size: .7rem; letter-spacing: .11em; }
.service-title-row { align-items: flex-start; gap: .85rem; }
.service-title-row .service-icon { flex-shrink: 0; margin-top: .15rem; }
.service-lead { margin-bottom: .65rem; }
.service-main-card p + p { margin-top: .7rem; }

/* Very narrow colour range: the gradient should be felt, barely seen. */
.btn, .chip, .btn-primary, .nav-cta, .service-picker-btn, .copy-email-btn,
.mobile-sticky-cta a, .carousel-btn {
  border-radius: 5px;
  min-height: 44px;
  transition: background-position .22s ease, box-shadow .22s ease, border-color .22s ease, transform .22s ease;
  background-size: 100% 140%;
}
.btn-booking, .chip-booking, .nav-cta, .mobile-sticky-cta a {
  background-image: linear-gradient(165deg, #ffcd0a, #fac800);
  box-shadow: 0 3px 9px rgba(126,100,0,.09);
}
.btn-service, .chip-service, .btn-on-light, .chip-on-light, .service-picker-btn,
.mobile-sticky-cta--social a {
  background-image: linear-gradient(165deg, #1b3c2f, #17382b);
  box-shadow: 0 3px 9px rgba(23,56,43,.1);
}
.btn-neutral, .chip-neutral, .btn-on-dark, .chip-on-dark, .copy-email-btn {
  background-image: linear-gradient(165deg, #f5ead5, #f1e5cf);
  color: #374631;
  border-color: #d3c4a9;
  box-shadow: 0 2px 7px rgba(83,69,43,.04);
}
.copy-email-btn i { color: inherit; }
.contact-brand-image {
  background: #17382b;
  padding: 10px;
  border: 1px solid #274b3a;
  border-radius: 5px;
}
.btn-primary { background-image: linear-gradient(165deg, #71876c, #6b8166); box-shadow: 0 3px 9px rgba(23,56,43,.08); }
.nav-menu > li > a.nav-cta { padding: .55rem 1rem; }
.btn:hover, .chip:hover, .btn-primary:hover, .service-picker-btn:hover,
.copy-email-btn:hover, .nav-cta:hover, .mobile-sticky-cta a:hover {
  transform: translateY(-1px);
  background-position: 0 100%;
  box-shadow: 0 5px 13px rgba(23,56,43,.12);
}
.btn-service:hover, .chip-service:hover, .btn-on-light:hover, .chip-on-light:hover,
.service-picker-btn:hover { background-image: linear-gradient(165deg, #1d3e31, #193a2d); }
.btn-booking:hover, .chip-booking:hover, .nav-cta:hover { background-image: linear-gradient(165deg, #ffce0d, #fcc902); }
.btn-neutral:hover, .chip-neutral:hover, .btn-on-dark:hover, .chip-on-dark:hover,
.copy-email-btn:hover { background-image: linear-gradient(165deg, #f5ead5, #f1e5cf); }
.btn, .chip, .btn-primary { text-transform: none; letter-spacing: .015em; font-size: .83rem; }

/* Content is available immediately, including when JavaScript is disabled. */
.reveal, .reveal.visible { opacity: 1; transform: none; transition: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #8c6b12; outline-offset: 4px; }
.header a:focus-visible, .footer a:focus-visible { outline-color: #ffcf36; }
.service-picker-cta { justify-content: flex-start; }

/* Keep a continuous pointer path across the visual gap below Nabídka. */
@media (min-width: 761px) {
  .nav-submenu { transform: none; }
  .nav-submenu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -1rem;
    height: 1rem;
    background: transparent;
  }
}

.service-schedule { margin-top: 1.4rem; padding: 1.2rem; border: 1px solid #e2dacb; border-radius: 5px; background: #fcfaf6; }
.service-schedule__header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .65rem; margin-bottom: 1rem; }
.service-schedule__header h2 { font-size: 1.16rem; margin: 0; }
.service-schedule__header .kicker { margin-bottom: .2rem; }
.service-schedule__place { color: #62715f; font-size: .76rem; white-space: nowrap; }
.service-schedule__list { margin: 0; padding: 0; list-style: none; display: grid; gap: .65rem; }
.service-schedule__row { display: grid; grid-template-columns: 130px minmax(0,1fr); align-items: center; gap: 1rem; padding: .9rem; background: #fff; border: 1px solid #e8e2d7; border-radius: 4px; }
.service-schedule__date { color: #17382b; font-family: "Outfit", sans-serif; font-size: 1.06rem; font-weight: 600; }
.service-schedule__event { display: grid; gap: .15rem; }
.service-schedule__event strong { color: #2b3c2e; font-size: .9rem; font-weight: 600; }
.service-schedule__event span { color: #637060; font-size: .8rem; line-height: 1.5; }
.service-schedule__empty { display: flex; align-items: flex-start; gap: .85rem; padding: .3rem 0 .7rem; }
.service-schedule__calendar { width: 38px; height: 38px; flex-shrink: 0; display: grid; place-items: center; background: #efeadd; border-radius: 50%; color: #536a52; }
.service-schedule__empty strong { font-size: .93rem; font-weight: 600; }
.service-schedule__empty p { color: #637060; font-size: .88rem; margin-top: .2rem; line-height: 1.65; }
.service-schedule__footnote { margin-top: .85rem; color: #64705f; font-size: .79rem; line-height: 1.65; }
.service-schedule__footnote a { color: #274733; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.service-schedule--compact { max-width: 620px; margin-inline: auto; text-align: left; }

.social-invite { display: flex; align-items: flex-start; gap: 1rem; padding: 1.4rem; margin-top: 1.3rem; border: 1px solid #dce3d9; border-radius: 5px; background: linear-gradient(145deg,#f3f6f0,#eff3eb); }
.social-invite__icon { display: grid; place-items: center; width: 42px; height: 42px; flex-shrink: 0; background: #e4ebde; color: #35513a; border-radius: 50%; font-size: 1.2rem; }
.social-invite__body { min-width: 0; }
.social-invite h2 { font-size: 1.18rem; margin-bottom: .5rem; }
.social-invite__body > p:not(.kicker) { font-size: .9rem; color: #53624f; line-height: 1.75; max-width: 64ch; }
.social-invite__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1.2rem; margin-top: 1rem; }
.social-invite__contact { display: inline-flex; align-items: center; min-height: 44px; gap: .4rem; color: #3c513c; font-size: .82rem; text-decoration: underline; text-underline-offset: 3px; }
.social-invite__handle { display: inline-block; margin-top: .6rem; color: #64735e; font-size: .75rem; }
.mobile-sticky-cta--social a { color: #f4f7ef; border-color: #214536; }

/* Footer: aligned groups, one quiet navigation row, identical rhythm on mobile. */
.footer-proposal { margin-top: 1.4rem; padding: 0; background: #143427; color: #dce7dc; border-top: 1px solid #294a38; }
.footer-proposal .footer-shell { padding-top: 2rem; padding-bottom: 1.1rem; }
.footer-main { display: grid; grid-template-columns: 1fr 1.05fr 1fr; gap: 2.5rem; align-items: start; }
.footer-block { min-width: 0; }
.footer-proposal .footer-block h3 { font-family: "Manrope", sans-serif; font-size: .76rem; line-height: 1.5; color: #b9cbb7; text-transform: uppercase; letter-spacing: .09em; margin: 0 0 .85rem; }
.footer-details { display: grid; gap: .35rem; margin: 0; font-size: .86rem; }
.footer-details > div { display: grid; grid-template-columns: 58px minmax(0,1fr); gap: .5rem; }
.footer-details dt { color: #b9cbb7; }
.footer-details dd { margin: 0; color: #edf2e9; overflow-wrap: anywhere; user-select: text; }
.footer-proposal .footer-address { font-size: .86rem; line-height: 1.75; color: #edf2e9; }
.footer-directions { display: inline-block; max-width: 100%; margin-top: .55rem; color: #c6d7c0; font-size: .78rem; line-height: 1.65; text-decoration: underline; text-underline-offset: 3px; }
.footer-social-links { display: grid; gap: .5rem; }
.footer-social-links > a { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding: .45rem .65rem; border: 1px solid #385341; border-radius: 4px; background: linear-gradient(165deg,#1b3b2e,#19392c); color: #f0f4eb; }
.footer-social-links i { width: 18px; text-align: center; font-size: 1rem; color: #c9d9bf; }
.footer-social-links > a > span:not(.footer-external) { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .5rem; font-size: .83rem; }
.footer-social-links small { color: #b9cbb7; font-size: .72rem; }
.footer-external { margin-left: auto; color: #adbea7; }
.footer-navigation { margin-top: 1.5rem; border-top: 1px solid #38513e; }
.footer-links { display: flex; flex-wrap: wrap; gap: .1rem 1.4rem; list-style: none; padding: .5rem 0; margin: 0; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: .81rem; color: #dce7d5; }
.footer-proposal a:hover { color: #fff; }
.footer-social-links > a:hover { border-color: #748a6a; }
.footer-legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .3rem 1rem; align-items: center; border-top: 1px solid #38513e; padding-top: .75rem; padding-right: 3.2rem; }
.footer-legal p, .footer-legal a { font-size: .71rem; color: #b9cbb7; line-height: 1.65; }
.footer-legal a { min-height: 36px; display: inline-flex; align-items: center; gap: .4rem; }

/* Social actions retain each network's recognisable palette. Darker tones keep white labels readable. */
:is(.socials a, .contact-social-item, .footer-social-links > a, .social-invite .btn, .mobile-sticky-cta--social a)[href*="instagram.com/"] {
  background-image: linear-gradient(120deg, #b85524 0%, #bd2876 52%, #7545bd 100%);
  background-color: #bd2876;
  border-color: #aa3971;
  color: #fff;
  box-shadow: 0 3px 9px rgba(133, 46, 101, .13);
}
:is(.socials a, .contact-social-item, .footer-social-links > a)[href*="facebook.com/"] {
  background-image: linear-gradient(165deg, #0866df, #0861d2);
  background-color: #0866df;
  border-color: #075ac5;
  color: #fff;
  box-shadow: 0 3px 9px rgba(8, 80, 174, .13);
}
:is(.socials a, .contact-social-item, .footer-social-links > a, .social-invite .btn, .mobile-sticky-cta--social a):is([href*="instagram.com/"], [href*="facebook.com/"]) :is(i, strong, span, small) {
  color: #fff;
}
.footer-social-links > a small, .footer-social-links > a .footer-external { opacity: .88; }
:is(.socials a, .contact-social-item, .footer-social-links > a, .social-invite .btn, .mobile-sticky-cta--social a):is([href*="instagram.com/"], [href*="facebook.com/"]):hover {
  border-color: rgba(255,255,255,.5);
  box-shadow: 0 5px 13px rgba(58, 37, 76, .18);
}

@media (max-width: 760px) {
  .nav-menu { visibility: hidden; top: calc(100% + .35rem); }
  .nav-menu:not(.open) * { visibility: hidden; }
  .nav-menu.open { visibility: visible; }
  .hero-content p, .about-simple-copy p, .service-main-card p, .page-intro { font-size: .94rem; }
  .hero-offer-card small { font-size: .83rem; }
  .hero-home .hero-cta { align-self: stretch; }
  .hero-home .hero-card .hero-brand-image { width: 80px; height: 80px; }
  .service-schedule { padding: 1rem; margin-top: 1.15rem; }
  .service-schedule__header { gap: .4rem; margin-bottom: .85rem; }
  .service-schedule__header h2 { font-size: 1.1rem; }
  .service-schedule__row { grid-template-columns: 1fr; gap: .4rem; padding: .85rem; }
  .service-schedule__event span { font-size: .82rem; }
  .social-invite { padding: 1rem; gap: .7rem; flex-wrap: wrap; }
  .social-invite__icon { width: 34px; height: 34px; font-size: 1rem; }
  .social-invite__body { flex: 1 1 210px; }
  .social-invite__actions { align-items: stretch; flex-direction: column; gap: .3rem; }
  .social-invite__actions .btn { width: 100%; font-size: .82rem; padding-inline: .65rem; }
  .social-invite__contact { justify-content: center; text-align: center; font-size: .8rem; }
  .service-schedule--compact { padding: .8rem; }
  .footer-proposal .footer-shell { width: calc(100% - 2rem) !important; padding-top: 1.4rem; padding-bottom: .8rem; }
  .footer-main { grid-template-columns: 1fr; gap: 1.05rem; }
  .footer-main .footer-block + .footer-block { border-top: 1px solid #38513e; padding-top: 1.05rem; }
  .footer-proposal .footer-block h3 { margin-bottom: .6rem; }
  .footer-details { gap: .4rem; }
  .footer-details > div { grid-template-columns: 62px minmax(0,1fr); }
  .footer-social-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-social-links > a { gap: .5rem; padding-inline: .55rem; }
  .footer-social-links > a > span:not(.footer-external) { display: grid; gap: 0; }
  .footer-social-links .footer-external { display: none; }
  .footer-social-links small { font-size: .67rem; }
  .footer-navigation { margin-top: 1.1rem; }
  .footer-links { gap: 0 1.1rem; }
  .footer-links a { font-size: .79rem; }
  .footer-legal { display: block; padding-top: .75rem; padding-right: 0; }
  body:not(:has(.mobile-sticky-cta)) { padding-bottom: 0; }
  body:not(:has(.mobile-sticky-cta)) .back-to-top { bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
