:root{--se-maroon:#660E3D;--se-gold:#D4A843;--se-bg:#faf9f7;--se-border:#e8e8e5;--se-text:#333;--se-muted:#6b6b6b;--se-radius:16px}
.se input,.se textarea,.se select,.se button{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:16px}
.se input[type="checkbox"]{-webkit-appearance:checkbox;appearance:checkbox}
.se{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif !important;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;color:var(--se-text)}
.se *{box-sizing:border-box}
.se a{text-decoration:none;color:inherit}
.se-wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* Hero */
.se-hero{position:relative;min-height:340px;display:flex;align-items:flex-end;background-size:cover;background-position:center}
.se-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.2) 50%,rgba(0,0,0,.05) 100%)}
.se-hero-inner{position:relative;z-index:2;width:100%;max-width:1080px;margin:0 auto;padding:48px 24px}
.se-hero-cat{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);color:#fff;font-size:10px;font-weight:500;padding:5px 14px;border-radius:20px;letter-spacing:1px;text-transform:uppercase;margin-bottom:14px;border:1px solid rgba(255,255,255,.2)}
.se-hero h1{font-family:'Lora',serif !important;font-size:36px !important;font-weight:500 !important;color:#fff !important;line-height:1.2 !important;margin:0 0 12px !important;padding:0 !important;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.se-hero-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:14px;color:rgba(255,255,255,.85)}
.se-hero-meta span{display:inline-flex;align-items:center;gap:5px}
.se-hero-meta .material-icons-outlined{font-size:17px}
.se-hero-recurring{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.2);padding:4px 12px;border-radius:6px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:rgba(255,255,255,.9);margin-top:10px}
.se-hero-recurring .material-icons-outlined{font-size:14px}

/* Past banner */
.se-past-banner{background:#f5f4f1;border:1px solid var(--se-border);border-radius:10px;padding:14px 20px;text-align:center;font-size:14px;font-weight:500;color:var(--se-muted);margin-top:24px;display:flex;align-items:center;justify-content:center;gap:6px}
.se-past-banner .material-icons-outlined{font-size:18px}

/* Layout: main + sidebar */
.se-layout{display:grid;grid-template-columns:1fr 320px;gap:36px;margin-top:32px;align-items:start}
.se-main{min-width:0;display:flex;flex-direction:column;gap:0}
.se-main > *{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--se-border)}
.se-main > *:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}

/* Content */
.se-content h2{font-family:'Lora',serif !important;font-size:22px !important;font-weight:500 !important;color:#111 !important;margin:0 0 16px !important;padding:0 !important}
.se-content-body{font-size:16px;line-height:1.8;color:#444}
.se-content-body p{margin:0 0 16px !important}

/* Details card */
.se-details-card{background:#fff;border:1px solid var(--se-border);border-radius:14px;padding:24px}
.se-details-card h2{font-family:'Lora',serif !important;font-size:18px !important;font-weight:500 !important;color:#111 !important;margin:0 0 16px !important;padding:0 !important}
.se-info-list{display:flex;flex-direction:column;gap:12px}
.se-info-row{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--se-text);line-height:1.4}
.se-info-row .material-icons-outlined{font-size:18px;color:var(--se-maroon);flex-shrink:0;margin-top:1px}
.se-info-row strong{font-weight:500}
.se-info-sub{font-size:12px;color:var(--se-muted);margin-top:1px}

/* Map */
.se-map{border-radius:14px;overflow:hidden;border:1px solid var(--se-border);height:240px}
.se-map iframe{width:100%;height:100%;border:0}
.se-map-consent{display:flex;align-items:center;justify-content:center;background:#f6f2ef;text-align:center}
/* The box fills the map's frame and centres its lines with one even gap; the theme's paragraph margins are kept out. */
.se-map-ask{width:100%;height:100%;box-sizing:border-box;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}
.se-map-ask p{margin:0 !important;padding:0 !important;line-height:1.35;font-weight:600;color:#333}
.se-map-ask .se-map-address{font-weight:500;color:#555;font-size:14px}
.se-map-ask .se-map-venue+.se-map-address{margin-top:-6px !important}
.se-map-ask small{display:block}
.se-map-show{background:#660E3D;color:#fff;border:0;border-radius:10px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer}
.se-map-show:hover{background:#43082a}
.se-map-link{color:#660E3D;font-size:13px;font-weight:600;text-decoration:none}
.se-map-ask small{color:#6b6b6b;font-size:12px}

/* Journey planner */
.se-journey{background:#FAFAFA;border:1px solid var(--se-border);border-radius:14px;overflow:hidden}
.se-journey-inner{padding:24px 28px;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.se-journey-field{flex:1;min-width:220px}
.se-journey-field label{display:block;font-size:11px;font-weight:500;color:#6b6b6b;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.se-journey-input{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--se-border);border-radius:8px;padding:0 14px;transition:border-color .2s,box-shadow .2s}
.se-journey-input:focus-within{border-color:var(--se-maroon);box-shadow:0 0 0 3px rgba(102,14,61,.08)}
.se-journey-input input{flex:1;border:none;outline:none;padding:11px 0;font-size:14px;font-family:inherit;color:#111;background:transparent}
.se-journey-input input::placeholder{color:#bbb}
.se-journey-modes{display:flex;gap:6px}
.se-journey-mode{display:inline-flex;align-items:center;gap:5px;padding:9px 14px;border:1.5px solid var(--se-border);border-radius:8px;background:#fff;color:#555;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}
.se-journey-mode .material-icons-outlined{font-size:16px}
.se-journey-mode:hover{border-color:var(--se-maroon);color:var(--se-maroon)}
.se-journey-mode.active{background:var(--se-maroon);border-color:var(--se-maroon);color:#fff}
.se-journey-go{padding:11px 24px;background:var(--se-maroon);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .2s;white-space:nowrap}
.se-journey-go:hover{background:#7a1149}
.se-shake{border-color:#e05a33 !important;animation:seShake .4s ease}
@keyframes seShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

/* Share & actions */
.se-actions-wrap{display:flex;flex-direction:column;gap:12px}
.se-actions-heading{font-size:13px !important;font-weight:500 !important;color:var(--se-muted) !important;text-transform:uppercase !important;letter-spacing:.5px !important;margin:0 !important;padding:0 !important;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif !important}
.se-actions-icons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.se-action-tile{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1.5px solid var(--se-border);border-radius:50%;background:#fff;color:#555;cursor:pointer;transition:all .2s;text-decoration:none;font-family:inherit;padding:0;flex-shrink:0}
.se-action-tile .material-icons-outlined{font-size:20px;color:var(--se-maroon)}
.se-action-tile img{display:block !important;flex-shrink:0;width:20px;height:20px;filter:invert(10%) sepia(60%) saturate(4500%) hue-rotate(315deg) brightness(60%) contrast(110%)}
.se-action-tile:hover{border-color:var(--se-maroon);background:#fdf8f9;transform:translateY(-2px);box-shadow:0 4px 14px rgba(102,14,61,.1)}

/* Gallery */
.se-gallery h2{font-family:'Lora',serif !important;font-size:22px !important;font-weight:500 !important;color:#111 !important;margin:0 0 16px !important;padding:0 !important;display:flex;align-items:center;gap:8px}
.se-gallery h2 .material-icons-outlined{font-size:22px;color:var(--se-maroon)}
.se-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.se-gallery-link{display:block;text-decoration:none;border-radius:10px;overflow:hidden;border:1px solid var(--se-border);transition:all .2s}
.se-gallery-link:hover{transform:scale(1.03);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.se-gallery-grid img{width:100%;height:120px;object-fit:cover;display:block;cursor:pointer}

/* Sidebar */
.se-sidebar{position:sticky;top:24px}
.se-sidebar-card{background:#fff;border:1px solid var(--se-border);border-radius:14px;padding:20px}
.se-rsvp-card{background:#fff;border:1px solid var(--se-border);border-radius:14px;padding:24px;position:relative;overflow:hidden}
.se-rsvp-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--se-maroon),var(--se-gold))}
.se .se-rsvp-heading{font-family:'Lora',serif !important;font-size:15px !important;font-weight:500 !important;color:#111 !important;margin:0 0 16px !important;padding:0 !important;display:flex !important;align-items:center !important;gap:6px !important;line-height:1.3 !important;letter-spacing:0 !important;text-transform:none !important}
.se .se-rsvp-heading .material-icons-outlined{font-size:18px !important;color:var(--se-maroon) !important}
.se-rsvp-bar{height:6px;background:#f0ede8;border-radius:3px;margin-bottom:20px;overflow:hidden}
.se-rsvp-bar-fill{height:100%;background:linear-gradient(90deg,var(--se-gold),var(--se-maroon));border-radius:3px;transition:width .5s}
.se-rsvp-form{display:flex;flex-direction:column;gap:12px}
.se-field{display:flex;flex-direction:column;gap:4px}
.se-field label{font-size:11px;font-weight:500;color:var(--se-muted);text-transform:uppercase;letter-spacing:.5px}
.se-field input,.se-field textarea,.se-field select{width:100%;padding:10px 12px;border:1.5px solid var(--se-border);border-radius:8px;font-size:16px;font-family:inherit;transition:border-color .15s;background:#fff}
.se-field input:focus,.se-field textarea:focus,.se-field select:focus{border-color:var(--se-maroon);outline:none}
.se-consent{flex-direction:row;align-items:flex-start;gap:6px}
.se-consent label{text-transform:none;font-size:12px;color:#555;letter-spacing:0;display:flex;align-items:flex-start;gap:6px;line-height:1.4;cursor:pointer}
.se-consent label span{flex:1 1 auto;min-width:0} /* the sentence is one flex item, so the Privacy Policy link wraps with the text instead of standing beside it */
.se-consent input[type="checkbox"]{width:16px;height:16px;margin-top:1px;flex-shrink:0;accent-color:var(--se-maroon)}
.se-consent a{color:var(--se-maroon);text-decoration:underline;display:inline}
.se-rsvp-submit{padding:14px;background:linear-gradient(135deg,var(--se-maroon),#8B1A55);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s;box-shadow:0 4px 16px rgba(102,14,61,.25);display:flex;align-items:center;justify-content:center;gap:6px}
.se-rsvp-submit .material-icons-outlined{font-size:18px}
.se-rsvp-submit:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(102,14,61,.35)}
a.se-rsvp-link{text-decoration:none;color:#fff}
.se-rsvp-external{margin:0 0 14px;font-size:14px;color:#666;line-height:1.5}
.se-rsvp-submit:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}
.se-rsvp-msg{text-align:center;padding:12px;border-radius:8px;font-size:13px;font-weight:500}
.se-msg-ok{background:#eefbf4;color:#1a9a5b}
.se-msg-err{background:#fdf2f5;color:#c43966}
.se-rsvp-cancel{background:none;border:1px solid #c62828;color:#c62828;padding:7px 14px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}
.se-rsvp-cancel:hover{background:#c62828;color:#fff}

/* Related */
.se-related{margin-top:48px;padding-bottom:60px}
.se-related h2{font-family:'Lora',serif !important;font-size:22px !important;font-weight:500 !important;color:#111 !important;margin:0 0 20px !important;padding:0 !important}
.se-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.se-rel-card{background:#fff;border-radius:12px;border:1px solid var(--se-border);overflow:hidden;transition:all .25s}
.se-rel-card:hover{border-color:#d0cdc8;transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.07)}
.se-rel-img{height:130px;background:#f5f4f1;overflow:hidden}
.se-rel-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.se-rel-card:hover .se-rel-img img{transform:scale(1.05)}
.se-rel-body{padding:16px}
.se-rel-date{font-size:11px;font-weight:600;color:#8a6a1e;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
.se-rel-title{font-family:'Lora',serif;font-size:15px;font-weight:500;color:#111;margin-bottom:4px;line-height:1.3}
.se-rel-loc{font-size:12px;color:#6b6b6b;display:flex;align-items:center;gap:3px}
.se-rel-loc .material-icons-outlined{font-size:14px}
.se-rel-placeholder{height:130px;display:flex;align-items:center;justify-content:center}
.se-rel-placeholder .material-icons-outlined{font-size:36px;color:rgba(255,255,255,.7)}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* The phone-only pieces: the floating Register button and the sheet's handle and close. Off until the phone rules below. */
.se-rsvp-fab,.se-sheet-head{display:none}

/* Responsive */
@media(max-width:900px){
    .se-layout{grid-template-columns:1fr;gap:24px}
    .se-sidebar{position:static;order:-1;display:contents} /* only the (fixed) sheet is inside it on phones: no empty box, no gap */
    /* The event reads first. The register card waits in a sheet, opened by a floating button at the bottom right (the
       bottom left is where a theme's language switcher tends to sit), and closed by its ×, the backdrop or Escape. */
    .se-rsvp-wrap{display:none;position:fixed;inset:0;z-index:9000;background:rgba(20,10,16,.55)}
    .se-rsvp-wrap.open{display:block}
    .se-rsvp-wrap .se-rsvp-card{position:absolute;left:0;right:0;bottom:0;max-height:88dvh;max-height:88vh;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;border-radius:20px 20px 0 0!important;border:0!important;padding:6px 18px calc(84px + env(safe-area-inset-bottom))!important;box-shadow:0 -12px 40px rgba(0,0,0,.25);animation:se-sheet-up .22s ease-out}
    /* The sheet ends 84px up: a fixed language switcher at the bottom of the screen (52px tall, 20px up) then sits below the submit button, not over it. */
    @keyframes se-sheet-up{from{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}
    .se-sheet-head{display:flex;align-items:center;justify-content:center;position:relative;height:40px;margin-bottom:2px}
    .se-sheet-grab{width:40px;height:4px;border-radius:2px;background:#d8cfd3}
    .se-sheet-close{position:absolute;right:-6px;top:4px;width:36px;height:36px;border-radius:50%!important;border:0!important;background:#f1ebee!important;color:#333!important;font-size:22px;line-height:1;padding:0!important;cursor:pointer;font-family:inherit}
    .se-rsvp-fab{display:inline-flex;align-items:center;gap:8px;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:8000;padding:14px 22px;border-radius:999px;background:linear-gradient(135deg,var(--se-maroon),#8B1A55)!important;color:#fff!important;font-family:inherit!important;font-size:15px!important;font-weight:600!important;text-decoration:none;border:0!important;box-shadow:0 8px 24px rgba(102,14,61,.35);cursor:pointer;text-transform:none!important;letter-spacing:normal!important}
    .se-rsvp-fab .material-icons-outlined{font-size:20px}
    .se-wrap{padding-bottom:calc(72px + env(safe-area-inset-bottom))} /* room under the last section for the floating button */
    body.se-sheet-open{overflow:hidden}
    body.se-sheet-open .se-rsvp-fab{display:none}
    @media (prefers-reduced-motion:reduce){.se-rsvp-wrap .se-rsvp-card{animation:none}}
    .se-rel-grid{grid-template-columns:1fr 1fr}
    .se-journey-inner{flex-direction:column;align-items:stretch}
    .se-journey-modes{flex-wrap:wrap}
    .se-journey-go{width:100%}
}
@media(max-width:600px){
    .se-hero{min-height:260px}
    .se-hero h1{font-size:26px !important}
    .se-hero-inner{padding:32px 20px}
    .se-hero-meta{gap:10px;font-size:13px}
    .se-rel-grid{grid-template-columns:1fr}
}

/* Elementor's Site Settings for buttons and form fields (".elementor-kit-N button", ".elementor-kit-N input:not(...)")
   outrank single-class rules, so the RSVP form and the map and journey buttons keep their own look here. */
.se-rsvp-form .se-field input,.se-rsvp-form .se-field select,.se-rsvp-form .se-field textarea{padding:11px 14px!important;border:1.5px solid var(--se-border)!important;border-radius:10px!important;background:#fff!important;color:var(--se-text)!important;font-family:inherit!important;font-size:16px!important;line-height:1.4!important;box-shadow:none!important}
.se-rsvp-form .se-field input:focus,.se-rsvp-form .se-field select:focus,.se-rsvp-form .se-field textarea:focus{border-color:var(--se-maroon)!important;outline:none!important;box-shadow:0 0 0 3px rgba(102,14,61,.12)!important}
.se-rsvp-form .se-rsvp-submit,.se-rsvp-card a.se-rsvp-link{background:linear-gradient(135deg,var(--se-maroon),#8B1A55)!important;color:#fff!important;border:none!important;border-radius:10px!important;padding:14px!important;font-family:inherit!important;font-size:14px!important;font-weight:500!important;text-transform:none!important;letter-spacing:normal!important}
.se-map .se-map-show,.se-journey .se-journey-mode,.se-journey .se-journey-go,.se-actions-icons .se-action-tile{font-family:inherit!important;text-transform:none!important;letter-spacing:normal!important}
/* A sticky theme header: set --se-sticky-top (e.g. in Elementor's custom CSS) to its height so the sidebar sits below it. */
.se-sidebar{top:var(--se-sticky-top,24px)}
