:root{
  --nile:#0E2A3F; --lapis:#1D4C73; --gold:#C29A4B; --gold-d:#8A6A26;
  --bg:#F3F5F4; --surface:#FFFFFF; --ink:#16222B; --muted:#52616C; --line:#D5DCDF;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#0B1620;--surface:#122230;--ink:#E7ECEF;--muted:#9FB0BB;--line:#25384A;--gold-d:#D8B467;color-scheme:dark}
}
:root[data-theme="dark"]{--bg:#0B1620;--surface:#122230;--ink:#E7ECEF;--muted:#9FB0BB;--line:#25384A;--gold-d:#D8B467;color-scheme:dark}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--sans)}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.08;margin:0}
h2{font-size:clamp(2rem,4.5vw,3rem);margin-bottom:16px}
h3{font-size:1.6rem}
p{margin:0 0 1em;max-width:62ch}
.btn{display:inline-block;padding:14px 26px;font-weight:600;text-decoration:none;border-radius:2px;border:1px solid var(--gold);transition:background .2s,color .2s}
.btn.primary{background:var(--gold);color:#0E2A3F}
.btn.primary:hover{background:#D3AE62}
.btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold)}

/* header */
header{position:absolute;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:2}
header .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;gap:16px}
.brand{font-family:var(--serif);font-size:1.35rem;font-weight:600;color:#fff;text-decoration:none}
nav{display:flex;gap:26px}
nav a{color:#DCE5EA;text-decoration:none;font-size:.95rem}
nav a:hover{color:var(--gold)}
@media(max-width:720px){nav{display:none}}

/* hero */
.hero{background:var(--nile);color:#fff;position:relative;overflow:hidden;padding:170px 0 110px}
.hero .wrap{position:relative;z-index:1}
.hero h1{font-size:clamp(2.6rem,7vw,5.2rem);max-width:15ch;letter-spacing:-.01em}
.hero p.lead{font-size:1.25rem;color:#C9D6DE;margin:28px 0 36px;max-width:50ch}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap}
.sun{position:absolute;right:-120px;bottom:-140px;width:min(720px,90vw);opacity:.95;z-index:0}
.facts{display:flex;gap:44px;flex-wrap:wrap;margin-top:64px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18)}
.facts div{font-size:.95rem;color:#B5C4CE}
.facts b{display:block;font-family:var(--serif);font-size:2rem;color:#fff;font-weight:600}

section{padding:96px 0}
.alt{background:var(--surface)}
.intro{color:var(--muted);margin-bottom:44px}

/* included */
.inc{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line)}
.inc>div{padding:32px 28px;border-right:1px solid var(--line)}
.inc>div:last-child{border-right:0}
.inc p{color:var(--muted);margin:10px 0 0}
.note{margin-top:20px;color:var(--muted);font-size:.97rem}
@media(max-width:760px){.inc{grid-template-columns:1fr}.inc>div{border-right:0;border-bottom:1px solid var(--line)}.inc>div:last-child{border-bottom:0}}

/* cities */
.cities{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 56px}
.city{padding-top:20px;border-top:2px solid var(--gold)}
.city p{color:var(--muted);margin-top:8px}
@media(max-width:700px){.cities{grid-template-columns:1fr}}

/* day */
.day{max-width:760px;border-left:2px solid var(--gold);margin-left:6px}
.day div{position:relative;padding:0 0 30px 32px}
.day div::before{content:"";position:absolute;left:-7px;top:9px;width:12px;height:12px;background:var(--gold);border-radius:50%}
.day time{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--gold-d)}
.day h3{font-size:1.35rem;margin:2px 0 4px;font-family:var(--sans);font-weight:600}
.day p{color:var(--muted);margin:0}

/* expertise */
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.two ul{list-style:none;margin:0;padding:0}
.two li{padding:16px 0;border-bottom:1px solid var(--line)}
.two li b{display:block}
.two li span{color:var(--muted);font-size:.98rem}
@media(max-width:800px){.two{grid-template-columns:1fr;gap:32px}}

/* contact */
.contact{background:var(--nile);color:#fff}
.contact p{color:#C9D6DE}
.contact .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
footer{background:#08141E;color:#8FA2AF;padding:28px 0;font-size:.9rem}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* inquiry form */
.inq{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;margin-top:48px;max-width:760px}
.inq label{display:block;font-size:.95rem;color:#C9D6DE}
.inq label span{display:block;margin-bottom:6px}
.inq input,.inq select,.inq textarea{width:100%;padding:12px 14px;font:inherit;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.3);border-radius:2px}
.inq select option{color:#16222B}
.inq .full{grid-column:1/-1}
.inq .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
#inqmsg{margin:14px 0 0;min-height:1.5em}
@media(max-width:640px){.inq{grid-template-columns:1fr}}

/* editable-content helpers */
[hidden]{display:none!important}
main{display:flex;flex-direction:column}
.portrait{display:block;width:100%;max-width:360px;aspect-ratio:4/5;object-fit:cover;margin-bottom:24px}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
