@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Inter:wght@400;500;600;700&display=swap";:root{--brand-color-canvas:#f8f5ee;--brand-color-surface:#fffdf8;--brand-color-ink:#2a2620;--brand-color-ink-soft:#4a4438;--brand-color-text-muted:#77705f;--brand-color-border:#e6dfd0;--brand-color-border-strong:#d3c9b4;--brand-color-primary:#a83f2e;--brand-color-primary-dark:#7c2a1c;--brand-color-primary-soft:#f3e2dd;--brand-color-green:#4c6b3c;--brand-color-green-dark:#35502a;--brand-color-green-soft:#e7eede;--brand-color-accent:#c2902f;--brand-color-accent-soft:#f5ead2;--brand-color-dark-surface:#232920;--brand-color-on-dark-text:#d9d6cb;--brand-color-on-dark-muted:#a09b8c;--brand-color-on-dark-border:#ffffff29;--brand-color-danger:#a83f2e;--brand-color-danger-soft:#f3e2dd;--brand-color-success:#4c6b3c;--brand-color-success-soft:#e7eede;--brand-color-cal-stugan:#d9a72e;--brand-color-cal-stugan-soft:#f7ecd0;--brand-color-cal-gardsevent:#4c6b3c;--brand-color-cal-gardsevent-soft:#e7eede;--brand-color-cal-grusgropen:#8a6f55;--brand-color-cal-grusgropen-soft:#efe8de;--brand-font-display:"Cormorant Garamond", "Georgia", serif;--brand-font-body:"Inter", sans-serif;--brand-radius-sm:5px;--brand-radius-md:8px;--brand-radius-lg:12px;--brand-radius-pill:999px;--brand-space-1:.25rem;--brand-space-2:.5rem;--brand-space-3:.75rem;--brand-space-4:1rem;--brand-space-5:1.5rem;--brand-space-6:2rem;--brand-space-7:2.5rem;--brand-space-8:3rem;--brand-space-9:4rem;--brand-content-max:1120px;--brand-portal-content-max:1240px;--brand-prose-max:42rem;--brand-shadow-raised:0 10px 26px #2a262017;--brand-shadow-overlay:0 18px 52px #00000038;--brand-scrim:#2329208c;--brand-transition-fast:.15s;--color-page:var(--brand-color-canvas);--color-surface:var(--brand-color-surface);--color-text:var(--brand-color-ink);--color-text-soft:var(--brand-color-ink-soft);--color-text-muted:var(--brand-color-text-muted);--color-border:var(--brand-color-border);--color-border-strong:var(--brand-color-border-strong);--color-primary:var(--brand-color-primary);--color-primary-hover:var(--brand-color-primary-dark);--color-primary-soft:var(--brand-color-primary-soft);--color-green:var(--brand-color-green);--color-green-dark:var(--brand-color-green-dark);--color-green-soft:var(--brand-color-green-soft);--color-accent:var(--brand-color-accent);--color-accent-soft:var(--brand-color-accent-soft);--color-dark-surface:var(--brand-color-dark-surface);--color-on-dark-text:var(--brand-color-on-dark-text);--color-on-dark-muted:var(--brand-color-on-dark-muted);--color-on-dark-border:var(--brand-color-on-dark-border);--color-danger:var(--brand-color-danger);--color-danger-soft:var(--brand-color-danger-soft);--color-success:var(--brand-color-success);--color-success-soft:var(--brand-color-success-soft);--color-cal-stugan:var(--brand-color-cal-stugan);--color-cal-stugan-soft:var(--brand-color-cal-stugan-soft);--color-cal-gardsevent:var(--brand-color-cal-gardsevent);--color-cal-gardsevent-soft:var(--brand-color-cal-gardsevent-soft);--color-cal-grusgropen:var(--brand-color-cal-grusgropen);--color-cal-grusgropen-soft:var(--brand-color-cal-grusgropen-soft);--font-display:var(--brand-font-display);--font-body:var(--brand-font-body);--radius-sm:var(--brand-radius-sm);--radius-md:var(--brand-radius-md);--radius-lg:var(--brand-radius-lg);--radius-pill:var(--brand-radius-pill);--space-1:var(--brand-space-1);--space-2:var(--brand-space-2);--space-3:var(--brand-space-3);--space-4:var(--brand-space-4);--space-5:var(--brand-space-5);--space-6:var(--brand-space-6);--space-7:var(--brand-space-7);--space-8:var(--brand-space-8);--space-9:var(--brand-space-9);--content-max:var(--brand-content-max);--portal-content-max:var(--brand-portal-content-max);--prose-max:var(--brand-prose-max);--shadow-raised:var(--brand-shadow-raised);--shadow-overlay:var(--brand-shadow-overlay);--scrim:var(--brand-scrim);--motion-fast:var(--brand-transition-fast)}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-page);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 var(--space-3);color:var(--color-text);font-weight:600;line-height:1.15}h1{font-size:clamp(2.5rem,6vw,4rem)}h2{font-size:clamp(1.8rem,4vw,2.6rem)}h3{font-size:1.45rem}.eyebrow{font-family:var(--font-display);color:var(--color-accent);letter-spacing:.04em;margin-bottom:var(--space-2);font-size:1.15rem;font-style:italic;display:block}.hero .eyebrow{color:var(--color-accent-soft)}p{margin:0 0 var(--space-4)}a{color:var(--color-primary)}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;transition:background var(--motion-fast), color var(--motion-fast), border-color var(--motion-fast);border:1px solid #0000;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-green{background:var(--color-green);color:#fff}.btn-green:hover{background:var(--color-green-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover{border-color:var(--color-text-muted)}.btn-ghost{color:var(--color-text-soft);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-green-soft)}.btn-danger{color:var(--color-danger);border-color:var(--color-danger);background:0 0}.btn-danger:hover{background:var(--color-danger-soft)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:.3rem .7rem;font-size:.85rem}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field label{color:var(--color-text-soft);font-size:.9rem;font-weight:600}.field input,.field textarea,.field select{font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:1rem}.field textarea{resize:vertical;min-height:6rem}.field-hint{color:var(--color-text-muted);font-size:.8rem}.field-check{align-items:center;gap:var(--space-2);flex-direction:row}.field-check input{width:1.1rem;height:1.1rem;accent-color:var(--color-green)}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=560px){.form-row{grid-template-columns:1fr}}.form-message{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:.95rem}.form-message.success{background:var(--color-success-soft);color:var(--color-green-dark)}.form-message.error{background:var(--color-danger-soft);color:var(--color-primary-hover)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.badge{border-radius:var(--radius-pill);background:var(--color-green-soft);color:var(--color-green-dark);padding:.1rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.accent{background:var(--color-accent-soft);color:#7c5a14}.badge.muted{background:var(--color-page);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge.danger{background:var(--color-danger-soft);color:var(--color-primary-hover)}.empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.loading-state{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.top-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:30;position:sticky;top:0}.top-nav-inner{max-width:var(--content-max);padding:0 var(--space-4);align-items:center;gap:var(--space-4);min-height:64px;margin:0 auto;display:flex}.brand{font-family:var(--font-display);color:var(--color-green-dark);cursor:pointer;background:0 0;border:none;margin-right:auto;padding:0;font-size:1.25rem;font-weight:700;text-decoration:none}.nav-links{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.nav-link{font-family:var(--font-body);color:var(--color-text-soft);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.4rem .7rem;font-size:.95rem;font-weight:500}.nav-link:hover{background:var(--color-green-soft)}.nav-link.active{color:var(--color-green-dark);background:var(--color-green-soft);font-weight:600}.nav-toggle{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text);background:0 0;padding:.35rem .6rem;display:none}@media (width<=820px){.nav-toggle{display:inline-flex}.nav-links{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4) var(--space-4);flex-direction:column;align-items:stretch;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.open{display:flex}.nav-link{text-align:left;padding:.6rem .7rem}}.site-footer{background:var(--color-dark-surface);color:var(--color-on-dark-text);margin-top:var(--space-9)}.site-footer-inner{max-width:var(--content-max);padding:var(--space-7) var(--space-4);gap:var(--space-6);grid-template-columns:2fr 1fr 1fr;margin:0 auto;display:grid}.site-footer h3{color:#fff;font-size:1.05rem}.site-footer button.footer-link,.site-footer .footer-link{color:var(--color-on-dark-muted);font-family:var(--font-body);cursor:pointer;text-align:left;background:0 0;border:none;padding:.15rem 0;font-size:.92rem;text-decoration:none;display:block}.site-footer .footer-link:hover{color:#fff}.site-footer-meta{border-top:1px solid var(--color-on-dark-border);padding:var(--space-4);text-align:center;color:var(--color-on-dark-muted);font-size:.85rem}@media (width<=720px){.site-footer-inner{grid-template-columns:1fr}}.page-section{max-width:var(--content-max);padding:var(--space-8) var(--space-4) 0;margin:0 auto}.page-section.narrow{max-width:var(--prose-max)}.section-lead{color:var(--color-text-soft);max-width:46rem;font-size:1.1rem}.hero{background:linear-gradient(#2329208c, #232920a6), var(--color-green-dark);color:#fff;text-align:center;padding:clamp(4rem, 12vw, 8rem) var(--space-4);background-position:50%;background-size:cover}.hero h1{color:#fff;max-width:46rem;margin:0 auto var(--space-4)}.hero p{max-width:38rem;margin:0 auto var(--space-6);font-family:var(--font-display);color:#fffffff0;font-size:1.4rem;line-height:1.45}.hero-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.card-grid{gap:var(--space-5);margin-top:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.info-band{background:var(--color-green-soft);border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-7)}.page-photo{border-radius:var(--radius-lg);width:100%;margin-top:var(--space-6);aspect-ratio:21/9;object-fit:cover}.image-gallery{gap:var(--space-5);margin-top:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.gallery-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3) var(--space-4);box-shadow:var(--shadow-raised);transition:transform var(--motion-fast);margin:0}.gallery-item:nth-child(odd){transform:rotate(-1deg)}.gallery-item:nth-child(2n){transform:rotate(1deg)}.gallery-item:hover{transform:rotate(0)scale(1.02)}.gallery-item img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);width:100%}.gallery-item figcaption{font-family:var(--font-display);color:var(--color-text-soft);text-align:center;padding-top:var(--space-2);font-size:1.05rem;font-style:italic}.news-list{gap:var(--space-5);margin-top:var(--space-5);display:grid}.news-card{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;font-family:var(--font-body);color:var(--color-text);width:100%;display:block}.news-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-raised)}.news-card time,.article-meta{color:var(--color-text-muted);font-size:.85rem}.news-image{border-radius:var(--radius-md);width:100%;margin-bottom:var(--space-4);aspect-ratio:16/7;object-fit:cover}.article-body p{max-width:var(--prose-max)}.product-card{gap:var(--space-2);flex-direction:column;display:flex}.product-price{color:var(--color-green-dark);font-weight:700}.portal-shell{background:var(--color-page);flex-direction:column;min-height:100vh;display:flex}.portal-topbar{background:var(--color-dark-surface);color:var(--color-on-dark-text);padding:0 var(--space-4)}.portal-topbar-inner{max-width:var(--portal-content-max);align-items:center;gap:var(--space-3);flex-wrap:wrap;min-height:56px;margin:0 auto;display:flex}.portal-title{font-family:var(--font-display);color:#fff;margin-right:var(--space-4);font-weight:700}.portal-nav{gap:var(--space-1);flex-wrap:wrap;margin-right:auto;display:flex}.portal-nav button{color:var(--color-on-dark-muted);font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.45rem .75rem;font-size:.92rem;font-weight:500}.portal-nav button:hover{color:#fff}.portal-nav button.active{color:#fff;background:#ffffff1f}.portal-user{color:var(--color-on-dark-muted);gap:var(--space-3);align-items:center;font-size:.85rem;display:inline-flex}.portal-user .btn-ghost{color:var(--color-on-dark-text)}.portal-user .btn-ghost:hover{background:#ffffff1f}.portal-main{width:100%;max-width:var(--portal-content-max);padding:var(--space-6) var(--space-4) var(--space-8);flex:1;margin:0 auto}.portal-section-head{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.portal-section-head h2{margin:0}.login-wrap{min-height:100vh;padding:var(--space-4);place-items:center;display:grid}.login-card{width:100%;max-width:380px}.calendar-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.calendar-toolbar h3{text-transform:capitalize;min-width:12rem;margin:0}.calendar-legend{gap:var(--space-4);color:var(--color-text-soft);flex-wrap:wrap;margin-left:auto;font-size:.85rem;display:flex}.legend-dot{vertical-align:baseline;border-radius:50%;width:.75rem;height:.75rem;margin-right:.35rem;display:inline-block}.calendar-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-border);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-weekday{background:var(--color-green-soft);color:var(--color-green-dark);text-align:center;padding:var(--space-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.calendar-day{background:var(--color-surface);min-height:108px;padding:var(--space-1);font-family:var(--font-body);text-align:left;cursor:pointer;border:none;flex-direction:column;gap:2px;display:flex}.calendar-day:hover{background:var(--color-page)}.calendar-day .day-number{color:var(--color-text-soft);padding:2px 4px;font-size:.8rem;font-weight:600}.calendar-day.outside .day-number{color:var(--color-border-strong)}.calendar-day.today .day-number{background:var(--color-green);color:#fff;border-radius:var(--radius-pill);align-self:flex-start;padding:2px 8px}.cal-chip{white-space:nowrap;text-overflow:ellipsis;text-align:left;cursor:pointer;width:100%;font-size:.72rem;font-weight:600;line-height:1.3;font-family:var(--font-body);border-left:3px solid;border-radius:3px;padding:2px 6px;overflow:hidden}.cal-chip.stugan{background:var(--color-cal-stugan-soft);border-color:var(--color-cal-stugan);color:#6e520d}.cal-chip.gardsevent{background:var(--color-cal-gardsevent-soft);border-color:var(--color-cal-gardsevent);color:var(--color-green-dark)}.cal-chip.grusgropen{background:var(--color-cal-grusgropen-soft);border-color:var(--color-cal-grusgropen);color:#5c4936}@media (width<=720px){.calendar-day{min-height:72px}.cal-chip{font-size:.62rem}}.modal-overlay{background:var(--scrim);padding:var(--space-4);z-index:50;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);width:100%;max-width:540px;max-height:90vh;padding:var(--space-6);overflow-y:auto}.modal-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.modal-head h3{margin:0}.modal-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;justify-content:flex-end;display:flex}.modal-actions .btn-danger{margin-right:auto}.row-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.row-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.row-item .row-main{flex:1;min-width:200px}.row-item .row-title{font-weight:600}.row-item .row-sub{color:var(--color-text-muted);font-size:.85rem}.row-item.done .row-title{color:var(--color-text-muted);text-decoration:line-through}.inline-form{gap:var(--space-3);flex-wrap:wrap;display:flex}.inline-form input{min-width:200px;font-family:var(--font-body);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);flex:1;padding:.55rem .7rem;font-size:1rem}
