@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');

:root {
    --ink: #17211e;
    --muted: #66736d;
    --cream: #fbfaf6;
    --paper: #ffffff;
    --brand: #1d6150;
    --brand-dark: #123c33;
    --gold: #d7aa62;
    --line: #e5e9e6;
    --shadow: 0 18px 50px rgba(27, 54, 46, .12);
    --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html:has(body > .site-header) { scroll-padding-top: 92px; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--cream);
    font-family: 'DM Sans', system-ui, sans-serif;
    line-height: 1.6;
}
img, video { max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.skip-link { position: absolute; left: -999px; top: 0; }
.skip-link:focus { left: 12px; top: 12px; z-index: 999; background: #fff; padding: 10px 14px; }

.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    text-decoration: none;
    letter-spacing: -.03em;
}
.brand-mark {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    box-shadow: 0 9px 24px rgba(29, 97, 80, .25);
}
.brand-mark img { width: 100%; height: 100%; display: block; object-fit: contain; border-radius: inherit; }
.brand-name { font-size: 1.08rem; }
.brand-name span { color: var(--brand); }

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(23, 33, 30, .07);
    background: rgba(251, 250, 246, .9);
    backdrop-filter: blur(14px);
    box-shadow: 0 8px 24px rgba(23, 33, 30, .09);
}
.site-header-inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
@media screen and (min-width: 851px) {
    .legal-page .legal-sidebar { top: 100px; max-height: calc(100vh - 124px); }
}
.header-links { display: flex; align-items: center; gap: 24px; }
.header-links a:not(.button) { text-decoration: none; font-weight: 600; color: #43504b; }
.header-links a[aria-current="page"],.header-links summary[aria-current="page"]{color:var(--brand)}
.nav-services{position:relative}
.nav-services>summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;color:#43504b;font-weight:600}
.nav-services>summary::-webkit-details-marker{display:none}
.nav-services>summary::after{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.nav-services[open]>summary::after{transform:translateY(2px) rotate(225deg)}
.nav-submenu{position:absolute;top:calc(100% + 18px);left:-20px;width:310px;padding:10px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 18px 42px rgba(23,33,30,.16)}
.nav-submenu::before{content:'';position:absolute;inset:-19px 0 auto;height:20px}
.nav-submenu a{display:grid!important;gap:1px;padding:11px 12px;border-radius:12px}
.nav-submenu a:hover,.nav-submenu a[aria-current="page"]{background:#f1f6f4}
.nav-submenu strong{color:var(--brand-dark);font-size:.92rem}
.nav-submenu span{color:var(--muted);font-size:.78rem;font-weight:500}
.mobile-account-label { display: none; }
.nav-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 13px; color: var(--brand-dark); background: transparent; cursor: pointer; }
.nav-toggle span { display: block; width: 23px; height: 2px; margin: 5px auto; border-radius: 2px; background: currentColor; transition: transform .2s, opacity .2s; }
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-toggle:focus-visible { outline: 3px solid rgba(215,170,98,.65); outline-offset: 2px; }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 48px;
    padding: 12px 20px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--brand);
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 9px 22px rgba(29, 97, 80, .18);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
@media (max-width: 520px) {
    .button { padding-inline: 16px; font-size: .9rem; }
    .button-small { padding-inline: 12px; font-size: .84rem; }
}
.button:hover { transform: translateY(-2px); box-shadow: 0 13px 28px rgba(29, 97, 80, .24); }
.button:focus-visible { outline: 3px solid rgba(215,170,98,.65); outline-offset: 3px; }
.button-secondary { color: var(--brand-dark); background: #fff; border: 1px solid var(--line); box-shadow: none; }
.button-light { color: var(--brand-dark); background: #fff; box-shadow: none; }
.button-small { min-height: 40px; padding: 8px 15px; font-size: .92rem; }
.button-danger { color: #fff; background: #a52d3d; box-shadow: 0 9px 22px rgba(132,29,44,.18); }
.button-danger:hover { background: #872131; box-shadow: 0 13px 28px rgba(132,29,44,.23); }
.eyebrow { margin: 0 0 14px; color: var(--brand); font-size: .78rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.section-heading { font-family: 'Fraunces', Georgia, serif; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.08; letter-spacing: -.035em; margin: 0 0 18px; }
.section-intro { max-width: 650px; margin: 0 auto; color: var(--muted); font-size: 1.08rem; }
.center { text-align: center; }

.notice { padding: 13px 16px; margin: 0 0 18px; border-radius: 14px; font-weight: 600; }
.notice-success { color: #145331; background: #e9f8ef; }
.notice-error { color: #7a2130; background: #fdecef; }
.notice-info { color: #30556e; background: #eaf5fb; }

.info-tip{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px}
.info-tip-trigger{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid rgba(29,97,80,.35);border-radius:50%;color:var(--brand);background:#fff;font:800 .8rem/1 'DM Sans',system-ui,sans-serif;cursor:pointer}
.info-tip-trigger:hover,.info-tip-trigger:focus-visible{color:#fff;background:var(--brand);outline:none;box-shadow:0 0 0 3px rgba(29,97,80,.16)}
.info-tip-bubble{position:absolute;right:0;bottom:calc(100% + 10px);z-index:1200;width:min(330px,calc(100vw - 40px));padding:13px 15px;border:1px solid rgba(29,97,80,.2);border-radius:13px;color:var(--ink);background:#fff;box-shadow:0 14px 34px rgba(23,33,30,.18);font-size:.82rem;font-weight:500;line-height:1.5;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(5px);transition:opacity .16s,transform .16s,visibility .16s}
.info-tip-bubble::after{content:'';position:absolute;right:7px;top:100%;width:10px;height:10px;border-right:1px solid rgba(29,97,80,.2);border-bottom:1px solid rgba(29,97,80,.2);background:#fff;transform:translateY(-5px) rotate(45deg)}
.info-tip:hover .info-tip-bubble,.info-tip:focus-within .info-tip-bubble,.info-tip.is-open .info-tip-bubble{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.info-tip-bubble[style*="position: fixed"]{box-sizing:border-box!important;max-width:calc(100vw - 24px)!important;white-space:normal!important;transform:none!important}
.info-tip-bubble[style*="position: fixed"]::after{left:clamp(10px,var(--info-tip-arrow-left),calc(100% - 20px))!important;right:auto!important;transform:translateY(-5px) rotate(45deg)!important}
.info-tip.info-tip-below .info-tip-bubble[style*="position: fixed"]::after{top:-6px!important;bottom:auto!important;transform:rotate(225deg)!important}

.service-invite {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    padding: 30px max(20px, calc((100vw - 960px) / 2));
    color: #fff;
    background: #173f35;
}
.service-invite div { display: grid; gap: 2px; }
.service-invite strong { font-family: 'Fraunces', Georgia, serif; font-size: 1.35rem; }
.service-invite span { color: rgba(255,255,255,.8); }
.event-signoff { padding: 34px 20px; text-align: center; background: var(--theme-surface, #fff); }
.event-signoff p { margin: 0; font-family: var(--theme-heading-font, 'Fraunces', serif); font-size: clamp(1.25rem, 4vw, 1.8rem); font-style: italic; color: var(--theme-primary, var(--brand)); }
.site-footer { padding: 24px 20px; text-align: center; color: rgba(255,255,255,.72); background: #0d201b; font-size: .86rem; }
.site-footer p { margin: 0; }
.site-footer .footer-tagline { margin: 0 0 10px; color: #fff; font-family: 'Fraunces',Georgia,serif; font-size: 1.12rem; font-style: italic; }
.site-footer a { color: #fff; }
.social-links { display: flex; justify-content: center; gap: 11px; margin: 0 0 15px; }
.social-links a { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #fff; background: rgba(255,255,255,.07); transition: transform .2s,background .2s; }
.social-links a:hover { transform: translateY(-2px); background: rgba(255,255,255,.16); }
.social-links svg { width: 21px; height: 21px; fill: currentColor; }
.upload-consent { display: flex; align-items: flex-start; gap: 11px; color: var(--muted); font-size: .9rem; line-height:1.45; }
.upload-consent input { width:20px; height:20px; flex:0 0 auto; margin-top:2px; accent-color:var(--brand); }
.upload-consent a { color:var(--brand); font-weight:700; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }

@media (max-width:820px) {
    .container { width:min(100% - 26px,1160px); }
    .site-header-inner { position:relative; gap:10px; }
    .site-header .nav-toggle { display:block; }
    .site-header .header-links { position:absolute; top:calc(100% + 1px); left:-13px; right:-13px; display:none; align-items:stretch; flex-direction:column; gap:5px; padding:15px; border:1px solid var(--line); border-radius:0 0 20px 20px; background:#fff; box-shadow:0 18px 35px rgba(23,33,30,.16); }
    .site-header .header-links.is-open { display:flex; }
    .site-header .header-links a { display:flex; align-items:center; min-height:46px; padding:10px 13px; border-radius:11px; }
    .site-header .header-links a:not(.button):hover,.site-header .header-links a[aria-current="page"] { color:var(--brand); background:#f1f6f4; }
    .site-header .header-links .button { justify-content:center; }
    .nav-services{width:100%}
    .nav-services>summary{min-height:46px;padding:10px 13px;border-radius:11px}
    .nav-services>summary:hover,.nav-services[open]>summary{color:var(--brand);background:#f1f6f4}
    .nav-submenu{position:static;width:auto;margin:5px 0 3px 13px;padding:4px 0 4px 10px;border:0;border-left:2px solid #d9e7e1;border-radius:0;background:transparent;box-shadow:none}
    .nav-submenu::before{display:none}
    .nav-submenu a{min-height:0!important;padding:9px 11px!important}
    .brand-name { font-size:1rem; }
    .service-invite { align-items:stretch; flex-direction:column; gap:18px; text-align:center; }
}

@media (max-width:390px) {
    .brand { gap:7px; }
    .brand-mark { width:38px; height:38px; border-radius:12px; }
    .brand-name { font-size:.93rem; }
    .header-account-button { padding-inline:12px; }
}



/* Original floating back-to-top style, shared site-wide */
.back-to-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:70;width:50px;height:50px;display:grid;place-items:center;transform:translateY(18px);border:2px solid rgba(255,255,255,.8);border-radius:50%;color:#fff;background:var(--theme-primary,var(--brand,#176b56));box-shadow:0 10px 28px rgba(10,30,24,.32);opacity:0;pointer-events:none;font-size:1.35rem;font-weight:800;cursor:pointer;transition:opacity .2s,transform .2s}
.back-to-top.visible{transform:translateY(0);opacity:1;pointer-events:auto}
@media(max-width:520px){.back-to-top{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:46px;height:46px}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}



/* Public navigation and expanded footer. Gallery footers keep their compact form. */
.site-header .header-links{gap:16px;font-size:.91rem}
.site-header .header-links>a,.site-header summary{white-space:nowrap}
.site-header .header-links summary[aria-current="true"]{color:var(--brand)}
.site-header .header-links .button-secondary{border-color:#b9cec2;color:var(--brand-dark);background:transparent;box-shadow:none}
.site-header .header-links .header-account-button{font-weight:800}
.site-header .nav-submenu{width:330px}
.site-header .nav-submenu strong,.site-header .nav-submenu span{white-space:normal}
.site-header .nav-services:last-of-type .nav-submenu{left:auto;right:0}
.hero-actions .button-secondary{background:transparent;border-color:#b8cdc1;box-shadow:none}
.hero-actions .button-secondary:hover{background:#edf4ef;box-shadow:none}
.cta-panel .button-secondary,.biz-dark .button-secondary,.business-crossover-card .button-secondary{color:#fff;background:transparent;border-color:rgba(255,255,255,.45);box-shadow:none}
.cta-panel .button-secondary:hover,.biz-dark .button-secondary:hover,.business-crossover-card .button-secondary:hover{background:rgba(255,255,255,.1);box-shadow:none}
.marketing-footer{padding:64px 0 26px;text-align:left;background:#10251e}
.footer-layout{display:grid;grid-template-columns:1.2fr repeat(4,minmax(0,1fr));gap:30px}
.marketing-footer .brand{margin-bottom:20px;color:#fff}
.marketing-footer .brand-name span{color:#d7aa62}
.marketing-footer .footer-description{max-width:280px;margin:0 0 24px;color:#becbc4;font-size:.9rem;line-height:1.8}
.marketing-footer .social-links{justify-content:flex-start;flex-wrap:wrap;gap:8px}
.marketing-footer .social-links a{width:36px;height:36px}
.footer-column h2{margin:4px 0 22px;font:700 .92rem/1.4 'DM Sans',system-ui,sans-serif;color:#fff}
.footer-column ul{list-style:none;padding:0;margin:0;display:grid;gap:13px}
.footer-column a{color:#becbc4;text-decoration:none;font-size:.86rem;line-height:1.6}
.footer-column a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:.78rem;color:#becbc4}
@media(max-width:1100px){
 .site-header .site-header-inner{position:relative;gap:10px}
 .site-header .nav-toggle{display:block}
 .site-header .header-links{position:absolute;top:calc(100% + 1px);left:0;right:0;display:none;align-items:stretch;flex-direction:column;gap:5px;padding:15px;border:1px solid var(--line);border-radius:0 0 20px 20px;background:#fff;box-shadow:0 18px 35px rgba(23,33,30,.16);max-height:calc(100dvh - 92px);overflow-y:auto}
 .site-header .header-links.is-open{display:flex}
 .site-header .header-links a{display:flex;align-items:center;min-height:46px;padding:10px 13px;border-radius:11px}
 .site-header .header-links .button{justify-content:center}
 .site-header .nav-services{width:100%}
 .site-header .nav-services>summary{min-height:46px;padding:10px 13px;border-radius:11px}
 .site-header .nav-services>summary:hover,.site-header .nav-services[open]>summary{color:var(--brand);background:#f1f6f4}
 .site-header .nav-submenu{position:static;width:auto;margin:5px 0 3px 13px;padding:4px 0 4px 10px;border:0;border-left:2px solid #d9e7e1;border-radius:0;background:transparent;box-shadow:none}
 .site-header .nav-submenu::before{display:none}
 .site-header .nav-submenu a{min-height:0!important;padding:9px 11px!important}
 .footer-layout{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
 .footer-brand{grid-column:1/-1}
 .marketing-footer .footer-description{max-width:530px}
}
@media(max-width:650px){.footer-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 22px}.marketing-footer{padding-top:44px}.footer-bottom{margin-top:34px}.hero-actions .button{white-space:normal;text-align:center}}

/* Shared active and unavailable gallery contact buttons. */
.white-label-contact{display:grid;justify-items:center;gap:18px;padding:34px 20px;color:var(--theme-text,#25342f);text-align:center;background:var(--theme-surface,#fff);border-top:1px solid var(--theme-border,#e5e9e5)}
.white-label-contact>strong{font-family:var(--theme-heading-font,Georgia,serif);font-size:clamp(1.35rem,4vw,1.8rem);line-height:1.15}
.white-label-contact nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.white-label-contact a{display:grid;grid-template-columns:38px auto;align-items:center;gap:9px;min-height:48px;padding:5px 16px 5px 5px;border:1px solid var(--theme-border,#dce4df);border-radius:999px;color:var(--theme-primary-readable,var(--theme-primary,#1e6a58));background:var(--theme-background,#fbfaf5);font-size:.88rem;font-weight:800;text-decoration:none}
.white-label-contact svg{width:38px;height:38px;padding:9px;border-radius:50%;color:var(--theme-button-text,#fff);background:var(--theme-primary,#1e6a58);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:480px){.white-label-contact{padding:28px 14px}.white-label-contact nav{width:100%;gap:8px}.white-label-contact a{grid-template-columns:34px auto;min-height:44px;padding-right:12px;font-size:.8rem}.white-label-contact svg{width:34px;height:34px;padding:8px}}
