:root{
    --max-width:1040px;
    --accent:#8b4d57;
    --accent-dark:#5f3038;
    --sage:#6f8268;
    --gold:#b58b48;
    --paper:#fffdf8;
    --soft:#f5efe6;
    --ink:#211b18;
    --muted:#6f625d;
    --line:rgba(95,48,56,0.16);
    --shadow:0 18px 45px rgba(62,42,35,0.11);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
section[id]{scroll-margin-top:76px}
body{
    font-family:Georgia,"Times New Roman",serif;
    line-height:1.65;
    margin:0;
    color:var(--ink);
    background:
        linear-gradient(180deg,rgba(255,253,248,0.96),rgba(245,239,230,0.92)),
        radial-gradient(circle at 18% 10%,rgba(181,139,72,0.18),transparent 28%),
        radial-gradient(circle at 92% 34%,rgba(111,130,104,0.14),transparent 32%);
}
a{color:var(--accent-dark);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--gold)}

.site-header{background:linear-gradient(90deg,#fff,#f7f7ff);padding:24px;border-bottom:1px solid #e6e6f0}
.site-header h1{margin:0;font-size:1.2rem}
.site-header nav{margin-top:8px}
.site-header a{color:var(--accent);text-decoration:none}

.media-page{min-height:100vh;background:linear-gradient(180deg,#f8f2e9 0,#fffdf8 320px)}
.media-header{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px max(20px,calc((100vw - var(--max-width))/2));background:rgba(255,253,248,.96);border-bottom:1px solid var(--line);box-shadow:0 8px 24px rgba(62,42,35,.08);backdrop-filter:blur(10px)}
.media-brand{display:flex;flex-direction:column;color:var(--accent-dark);text-decoration:none;line-height:1.15}
.media-brand span{font-size:1.18rem;font-weight:700}
.media-brand small{margin-top:3px;color:var(--gold);font:700 .7rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;text-transform:uppercase;letter-spacing:.12em}
.media-menu-toggle{display:none}
.media-header nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.media-header nav a{padding:7px 11px;border-radius:999px;color:var(--accent-dark);font:700 .84rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;text-decoration:none}
.media-header nav a:hover{background:var(--soft)}
.media-container{margin-top:42px;min-height:60vh}
.media-page-title{text-align:center;max-width:720px;margin:0 auto 30px}
.media-page-title h1{margin:4px 0 10px;color:var(--accent-dark);font-size:clamp(2rem,4vw,3.25rem);line-height:1.1;font-weight:500}
.media-page-title p:last-child{margin:0;color:var(--muted);font-size:1.05rem}
.gallery-access-card{max-width:560px;margin:0 auto;padding:24px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 34px rgba(62,42,35,.09)}
.gallery-access-card h2{margin:0 0 8px;color:var(--accent-dark);font-weight:500}
.gallery-access-card > p{color:var(--muted)}
.gallery-access-form{max-width:430px;margin-top:18px}
.gallery-access-form button{margin-top:8px}
.media-empty-state{text-align:center;padding:44px 20px;background:#fff;border:1px dashed rgba(95,48,56,.28);border-radius:8px}
.media-empty-state h2{margin:0;color:var(--accent-dark)}
.upload-container{max-width:820px}
.upload-notice{margin:0 auto 18px;padding:13px 16px;text-align:center;color:var(--accent-dark);background:rgba(181,139,72,.1);border:1px solid var(--line);border-radius:8px}
.upload-form{padding:24px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 34px rgba(62,42,35,.08)}
.upload-form label{color:var(--accent-dark);font-weight:700}
.upload-file-field{margin-top:20px;padding:18px;border:2px dashed rgba(111,130,104,.42);border-radius:8px;background:rgba(111,130,104,.06)}
.upload-file-field span,.upload-file-field small{display:block}
.upload-file-field small{margin:2px 0 8px;color:var(--muted);font:400 .85rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.upload-submit{text-align:center;margin-top:18px}
.upload-submit button{min-width:180px}
.upload-cta{text-align:center}
.upload-cta .button-link{margin-top:6px}
.media-footer{padding:24px;text-align:center;color:var(--muted)}
.media-footer a{color:var(--accent-dark)}

.container,
.content-card{
    max-width:var(--max-width);
    margin:34px auto;
    padding:34px;
    background:rgba(255,253,248,0.86);
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:var(--shadow);
    backdrop-filter:blur(6px);
}
.content-card{margin:28px auto 40px;position:relative;z-index:2}
.container h3,
.content-card h2{
    margin:0 0 18px;
    color:var(--accent-dark);
    font-size:clamp(1.55rem,2.4vw,2.15rem);
    line-height:1.15;
    font-weight:500;
}
.container h3::after,
.content-card h2::after{
    content:"";
    display:block;
    width:72px;
    height:2px;
    margin-top:12px;
    background:linear-gradient(90deg,var(--gold),rgba(181,139,72,0));
}
.container p,
.content-card p{margin:0 0 16px}
.container ul{padding-left:22px;margin:8px 0 18px}
.container li{padding-left:4px}
.invitation-copy{
    max-width:760px;
    margin:0 auto;
    font-size:1.08rem;
}
.invitation-lead{
    text-align:center;
    color:var(--accent-dark);
    font-size:clamp(1.45rem,3vw,2.05rem);
    line-height:1.2;
    margin:8px 0 10px;
}
.invitation-rule{
    width:120px;
    height:2px;
    border:0;
    margin:18px auto 22px;
    background:linear-gradient(90deg,rgba(181,139,72,0),var(--gold),rgba(181,139,72,0));
}
.invitation-opener{
    text-align:center;
    color:var(--accent-dark);
    font-size:1.24rem;
}
.invitation-copy strong{
    color:var(--accent-dark);
    font-weight:700;
}
.invitation-note{
    margin:24px auto;
    padding:16px 18px;
    text-align:center;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    color:var(--accent-dark);
    background:rgba(181,139,72,0.07);
}
.invitation-signoff{
    margin-top:28px;
    text-align:center;
    color:var(--muted);
    font-style:italic;
}
.invitation-signoff strong{
    display:inline-block;
    margin-top:6px;
    font-style:normal;
    font-size:1.12rem;
}

.card{
    background:rgba(255,253,248,0.94);
    padding:30px;
    border-radius:8px;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    text-align:center;
}

form label{display:block;margin:12px 0}
input[type="password"],
input[type="file"],
input[type="text"],
input[type="email"],
select,
textarea{
    padding:12px 13px;
    margin-top:6px;
    width:100%;
    max-width:100%;
    border:1px solid rgba(95,48,56,0.22);
    border-radius:6px;
    background:#fff;
    color:var(--ink);
    font:inherit;
}
input:focus,
select:focus,
textarea:focus{
    outline:2px solid rgba(181,139,72,0.32);
    border-color:var(--gold);
}
textarea{min-height:112px;resize:vertical}
.guest-name-field{display:block}
button{
    background:var(--accent);
    color:#fff;
    border:0;
    padding:11px 18px;
    border-radius:999px;
    cursor:pointer;
    font:700 0.95rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
    letter-spacing:0;
    box-shadow:0 10px 24px rgba(139,77,87,0.22);
}
button:hover{background:var(--accent-dark)}
.messages{list-style:none;padding-left:0}
.upload-messages{display:grid;gap:10px;margin:20px 0}
.upload-messages li{padding:14px 16px;border-radius:8px;font:700 .95rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.upload-success{display:flex;align-items:center;gap:10px;color:#1f6330;background:#e6f7e9;border:2px solid #74bd82;box-shadow:0 8px 22px rgba(40,120,58,.14)}
.upload-error{color:#8f2434;background:#fff0f2;border:1px solid #f1c4cc}
.upload-status-icon{display:inline-grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;color:#fff;background:#319249;font-size:1rem;line-height:1}
.error{color:#b91c1c}
.container .rsvp-intro{
    max-width:820px;
    margin:0 auto 18px;
    padding:14px 18px;
    text-align:center;
    color:var(--accent-dark);
    background:rgba(181,139,72,0.08);
    border:1px solid var(--line);
    border-radius:8px;
}
.container .rsvp-intro strong{font-weight:700}
.rsvp-form{
    margin:24px auto 0;
    max-width:820px;
    padding:8px;
    background:rgba(255,255,255,0.55);
    border:1px solid var(--line);
    border-radius:8px;
}
.form-section{
    padding:22px;
    background:#fff;
    border:1px solid rgba(95,48,56,0.12);
    border-radius:8px;
    box-shadow:0 10px 24px rgba(62,42,35,0.06);
}
.form-section + .form-section{margin-top:12px}
.form-section-title{
    margin:0 0 14px;
    color:var(--accent-dark);
    font:700 0.88rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
    text-transform:uppercase;
    letter-spacing:0.08em;
}
.rsvp-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rsvp-form label{
    color:var(--accent-dark);
    font-weight:700;
}
.rsvp-form button{margin-top:8px}
.rsvp-form .form-actions{
    display:flex;
    gap:12px;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    margin-top:18px;
    padding:10px 0 4px;
}
.rsvp-form .load-button{background:#fff;color:var(--accent-dark);border:1px solid var(--line);box-shadow:none}
.rsvp-form .load-button:hover{background:var(--soft)}
.load-entry-help{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 0 20px;padding:16px 18px;background:rgba(111,130,104,.09);border:1px solid rgba(111,130,104,.28);border-left:4px solid var(--sage);border-radius:7px}
.load-entry-help strong{display:block;color:var(--accent-dark);margin-bottom:4px}
.rsvp-form .load-entry-help p{margin:0;color:var(--muted);font-size:.94rem;line-height:1.5}
.rsvp-form .load-entry-help .load-button{flex:0 0 auto;margin:0;white-space:nowrap}
.checkbox-label{display:flex;align-items:center;gap:10px;font-size:0.95rem;margin:16px 0}
.checkbox-label input{width:auto}
.checkbox-label a{color:var(--accent);text-decoration:underline}
.rsvp-privacy{
    justify-content:center;
    padding:16px 18px 4px;
    color:var(--muted);
    font-weight:600;
}
.message{padding:14px 16px;border-radius:8px;margin:16px 0}
.message.success{background:#edf8ee;color:#285f32;border:1px solid #cfe8d3}
.message.error{background:#fff0f2;color:#8f2434;border:1px solid #f1c4cc}
.field-error{
    display:block;
    margin-top:6px;
    color:#9a2839;
    font:700 .82rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
    line-height:1.35;
}
.privacy-error{text-align:center;margin:-8px 18px 8px}
.rsvp-form [aria-invalid="true"]{border-color:#b83c4d;background:#fff7f8;box-shadow:0 0 0 3px rgba(184,60,77,.1)}
.rsvp-form [aria-invalid="true"]:focus{outline:2px solid #b83c4d;outline-offset:2px}

.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:20px}
.admin-login-card{width:min(440px,100%)}
.admin-login-card h1{margin:2px 0 18px;color:var(--accent-dark)}
.admin-back{margin:20px 0 0;font-size:.92rem}
.eyebrow{margin:0;color:var(--gold);font:700 .78rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;text-transform:uppercase;letter-spacing:.12em}
.admin-header{display:flex;justify-content:space-between;align-items:center;gap:24px;background:rgba(255,253,248,.96);position:sticky;top:0;z-index:60}
.admin-header nav{display:flex;gap:18px;flex-wrap:wrap;margin:0}
.admin-main{max-width:1400px;margin:0 auto;padding:30px 24px 60px}
.admin-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:22px}
.admin-summary article{padding:22px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(62,42,35,.07)}
.admin-summary strong{display:block;color:var(--accent-dark);font-size:2rem;line-height:1.1}
.admin-summary span{color:var(--muted);font:600 .9rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.admin-panel{margin-top:22px;padding:26px;background:rgba(255,253,248,.94);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.admin-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}
.admin-panel h2{margin:2px 0 0;color:var(--accent-dark);font-size:1.65rem}
.button-link{display:inline-block;padding:10px 16px;border-radius:999px;background:var(--accent);color:#fff;text-decoration:none;font:700 .9rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;white-space:nowrap}
.button-link:hover{background:var(--accent-dark);color:#fff}
.button-link-secondary{background:var(--sage)}
.admin-note{padding:12px 14px;background:var(--soft);border-left:3px solid var(--gold);color:var(--muted);font-size:.92rem}
.admin-inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.admin-inline-form button,.admin-inline-form .button-link{width:auto;min-height:40px}
.admin-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:7px}
.admin-table{width:100%;border-collapse:collapse;background:#fff;font:400 .86rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;white-space:nowrap}
.admin-table th,.admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top}
.admin-table th{position:sticky;top:0;background:var(--accent-dark);color:#fff;font-weight:700}
.admin-table tr:last-child td{border-bottom:0}
.legacy-email{color:var(--muted);font-style:italic}
.admin-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.admin-gallery figure{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px}
.admin-gallery img,.admin-gallery video{display:block;width:100%;height:220px;object-fit:cover;border-radius:0}
.admin-gallery figcaption{display:grid;gap:6px;padding:9px 11px;color:var(--muted);font:400 .78rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;overflow:hidden;text-overflow:ellipsis}
.admin-bulk-form{margin:0 0 16px}
.admin-gallery-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;background:var(--soft);border:1px solid var(--line);border-radius:8px}
.admin-select-all,.admin-media-select{display:flex;align-items:center;gap:8px;color:var(--accent-dark);font:700 .82rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.admin-select-all{margin:0}
.admin-select-all input,.admin-media-select input{width:18px;height:18px;margin:0;accent-color:var(--sage)}
#admin-media-selection-count{color:var(--muted);font:600 .82rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.admin-bulk-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.admin-bulk-actions button{width:auto;min-height:38px}
.media-status{width:max-content;max-width:100%;padding:3px 8px;border-radius:999px;font:700 .72rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.media-status.is-published{color:#1f6330;background:#e6f7e9;border:1px solid #9bd3a4}
.media-status.is-private{color:#7a551f;background:#fff3d8;border:1px solid #e5c787}
.admin-media-actions{display:grid;grid-template-columns:1fr;gap:8px;padding:0 10px 10px}
.admin-delete-form{margin:0}
.media-download-button,.delete-button,.publish-button,.hide-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;padding:8px 10px;border-radius:6px;box-shadow:none;font:700 .82rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;text-decoration:none}
.media-download-button{background:var(--sage);color:#fff;border:1px solid var(--sage)}
.media-download-button:hover{background:#53664e;color:#fff}
.publish-button{background:#fff;color:#1f6330;border:1px solid #9bd3a4}
.publish-button:hover{background:#1f6330;color:#fff}
.hide-button{background:#fff;color:#7a551f;border:1px solid #e5c787}
.hide-button:hover{background:#7a551f;color:#fff}
.delete-button{background:#fff;color:#9a2839;border:1px solid #e4a9b2}
.delete-button:hover{background:#9a2839;color:#fff}
.admin-action-message{margin:0 0 22px}

.contacts-row{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin-top:24px;
}
.contact-card{
    text-align:center;
    min-width:190px;
    padding:18px 22px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
}
.contact-name{
    position:relative;
    color:var(--accent-dark);
    font-style:italic;
    margin:0 0 6px;
}
.contact-phone{font-style:italic;margin:0}
.contact-address{text-align:center;margin-top:20px;color:var(--muted)}
.couple-contact{
    max-width:760px;
    margin:0 auto;
    padding:10px;
    background:rgba(255,255,255,0.54);
    border:1px solid var(--line);
    border-radius:8px;
}
.couple-contact .contacts-row{
    margin-top:0;
    gap:14px;
}
.couple-contact .contact-card{
    flex:1 1 220px;
    background:#fff;
}
.contact-connector{
    flex:0 0 auto;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--accent-dark);
    color:#fff;
    font-size:1.35rem;
    font-style:italic;
    box-shadow:0 10px 24px rgba(95,48,56,0.2);
}
.couple-contact .contact-address{
    margin:12px 0 0;
    padding:16px 18px;
    background:rgba(181,139,72,0.08);
    border-top:1px solid var(--line);
    border-radius:0 0 8px 8px;
    color:var(--accent-dark);
    font-weight:700;
}

.location-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
    align-items:stretch;
    margin:10px 0 22px;
}
.location-addresses{
    display:grid;
    grid-template-columns:repeat(2,minmax(240px,1fr));
    gap:12px;
    margin:8px 0 24px;
}
.location-addresses p{
    margin:0;
    padding:15px 16px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:0 10px 24px rgba(62,42,35,0.07);
}
.location-addresses u{
    color:var(--accent-dark);
    font-weight:700;
    text-decoration:none;
}
.location-addresses a{
    font-weight:700;
}
.location-addresses span{
    color:var(--muted);
    font-size:0.95rem;
}
.location-media img,
.wide-image img,
.image-strip img{
    display:block;
    width:100%;
    border-radius:8px;
    box-shadow:0 14px 32px rgba(62,42,35,0.13);
}
.location-media{width:68%;max-width:660px;margin:0 auto}
.location-media img{height:auto;min-height:0;object-fit:contain;border-radius:0}
.location-note{
    margin:24px 0 0;
    padding:18px 20px;
    background:rgba(111,130,104,0.1);
    border-left:4px solid var(--sage);
    border-radius:8px;
    color:var(--ink);
}
.location-note strong{
    color:var(--accent-dark);
}
.location-note em{
    color:var(--muted);
}
.image-strip{
    margin-top:14px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:8px;
}
.image-strip-track{display:flex;gap:14px;padding:8px 2px}
.image-strip img{flex:0 0 min(520px,86vw);height:300px;object-fit:cover}
.wide-image{margin-top:0}
.wide-image img{height:auto}
#organisatoren .wide-image + p{
    margin:24px 0 0;
    padding:20px 22px;
    background:rgba(181,139,72,0.08);
    border:1px solid var(--line);
    border-left:4px solid var(--gold);
    border-radius:8px;
    color:var(--ink);
    font-size:1.04rem;
    line-height:1.72;
}
#organisatoren .wide-image + p::first-line{
    color:var(--accent-dark);
    font-weight:400;
}
#organisatoren .wide-image + p + .contacts-row{
    margin-top:18px;
}
#organisatoren .wide-image + p + .contacts-row .contact-card{
    background:rgba(255,255,255,0.86);
    box-shadow:0 10px 24px rgba(62,42,35,0.07);
}
.wishes-copy{
    max-width:760px;
    margin:0 auto;
}
.wishes-quote{
    margin:4px 0 18px;
    padding:22px 24px;
    text-align:center;
    color:var(--accent-dark);
    background:rgba(181,139,72,0.09);
    border:1px solid var(--line);
    border-radius:8px;
    font-size:clamp(1.25rem,2.6vw,1.75rem);
    line-height:1.35;
    font-style:italic;
}
.wishes-quote span{
    display:inline-block;
    margin-left:4px;
    font-style:normal;
}
.wishes-note{
    margin:0;
    padding:18px 20px;
    background:#fff;
    border-left:4px solid var(--gold);
    border-radius:8px;
    box-shadow:0 10px 24px rgba(62,42,35,0.06);
}

.dresscode-pill{
    display:inline-flex;
    align-items:center;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(111,130,104,0.12);
    color:var(--sage);
    font-weight:700;
}
.organizer-grid{
    display:grid;
    grid-template-columns:minmax(280px,0.92fr) minmax(300px,1.08fr);
    gap:34px;
    margin:22px 0 28px;
}
.organizer-block{
    min-width:0;
}
.section-kicker{
    margin:0 0 14px;
    color:var(--accent-dark);
    font:700 0.88rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
    text-transform:uppercase;
    letter-spacing:0.08em;
}
.hotel-list{
    border-top:1px solid var(--line);
}
.hotel-link{
    display:grid;
    gap:3px;
    padding:14px 0;
    border-bottom:1px solid var(--line);
    text-decoration:none;
    color:var(--ink);
}
.hotel-link span{
    color:var(--accent-dark);
    font-size:1.08rem;
}
.hotel-link small{
    color:var(--muted);
    font:0.9rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
}
.hotel-link:hover span{color:var(--gold)}
.timeline{
    list-style:none;
    margin:0;
    padding:4px 0 0 0;
    border-left:2px solid rgba(181,139,72,0.38);
}
.timeline li{
    position:relative;
    display:grid;
    grid-template-columns:70px 1fr;
    gap:14px;
    padding:0 0 22px 22px;
}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{
    content:"";
    position:absolute;
    left:-7px;
    top:7px;
    width:12px;
    height:12px;
    border-radius:50%;
    background:var(--paper);
    border:2px solid var(--gold);
}
.timeline time{
    color:var(--accent-dark);
    font-weight:700;
    font-variant-numeric:tabular-nums;
}
.timeline span{color:var(--ink)}
.schedule-scroll{
    height:auto;
    margin:20px 0 8px;
}
.schedule-image{
    position:static;
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:1800 / 1290;
    display:block;
    background-image:
        linear-gradient(180deg,rgba(33,27,24,0.04),rgba(33,27,24,0.18)),
        url('images/Rückseite - Weg.jpg');
    background-size:100% 100%,contain;
    background-position:center,center;
    background-repeat:no-repeat,no-repeat;
    background-color:var(--paper);
    box-shadow:0 18px 42px rgba(62,42,35,0.14);
}

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gallery img,.gallery video{width:100%;height:auto;border-radius:6px}
figure{margin:0}
.gallery-download-form{position:relative;margin-top:20px}
.gallery-toolbar{position:sticky;top:12px;z-index:20;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;margin-bottom:16px;background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(62,42,35,.12);backdrop-filter:blur(8px)}
.gallery-toolbar button{margin-left:auto}
.gallery-select-all{display:flex;align-items:center;gap:8px;margin:0;color:var(--accent-dark);font-weight:700}
.gallery-select-all input{width:18px;height:18px}
#selection-count{color:var(--muted);font:600 .88rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}
.guest-gallery{display:block;column-count:4;column-gap:12px}
.gallery-original{display:block !important;column-count:4 !important;column-gap:12px !important}
.gallery-original .selectable-media{display:inline-block !important;width:100% !important;max-width:none !important;height:auto !important;min-height:0 !important;overflow:visible !important;break-inside:avoid !important;margin:0 0 12px !important;border:0 !important;background:transparent !important;box-shadow:none !important}
.gallery-original .media-preview{display:block !important;width:100% !important;max-width:none !important;height:auto !important;padding:0 !important;line-height:0 !important}
.gallery-original .media-preview img,.gallery-original .selectable-media > video{display:block !important;width:100% !important;max-width:none !important;height:auto !important;max-height:none !important;object-fit:contain !important}
.selectable-media{position:relative;width:max-content;max-width:100%;border:0;border-radius:0;background:transparent;box-shadow:none}
.selectable-media:has(input:checked){border-color:var(--sage)}
.media-preview{display:block;width:max-content;max-width:100%;padding:0;border:0;border-radius:8px;background:transparent;cursor:zoom-in;box-shadow:none;line-height:0}
.media-preview:hover{background:transparent}
.selectable-media img,.selectable-media video{display:block;width:auto;max-width:100%;height:auto;object-fit:contain;border-radius:8px}
.media-select{position:absolute;top:10px;left:10px;z-index:3;display:flex;align-items:center;gap:7px;margin:0;padding:8px 10px;background:rgba(255,255,255,.94);border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.18);color:var(--accent-dark);font:700 .78rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;cursor:pointer}
.media-select input{width:18px;height:18px;margin:0;accent-color:var(--sage)}
.image-lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:clamp(18px,4vw,48px);background:rgba(33,27,24,.88);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
.image-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.image-lightbox img{display:block;width:auto;height:auto;max-width: min(96vw,1400px);max-height:92vh;object-fit:contain;box-shadow:0 18px 60px rgba(0,0,0,.38)}
.lightbox-close{position:absolute;top:18px;right:22px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(33,27,24,.46);color:#fff;font:400 2rem/1 Arial,sans-serif;cursor:pointer}
.lightbox-close:hover{background:rgba(255,255,255,.18)}
.lightbox-open{overflow:hidden}

.hero{
    min-height:100vh;
    background-image:url('images/Kloster.png');
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    position:relative;
}
.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,rgba(33,27,24,0.18),rgba(33,27,24,0.46)),
        linear-gradient(90deg,rgba(95,48,56,0.18),rgba(111,130,104,0.12));
}
.hero-inner{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:24px;
    transition:transform .35s ease,opacity .35s ease;
    transform:translateY(-50px);
    width:100%;
    max-width:960px;
    margin:0 auto;
}
.hero-inner.hidden-by-nav{opacity:0}
.hero h1{
    font-size:clamp(2.4rem,6vw,5.4rem);
    margin:0;
    line-height:1.05;
    font-weight:500;
    text-shadow:0 3px 20px rgba(0,0,0,0.38);
}
.hero-sub{display:inline-block;margin-top:12px;color:#fff;font-size:1.05rem;padding:10px 18px;border-radius:8px;text-shadow:0 2px 6px rgba(0,0,0,0.6)}
.hero-hr{width:150px;height:2px;background:rgba(255,255,255,0.95);border:none;margin:18px auto}

.page-nav{
    position:sticky;
    top:0;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    background:rgba(255,253,248,0.98);
    border-bottom:1px solid var(--line);
    box-shadow:0 8px 22px rgba(62,42,35,0.1);
    z-index:50;
    padding:8px 14px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .28s ease;
    backdrop-filter:blur(10px);
}
.page-nav.visible{opacity:1;visibility:visible;pointer-events:auto}
.page-nav-bar{display:none}
.menu-toggle{display:none}
.page-nav-links{display:flex;justify-content:center;align-items:center;gap:6px}
.page-nav-links a{
    margin:0;
    padding:7px 10px;
    border-radius:999px;
    color:var(--accent-dark);
    text-decoration:none;
    font:700 0.86rem system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
    position:relative;
    transition:color .2s ease,background .2s ease;
    white-space:nowrap;
}
.page-nav-links a:hover{color:var(--accent-dark);background:var(--soft)}
.page-nav-links a.active{color:#fff;background:var(--sage)}

main{padding-top:0}
.closing-scroll{
    height:170vh;
    margin-top:64px;
    position:relative;
}
.closing-image{
    position:sticky;
    top:0;
    width:100%;
    height:100vh;
    display:block;
    background-image:
        linear-gradient(180deg,rgba(33,27,24,0.06),rgba(33,27,24,0.24)),
        url('images/Kloster aufgehellt.jpeg');
    background-size:cover;
    background-position:center 42%;
}
.closing-image::after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:34%;
    background:linear-gradient(180deg,rgba(255,253,248,0),var(--paper));
}

.site-footer{
    background:var(--paper);
    border-top:1px solid var(--line);
    padding:34px 16px;
    text-align:center;
    margin-top:0;
}
.site-footer p{margin:0 0 14px;font-size:0.95rem;color:var(--muted)}
.site-footer .footer-note{font-size:0.82rem;line-height:1.5;margin-bottom:10px;}
.footer-nav{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}
.footer-nav a{color:var(--accent-dark);text-decoration:none;transition:opacity .2s ease}
.footer-nav a:hover{opacity:0.75}
.footer-nav span{color:#a99b94}

@media (max-width:880px){
    .admin-summary{grid-template-columns:repeat(2,1fr)}
    .container,
    .content-card{margin-left:14px;margin-right:14px;padding:24px}
    .location-grid{grid-template-columns:1fr}
    .location-addresses{grid-template-columns:1fr}
    .organizer-grid{grid-template-columns:1fr;gap:28px}
    .schedule-scroll{margin-left:0;margin-right:0}
    .location-media img{min-height:0}
    .page-nav{display:block;padding:0}
    .page-nav-bar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}
    .page-nav-title{color:var(--accent-dark);font-size:1rem;font-weight:700}
    .menu-toggle{width:42px;height:42px;display:grid;place-content:center;gap:5px;padding:0;border:0;border-radius:50%;color:var(--accent-dark);background:transparent;cursor:pointer}
    .menu-toggle:hover,.menu-toggle:focus-visible{background:var(--soft)}
    .menu-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
    .page-nav.menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .page-nav.menu-open .menu-toggle span:nth-child(2){opacity:0}
    .page-nav.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .page-nav-links{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:0;overflow:hidden;padding:0 12px;opacity:0;visibility:hidden;border-top:1px solid transparent;transition:max-height .28s ease,opacity .2s ease,padding .28s ease,border-color .28s ease,visibility 0s linear .28s}
    .page-nav.menu-open .page-nav-links{max-height:360px;padding:10px 12px 14px;opacity:1;visibility:visible;border-top-color:var(--line);transition:max-height .28s ease,opacity .2s ease,padding .28s ease,border-color .28s ease}
    .page-nav-links a{display:block;padding:10px 12px;text-align:center;white-space:normal}

    .gallery-original{column-count:3 !important;column-gap:8px !important}

    .media-header{position:static;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:14px 16px}
    .media-menu-toggle{width:42px;height:42px;display:grid;place-content:center;gap:5px;padding:0;border:0;border-radius:50%;color:var(--accent-dark);background:transparent;box-shadow:none}
    .media-menu-toggle:hover,.media-menu-toggle:focus-visible{background:var(--soft)}
    .media-menu-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
    .media-header.media-nav-open .media-menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .media-header.media-nav-open .media-menu-toggle span:nth-child(2){opacity:0}
    .media-header.media-nav-open .media-menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .media-header nav{grid-column:1 / -1;display:grid;width:100%;grid-template-columns:1fr;gap:6px;max-height:0;overflow:hidden;padding:0;opacity:0;visibility:hidden;border-top:1px solid transparent;transition:max-height .28s ease,opacity .2s ease,padding .28s ease,border-color .28s ease,visibility 0s linear .28s}
    .media-header.media-nav-open nav{max-height:260px;padding-top:10px;opacity:1;visibility:visible;border-top-color:var(--line);transition:max-height .28s ease,opacity .2s ease,padding .28s ease,border-color .28s ease}
    .media-header nav a{display:block;padding:9px 12px;border-radius:6px;background:rgba(255,255,255,.62)}
}
@media (max-width:760px){
    .rsvp-form .form-row{grid-template-columns:1fr}
    .form-section{padding:18px}
    .load-entry-help{align-items:stretch;flex-direction:column}
    .rsvp-form .load-entry-help .load-button{width:100%;white-space:normal}
}
@media (max-width:600px){
    .media-container{margin-top:18px}
    .media-page-title{margin-bottom:22px}
    .upload-form,.gallery-access-card{padding:18px}
    html{scroll-padding-top:64px}
    section[id]{scroll-margin-top:64px}
    .page-nav-bar{height:56px;padding:0 12px 0 16px}
    .page-nav-links{grid-template-columns:1fr}
    .page-nav.menu-open .page-nav-links{max-height:520px}
    .page-nav-links a{padding:9px 12px;font-size:.84rem}
    .location-media{width:100%}
    .gallery-toolbar{position:sticky;top:0;gap:10px;margin-left:-1px;margin-right:-1px;border-radius:0 0 8px 8px;box-shadow:0 10px 24px rgba(62,42,35,.18)}
    .gallery-toolbar button{width:100%;margin-left:0}
    .gallery-original{column-count:3 !important;column-gap:5px !important}
    .selectable-media img,.selectable-media video{width:100%;max-width:none;height:auto;object-fit:contain}
    .admin-header{position:static;align-items:flex-start;flex-direction:column}
    .admin-summary{grid-template-columns:1fr}
    .admin-main{padding:18px 12px 40px}
    .admin-panel{padding:18px 14px}
    .admin-panel-heading{align-items:flex-start;flex-direction:column}
    .hero{min-height:66vh}
    .content-card{margin-top:22px}
    .container,
    .content-card{padding:22px 18px}
    .rsvp-form{padding:6px}
    .rsvp-privacy{justify-content:flex-start}
    .couple-contact .contacts-row{flex-direction:column}
    .couple-contact .contact-card{width:100%;flex-basis:auto}
    .contact-connector{width:40px;height:40px;font-size:1.1rem}
    .timeline li{grid-template-columns:58px 1fr;gap:10px;padding-left:18px}
    .schedule-scroll{height:auto;margin:18px 0 8px}
    .schedule-image{height:auto;min-height:0}
    .image-strip img{height:230px}
    .closing-scroll{height:150vh;margin-top:44px}
    .closing-image{height:100svh;background-position:center 36%}
}
