
:root {
  --ms-bg:#0b0b0b;
  --ms-surface:#121212;
  --ms-surface-2:#181818;
  --ms-text:#f4f4f1;
  --ms-muted:#9d9d98;
  --ms-line:rgba(255,255,255,.13);
  --ms-accent:#d88735;
  --ms-max:1320px;
}

* { box-sizing:border-box; }
body.marsou-clean {
  margin:0;
  background:var(--ms-bg);
  color:var(--ms-text);
  font-family:"Open Sans",Arial,sans-serif;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  -webkit-font-smoothing:antialiased;
}
body.marsou-clean a { color:inherit; }
.site-main { flex:1 0 auto; width:100%; }
img { max-width:100%; }

/* HEADER */
.site-header {
  position:sticky;
  top:0;
  z-index:999;
  background:rgba(8,8,8,.88);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.site-header__inner {
  width:min(var(--ms-max), calc(100% - 64px));
  min-height:92px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
.site-branding { display:flex; align-items:center; min-width:0; }
.site-branding .site-title,
.site-branding .custom-logo-link { display:block; line-height:0; }
.site-branding .site-title img,
.site-branding .custom-logo-link img {
  display:block;
  width:auto;
  max-width:188px;
  max-height:68px;
  object-fit:contain;
}
.primary-nav ul {
  list-style:none;
  display:flex;
  align-items:center;
  gap:30px;
  padding:0;
  margin:0;
}
.primary-nav a {
  position:relative;
  display:block;
  padding:12px 0;
  color:#ddd;
  text-decoration:none;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:color .2s ease;
}
.primary-nav a::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:5px;
  height:1px;
  background:#fff;
  transition:right .25s ease;
}
.primary-nav a:hover,
.primary-nav .current-menu-item>a { color:#fff; }
.primary-nav a:hover::after,
.primary-nav .current-menu-item>a::after { right:0; }
.menu-toggle {
  display:none;
  width:46px;
  height:46px;
  padding:11px;
  border:0;
  background:transparent;
}
.menu-toggle__line {
  display:block;
  width:100%;
  height:1px;
  background:#fff;
  margin:6px 0;
}

/* TYPOGRAPHY / SHARED */
.ms-kicker {
  margin:0 0 18px;
  color:var(--ms-muted);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.ms-section {
  width:min(var(--ms-max), calc(100% - 64px));
  margin:0 auto;
  padding:90px 0;
}
.ms-section__head {
  display:grid;
  grid-template-columns:1fr minmax(280px, 430px);
  gap:60px;
  align-items:end;
  margin-bottom:40px;
}
.ms-section h2,
.ms-page-intro h1,
.ms-contact h1,
.ms-about h1,
.ms-cta h2 {
  margin:0;
  font-family:"Philosopher",Georgia,serif;
  font-weight:400;
  letter-spacing:-.035em;
}
.ms-section h2 { font-size:clamp(2.4rem,4.5vw,4.2rem); line-height:.95; }
.ms-section__note { margin:0; color:var(--ms-muted); line-height:1.8; }
em { color:var(--ms-accent); font-style:italic; }
.ms-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 25px;
  border:1px solid transparent;
  text-decoration:none;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.ms-button--light { background:#fff; color:#090909!important; }
.ms-button--light:hover { background:var(--ms-accent); color:#080808!important; }
.ms-button--outline { border-color:rgba(255,255,255,.35); }
.ms-button--outline:hover { background:#fff; color:#080808!important; }
.ms-text-link {
  display:inline-flex;
  gap:12px;
  align-items:center;
  text-decoration:none;
  color:#fff;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.ms-text-link span { font-size:1.3em; }

/* HERO */
.ms-hero {
  position:relative;
  height:calc(100vh - 92px);
  min-height:650px;
  overflow:hidden;
  background:#111;
}
.ms-hero__image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.65) contrast(1.04);
  transform:scale(1.015);
}
.ms-hero__shade {
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,.34) 53%,rgba(0,0,0,.08) 100%),
    linear-gradient(0deg,rgba(0,0,0,.45),transparent 45%);
}
.ms-hero__content {
  position:relative;
  z-index:2;
  width:min(var(--ms-max), calc(100% - 64px));
  height:100%;
  margin:auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding-bottom:4vh;
}
.ms-hero h1 {
  max-width:850px;
  margin:0;
  font-family:"Philosopher",Georgia,serif;
  font-size:clamp(3.2rem,6.5vw,5.6rem);
  line-height:.78;
  font-weight:400;
  letter-spacing:-.055em;
}
.ms-hero__intro {
  max-width:550px;
  margin:26px 0 26px;
  color:#d2d2ce;
  font-size:1.05rem;
  line-height:1.8;
}
.ms-actions { display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
.ms-scroll-cue {
  position:absolute;
  right:32px;
  bottom:40px;
  z-index:2;
  color:rgba(255,255,255,.55);
  font-size:.65rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  writing-mode:vertical-rl;
}

/* WORK GRID */
.ms-work { padding-top:105px; }
.ms-portfolio-grid {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.ms-work-card {
  position:relative;
  grid-column:span 4;
  height:440px;
  overflow:hidden;
  background:#171717;
  text-decoration:none;
}
.ms-work-card--wide { grid-column:span 8; }
.ms-work-card img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.78);
  transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease;
}
.ms-work-card__overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 54%);
}
.ms-work-card__meta {
  position:absolute;
  left:28px;
  right:28px;
  bottom:26px;
}
.ms-work-card__meta small {
  display:block;
  color:rgba(255,255,255,.65);
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.ms-work-card__meta strong {
  display:block;
  font-family:"Philosopher",Georgia,serif;
  font-size:2rem;
  font-weight:400;
}
.ms-work-card:hover img { transform:scale(1.045); filter:saturate(1); }

/* CTA */
.ms-cta {
  width:min(var(--ms-max), calc(100% - 64px));
  margin:10px auto 90px;
  padding:90px 0 10px;
  border-top:1px solid var(--ms-line);
}
.ms-cta h2 {
  max-width:920px;
  margin-bottom:40px;
  font-size:clamp(2.6rem,5vw,4.8rem);
  line-height:.95;
}

/* ABOUT */
.ms-about {
  width:min(var(--ms-max), calc(100% - 64px));
  margin:0 auto;
  padding:70px 0 95px;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(50px,8vw,130px);
  align-items:start;
}
.ms-about__photo {
  position:sticky;
  top:125px;
  overflow:hidden;
  background:#151515;
}
.ms-about__photo img {
  display:block;
  width:100%;
  height:min(72vh,820px);
  object-fit:cover;
  object-position:center 30%;
  filter:grayscale(1);
}
.ms-about__copy { padding-top:30px; }
.ms-about h1 {
  margin-bottom:32px;
  font-size:clamp(2.8rem,4.8vw,4.6rem);
  line-height:.9;
}
.ms-about__copy p:not(.ms-kicker) {
  max-width:690px;
  margin:0 0 20px;
  color:#c7c7c2;
  font-size:1.03rem;
  line-height:1.9;
}
.ms-about__copy .ms-lead {
  color:#fff!important;
  font-size:1.32rem!important;
}
.ms-about__copy .ms-location {
  color:#fff!important;
  font-weight:700;
  letter-spacing:.04em;
}
.ms-gear {
  margin-top:64px;
  padding-top:34px;
  border-top:1px solid var(--ms-line);
}
.ms-gear__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 30px;
}
.ms-gear__grid span {
  padding:10px 0;
  color:#c3c3bf;
  border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.9rem;
}

/* GALLERY */
.ms-gallery-page {
  width:min(var(--ms-max), calc(100% - 64px));
  margin:0 auto;
  padding:70px 0 95px;
}
.ms-page-intro { max-width:850px; margin-bottom:50px; }
.ms-page-intro h1 {
  font-size:clamp(3rem,5.6vw,5rem);
  line-height:.9;
}
.ms-page-intro > p:last-child {
  max-width:570px;
  margin:28px 0 0;
  color:var(--ms-muted);
  line-height:1.8;
}
.ms-photo-grid {
  columns:3;
  column-gap:14px;
}
.ms-photo-grid__item {
  display:block;
  margin:0 0 14px;
  overflow:hidden;
  background:#151515;
}
.ms-photo-grid__item img {
  display:block;
  width:100%;
  height:auto;
  filter:saturate(.8);
  transition:transform .55s ease,filter .3s ease;
}
.ms-photo-grid__item:hover img { transform:scale(1.025); filter:saturate(1); }

/* CONTACT */
.ms-contact {
  width:min(var(--ms-max), calc(100% - 64px));
  margin:0 auto;
  padding:75px 0 100px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(60px,10vw,150px);
}
.ms-contact h1 {
  font-size:clamp(3rem,5vw,4.8rem);
  line-height:.92;
  margin-bottom:36px;
}
.ms-contact__intro > p:not(.ms-kicker) {
  max-width:520px;
  color:var(--ms-muted);
  line-height:1.8;
}
.ms-contact__links { display:grid; gap:12px; margin-top:42px; }
.ms-contact__links a,.ms-contact__links span {
  color:#fff;
  text-decoration:none;
  font-size:.92rem;
}
.ms-contact__form { padding-top:15px; }
.marsou-contact-form label {
  display:block;
  margin-bottom:8px;
  color:#9e9e99;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.marsou-contact-form .u-form-group { margin-bottom:25px; }
.marsou-contact-form input,
.marsou-contact-form textarea {
  width:100%;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.22)!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  padding:13px 0!important;
  outline:none;
  font:inherit;
}
.marsou-contact-form textarea { min-height:140px; resize:vertical; }
.marsou-contact-form input:focus,
.marsou-contact-form textarea:focus { border-bottom-color:#fff!important; }
.marsou-contact-form button,
.marsou-contact-form .u-btn {
  margin-top:8px;
  min-height:52px;
  padding:0 28px;
  border:1px solid #fff!important;
  background:transparent!important;
  color:#fff!important;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer;
}
.marsou-contact-form button:hover { background:#fff!important; color:#080808!important; }

/* USER/EDITOR CONTENT */
.marsou-page-editor {
  width:min(1160px, calc(100% - 64px));
  margin:70px auto 100px;
  color:#fff;
}
.marsou-page-editor > .entry-title {
  margin:0 0 18px;
  font-family:"Philosopher",Georgia,serif;
  font-weight:400;
  font-size:clamp(2.4rem,4.5vw,4.2rem);
}
.marsou-page-editor p,.marsou-page-editor li { line-height:1.8; }
.marsou-page-editor a { color:var(--ms-accent); }
.marsou-page-editor h1,.marsou-page-editor h2,.marsou-page-editor h3 { color:#fff; }

/* User's custom About HTML block gets a cleaner v2 treatment without changing its markup. */
.marsou-about { max-width:var(--ms-max)!important; padding:80px 0 110px!important; }
.marsou-about__grid { gap:clamp(45px,7vw,100px)!important; }
.marsou-about__photo { filter:grayscale(1); }
.marsou-about__content h1 { font-family:"Philosopher",Georgia,serif!important; font-weight:400!important; letter-spacing:-.04em; }
.marsou-about__content,.marsou-about__content p,.marsou-about__content li,.marsou-about__content h1,.marsou-about__content h2 { color:#fff!important; }
.marsou-about__content p,.marsou-about__content li { color:#c9c9c4!important; }
.marsou-about__lead { color:#fff!important; }
.marsou-about__gear { border-top-color:var(--ms-line)!important; }

/* FOOTER */
.site-footer {
  flex-shrink:0;
  background:#070707;
  border-top:1px solid rgba(255,255,255,.08);
}
.site-footer__inner {
  width:min(var(--ms-max), calc(100% - 64px));
  min-height:150px;
  margin:auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:35px;
}
.footer-signature { display:grid; gap:4px; }
.footer-signature strong {
  font-family:"Philosopher",Georgia,serif;
  font-size:1.45rem;
  font-weight:400;
}
.footer-signature span,.footer-meta { color:#767671; font-size:.74rem; }
.footer-meta { display:flex; gap:30px; align-items:center; }
.social-links { display:flex; gap:18px; }
.social-links a { color:#aaa; text-decoration:none; }
.social-links a:hover { color:#fff; }

@media (max-width: 980px) {
  .site-header__inner,
  .ms-hero__content,.ms-section,.ms-cta,.ms-about,.ms-gallery-page,.ms-contact,.site-footer__inner,.marsou-page-editor {
    width:calc(100% - 40px);
  }
  .menu-toggle { display:block; }
  .primary-nav {
    display:none;
    position:absolute;
    left:0;right:0;top:92px;
    background:#090909;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .primary-nav.is-open { display:block; }
  .primary-nav ul { display:block; padding:22px 20px 28px; }
  .primary-nav a { padding:14px 0; text-align:center; }
  .primary-nav a::after { display:none; }
  .ms-section__head { grid-template-columns:1fr; gap:22px; }
  .ms-work-card,.ms-work-card--wide { grid-column:span 6; height:420px; }
  .ms-about { grid-template-columns:1fr 1fr; gap:45px; }
  .ms-contact { grid-template-columns:1fr 1fr; gap:55px; }
  .ms-photo-grid { columns:2; }
}

@media (max-width: 700px) {
  .site-header__inner { min-height:76px; }
  .site-branding .site-title img,.site-branding .custom-logo-link img { max-width:145px; max-height:54px; }
  .primary-nav { top:76px; }
  .ms-hero { height:calc(100svh - 76px); min-height:570px; }
  .ms-hero__shade { background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.22) 78%); }
  .ms-hero__content { justify-content:flex-end; padding-bottom:70px; }
  .ms-hero h1 { font-size:clamp(2.8rem,12vw,4.2rem); line-height:.83; }
  .ms-hero__intro { margin-top:25px; font-size:.94rem; }
  .ms-scroll-cue { display:none; }
  .ms-section { padding:64px 0; }
  .ms-portfolio-grid { display:block; }
  .ms-work-card,.ms-work-card--wide { display:block; height:72vw; min-height:300px; margin-bottom:12px; }
  .ms-cta { margin-bottom:64px; padding-top:70px; }
  .ms-about { grid-template-columns:1fr; padding:40px 0 85px; }
  .ms-about__photo { position:relative; top:auto; }
  .ms-about__photo img { height:auto; max-height:none; }
  .ms-about__copy { padding-top:0; }
  .ms-gear__grid { grid-template-columns:1fr; }
  .ms-photo-grid { columns:1; }
  .ms-gallery-page { padding:55px 0 80px; }
  .ms-contact { grid-template-columns:1fr; padding:65px 0 90px; }
  .site-footer__inner { min-height:180px; flex-direction:column; justify-content:center; align-items:flex-start; }
  .footer-meta { flex-direction:column; align-items:flex-start; gap:13px; }
  .marsou-page-editor { margin:45px auto 75px; }
  .marsou-about { padding:45px 0 70px!important; }
  .marsou-about__grid { grid-template-columns:1fr!important; }
}


/* v2.3 — tighter spacing between WordPress page title and custom About HTML block */
.marsou-page-editor > .entry-title {
  margin-bottom: 18px !important;
}

.marsou-page-editor .marsou-about {
  padding-top: 18px !important;
}

.marsou-page-editor > .entry-title + .marsou-about,
.marsou-page-editor > .entry-title + * .marsou-about {
  margin-top: 0 !important;
  padding-top: 18px !important;
}

@media (max-width: 700px) {
  .marsou-page-editor > .entry-title {
    margin-bottom: 12px !important;
  }

  .marsou-page-editor .marsou-about {
    padding-top: 12px !important;
  }
}


/* v2.4 — smaller gap between main navigation and page heading */
.marsou-page-editor {
  margin-top: 36px !important;
}

@media (max-width: 700px) {
  .marsou-page-editor {
    margin-top: 26px !important;
  }
}
