/* Shared shopping, quote and service-page components. */
[hidden]{display:none!important}
.rental-section{padding:56px 0;scroll-margin-top:150px}
.rental-section h2{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.2;margin-bottom:16px}
.rental-intro{max-width:760px;font-size:1rem;line-height:1.7;margin-bottom:24px;color:var(--ink-soft,#4a4a4a)}
.rental-filters{display:flex;flex-wrap:wrap;gap:16px;padding:20px;background:var(--ivory,#f5f1e8);border:1px solid var(--line,#ddd);margin:24px 0}
.rental-filters label{display:grid;gap:6px;flex:1 1 150px;font-size:.875rem}
.rental-filters select,.rental-filters input,.quote-panel input,.quote-panel select{font:inherit;background:#fff;color:#1a1a1a;border:1px solid #78836c;border-radius:4px;padding:10px;min-height:44px;max-width:100%}
.rental-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rental-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line,#ddd);border-radius:6px;overflow:hidden}
.rental-card img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--ivory,#f5f1e8);display:block}
.rental-card-body{padding:20px;display:flex;flex-direction:column;flex:1;gap:12px}
.rental-card h3{font-family:var(--serif,Georgia,serif);font-size:1.45rem;line-height:1.2;margin:0}
.rental-card p{font-size:1rem;line-height:1.5;margin:0}
.rental-card .rental-price{font-weight:600;color:var(--sage-dark,#4a5437)}
.rental-card-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:auto;padding-top:8px}
.rental-button{font:inherit;font-size:.9375rem;line-height:1.4;display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:11px 18px;border:1px solid var(--sage-dark,#4a5437);border-radius:5px;background:var(--sage-dark,#4a5437);color:#fff;text-decoration:none;cursor:pointer;letter-spacing:0;text-transform:none}
.rental-button.secondary{color:var(--sage-dark,#4a5437);background:#fff}
.rental-button:focus-visible,.rental-filters :focus-visible,.quote-panel :focus-visible{outline:3px solid #996b28;outline-offset:3px}
.rental-button:disabled{opacity:.55;cursor:not-allowed}
.rental-card a:not(.rental-button),.rental-section p a,.quote-panel a:not(.rental-button){text-decoration:underline;text-underline-offset:3px}
.rental-summary-bar{position:sticky;bottom:16px;margin:24px 0 0;background:var(--sage-dark,#4a5437);color:#fff;border-radius:6px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;z-index:20;box-shadow:0 8px 30px #0002}
.rental-summary-bar a{background:#fff;color:var(--sage-dark,#4a5437)}
.quote-panel{padding:24px;background:var(--ivory,#f5f1e8);border:1px solid var(--line,#ddd);border-radius:6px;margin:20px 0;font-size:1rem}
.quote-panel h3{font-family:var(--serif,Georgia,serif);font-size:1.5rem;margin:0 0 16px}
.quote-panel ul{list-style:none;padding:0;margin:0}
.quote-line{display:grid;grid-template-columns:1fr 84px auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #d0d4c8}
.quote-line label{font-size:.875rem;display:grid;gap:3px}
.quote-line input{width:80px}
.quote-line button{font:inherit;font-size:.875rem;background:none;border:0;text-decoration:underline;padding:12px;min-height:44px;cursor:pointer}
.quote-total{font-size:1.2rem;margin:20px 0 8px;font-weight:600}
.quote-note{font-size:.9375rem;line-height:1.6;margin:12px 0;color:#4a4a4a}
.quote-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.quote-copy{width:100%;min-height:130px;background:#fff;color:#1a1a1a;font:inherit;font-size:.9375rem;line-height:1.5;padding:12px;border:1px solid #78836c;border-radius:4px}
.quote-storage-note{font-size:.875rem;color:#5c431c;background:#fff8e8;padding:10px}
.event-links{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.event-links a{border:1px solid var(--line,#ddd);border-radius:100px;padding:12px 18px;min-height:44px;text-decoration:none;background:#fff;font-size:.9375rem}
.service-hero{padding:150px 0 48px;background:var(--ivory,#f5f1e8)}
.service-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.service-hero h1{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.08;margin:12px 0 24px}
.service-hero p{font-size:1.0625rem;line-height:1.7}
.service-hero img{width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:6px;background:var(--cream,#faf8f2)}
.service-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service-columns article{border-top:2px solid var(--sage,#6b7750);padding-top:20px}
.service-columns h3{font-family:var(--serif,Georgia,serif);font-size:1.4rem;margin-bottom:12px}
.service-columns p,.service-columns li{font-size:1rem;line-height:1.7}
.rental-faq details{padding:20px 0;border-bottom:1px solid var(--line,#ddd)}
.rental-faq summary{font-size:1.0625rem;font-weight:600;cursor:pointer;min-height:44px}
.rental-faq p{font-size:1rem;line-height:1.7;max-width:850px}
.language-link{font-size:.875rem;text-decoration:underline;text-underline-offset:3px}
.planner-photo{max-width:100%;max-height:500px;object-fit:contain;display:block;margin:20px auto}
.planner-upload{display:grid;gap:12px;padding:24px;border:1px solid var(--line,#ddd)}
@media(max-width:900px){.rental-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-hero-grid{gap:24px}.service-columns{grid-template-columns:1fr}.service-hero{padding-top:140px}}
@media(max-width:600px){.rental-grid,.service-hero-grid{grid-template-columns:1fr}.rental-filters{padding:16px}.rental-filters label{flex-basis:100%}.quote-panel{padding:16px}.quote-line{grid-template-columns:1fr 80px}.quote-line button{grid-column:1/-1;justify-self:start;padding-left:0}.rental-summary-bar{position:static}.service-hero{padding-top:130px}.rental-card-body{padding:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.observe,.reveal{opacity:1!important;transform:none!important}}
