/* Shared, simple public layout. Booking, owner and signed documents keep
   their own styles; this sheet only applies to the rental homepage/calendar. */
.rental-home {
  --ink:#153746; --muted:#53656d; --accent:#14617a;
  --accent-hover:#104e63; --line:#dce3e6; --soft:#f5f7f8;
  background:#fff; font-size:18px; -webkit-font-smoothing:antialiased;
}
.rental-home .section,.rental-home .site-header {
  width:min(1120px,calc(100% - 64px));
}
.rental-home .section {padding:52px 0;}
.rental-home h2 {font-size:32px;letter-spacing:-.025em;line-height:1.2;}
.rental-home h3 {font-size:21px;letter-spacing:-.015em;}
.rental-home .button {border-radius:4px;min-height:48px;padding:12px 20px;font-size:16px;gap:20px;}
.rental-home .button:hover {transform:none;}
.rental-home .text-link {font-size:16px;letter-spacing:0;}
.rental-home .site-header {min-height:88px;height:auto;gap:28px;}
.rental-home .brand {white-space:normal;gap:10px;font-size:20px;letter-spacing:-.5px;}
.rental-home .brand svg {display:block;width:34px;flex-shrink:0;}
.rental-home .brand .site-name {font-size:20px;max-width:260px;font-weight:650;letter-spacing:-.55px;}
.rental-home .brand>.brand-mark {width:42px;height:42px;}
.rental-home .brand small {font-size:12px;letter-spacing:0;font-weight:400;line-height:1.4;margin-top:4px;}
.rental-home .site-header nav {display:flex;gap:24px;font-size:16px;margin-left:auto;}
.rental-home .site-header nav a {display:flex;align-items:center;min-height:44px;}
.rental-home .site-header nav a:hover {text-decoration:underline;text-underline-offset:5px;}
.rental-home .site-header .mobile-nav-booking,.menu-toggle {display:none;}
.rental-home .site-header .button {white-space:nowrap;}

/* A straightforward introduction beside the lake, with one next action. */
.rental-home .hero {
  display:grid;grid-template-columns:1fr 1.12fr;gap:56px;align-items:center;
  width:min(1120px,calc(100% - 64px));margin:20px auto 0;
  min-height:0;background:#fff;overflow:visible;border-radius:0;
}
.rental-home .hero-content {width:auto;margin:0;padding:20px 0;color:var(--ink);}
.rental-home .hero h1 {font-size:clamp(36px,4.2vw,56px);line-height:1.12;letter-spacing:-.035em;margin:0 0 22px;max-width:470px;text-wrap:balance;}
.rental-home .hero p {font-size:18px;line-height:1.65;color:var(--muted);margin:0;}
.rental-home .hero .hero-price {margin:18px 0 24px;}
.hero-price strong {color:var(--ink);font-weight:600;}
.hero-media {position:relative;min-width:0;height:390px;border-radius:5px;overflow:hidden;background:var(--soft);}
.rental-home .hero-image {object-position:center;}
.rental-home .motion-button {right:12px;bottom:12px;min-height:40px;padding:8px 12px;font-size:13px;background:#153746c9;border-radius:3px;}
.rental-home .site-news {padding:24px 0 0;}
.rental-home .site-news article {border-left:3px solid var(--accent);background:var(--soft);padding:16px 20px;margin-bottom:12px;}
.rental-home .site-news h2 {font-size:18px;margin-bottom:4px;}
.rental-home .site-news p {font-size:16px;white-space:pre-line;overflow-wrap:anywhere;}

/* Compare rental durations; flexible hours are a half-day variant. */
.rental-home .pricing-section {background:#fff;}
.rental-home .pricing-section .section {padding-top:48px;padding-bottom:36px;}
.rental-home .section-heading {align-items:center;gap:24px;}
.rental-home .section-heading>p {font-size:16px;}
.rental-home .price-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px;}
.rental-home .price-card {display:flex;flex-direction:column;align-items:stretch;gap:0;padding:28px;margin:0;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);}
.rental-home .price-card h3 {font-size:24px;margin:0 0 6px;}
.rental-home .price-card p {font-size:16px;line-height:1.55;margin:0;min-height:0;color:var(--muted);}
.rental-home .price {font-size:42px;line-height:1.2;letter-spacing:-.035em;font-weight:600;margin:18px 0;white-space:nowrap;}
.rental-home .price-card .button {grid-column:auto;width:100%;justify-content:center;margin-top:auto;}
.rental-home .price-card>p:last-of-type {margin-bottom:22px;}
.rate-variation {border-top:1px solid var(--line);margin:0 0 24px;padding-top:16px;}
.rate-variation a {display:inline-block;font-size:16px;font-weight:500;color:var(--accent);text-decoration:underline;text-underline-offset:4px;}
.rental-home .rate-variation p {font-size:15px;margin-top:8px;}
.more-options {display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:8px;}
.more-options>a {display:flex;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);}
.more-options h3 {font-size:19px;margin:0;}
.more-options p {font-size:15px;}
.more-options strong {margin-left:auto;font-size:20px;font-weight:600;white-space:nowrap;}
.more-options>a>span {font-size:22px;margin-left:auto;}
.rental-home .price-footnote {display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:18px;font-size:15px;}

/* Photos and specifications stay together, with all equipment open. */
.rental-home .experience-section {border-top:1px solid var(--line);}
.rental-home .journey-toggle {display:flex;gap:0;padding:0;background:none;border:1px solid #b6c7ce;border-radius:4px;overflow:hidden;}
.rental-home .journey-toggle button {flex:none;min-height:44px;padding:10px 18px;border-radius:0;font-size:16px;white-space:nowrap;}
.rental-home .journey-toggle button[aria-pressed=true] {background:var(--accent);color:#fff;}
.photo-carousel {margin-top:24px;min-width:0;}
.carousel-frame {position:relative;aspect-ratio:2/1;min-height:340px;max-height:520px;border-radius:5px;overflow:hidden;background:var(--soft);touch-action:pan-y pinch-zoom;}
#gallery-slide,#gallery-slide>img {position:absolute;inset:0;width:100%;height:100%;}
#gallery-slide>img {object-fit:cover;object-position:center 65%;user-select:none;}
.carousel-arrow {position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid #dce3e6;border-radius:50%;background:#fff;color:var(--ink);font-size:24px;line-height:1;}
.carousel-arrow.previous {left:16px;}.carousel-arrow.next {right:16px;}
.carousel-arrow:hover {background:#edf3f6;}
.carousel-arrow:focus-visible {outline:3px solid var(--accent);outline-offset:3px;}
.carousel-counter {position:absolute;right:16px;bottom:16px;min-width:56px;padding:6px 10px;border-radius:4px;background:#fff;color:var(--ink);font-size:14px;text-align:center;font-variant-numeric:tabular-nums;}
.carousel-caption {padding:18px 0 0;}
.carousel-caption>div+div {margin-top:14px;}
.carousel-caption h3 {font-size:19px;margin-bottom:5px;}
.carousel-caption p {font-size:16px;line-height:1.55;}
.carousel-caption h3,.carousel-caption p {overflow-wrap:anywhere;}
.boat-info {margin-top:32px;}
.boat-info-heading {font-size:24px!important;margin:0 0 24px!important;}
.boat-info-grid {display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;}
.boat-info-grid h3 {font-size:18px;margin-bottom:14px;}
.boat-facts {margin:0;font-size:16px;line-height:1.55;display:grid;gap:9px;}
.boat-facts>div {display:grid;grid-template-columns:75px minmax(0,1fr);gap:16px;}
.boat-facts dt {color:var(--muted);}
.boat-facts dd {margin:0;}
.boat-info ul {font-size:16px;line-height:1.55;margin:0;padding-left:20px;display:grid;gap:7px;}
.boat-info-note {font-size:15px;margin-top:12px;}
.boat-fishing-info {grid-column:1/-1;}
.boat-fishing-info ul {grid-template-columns:1fr 1fr;gap:7px 48px;}
.boat-specs {display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;border-top:1px solid var(--line);margin:28px 0 0;padding-top:24px;}
.boat-specs dt {font-size:15px;color:var(--muted);margin-bottom:5px;}
.boat-specs dd {font-size:16px;margin:0;}
.rental-home .boat-location-link {margin-top:18px;}
.rental-home .reviews-section {border-top:1px solid var(--line);}
.rental-home .reviews-section h2 {margin-bottom:24px;}
.rental-home .reviews-grid article {border:0;border-left:2px solid var(--line);border-radius:0;padding:0 20px;}
.rental-home .faq-section {background:#fff;}
.rental-home .faq-layout {display:block;max-width:840px;border-top:1px solid var(--line);padding-top:40px;}
.rental-home .faq-layout>div:first-child {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;}
.rental-home .faq-layout .text-link {margin:0;font-size:15px;white-space:nowrap;}
.rental-home .faq-list summary {font-size:17px;line-height:1.5;padding:18px 0;gap:24px;}
.rental-home .faq-list details p {font-size:16px;line-height:1.65;}
.rental-home .useful-links {display:flex;flex-wrap:wrap;gap:4px 24px;padding-bottom:16px;}
.rental-home .useful-links a {font-size:16px;text-decoration:underline;text-underline-offset:4px;padding:8px 0;}
.rental-home footer {width:100%;background:var(--soft);padding:32px max(32px,calc((100% - 1120px)/2));color:var(--ink);}
.rental-home .footer-main .brand {font-size:19px;}
.rental-home .footer-bottom {font-size:14px;gap:24px;color:var(--muted);margin-top:24px;padding-top:20px;}
.rental-home .footer-bottom>div {flex-wrap:wrap;gap:12px 24px;}
.rental-home .footer-main>a:last-child {font-size:16px;}

/* A separate booking page: one task, a clear calendar and plain controls. */
.rental-calendar main {min-height:65vh;}
.rental-home .booking-section {display:block;width:min(1000px,calc(100% - 64px));padding:36px 0 64px;}
.booking-intro {padding:0;margin-bottom:24px;}
.booking-intro h1 {font-size:34px;letter-spacing:-.03em;}
.booking-intro p {font-size:16px;margin-top:10px;}
.rental-home .test-banner {font-size:14px;padding:9px 14px;margin-bottom:16px;border:1px solid var(--line);border-radius:3px;background:var(--soft);}
.rental-home .booking-card {padding:0;box-shadow:none;border-radius:4px;overflow:hidden;}
.rental-home .booking-card-top {padding:18px 28px;background:#fff;border-bottom:1px solid var(--line);}
.booking-progress {list-style:none;display:flex;justify-content:space-between;gap:20px;max-width:500px;padding:0;margin:0;font-size:15px;color:var(--muted);}
.booking-progress li {display:flex;align-items:center;gap:8px;}
.booking-card[data-stage=termin] .progress-termin,.booking-card[data-stage=angaben] .progress-angaben {color:var(--accent);font-weight:700;}
.visually-hidden {position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.booking-preferences {border-bottom:1px solid var(--line);}
.booking-preferences>summary {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;cursor:pointer;list-style:none;font-size:16px;font-weight:600;}
.booking-preferences>summary::-webkit-details-marker {display:none;}
.booking-preferences summary small {display:block;font-size:15px;font-weight:400;color:var(--muted);margin-top:2px;}
.preferences-action {color:var(--accent);font-size:15px;font-weight:500;white-space:nowrap;}
.preferences-action>span {display:inline-block;margin-left:6px;}
.booking-preferences[open] .preferences-action>span {transform:rotate(180deg);}
.booking-preferences[open] {padding-bottom:24px;}
.booking-kind {display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 28px;}
.booking-kind label {margin-bottom:0;}
.rental-home #subscription-fields {padding:20px 28px 0;}
.rental-home #subscription-purchase-note {padding:12px 28px 0;}
.picker-columns {display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:24px 28px;}
.picker-calendar {padding-right:28px;border-right:1px solid var(--line);min-width:0;}
.rental-home .calendar-nav {margin:0 0 18px;}
.rental-home .calendar-nav h3 {font-size:23px;}
.rental-home .day {height:48px;}
.rental-home .day:not(:disabled) {background:#e2f0ed;border-color:#a3c7bc;color:#204f44;}
.rental-home .day:disabled {background:#f4e7eb;border-color:#dfbcc6;color:#7a4c5c;opacity:1;}
.rental-home .day.selected {background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:inset 0 0 0 2px #fff;}
.rental-home .day:not(:disabled):hover {background:#c9e4dc;}
.rental-home .day.selected:hover {background:var(--accent-hover);}
.rental-home .calendar-legend {font-size:13px;gap:12px 18px;}
.rental-home .calendar-legend i {width:11px;height:11px;background:#8fbbac;border:1px solid #467b69;}
.rental-home .calendar-legend i.unavailable {background:#dfb5c3;border-color:#95586f;}
.selected-date {font-size:16px;font-weight:600;margin-top:12px;}
#booking-date-label:empty,#booking-selection-summary:empty {display:none;}
.rental-home .duration-field {margin:0 0 18px;}
.rental-home .duration-option>span {padding:14px 10px 14px 36px;border-radius:3px;font-size:16px;}
.rental-home .duration-option input {left:11px;top:20px;}
.rental-home .duration-option:has(input:checked)>span {border-color:var(--accent);background:#eff6f8;}
.rental-home .rental-tariff-note {font-size:15px;line-height:1.55;color:var(--muted);margin:0 0 20px;}
.rental-home label {font-size:16px;}
.rental-home input,.rental-home select,.rental-home textarea {font-size:16px;border-radius:3px;min-width:0;}
.rental-home .cleaning-option {font-size:16px;margin:4px 0 0;padding:18px 0 0;border-top:1px solid var(--line);align-items:flex-start;}
.cleaning-option>span {display:flex;justify-content:space-between;gap:16px;flex:1;min-width:0;}
.cleaning-option>span>span {flex:1;}
.cleaning-option strong {white-space:nowrap;font-size:16px;font-weight:600;}
.cleaning-option small {display:block;font-size:14px;color:var(--muted);line-height:1.5;margin-top:4px;}
.booking-next {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 28px;border-top:1px solid var(--line);}
.booking-next>p {font-size:15px;}
.booking-next>.button {min-width:240px;margin-left:auto;}
.rental-home #booking-form {max-width:720px;margin:auto;padding:0 28px 28px;}
.rental-home #booking-form .checkbox {font-size:15px;}
.rental-home #booking-form .quote-breakdown {margin-bottom:20px;}
.rental-home #booking-success {padding:28px;}
.rental-home .booking-codes {font-size:16px;padding:14px 0;}
.rental-home .booking-codes summary {min-height:30px;}

@media(max-width:1000px){
  .rental-home .site-header {gap:20px;}
  .rental-home .site-header nav {gap:16px;font-size:15px;}
  .rental-home .hero {gap:32px;}
  .hero-media {height:350px;}
  .picker-columns {gap:20px;}
  .picker-calendar {padding-right:20px;}
}
@media(max-width:850px){
  html {scroll-padding-top:88px;}
  .rental-home .site-header {position:sticky;top:0;z-index:10;width:100%;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:76px;gap:0 16px;background:#fff;border-bottom:1px solid var(--line);}
  .rental-home .site-header .brand {min-height:76px;}
  .rental-home .site-header .header-booking {display:none;}
  .rental-home .menu-toggle {display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0 8px 12px;background:none;color:var(--ink);border:0;font-size:15px;}
  .menu-toggle svg {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;}
  .rental-home .site-header nav {display:grid;grid-column:1/-1;width:100%;margin:0;padding:8px 0 16px;gap:0;border-top:1px solid var(--line);font-size:17px;}
  .rental-home .site-header.navigation-ready:not(.menu-open) nav {display:none;}
  .rental-home .site-header nav a {min-height:48px;}
  .rental-home .site-header .mobile-nav-booking {display:flex;color:var(--accent);font-weight:600;}
  .rental-home .hero h1 {font-size:40px;}
  .hero-media {height:320px;}
  .rental-home .booking-section {width:calc(100% - 48px);}
  .picker-columns {grid-template-columns:1fr;gap:24px;}
  .picker-calendar {border-right:0;border-bottom:1px solid var(--line);padding:0 0 24px;}
}
@media(max-width:700px){
  .rental-home {font-size:17px;}
  .rental-home .section {width:calc(100% - 40px);padding:36px 0;}
  .rental-home h2 {font-size:28px;}
  .rental-home .site-header {padding:0 20px;min-height:72px;}
  .rental-home .site-header .brand {min-height:72px;gap:8px;}
  .rental-home .site-header .brand svg {width:28px;}
  .rental-home .site-header .brand>.brand-mark {width:36px;height:36px;}
  .rental-home .site-header .site-name {font-size:18px;}
  .rental-home .site-header .brand small {font-size:11px;}
  .rental-home .hero {width:calc(100% - 40px);grid-template-columns:1fr;gap:24px;margin-top:28px;}
  .rental-home .hero-content {padding:0;}
  .rental-home .hero h1 {font-size:38px;max-width:410px;margin-bottom:16px;}
  .rental-home .hero p {font-size:17px;line-height:1.6;}
  .rental-home .hero .hero-price {margin:14px 0 20px;}
  .rental-home .hero .button {justify-content:center;gap:28px;}
  .hero-media {height:220px;}
  .rental-home .section-heading {display:block;}
  .rental-home .section-heading>p {margin-top:8px;font-size:15px;}
  .rental-home .pricing-section .section {padding:32px 0;}
  .rental-home .price-grid {grid-template-columns:1fr;gap:16px;margin-top:20px;}
  .rental-home .price-card {padding:22px;}
  .rental-home .price-card h3 {font-size:22px;}
  .rental-home .price-card p {font-size:16px;}
  .rental-home .price {font-size:36px;margin:14px 0;}
  .rental-home .price-card .button {min-height:48px;font-size:16px;}
  .rental-home .rate-variation p {font-size:15px;}
  .more-options {grid-template-columns:1fr;gap:0;margin:0;}
  .more-options>a {padding:18px 0;}
  .rental-home .price-footnote {gap:8px 20px;font-size:14px;}
  .rental-home .journey-toggle {margin-top:18px;width:fit-content;}
  .rental-home .journey-toggle button {font-size:15px;padding:10px 14px;}
  .photo-carousel {margin-top:20px;}
  .carousel-frame {aspect-ratio:4/3;min-height:0;max-height:380px;}
  .carousel-arrow {width:44px;height:44px;font-size:22px;}
  .carousel-arrow.previous {left:10px;}.carousel-arrow.next {right:10px;}
  .carousel-counter {right:10px;bottom:10px;font-size:13px;}
  .carousel-caption {padding-top:14px;}
  .carousel-caption h3 {font-size:18px;}
  .boat-info {margin-top:28px;}
  .boat-info-heading {font-size:23px!important;margin-bottom:20px!important;}
  .boat-info-grid {grid-template-columns:1fr;gap:24px;}
  .boat-facts>div {gap:12px;}
  .boat-fishing-info {grid-column:auto;}
  .boat-fishing-info ul {grid-template-columns:1fr;}
  .boat-specs {grid-template-columns:1fr;gap:18px;padding-top:20px;margin-top:24px;}
  .rental-home .faq-layout {padding-top:32px;}
  .rental-home .faq-layout>div:first-child {display:block;margin-bottom:12px;}
  .rental-home .faq-layout .text-link {margin-top:8px;}
  .rental-home .faq-list summary {font-size:16px;padding:18px 0;}
  .rental-home .faq-list details p {font-size:16px;}
  .rental-home footer {padding:28px 20px;}
  .rental-home .footer-main {display:block;}
  .rental-home .footer-main>a:last-child {display:inline-flex;align-items:center;min-height:44px;margin-top:12px;}
  .rental-home .footer-bottom {display:block;font-size:14px;margin-top:16px;}
  .rental-home .footer-bottom>div {display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:12px;}
  .rental-home .footer-bottom a {display:flex;align-items:center;min-height:44px;}
  .rental-home .booking-section {width:calc(100% - 32px);padding:28px 0 40px;}
  .booking-intro h1 {font-size:30px;}
  .booking-intro {margin-bottom:20px;}
  .rental-home .booking-card-top {padding:16px;}
  .booking-progress {font-size:14px;gap:12px;}
  .booking-preferences>summary {padding:14px 16px;}
  .booking-preferences summary small {font-size:14px;}
  .preferences-action {font-size:14px;}
  .booking-kind {grid-template-columns:1fr;gap:16px;padding:0 16px;}
  .rental-home #subscription-fields {padding:20px 16px 0;}
  .rental-home #subscription-purchase-note {padding:12px 16px 0;}
  .picker-columns {padding:20px 14px;}
  .rental-home .calendar-nav h3 {font-size:22px;}
  .rental-home .calendar-days,.rental-home .calendar-weekdays {gap:4px;}
  .rental-home .day {height:44px;font-size:16px;}
  .rental-home .calendar-legend {font-size:12px;gap:12px;padding-bottom:8px;}
  .rental-home .duration-option>span {font-size:16px;padding:13px 7px 13px 30px;}
  .rental-home .duration-option input {left:9px;top:19px;width:15px;height:15px;}
  .rental-home .duration-option small {font-size:14px;}
  .rental-home .field-row {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .booking-next {display:block;padding:16px;}
  .booking-next>p:not(:empty) {margin-bottom:14px;}
  .booking-next>.button {width:100%;min-width:0;}
  .rental-home #booking-form {padding:0 16px 24px;}
  .rental-home .booking-codes .field-row {grid-template-columns:1fr;gap:0;}
  .rental-home .equipment-card {gap:12px;padding:10px;}
}
@media(max-width:360px){
  .rental-home .site-header {padding-inline:16px;}
  .rental-home .site-header .site-name {font-size:16px;}
  .rental-home .site-header .brand>.brand-mark {width:32px;height:32px;}
  .rental-home .site-header .brand small {font-size:10px;}
  .rental-home .hero h1 {font-size:34px;}
}
