@font-face{font-family:"Fraunces";src:url("fonts/Fraunces.ttf");font-weight:100 900;font-display:swap}
@font-face{font-family:"Nunito";src:url("fonts/Nunito.ttf");font-weight:200 1000;font-display:swap}
:root{--navy:#1B3A54;--shell:#FCF4E8;--apricot:#F9DFC6;--sun:#F4A83B;--red:#A3222F;--throat:#5E1220;
--ink:#2A2523;--mute:#6A5F58;--pale:#C9DCEA;--line:#EBD8C3;--rule:#E7C7A9;--slate:#8FA3B4;--m:clamp(20px,7.8vw,112px)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:"Nunito",system-ui,sans-serif;background:var(--shell);color:var(--ink);font-size:17px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.serif,h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:500;color:var(--navy);line-height:1.15}
.wrap{padding-left:var(--m);padding-right:var(--m)}
.label{font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--red)}
.label.sun{color:var(--sun)}
.btn{display:inline-block;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;padding:15px 24px;border:0;cursor:pointer;font-family:inherit;text-align:center}
.btn.red{background:var(--red);color:var(--shell)}
.btn.shell{background:var(--shell);color:var(--red)}
.btn.navy{background:var(--navy);color:var(--shell)}
.sunrule{width:150px;margin:26px 0}
.sunrule i{display:block;height:2px;background:var(--navy);margin-bottom:3px}
.sunrule i+i{height:4px;background:var(--sun)}
.sunrule i+i+i{height:2px;background:var(--red);margin:0}
.dark .sunrule i,.sunrule.dk i{background:var(--pale)}
.sunrule.dk i+i{background:var(--sun)}
/* nav */
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;padding-top:22px;padding-bottom:22px;background:var(--shell)}
.nav .brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-family:"Fraunces",serif;font-weight:600;font-size:26px;color:var(--navy)}
.nav .brand img{width:44px;height:44px}
.nav ul{display:flex;list-style:none;gap:8px 30px;align-items:center;flex-wrap:wrap}
.nav ul a{text-decoration:none;font-size:15px;font-weight:600;color:var(--navy);padding-bottom:3px;border-bottom:3px solid transparent}
.nav ul a.on{font-weight:800;border-bottom-color:var(--sun)}
.nav .btn{padding:12px 20px}
.nav.dark{background:transparent;position:absolute;left:0;right:0;top:0;z-index:5}
.nav.dark .brand,.nav.dark ul a{color:var(--shell)}
.navmain{display:flex;align-items:center;gap:36px;flex-wrap:wrap}
/* hero */
.hero{background:var(--navy);position:relative;display:grid;grid-template-columns:1fr 39%;min-height:660px;color:var(--shell)}
.hero .txt{padding:190px 24px 70px var(--m)}
.hero h1{color:var(--shell);font-size:clamp(44px,5.6vw,80px)}
.hero p{color:#D8E0E6;font-size:19px;max-width:570px;margin-bottom:34px}
.hero .pic{background:url(img/hero.jpg) 50% 38%/cover}
.hero .pic:before{content:"";display:block;height:100%;background:linear-gradient(180deg,var(--navy) 0,rgba(27,58,84,0) 24%)}
/* intro */
.intro{display:grid;grid-template-columns:1.35fr 1fr;gap:80px;padding-top:96px;padding-bottom:84px}
.intro h2{font-size:clamp(38px,4vw,54px);margin-bottom:26px}
.intro p{font-size:20px;line-height:1.75}
.intro aside p{font-size:18px;color:var(--mute);line-height:1.7}
.intro aside .sunrule{margin-top:6px}
/* sessions */
.sessions{background:var(--apricot);padding-top:78px;padding-bottom:78px;display:grid;grid-template-columns:1fr 360px;gap:56px}
.sessions h2{font-size:clamp(34px,3.6vw,50px);margin:6px 0 40px}
.row{border-top:1px solid var(--rule);padding:30px 0 28px;position:relative}
.row:before{content:"";position:absolute;left:-24px;top:34px;width:8px;height:36px;background:var(--sun)}
.row .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.row h3{font-size:clamp(26px,2.4vw,34px);font-weight:600}
.price{font-family:"Fraunces",serif;font-weight:600;color:var(--red);font-size:clamp(30px,2.8vw,40px)}
.row .meta{font-size:16px;font-weight:600;color:var(--mute);margin-top:4px}
.row .inc{font-size:16px}
.fine{border-top:1px solid var(--rule);padding-top:26px;font-size:15px;color:var(--mute);line-height:1.6}
.sessions .side{background:#F1CDAE;border:1px solid #E0B999;background-size:cover;background-position:50% 40%;min-height:420px}
/* holiday band */
.band{margin:84px var(--m) 0;background:var(--sun);display:flex;align-items:center;gap:22px;padding:30px 40px;color:var(--navy)}
.band img{width:64px;height:64px;flex:none}
.band h2{font-size:clamp(28px,2.6vw,36px)}
.band p{font-weight:600;font-size:16px}
.band .btn{margin-left:auto;flex:none}
/* portfolio */
.port{padding-top:96px;padding-bottom:84px}
.port h2{font-size:clamp(32px,3.4vw,46px);margin:8px 0 40px}
.four{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.four div{height:330px;background-size:cover;background-position:50% 42%}
.note{font-size:16px;color:var(--mute);margin-top:30px;max-width:820px}
/* footer */
.foot{background:var(--navy);color:var(--pale);padding-top:46px;padding-bottom:46px;display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-top:0}
.foot .brand{display:flex;align-items:center;gap:16px;font-family:"Fraunces",serif;font-weight:600;font-size:30px;color:var(--shell)}
.foot .brand img{width:48px;height:48px}
.foot small{display:block;font-size:11px;font-weight:700;letter-spacing:.24em;color:var(--slate);margin:6px 0 30px 64px}
.foot .r{text-align:right;display:flex;flex-direction:column;gap:4px}
.foot .r a{text-decoration:none;font-size:15px}
.foot .ig{color:var(--sun);font-weight:800;font-size:17px;margin-bottom:8px}
.foot .c{font-size:16px;line-height:1.7}
/* inner pages */
.pagehead{padding-top:70px;padding-bottom:40px}
.pagehead h1{font-size:clamp(40px,4.4vw,58px);margin:8px 0 0}
.pagehead .lead{font-size:20px;color:var(--mute);margin-top:18px;max-width:720px}
.about{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;padding-bottom:96px}
.about p{margin-bottom:22px;font-size:18.5px;line-height:1.8}
.about .aside img{width:100%;aspect-ratio:3/4;object-fit:cover}
.about .aside p{color:var(--mute);font-size:18px;margin-top:22px}
.sig{width:210px;margin:6px 0 6px}
.sig-title{font-family:"Fraunces",serif;color:var(--navy);font-size:17px;margin-bottom:24px}
.sig-title span{display:block;font-family:"Nunito",sans-serif;font-weight:800;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:2px}
.grid{columns:3;column-gap:18px;padding-bottom:40px}
.grid img{width:100%;margin-bottom:18px;break-inside:avoid}
.design{display:grid;grid-template-columns:1.2fr 1fr;gap:72px;padding-bottom:70px;align-items:start}
.design p{margin-bottom:18px}
.design h2{font-size:clamp(30px,3vw,40px);margin-bottom:22px}
.design ul{margin:0 0 22px 0;list-style:none}
.design li{padding:9px 0;border-top:1px solid var(--line);font-weight:600}
.design li:last-child{border-bottom:1px solid var(--line)}
.design .h{font-weight:800;color:var(--red);font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin:24px 0 8px}
.design img{width:100%}
.altband{background:var(--apricot);padding-top:70px;padding-bottom:20px}
.cta{padding-top:60px;padding-bottom:90px}
.cta p{font-size:19px;margin:12px 0 26px;max-width:640px}
/* contact */
.holiday{background:var(--navy);color:var(--shell);margin:10px var(--m) 0;padding:48px}
.holiday .label{color:var(--sun)}
.holiday h2{color:var(--shell);font-size:clamp(24px,2.6vw,32px);margin:8px 0 22px}
.holiday p{color:#CBD6DE;font-size:18px;max-width:740px;margin-bottom:12px}
.dates{margin:28px 0 20px}
.dates div{display:grid;grid-template-columns:260px 1fr auto;gap:8px 24px;padding:18px 0;border-top:1px solid #2F4F68;align-items:baseline}
.dates div:last-child{border-bottom:1px solid #2F4F68}
.dates b{font-family:"Fraunces",serif;font-weight:500;font-size:24px;color:var(--shell)}
.dates span{color:var(--pale)}
.dates em{font-style:normal;font-weight:800;color:var(--sun)}
.holiday .sm{font-size:15px;color:var(--slate)}
.every{padding-top:76px;padding-bottom:20px}
.every .r{display:grid;grid-template-columns:300px 1fr auto;gap:6px 28px;align-items:baseline;border-top:1px solid var(--line);padding:22px 0}
.every .r h3{font-size:26px}
.every .r span{color:var(--mute);font-size:16px}
.every .fine{border-top:1px solid var(--line)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:76px;padding-top:60px;padding-bottom:90px}
form label{display:block;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:0 0 6px}
form input,form textarea{width:100%;font:inherit;padding:12px 14px;background:#FFFBF4;border:1px solid #DCCFBF;margin-bottom:22px;color:var(--ink)}
form textarea{height:130px}
.info dt{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.info dd{font-family:"Fraunces",serif;font-size:22px;color:var(--navy);margin:2px 0 22px;word-break:break-word}
.info p{margin-top:8px}
/* phone */
@media(max-width:900px){
 body{font-size:16.5px}
 .nav{padding-top:16px;padding-bottom:12px}
 .nav .brand{font-size:22px}.nav .brand img{width:38px;height:38px}
 .navmain{gap:10px 20px;width:100%;justify-content:space-between}
 .nav ul{gap:6px 18px}
 .nav ul a{font-size:14px}
 .nav .btn{padding:10px 14px;font-size:11px;letter-spacing:.14em}
 .nav.dark{position:static;background:var(--navy)}
 .hero{grid-template-columns:1fr;min-height:0}
 .hero .txt{padding:36px var(--m) 40px;order:1}
 .hero .pic{order:2;height:320px}
 .hero .pic:before{background:none}
 .hero h1{font-size:42px}
 .hero p{font-size:17px}
 .intro,.sessions,.about,.design,.cols{grid-template-columns:1fr;gap:40px}
 .intro{padding-top:56px;padding-bottom:50px}.intro p{font-size:18px}
 .sessions{padding-top:56px;padding-bottom:56px}
 .sessions .side{min-height:300px;order:2}
 .row:before{left:-14px;width:6px;top:34px}
 .row .top{flex-direction:column;gap:2px}
 .band{flex-direction:column;align-items:flex-start;padding:26px 22px;margin-top:56px}
 .band .btn{margin-left:0}
 .four{grid-template-columns:1fr 1fr;gap:12px}.four div{height:200px}
 .port{padding-top:60px;padding-bottom:56px}
 .foot{flex-direction:column;gap:28px}.foot .r{text-align:left}.foot small{margin-left:0;line-height:1.8}
 .grid{columns:2;column-gap:12px}.grid img{margin-bottom:12px}
 .holiday{padding:30px 22px}
 .dates div{grid-template-columns:1fr;gap:2px}
 .every .r{grid-template-columns:1fr auto}
 .every .r span{grid-column:1/-1;order:3}
 .about{padding-bottom:60px}
 .pagehead{padding-top:44px}
}
.every .r span.price{color:var(--red);font-size:clamp(28px,2.6vw,32px)}
