/* Homepage */
main .section { padding: clamp(2.75rem, 6vw, 4.5rem) 0; }
.home-hero { padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.home-hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.3rem); max-width: 16ch; }
.home-hero .lead { margin-top: 1rem; max-width: 34rem; }
.home-hero__photo { position: relative; margin: 0; }
.home-hero__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); border: 1px solid var(--line); }
.home-hero__badge { position: absolute; left: 1rem; bottom: 1rem; display: flex; align-items: center; gap: .7rem; max-width: calc(100% - 2rem); padding: .7rem .95rem; border-radius: var(--radius-md); background: rgba(20,20,22,.88); border: 1px solid var(--line); backdrop-filter: blur(6px); font-size: .85rem; color: var(--ink-2); }
.home-hero__badge strong { display: block; color: var(--ink); font-weight: 500; font-size: .95rem; }
.home-hero__dot { width: 10px; height: 10px; flex: none; border-radius: 50%; background: #4fd18b; box-shadow: 0 0 0 4px rgba(79,209,139,.18); }

.paths { display: grid; gap: 1.25rem; margin-top: 1.75rem; }
@media (min-width: 900px) { .paths { grid-template-columns: 1fr 1fr; align-items: start; } }
.path { padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-lg); }
.path--home { border-top-color: var(--violet); }
.path__head h3 { font-size: 1.35rem; margin-bottom: .2rem; }
.path__head p { margin: 0; color: var(--ink-2); }
.path__list { list-style: none; margin: 1rem 0 0; padding: 0; }
.path__list li { border-top: 1px solid var(--line); }
.path__list a { position: relative; display: block; padding: .75rem 2rem .75rem 0; text-decoration: none; color: var(--ink); }
.path__list a::after { content: ""; position: absolute; right: .35rem; top: 50%; width: 8px; height: 8px; border-top: 2px solid var(--ink-2); border-right: 2px solid var(--ink-2); transform: translateY(-50%) rotate(45deg); transition: right .2s, border-color .2s; }
.path__list a:hover::after, .path__list a:focus-visible::after { right: 0; border-color: var(--accent); }
.path--home .path__list a:hover::after { border-color: var(--violet); }
.path__name { display: block; font-weight: 500; }
.path__desc { display: block; font-size: .875rem; color: var(--ink-2); margin-top: .1rem; }
.path__list a:hover .path__name { color: var(--accent); }
.path--home .path__list a:hover .path__name { color: var(--violet); }
.path__more { display: inline-block; margin-top: 1rem; font-weight: 500; color: var(--accent); text-underline-offset: 3px; }
.path--home .path__more { color: var(--violet); }

#reviews .reviews { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }

.home-visit { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) { .home-visit { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); } }
.home-visit .towns { margin-top: 1.5rem; }
.home-visit__card { padding: clamp(1.25rem, 3vw, 1.75rem); font-style: normal; }
.home-visit__label { margin: 0 0 .35rem; font-size: .85rem; color: var(--ink-2); }
.home-visit__addr { margin: 0 0 1rem; font-weight: 500; font-size: 1.1rem; line-height: 1.5; }
.home-visit__hours { margin: 0 0 1.25rem; display: grid; gap: .35rem; }
.home-visit__hours div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .35rem; border-bottom: 1px solid var(--line); font-size: .925rem; }
.home-visit__hours dt { color: var(--ink-2); }
.home-visit__hours dd { margin: 0; font-weight: 500; }
.home-visit__actions { display: flex; flex-wrap: wrap; gap: .6rem; }