@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Jost:wght@300;400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --cream:#F7F5F0;
  --warm-white:#FDFCFA;
  --charcoal:#1C1C1A;
  --mid:#888780;
  --light:#D3D1C7;
  --border:rgba(28,28,26,0.11);
  --serif:'Cormorant Garamond',serif;
  --sans:'Jost',sans-serif;
  --max:1160px;
  --pad:clamp(1.25rem,4vw,2.5rem);
}

html{scroll-behavior:smooth;}
body{font-family:var(--sans);font-weight:300;color:var(--charcoal);background:var(--warm-white);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;line-height:1.15;}
h1{font-size:clamp(3rem,7vw,5.5rem);}
h2{font-size:clamp(2rem,4vw,3.2rem);}
h3{font-size:clamp(1.4rem,2.5vw,2rem);}
h4{font-size:1.15rem;}
em{font-style:italic;}
p{color:#58574f;line-height:1.85;font-size:15px;}
a{text-decoration:none;color:inherit;}

/* FADE ANIMATIONS */
.fade-up{opacity:0;transform:translateY(24px);animation:fadeUp 0.8s ease forwards;animation-delay:var(--d,0s);}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:1.1rem var(--pad);background:rgba(253,252,250,0.96);backdrop-filter:blur(10px);border-bottom:0.5px solid var(--border);transition:border-color 0.3s;}
.nav-logo{font-family:var(--serif);font-size:1.2rem;font-weight:300;letter-spacing:0.07em;color:var(--charcoal);}
.nav-links{display:flex;align-items:center;gap:2.5rem;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;}
.nav-links a{color:var(--mid);transition:color 0.2s;cursor:pointer;}
.nav-links a:hover{color:var(--charcoal);}
.nav-cta{border:0.5px solid var(--border);padding:8px 20px;color:var(--charcoal)!important;transition:background 0.2s,color 0.2s!important;}
.nav-cta:hover{background:var(--charcoal)!important;color:var(--warm-white)!important;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;}
.nav-toggle span{display:block;width:22px;height:0.5px;background:var(--charcoal);transition:transform 0.3s,opacity 0.3s;}
.nav-toggle.open span:first-child{transform:translateY(5.5px) rotate(45deg);}
.nav-toggle.open span:last-child{transform:translateY(-5.5px) rotate(-45deg);}

/* SHARED */
.eyebrow{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);margin-bottom:1.2rem;}
.section-label{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);}
.section-head{max-width:640px;margin-bottom:3.5rem;}
.section-head h2{margin:0.75rem 0 1rem;}
.section-sub{font-size:15px;color:#666;}
.btn{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:0.15em;text-transform:uppercase;padding:13px 32px;border:0.5px solid var(--charcoal);color:var(--charcoal);background:none;cursor:pointer;transition:background 0.2s,color 0.2s;}
.btn:hover{background:var(--charcoal);color:var(--warm-white);}
.btn-dark{background:var(--charcoal);color:var(--warm-white);}
.btn-dark:hover{background:#3a3a38;}
.btn-light{background:rgba(255,255,255,0.12);color:#fff;border-color:rgba(255,255,255,0.35);}
.btn-light:hover{background:rgba(255,255,255,0.22);}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap;}
.img-ph{width:100%;display:flex;align-items:flex-end;padding:1rem;position:relative;}
.img-caption{font-size:11px;color:var(--mid);letter-spacing:0.08em;}

/* SPLASH */
.section-splash{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.splash-bg{position:absolute;inset:0;background:#e0dcd4;}
.splash-content{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem;}
.splash-logo{font-family:var(--serif);font-size:clamp(2rem,5vw,3.5rem);font-weight:300;letter-spacing:0.12em;color:var(--charcoal);opacity:0;animation:fadeUp 1s ease 0.3s forwards;}
.splash-tagline{font-size:11px;letter-spacing:0.25em;text-transform:uppercase;color:var(--mid);opacity:0;animation:fadeUp 1s ease 0.5s forwards;}
.splash-explore{display:flex;flex-direction:column;align-items:center;gap:0.75rem;margin-top:2rem;cursor:pointer;opacity:0;animation:fadeUp 1s ease 0.8s forwards;text-decoration:none;}
.splash-explore span{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--charcoal);border-bottom:0.5px solid var(--charcoal);padding-bottom:3px;transition:opacity 0.2s;}
.splash-explore:hover span{opacity:0.5;}
.splash-arrow{font-size:1.2rem;color:var(--charcoal);animation:bounce 2s ease infinite 1.5s;}
@keyframes bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}
.journal-feat-link{display:block;transition:opacity 0.2s;}
.journal-feat-link:hover{opacity:0.85;}
.home-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:stretch;padding-bottom:4rem;}
.home-text h1{margin-bottom:1.5rem;}
.hero-sub{max-width:460px;margin-bottom:2rem;}
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.home-img-tall .img-ph{height:100%;}
.home-img-stack{display:flex;flex-direction:column;gap:3px;}
.home-img-stack .img-ph{flex:1;}
.stats-strip{border-top:0.5px solid var(--border);display:flex;justify-content:center;align-items:center;padding:2.5rem var(--pad);max-width:var(--max);margin:0 auto;}
.stats-strip .stat{text-align:center;flex:1;max-width:200px;}
.stat-n{font-family:var(--serif);font-size:2.6rem;font-weight:300;line-height:1;}
.stat-l{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--mid);margin-top:0.3rem;}
.stat-div{width:0.5px;height:40px;background:var(--border);flex-shrink:0;margin:0 1.5rem;}

/* HOME */
.section-home{padding-top:calc(60px + 5rem);padding-bottom:0;}
.section-portfolio{max-width:var(--max);margin:0 auto;padding:6rem var(--pad);}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;}
.p-tile{cursor:pointer;}
.p-tile-img{aspect-ratio:3/4;position:relative;overflow:hidden;}
.p-tile-hover{position:absolute;inset:0;background:rgba(28,28,26,0);display:flex;align-items:flex-end;padding:1.5rem;transition:background 0.35s;}
.p-tile:hover .p-tile-hover{background:rgba(28,28,26,0.55);}
.p-tile-hover-text{opacity:0;transform:translateY(8px);transition:opacity 0.3s,transform 0.3s;}
.p-tile:hover .p-tile-hover-text{opacity:1;transform:translateY(0);}
.p-tile-title{font-family:var(--serif);font-size:1.25rem;font-weight:300;color:#fff;}
.p-tile-meta{font-size:11px;color:rgba(255,255,255,0.65);letter-spacing:0.08em;margin-top:0.2rem;}
.p-tile-cta{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.8);margin-top:0.75rem;}
.p-tile-info{display:flex;justify-content:space-between;align-items:center;padding:0.85rem 0;border-bottom:0.5px solid var(--border);}
.p-tile-name{font-size:13px;letter-spacing:0.04em;}
.p-tile-year{font-size:11px;color:var(--mid);}
.coming-badge{position:absolute;top:1rem;left:1rem;font-size:10px;letter-spacing:0.15em;text-transform:uppercase;background:var(--charcoal);color:#fff;padding:5px 14px;}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(18,18,16,0.97);display:flex;align-items:flex-start;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.4s;overflow-y:auto;}
.lightbox.open{opacity:1;pointer-events:all;}
.lb-close{position:fixed;top:1.5rem;right:1.5rem;z-index:501;background:none;border:none;color:rgba(255,255,255,0.5);font-size:1.1rem;cursor:pointer;font-family:var(--sans);letter-spacing:0.1em;transition:color 0.2s;padding:8px 12px;}
.lb-close:hover{color:#fff;}
.lb-inner{max-width:1100px;width:100%;margin:auto;padding:5rem var(--pad) 3rem;display:grid;grid-template-columns:1fr 380px;gap:4rem;align-items:start;}
.lb-gallery{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.lb-gallery-img{aspect-ratio:4/3;}
.lb-gallery-img:first-child{grid-column:1/-1;aspect-ratio:16/9;}
.lb-eyebrow{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin-bottom:0.75rem;}
.lb-title{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:#fff;margin-bottom:1rem;}
.lb-desc{font-size:14px;color:rgba(255,255,255,0.6);line-height:1.9;margin-bottom:1.5rem;}
.lb-tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:2rem;}
.lb-tag{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;border:0.5px solid rgba(255,255,255,0.2);padding:4px 12px;color:rgba(255,255,255,0.5);}
.lb-btn{display:block;text-align:center;}

/* SERVICES */
.section-services{padding:6rem var(--pad);background:var(--cream);}
.section-services .section-head{max-width:var(--max);margin:0 auto 3.5rem;}
.services-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-bottom:3px;}
.svc-card{background:var(--warm-white);padding:2.5rem;display:flex;flex-direction:column;}
.svc-card-featured{background:var(--charcoal);}
.svc-card-featured h3{color:#fff;}
.svc-card-featured p{color:rgba(255,255,255,0.65);}
.svc-card-featured .svc-list li{color:rgba(255,255,255,0.55);border-bottom-color:rgba(255,255,255,0.1);}
.svc-card-featured .svc-list li::before{color:rgba(255,255,255,0.2);}
.svc-card-featured .svc-price{color:#fff;}
.svc-card-featured .svc-btn{background:rgba(255,255,255,0.12);border-color:rgba(255,255,255,0);color:#fff;}
.svc-card-featured .svc-btn:hover{background:rgba(255,255,255,0.22);}
.svc-num{font-family:var(--serif);font-size:2.5rem;color:var(--light);margin-bottom:1.25rem;}
.svc-card-featured .svc-num{color:rgba(255,255,255,0.2);}
.svc-card h3{margin-bottom:1rem;}
.svc-card p{margin-bottom:1.5rem;}
.svc-list{list-style:none;margin-bottom:auto;padding-bottom:1.5rem;}
.svc-list li{font-size:13px;color:#666;padding:0.5rem 0 0.5rem 1rem;border-bottom:0.5px solid var(--border);position:relative;}
.svc-list li::before{content:'—';position:absolute;left:0;color:var(--light);}
.svc-price{font-family:var(--serif);font-size:2rem;font-weight:300;margin:1.5rem 0 1rem;}
.svc-price span{font-size:1rem;color:var(--mid);}
.svc-btn{display:block;text-align:center;}
.consult-band{max-width:var(--max);margin:0 auto 4rem;background:var(--charcoal);padding:4rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.cb-label{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-bottom:0.5rem;}
.cb-price{font-family:var(--serif);font-size:3.2rem;font-weight:300;color:#fff;line-height:1;}
.cb-price span{font-size:1.1rem;color:rgba(255,255,255,0.4);}
.cb-detail{font-size:13px;color:rgba(255,255,255,0.45);line-height:1.8;margin-top:0.75rem;}
.process-row{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;}
.process-step{background:var(--warm-white);padding:2rem;border-top:2px solid var(--charcoal);}
.process-n{font-family:var(--serif);font-size:2rem;color:var(--light);margin-bottom:1rem;}
.process-step h4{font-size:1rem;margin-bottom:0.5rem;}
.process-step p{font-size:13px;}

/* ABOUT */
.section-about{padding:6rem var(--pad);}
.about-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;margin-bottom:6rem;}
.about-img .img-ph{aspect-ratio:3/4;}
.about-text h2{margin:0.75rem 0 1.5rem;}
.about-text p{margin-bottom:1rem;}
blockquote{font-family:var(--serif);font-size:1.5rem;font-weight:300;font-style:italic;line-height:1.5;border-left:0.5px solid var(--charcoal);padding-left:1.5rem;margin:2rem 0;}
.values-list{margin-top:2rem;display:flex;flex-direction:column;gap:1.25rem;}
.value-item{display:flex;gap:1.25rem;align-items:start;padding-bottom:1.25rem;border-bottom:0.5px solid var(--border);}
.value-num{font-family:var(--serif);font-size:1.1rem;font-style:italic;color:var(--light);flex-shrink:0;width:20px;padding-top:2px;}
.value-item h4{font-size:0.95rem;margin-bottom:0.3rem;}
.value-item p{font-size:13px;margin:0;}
.london-band{background:var(--cream);margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad));}
.london-band-inner{max-width:var(--max);margin:0 auto;padding:5rem var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.london-img .img-ph{aspect-ratio:1/1;}
.london-text h2{margin:0.75rem 0 1.5rem;}
.london-text p{margin-bottom:1rem;}

/* JOURNAL */
.section-journal{padding:6rem var(--pad);background:var(--cream);}
.section-journal .section-head{max-width:var(--max);margin:0 auto 3.5rem;}
.journal-featured{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;margin-bottom:3rem;padding-bottom:3rem;border-bottom:0.5px solid var(--border);}
.journal-feat-img .img-ph{height:auto;}
.journal-feat-text h3{font-size:1.6rem;margin:0.75rem 0 1rem;}
.j-tag{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--mid);}
.j-meta{font-size:11px;color:var(--mid);letter-spacing:0.08em;margin-top:1rem;}
.journal-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:4rem;}
.j-card{background:var(--warm-white);}
.j-card .img-ph{height:auto;}
.j-card-body{padding:1.25rem;}
.j-card-body h4{font-size:1rem;margin:0.5rem 0 0.5rem;}
.journal-signup{max-width:480px;margin:0 auto;text-align:center;}
.journal-signup h3{margin-bottom:0.75rem;}
.journal-signup p{margin-bottom:1.5rem;}
.signup-row{display:flex;}
.signup-input{flex:1;font-family:var(--sans);font-size:13px;font-weight:300;padding:13px 16px;border:0.5px solid var(--charcoal);border-right:none;background:none;outline:none;color:var(--charcoal);}
.signup-input::placeholder{color:var(--mid);}

/* CTA */
.section-cta{padding:7rem var(--pad);text-align:center;border-top:0.5px solid var(--border);}
.section-cta h2{margin-bottom:1rem;}
.section-cta p{max-width:440px;margin:0 auto;}

/* FOOTER */
.footer{background:var(--cream);border-top:0.5px solid var(--border);padding:4rem var(--pad) 2rem;}
.footer-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:0.5px solid var(--border);}
.footer-logo{font-family:var(--serif);font-size:1.3rem;font-weight:300;letter-spacing:0.06em;margin-bottom:0.35rem;}
.footer-tag{font-size:12px;color:var(--mid);letter-spacing:0.1em;}
.footer-ig{font-size:12px;color:var(--mid);display:block;margin-top:0.75rem;transition:color 0.2s;}
.footer-ig:hover{color:var(--charcoal);}
.footer-col{display:flex;flex-direction:column;gap:0.5rem;}
.footer-col-label{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);margin-bottom:0.5rem;}
.footer-col a{font-size:13px;color:#666;transition:color 0.2s;}
.footer-col a:hover{color:var(--charcoal);}
.footer-base{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-between;padding-top:2rem;font-size:11px;color:var(--mid);letter-spacing:0.06em;}

/* RESPONSIVE */
@media(max-width:960px){
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--warm-white);border-bottom:0.5px solid var(--border);padding:0;}
  .nav-links.open{display:flex;}
  .nav-links a{padding:1rem var(--pad);border-bottom:0.5px solid var(--border);font-size:13px;}
  .nav-links .nav-cta{border-bottom:none;}
  .nav-cta{margin:1rem var(--pad);padding:12px;text-align:center;}
  .nav-toggle{display:flex;}
  .home-inner{grid-template-columns:1fr;gap:2.5rem;}
  .home-grid{grid-template-columns:1fr 1fr;}
  .lb-inner{grid-template-columns:1fr;padding-top:4rem;}
  .lb-gallery{margin-bottom:1.5rem;}
  .services-grid{grid-template-columns:1fr;}
  .consult-band{grid-template-columns:1fr;gap:2.5rem;padding:2.5rem;}
  .process-row{grid-template-columns:1fr 1fr;}
  .about-grid{grid-template-columns:1fr;gap:2.5rem;}
  .london-band{margin-left:0;margin-right:0;}
  .london-band-inner{grid-template-columns:1fr;gap:2.5rem;padding:3rem var(--pad);}
  .journal-featured{grid-template-columns:1fr;gap:2rem;}
  .journal-grid{grid-template-columns:1fr 1fr;}
  .footer-inner{grid-template-columns:1fr 1fr;}
  .footer-brand{grid-column:1/-1;}
  .stats-strip{flex-wrap:wrap;gap:1.5rem;}
  .stats-strip .stat{min-width:120px;}
  .stat-div{display:none;}
}
@media(max-width:600px){
  h1{font-size:2.6rem;}
  .portfolio-grid{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:1fr;}
  .process-row{grid-template-columns:1fr;}
  .journal-grid{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;}
  .signup-row{flex-direction:column;}
  .signup-input{border-right:0.5px solid var(--charcoal);border-bottom:none;}
  .lb-inner{padding:4rem 1.25rem 2rem;}
  .lb-gallery{grid-template-columns:1fr;}
  .lb-gallery-img:first-child{grid-column:auto;}
}
