
:root{
  --paper:#f6f4f1;
  --ink:#262321;
  --muted:#746e68;
  --line:#d8d2cb;
  --panel:#fbfaf8;
  --accent:#c7dde4;
  --accent2:#e6eef0;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
img,video{max-width:100%;display:block}

.wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(246,244,241,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(216,210,203,.75);
}
.header-inner{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}
.brand{
  display:flex;
  flex-direction:column;
  line-height:1.12;
}
.brand-name{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.28rem;
}
.brand-tagline{
  margin-top:3px;
  font-size:.62rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.brand-domain{
  margin-top:2px;
  font-size:.6rem;
  letter-spacing:.05em;
  color:var(--muted);
}

nav{
  display:flex;
  gap:32px;
  align-items:center;
}
nav a{
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
nav a:hover,nav a.active{opacity:.55}
.nav-client{
  border:1px solid var(--ink);
  padding:10px 13px;
}
.menu-btn{display:none;border:0;background:transparent;text-transform:uppercase;letter-spacing:.12em}

.hero{
  min-height:500px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:9%;
  padding:16px 0 8px;
}
.hero-art{
  min-height:560px;
  background:
    radial-gradient(circle at 72% 22%,rgba(255,255,255,.9),transparent 16%),
    linear-gradient(155deg,#bcd4dd 0 34%,#d9c3a4 35% 47%,#80745d 48% 62%,#9c6647 63%);
  display:grid;
  place-items:center;
  color:rgba(38,35,33,.48);
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.eyebrow{
  width:72px;border-top:2px solid rgba(38,35,33,.24);margin-bottom:34px
}
h1,h2,h3{font-family:var(--serif);font-weight:400}
h1{
  font-size:clamp(3.3rem,6vw,6rem);
  line-height:1.02;
  margin:0;
}
h1 em,h2 em{font-style:italic;font-weight:400}
.hero p{
  color:var(--muted);
  font-size:1.05rem;
  max-width:520px;
  margin:28px 0 36px;
}
.text-link,.button{
  display:inline-flex;align-items:center;gap:16px;
  text-transform:uppercase;letter-spacing:.16em;font-size:.72rem
}
.button{
  border:1px solid var(--ink);
  padding:13px 18px;
  background:transparent;
  cursor:pointer;
}
.button.filled{background:var(--ink);color:white}
.button:hover{opacity:.72}

.section{padding:105px 0}
.section-title{
  display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:52px
}
.section-title h2{font-size:clamp(2.6rem,5vw,4.8rem);margin:0}
.section-title p{
  margin:0;color:var(--muted);font-size:.7rem;letter-spacing:.17em;text-transform:uppercase
}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  padding:26px;
}
.card h3{font-size:1.35rem;margin:0 0 10px}
.card p{color:var(--muted);margin:0}

.footer{
  border-top:1px solid var(--line);
  margin-top:70px;
  padding:50px 0 30px;
}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px
}
.footer-label{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase}
.footer p,.footer a{color:var(--muted)}
.footer-bottom{
  border-top:1px solid var(--line);
  margin-top:34px;padding-top:22px;
  display:flex;justify-content:space-between;gap:20px;
  font-size:.68rem;letter-spacing:.1em;text-transform:uppercase
}

/* client access */
.client-hero{
  padding:90px 0 60px;
  text-align:center;
}
.client-hero h1{font-size:clamp(3rem,6vw,5.5rem)}
.client-hero p{
  color:var(--muted);
  max-width:680px;
  margin:20px auto 0;
}
.client-shell{
  width:min(920px,calc(100% - 40px));
  margin:0 auto 100px;
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  border:1px solid var(--line);
  background:var(--panel);
}
.client-info{
  padding:54px;
  background:linear-gradient(160deg,var(--accent2),#d7e4e8);
}
.client-info h2{font-size:2.2rem;margin:0 0 18px}
.client-info p{color:#5f5a55}
.client-info ul{padding-left:18px;color:#5f5a55}
.login-panel{padding:54px}
.login-panel h2{font-size:2rem;margin-top:0}
.field{display:block;margin:0 0 24px}
.field span{
  display:block;
  font-size:.68rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.field input{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:11px 0 13px;
  outline:none;
}
.field input:focus{border-bottom-color:var(--ink)}
.help{
  margin-top:22px;color:var(--muted);font-size:.86rem
}
.demo-note{
  margin-top:26px;padding:14px 16px;background:#f0ece7;color:#625c56;font-size:.84rem
}
.login-error{color:#8a3e3e;font-size:.85rem;min-height:1.3em;margin-top:14px}

/* client gallery */
.gallery-top{
  padding:70px 0 28px;
  display:flex;
  justify-content:space-between;
  gap:35px;
  align-items:end;
}
.gallery-top h1{font-size:clamp(2.8rem,5vw,4.8rem)}
.gallery-top p{color:var(--muted);margin:14px 0 0}
.gallery-actions{display:flex;gap:12px;flex-wrap:wrap}
.gallery-summary{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:17px 0;
  display:flex;gap:32px;flex-wrap:wrap;
  font-size:.72rem;letter-spacing:.13em;text-transform:uppercase
}
.media-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  padding:38px 0 85px;
}
.media-card{background:var(--panel);border:1px solid var(--line)}
.media-thumb{
  aspect-ratio:4/3;
  display:grid;place-items:center;
  color:rgba(38,35,33,.5);
  text-transform:uppercase;letter-spacing:.12em;font-size:.65rem
}
.media-card:nth-child(4n+1) .media-thumb{background:linear-gradient(145deg,#c3d0d5,#8ca0a6 46%,#4f6268)}
.media-card:nth-child(4n+2) .media-thumb{background:linear-gradient(155deg,#d6c5b2,#9c735e 55%,#493d36)}
.media-card:nth-child(4n+3) .media-thumb{background:linear-gradient(145deg,#d3d5cd,#8b9c86 55%,#495548)}
.media-card:nth-child(4n+4) .media-thumb{background:linear-gradient(160deg,#d7d0c4,#8b7d6f 50%,#514842)}
.media-thumb.video::after{
  content:"▶";display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(38,35,33,.55);
  border-radius:50%;font-size:1.1rem;margin-top:10px
}
.media-meta{
  padding:14px 15px 16px;
  display:flex;justify-content:space-between;align-items:center;gap:12px
}
.media-name{font-size:.82rem}
.media-links{display:flex;gap:12px}
.media-links a{
  font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)
}
.security-note{
  margin-bottom:80px;
  background:#efece7;
  padding:22px;
  color:#625c56;
  font-size:.9rem;
}

@media(max-width:860px){
  .menu-btn{display:block}
  nav{
    display:none;position:absolute;right:20px;top:78px;background:var(--paper);
    border:1px solid var(--line);padding:22px;flex-direction:column;align-items:flex-start
  }
  nav.open{display:flex}
  .hero{grid-template-columns:1fr;gap:45px}
  .hero-art{min-height:430px}
  .grid-3{grid-template-columns:1fr}
  .client-shell{grid-template-columns:1fr}
  .gallery-top{align-items:flex-start;flex-direction:column}
  .media-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:560px){
  .wrap{width:min(100% - 28px,1180px)}
  .header-inner{min-height:72px}
  .brand-name{font-size:1.05rem}
  .brand-tagline{font-size:.53rem}
  .brand-domain{font-size:.53rem}
  .hero{padding-top:40px}
  .client-shell{width:calc(100% - 28px)}
  .client-info,.login-panel{padding:34px 26px}
  .media-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column}
}


/* shared interior pages */
.page-hero{
  padding:95px 0 55px;
  max-width:980px;
}
.page-hero h1{max-width:900px}
.page-hero>p:last-child{
  color:var(--muted);
  max-width:760px;
  font-size:1.05rem;
  margin-top:24px;
}
.section-kicker{
  font-size:.68rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 22px;
}
.alt-section{background:rgba(230,238,240,.42)}
.content-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.feature-panel{
  padding:28px 0;
  border-top:1px solid var(--line);
}
.feature-panel h3{font-size:1.45rem;margin:0 0 10px}
.feature-panel p{margin:0;color:var(--muted)}
.cta-row{margin-top:38px}
.portfolio-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
}
.portfolio-card{
  background:var(--panel);
  border:1px solid var(--line);
}
.portfolio-thumb{
  aspect-ratio:16/10;
  display:grid;
  place-items:center;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.68rem;
  color:rgba(38,35,33,.55);
  background:linear-gradient(145deg,#c3d0d5,#8ca0a6 46%,#4f6268);
}
.portfolio-thumb.alt-a{background:linear-gradient(155deg,#d6c5b2,#9c735e 55%,#493d36)}
.portfolio-thumb.alt-b{background:linear-gradient(145deg,#d3d5cd,#8b9c86 55%,#495548)}
.portfolio-thumb.video-thumb{background:linear-gradient(160deg,#d7d0c4,#8b7d6f 50%,#514842)}
.portfolio-copy{padding:22px}
.portfolio-copy h3{margin:0 0 8px;font-size:1.4rem}
.portfolio-copy p{margin:0;color:var(--muted)}
.split-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8%;
  align-items:center;
}
.about-art{
  min-height:480px;
  display:grid;
  place-items:center;
  background:linear-gradient(150deg,#bed4dc,#d7c4a8 48%,#866a58);
  color:rgba(38,35,33,.5);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.68rem;
}
.subhead{font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;margin-top:0}
.split-layout p,.contact-copy p{color:var(--muted)}
.contact-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:8%;
  align-items:start;
}
.contact-form{
  background:var(--panel);
  border:1px solid var(--line);
  padding:36px;
}
.field select,.field textarea{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:11px 0 13px;
  outline:none;
  color:var(--ink);
  font:inherit;
}
.field textarea{resize:vertical}
.form-note{color:var(--muted);font-size:.82rem;margin:18px 0 0}

@media(max-width:860px){
  .content-grid{grid-template-columns:1fr}
  .portfolio-grid{grid-template-columns:1fr}
  .split-layout,.contact-layout{grid-template-columns:1fr;gap:45px}
  .about-art{min-height:380px}
}


/* Home page refinements */
.home-hero-title{
  font-size:clamp(3rem,5.2vw,5.35rem);
  line-height:1.03;
}
.home-compact-section{
  padding:8px 0;
}
.home-compact-section .section-title{
  margin-bottom:8px;
}
.home-feature-link{
  display:block;
  transition:transform .2s ease, opacity .2s ease;
}
.home-feature-link:hover{
  transform:translateY(-3px);
  opacity:.9;
}
.home-feature-link:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:4px;
}
@media(max-width:860px){
  .home-compact-section{padding:8px 0}
}
@media(max-width:560px){
  .home-hero-title{font-size:clamp(2.7rem,12vw,4.1rem)}
  .home-compact-section{padding:6px 0}
}


/* Services page spacing refinements */
.services-page-hero{
  padding-top:72px;
  padding-bottom:36px;
}
.services-final-section{
  padding-bottom:58px;
}
.services-final-section .cta-row{
  margin-bottom:0;
}
@media(max-width:860px){
  .services-page-hero{
    padding-top:56px;
    padding-bottom:28px;
  }
  .services-final-section{
    padding-bottom:46px;
  }
}
@media(max-width:560px){
  .services-page-hero{
    padding-top:42px;
    padding-bottom:22px;
  }
  .services-final-section{
    padding-bottom:38px;
  }
}


/* Portfolio page spacing refinements */
.portfolio-page-hero{
  padding-top:70px;
  padding-bottom:34px;
}
.portfolio-main-section{
  padding-top:58px;
  padding-bottom:56px;
}
.portfolio-main-section .cta-row{
  margin-top:28px;
  margin-bottom:0;
}
@media(max-width:860px){
  .portfolio-page-hero{
    padding-top:54px;
    padding-bottom:26px;
  }
  .portfolio-main-section{
    padding-top:46px;
    padding-bottom:44px;
  }
}
@media(max-width:560px){
  .portfolio-page-hero{
    padding-top:40px;
    padding-bottom:20px;
  }
  .portfolio-main-section{
    padding-top:36px;
    padding-bottom:36px;
  }
}


/* About page spacing refinements */
.about-page-hero{
  padding-top:68px;
  padding-bottom:32px;
}
.about-story-section{
  padding-top:58px;
  padding-bottom:64px;
}
.about-expect-section{
  padding-top:72px;
  padding-bottom:58px;
}
.about-expect-section .cta-row{
  margin-top:30px;
  margin-bottom:0;
}
@media(max-width:860px){
  .about-page-hero{
    padding-top:52px;
    padding-bottom:24px;
  }
  .about-story-section{
    padding-top:46px;
    padding-bottom:52px;
  }
  .about-expect-section{
    padding-top:58px;
    padding-bottom:46px;
  }
}
@media(max-width:560px){
  .about-page-hero{
    padding-top:40px;
    padding-bottom:20px;
  }
  .about-story-section{
    padding-top:36px;
    padding-bottom:42px;
  }
  .about-expect-section{
    padding-top:46px;
    padding-bottom:38px;
  }
}


/* Contact page spacing refinements */
.contact-page-hero{
  padding-top:66px;
  padding-bottom:30px;
}

.contact-main-section{
  padding-top:54px;
  padding-bottom:56px;
}

.contact-main-section .contact-layout{
  align-items:start;
}

.form-preview-note{
  margin-top:16px;
  font-size:.78rem;
}

@media(max-width:860px){
  .contact-page-hero{
    padding-top:50px;
    padding-bottom:24px;
  }
  .contact-main-section{
    padding-top:42px;
    padding-bottom:44px;
  }
}

@media(max-width:560px){
  .contact-page-hero{
    padding-top:38px;
    padding-bottom:20px;
  }
  .contact-main-section{
    padding-top:34px;
    padding-bottom:36px;
  }
}


/* Client Access / Portal Instructions */
.client-access-hero{
  padding-top:64px;
  padding-bottom:28px;
  max-width:980px;
}

.client-access-main{
  padding-top:50px;
  padding-bottom:58px;
}

.client-access-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:8%;
  align-items:start;
}

.client-access-copy .subhead{
  margin-bottom:34px;
}

.client-step{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:22px;
  padding:24px 0;
  border-top:1px solid var(--line);
}

.client-step:last-child{
  border-bottom:1px solid var(--line);
}

.client-step-number{
  font-size:.7rem;
  letter-spacing:.14em;
  color:var(--muted);
  padding-top:5px;
}

.client-step h3{
  margin:0 0 8px;
  font-size:1.35rem;
}

.client-step p{
  margin:0;
  color:var(--muted);
}

.client-access-panel{
  background:var(--panel);
  border:1px solid var(--line);
  padding:34px;
  position:sticky;
  top:118px;
}

.client-access-panel h2{
  font-size:2rem;
  margin:0 0 14px;
}

.client-access-panel>p{
  color:var(--muted);
}

.client-access-button{
  margin:14px 0 28px;
}

.client-retention-note,
.client-help-note{
  border-top:1px solid var(--line);
  padding-top:22px;
  margin-top:22px;
}

.client-retention-note h3,
.client-help-note h3{
  margin:0 0 8px;
  font-size:1.15rem;
}

.client-retention-note p,
.client-help-note p{
  color:var(--muted);
  margin:0 0 12px;
}

@media(max-width:860px){
  .client-access-grid{
    grid-template-columns:1fr;
    gap:42px;
  }
  .client-access-panel{
    position:static;
  }
  .client-access-hero{
    padding-top:50px;
    padding-bottom:22px;
  }
  .client-access-main{
    padding-top:40px;
    padding-bottom:46px;
  }
}

@media(max-width:560px){
  .client-access-hero{
    padding-top:38px;
    padding-bottom:18px;
  }
  .client-access-main{
    padding-top:32px;
    padding-bottom:38px;
  }
  .client-access-panel{
    padding:26px;
  }
  .client-step{
    grid-template-columns:38px 1fr;
    gap:16px;
  }
}


/* Contact form live-submission helpers */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

.form-status{
  padding:14px 16px;
  margin:0 0 22px;
  border:1px solid var(--line);
  font-size:.92rem;
}

.form-status.success{
  background:#edf3ee;
}

.form-status.error{
  background:#f5ecea;
}


/* Aggressive homepage spacing overrides */
.home-compact-section.section{
  padding-top:8px;
  padding-bottom:8px;
}

.home-compact-section + .home-compact-section{
  margin-top:0;
}

.home-compact-section .section-title{
  margin-top:0;
  margin-bottom:8px;
}

.home-compact-section .cta-row{
  margin-top:14px;
}

.home-compact-section .card{
  margin-bottom:0;
}

.home-compact-section:last-of-type{
  padding-bottom:14px;
}


/* Homepage section-by-section aggressive spacing */
main > section:nth-of-type(1){
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}

main > section:nth-of-type(2){
  padding-top:14px !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

main > section:nth-of-type(2) .section-title{
  margin-bottom:10px !important;
}

main > section:nth-of-type(3){
  padding-top:14px !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

main > section:nth-of-type(3) .section-title{
  margin-bottom:10px !important;
}

main > section:nth-of-type(4){
  padding-top:14px !important;
  margin-top:0 !important;
}

/* Keep the spacing below "Already a Client?" as-is */


/* Mobile title sizing and layout refinements */
@media(max-width:560px){

  /* Give section headings the full phone width instead of squeezing
     the heading and descriptive line side-by-side. */
  .section-title{
    display:block;
    margin-bottom:14px;
  }

  .section-title h2{
    font-size:2.15rem;
    line-height:1.02;
    white-space:nowrap;
  }

  .section-title p{
    margin-top:10px;
    max-width:none;
    font-size:.62rem;
    line-height:1.55;
  }

  /* Home hero: still prominent, but much better proportioned on iPhone. */
  .home-hero-title{
    font-size:2.55rem;
    line-height:1.01;
  }

  /* Slightly reduce oversized interior headings used in homepage CTA areas. */
  .home-compact-section h2{
    max-width:100%;
  }
}


/* Desktop: keep Have a Project in Mind? on one line */
@media(min-width:901px){
  main > section:nth-of-type(5) .section-title h2{
    font-size:clamp(2.8rem,3.8vw,3.9rem);
    white-space:nowrap;
    flex-shrink:0;
  }
}
