:root{--navy:#0d2c3d;--navy2:#173e52;--green:#2b604b;--green2:#dceadf;--cream:#f7f5ee;--paper:#fff;--ink:#182627;--muted:#607071;--line:#d8ded9;--gold:#bd8b45;--shadow:0 18px 55px rgba(13,44,61,.11)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.6}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:Georgia,"Times New Roman",serif;color:var(--navy);line-height:1.04}
h1{font-size:clamp(2.9rem,6.8vw,6.3rem);letter-spacing:-.055em;margin-bottom:1.4rem}
h1 em{color:var(--green);font-weight:400}
h2{font-size:clamp(2.1rem,4vw,4rem);letter-spacing:-.04em;margin-bottom:1rem}
h3{color:var(--navy);line-height:1.25}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,4vw,4.5rem);background:rgba(247,245,238,.95);border-bottom:1px solid rgba(13,44,61,.1);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--navy);line-height:1.1}
.brand span{display:flex;flex-direction:column}
.brand strong{font-family:Georgia,serif;font-size:1.08rem}
.brand small{color:var(--green);font-size:.8rem;margin-top:.22rem}
.site-header nav{display:flex;align-items:center;gap:1.65rem}
.site-header nav a{color:var(--navy);text-decoration:none;font-weight:650;font-size:.92rem}
.site-header nav a:hover{color:var(--green)}
.menu-button{display:none}
.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);align-items:center;gap:clamp(2rem,6vw,7rem);padding:clamp(4rem,8vw,8rem) clamp(1.25rem,7vw,8rem);background:radial-gradient(circle at 82% 25%,rgba(43,96,75,.13),transparent 27%),linear-gradient(135deg,#f9f7f0 0%,#eef2e9 100%)}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--green);font-size:.76rem;font-weight:800;margin-bottom:1rem}
.lead{font-size:clamp(1.08rem,1.8vw,1.35rem);max-width:42rem;color:#455758}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.2rem;border-radius:3px;border:1px solid var(--navy);text-decoration:none;font:inherit;font-weight:750;cursor:pointer;transition:.2s ease}
.button.primary{background:var(--navy);color:white}
.button.primary:hover{background:var(--green);border-color:var(--green)}
.button.secondary{background:transparent;color:var(--navy)}
.button.secondary:hover{background:white}
.button.small{min-height:40px;padding:.5rem .8rem;font-size:.86rem}
.quick-start{background:var(--navy);color:white;padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--shadow);border-top:5px solid var(--gold)}
.quick-start h2{color:white;font-size:2rem}
.step-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;color:#a9cdb9;font-weight:800}
.quick-links{display:grid;gap:.55rem}
.quick-links button{width:100%;text-align:left;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.17);color:white;padding:.9rem 1rem;font:inherit;cursor:pointer}
.quick-links button:hover{background:rgba(255,255,255,.14)}
.privacy-note{font-size:.78rem;color:#bdcdd3;margin:1.2rem 0 0}
.section{padding:clamp(4.5rem,8vw,8rem) clamp(1.25rem,7vw,8rem);scroll-margin-top:80px}
.section-heading{max-width:860px;margin-bottom:3rem}
.section-heading.split{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:3rem}
.section-heading.split>p{max-width:430px;color:var(--muted)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-grid article{padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.4)}
.service-grid span{color:var(--gold);font-size:.75rem;font-weight:800;letter-spacing:.1em}
.service-grid h3{font-family:Georgia,serif;font-size:1.4rem;margin:1.4rem 0 .7rem}
.service-grid p{color:var(--muted);margin:0}
.library{background:white}
.library-tools{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}
.search{display:grid;gap:.45rem;min-width:min(100%,390px);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--green)}
input,select,textarea{width:100%;border:1px solid #bdc8c2;background:white;color:var(--ink);font:inherit;padding:.78rem .85rem;border-radius:2px}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(43,96,75,.16);border-color:var(--green)}
.filter-row{display:flex;flex-wrap:wrap;gap:.45rem}
.filter{border:1px solid var(--line);background:white;color:var(--navy);padding:.58rem .82rem;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.filter.active,.filter:hover{background:var(--green);border-color:var(--green);color:white}
.profession-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.profession-card{background:white;padding:1.5rem;min-height:180px;display:flex;flex-direction:column;align-items:flex-start}
.profession-card .category{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-weight:800}
.profession-card h3{font-family:Georgia,serif;font-size:1.35rem;margin:.8rem 0 .45rem}
.profession-card p{font-size:.9rem;color:var(--muted);margin-bottom:1.25rem}
.profession-card button{margin-top:auto;border:0;background:none;padding:0;color:var(--navy);font:inherit;font-weight:800;cursor:pointer}
.profession-card button:hover{color:var(--green)}
.empty{text-align:center;padding:3rem;color:var(--muted)}
.organizer-shell{padding:2rem clamp(1.25rem,7vw,8rem) 7rem;background:white;scroll-margin-top:80px}
.organizer-toolbar{position:sticky;top:82px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);z-index:10}
.organizer-toolbar>div{display:flex;gap:.5rem}
.text-button{border:0;background:none;color:var(--navy);font:inherit;font-weight:750;cursor:pointer}
.organizer-title{padding:4rem 0 2rem;max-width:780px}
.organizer-title p:last-child{color:var(--muted)}
#organizer-form{max-width:1000px}
.form-section{padding:2rem 0;border-top:1px solid var(--line)}
.form-section h3{font-family:Georgia,serif;font-size:1.5rem}
.form-section-head{display:flex;justify-content:space-between;align-items:baseline}
.form-section-head span{font-size:.82rem;color:var(--muted)}
.form-grid,.expense-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.form-grid label,.expense-grid label,.full-label{display:grid;gap:.35rem;color:var(--navy);font-size:.86rem;font-weight:700}
.expense-grid label{grid-template-columns:1fr minmax(120px,.35fr);align-items:center;border-bottom:1px dotted #ccd5cf;padding:.45rem 0}
.expense-grid input{text-align:right}
.checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem 1.5rem}
.check-item{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem;background:#f5f7f3}
.check-item input{width:18px;height:18px;margin-top:.2rem}
.form-disclaimer{background:#edf2ed;border-left:4px solid var(--green);padding:1.2rem;color:#4f6060;font-size:.86rem}
.booking{background:var(--navy);color:white;display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,7vw,7rem)}
.booking h2{color:white}
.booking-copy>p:not(.eyebrow){color:#c4d1d4}
.booking .eyebrow{color:#9fcab1}
.address-card{margin-top:2rem;border-top:1px solid rgba(255,255,255,.18);padding-top:1.4rem;display:grid;gap:.6rem}
.address-card span{color:#d9e2e4}
.address-card a{color:white}
.booking-form{background:var(--cream);color:var(--ink);padding:clamp(1.4rem,3vw,2.5rem);box-shadow:0 20px 50px rgba(0,0,0,.2)}
.booking-form .button{margin-top:1.2rem}
.form-help{font-size:.8rem;color:var(--muted);margin:.7rem 0 0}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,7rem)}
.contact>div:first-child p:last-child{color:var(--muted);max-width:450px}
.contact-list{border-top:1px solid var(--line)}
.contact-list>a,.contact-list>div{display:grid;grid-template-columns:100px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--navy)}
.contact-list span{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;color:var(--green);font-weight:800}
.contact-list strong{font-size:1rem}
footer{background:#091f2b;color:#c3d0d2;padding:2rem clamp(1.25rem,7vw,8rem);display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:.82rem}
footer p{margin:0}
.footer-brand{display:flex;align-items:center;gap:.7rem;color:white;font-family:Georgia,serif}
#toast{position:fixed;right:1.25rem;bottom:1.25rem;background:var(--green);color:white;padding:.85rem 1rem;box-shadow:var(--shadow);transform:translateY(160%);transition:.25s;z-index:50}
#toast.show{transform:translateY(0)}
@media(max-width:900px){.site-header nav{position:absolute;top:82px;left:0;right:0;background:var(--cream);padding:1rem 1.25rem;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
.site-header nav.open{display:flex}
.menu-button{display:block;border:1px solid var(--navy);background:transparent;color:var(--navy);padding:.5rem .7rem;font:inherit;font-weight:700}
.hero{grid-template-columns:1fr;min-height:auto}
.service-grid{grid-template-columns:repeat(2,1fr)}
.section-heading.split,.library-tools{align-items:flex-start;flex-direction:column}
.profession-grid{grid-template-columns:repeat(2,1fr)}
.booking,.contact{grid-template-columns:1fr}
footer{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){.brand img{width:38px}
.brand strong{font-size:.93rem}
.brand small{font-size:.72rem}
.hero{padding-top:3.5rem}
.service-grid,.profession-grid,.form-grid,.checklist{grid-template-columns:1fr}
.profession-card{min-height:160px}
.organizer-toolbar{align-items:flex-start}
.organizer-toolbar>div{flex-direction:column}
.expense-grid{grid-template-columns:1fr}
.expense-grid label{grid-template-columns:1fr 115px}
.filter-row{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:.3rem}
.filter{white-space:nowrap}
footer p:nth-of-type(1){display:none}
}
@media print{.site-header,.hero,.services,.refund-status,.library,.about,.booking,.contact,footer,.organizer-toolbar,#toast{display:none!important}
.organizer-shell{display:block!important;padding:0}
.organizer-title{padding:0 0 1rem}
.form-section{break-inside:avoid;padding:1rem 0}
body{background:white;font-size:12px}
input,textarea,select{border:0;border-bottom:1px solid #999;padding:.25rem}
.form-disclaimer{border:1px solid #bbb;background:white}
}
.refund-status{background:#edf2ed}
.refund-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.refund-card{display:flex;flex-direction:column;align-items:flex-start;background:white;border:1px solid var(--line);border-top:5px solid var(--green);padding:clamp(1.5rem,3vw,2.25rem);box-shadow:0 12px 35px rgba(13,44,61,.07)}
.refund-card-heading{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.refund-card-heading>span{display:grid;place-items:center;width:54px;height:54px;flex:0 0 54px;background:var(--navy);color:white;font-family:Georgia,serif;font-size:1.05rem;font-weight:700;border-radius:50%}
.refund-label{margin:0 0 .18rem;color:var(--green);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.refund-card h3{font-family:Georgia,serif;font-size:1.55rem;margin:0}
.refund-card>p{color:var(--muted);margin-bottom:1.5rem}
.refund-card .button{margin-top:auto}
.refund-privacy{margin:1.25rem 0 0;color:#4e6060;font-size:.88rem}
@media(max-width:700px){.refund-grid{grid-template-columns:1fr}.refund-card .button{width:100%}}
.about{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(2.5rem,7vw,7rem);overflow:hidden;background:linear-gradient(135deg,#f7f5ee 0%,#eef2e9 100%)}
.about-portrait{align-self:stretch;display:flex;align-items:flex-end;justify-content:center;min-height:540px;background:radial-gradient(circle at 50% 34%,#dceadf 0 31%,transparent 31.5%),linear-gradient(145deg,rgba(43,96,75,.11),rgba(13,44,61,.03));border-bottom:6px solid var(--gold);position:relative}
.about-portrait:before{content:"";position:absolute;inset:2rem;border:1px solid rgba(43,96,75,.2);pointer-events:none}
.about-portrait img{position:relative;z-index:1;display:block;width:min(100%,520px);height:auto;max-height:620px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 18px 22px rgba(13,44,61,.17))}
.about-copy{max-width:680px}
.about-copy h2{margin-bottom:1.25rem}
.about-lead{font-family:Georgia,serif;color:var(--green);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.35}
.about-copy>p:not(.eyebrow):not(.about-lead){color:var(--muted);font-size:1.04rem}
.about-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
@media(max-width:1100px){.site-header nav{position:absolute;top:82px;left:0;right:0;background:var(--cream);padding:1rem 1.25rem;display:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.menu-button{display:block;border:1px solid var(--navy);background:transparent;color:var(--navy);padding:.5rem .7rem;font:inherit;font-weight:700}}
@media(max-width:800px){.about{grid-template-columns:1fr}.about-portrait{min-height:430px}.about-portrait img{max-height:500px}.about-copy{max-width:none}}
@media(max-width:500px){.about-portrait{min-height:350px}.about-portrait:before{inset:1rem}.about-actions{flex-direction:column}.about-actions .button{width:100%}}
