/* EDOL Studio service pages — scoped so the active theme remains intact. */
:root {
  --edol-ink: #141414;
  --edol-paper: #f2f0ea;
  --edol-muted: #b7b2a5;
  --edol-gold: #cbbe91;
  --edol-line: rgba(203, 190, 145, 0.30);
  --edol-white-line: rgba(255, 255, 255, 0.16);
}

.edol-service-media,
.edol-service-copy,
.edol-service-cta,
.edol-contact-page,
.edol-service-index,
.edol-auto-footer {
  box-sizing: border-box;
  font-family: "DM Sans", sans-serif !important;
}

/* Match the EDOL homepage: DM Sans for body copy and Manrope for display text. */
.edol-service-media *,
.edol-service-copy *,
.edol-service-cta *,
.edol-contact-page *,
.edol-service-index *,
.edol-auto-footer * { font-family: inherit !important; }

.edol-service-lead,
.edol-section-content h2,
.edol-service-cta h2,
.edol-contact-page h1,
.edol-service-index h1,
.edol-auto-footer h2,
.edol-process-step h3,
.edol-index-grid a strong { font-family: "Manrope", sans-serif !important; }

body.edolsp3-service-page,
body.edolsp3-contact-page {
  background: var(--edol-ink) !important;
  color: var(--edol-paper) !important;
  font-family: "DM Sans", sans-serif !important;
}

body.edolsp3-service-page main,
body.edolsp3-contact-page main,
body.edolsp3-service-page .edol-service-copy,
body.edolsp3-contact-page .edol-contact-page {
  background: var(--edol-ink) !important;
}

.edol-service-media {
  width: 100vw;
  max-width: none;
  margin: 0 calc(50% - 50vw) clamp(36px, 7vw, 96px);
  padding: 0;
}

.edol-service-media figure { margin: 0; }

.edol-service-hero-image {
  overflow: hidden;
  min-height: clamp(360px, 58vw, 760px);
  background: linear-gradient(135deg, #282821, #0e0e0e);
}

.edol-service-hero-image img,
.edol-service-media-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.edol-service-hero-image img { min-height: clamp(360px, 58vw, 760px); transition: transform 700ms ease; }
.edol-service-hero-image:hover img { transform: scale(1.025); }

.edol-service-media-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  margin: 12px auto 0;
  padding: 0 3vw;
  box-sizing: border-box;
}

.edol-service-media-grid figure,
.edol-service-video {
  min-height: 220px;
  overflow: hidden;
  background: #24241f;
}

.edol-service-media-grid figure img { aspect-ratio: 16 / 10; transition: transform 500ms ease, opacity 300ms ease; }
.edol-service-media-grid figure:hover img { transform: scale(1.035); opacity: .88; }

.edol-service-video { position: relative; }
.edol-service-video video { display: block; width: 100%; height: 100%; min-height: 220px; object-fit: cover; }

.edol-media-caption {
  margin: 12px 0 0;
  padding: 0 3vw;
  color: #d9d4c8;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 1.5;
  text-transform: lowercase;
}

.edol-service-copy {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: 0 5vw;
  color: #ffffff;
}

.edol-service-intro {
  max-width: 920px;
  padding: 0 0 clamp(54px, 9vw, 120px);
}

.edol-kicker,
.edol-section-label,
.edol-footer-label {
  margin: 0 0 18px;
  color: var(--edol-gold);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: lowercase;
}

.edol-service-lead {
  max-width: 880px;
  margin: 0 0 26px;
  font-size: clamp(28px, 4.3vw, 62px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.04;
}

.edol-service-overview,
.edol-section-content > p,
.edol-service-notice p,
.edol-service-cta p,
.edol-contact-page p {
  max-width: 720px;
  color: rgba(250, 248, 242, .90);
  font-size: 16px;
  line-height: 1.75;
}

.edol-service-section {
  display: grid;
  grid-template-columns: minmax(150px, .36fr) minmax(0, 1fr);
  gap: clamp(28px, 6vw, 100px);
  padding: clamp(46px, 7vw, 92px) 0;
  border-top: 1px solid var(--edol-white-line);
}

.edol-section-content h2,
.edol-service-cta h2,
.edol-contact-page h1,
.edol-service-index h1,
.edol-auto-footer h2 {
  max-width: 740px;
  margin: 0 0 20px;
  color: var(--edol-paper);
  font-size: clamp(28px, 4vw, 58px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.04;
}

.edol-service-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  margin: 34px 0 0;
  padding: 0;
  list-style: none;
}

.edol-service-list li {
  padding: 15px 0 14px;
  border-top: 1px solid var(--edol-line);
  color: #ffffff;
  font-size: 15px;
  line-height: 1.45;
}

.edol-service-list li::before { content: '↗'; margin-right: 10px; color: var(--edol-gold); }

.edol-process-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 34px;
}

.edol-process-step {
  min-height: 185px;
  padding: 22px;
  border: 1px solid var(--edol-white-line);
  background: rgba(255, 255, 255, .025);
}

.edol-process-step span { display: block; margin-bottom: 36px; color: var(--edol-gold); font-size: 11px; letter-spacing: .12em; }
.edol-process-step h3 { margin: 0 0 8px; color: var(--edol-paper); font-size: 17px; font-weight: 500; text-transform: lowercase; }
.edol-process-step p { margin: 0; color: rgba(250, 248, 242, .86); font-size: 14px; line-height: 1.6; }

.edol-service-notice {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 26px;
  margin: 0 0 clamp(56px, 9vw, 120px);
  padding: 22px 0 0;
  border-top: 1px solid var(--edol-line);
}

.edol-service-notice span { color: var(--edol-gold); font-size: 10px; letter-spacing: .16em; text-transform: lowercase; }
.edol-service-notice p { margin: 0; font-size: 12px; line-height: 1.65; }

.edol-service-cta {
  width: 100vw;
  max-width: none;
  margin: 0 calc(50% - 50vw) clamp(60px, 10vw, 150px);
  padding: clamp(40px, 7vw, 90px) 5vw;
  background: var(--edol-gold);
  color: var(--edol-ink);
}

.edol-service-cta .edol-kicker { color: rgba(20, 20, 20, .65); }
.edol-service-cta h2 { max-width: 1100px; color: var(--edol-ink); }
.edol-service-cta p { color: rgba(20, 20, 20, .68); }

.edol-service-button {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin-top: 20px;
  padding: 13px 18px;
  border: 1px solid currentColor;
  color: inherit;
  font-size: 11px;
  letter-spacing: .12em;
  line-height: 1;
  text-decoration: none;
  text-transform: lowercase;
  transition: background 180ms ease, color 180ms ease;
}

.edol-service-button:hover { background: var(--edol-ink); color: var(--edol-paper); }

.edol-service-index,
.edol-contact-page {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: clamp(50px, 8vw, 110px) 5vw;
  color: var(--edol-paper);
}

.edol-service-index .edol-service-overview { margin-bottom: 44px; }
.edol-index-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.edol-index-grid a { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 24px; border: 1px solid var(--edol-white-line); color: var(--edol-paper); text-decoration: none; transition: border-color 180ms ease, background 180ms ease; }
.edol-index-grid a:hover { border-color: var(--edol-gold); background: rgba(255, 255, 255, .035); }
.edol-index-grid a span { grid-column: 1 / -1; color: var(--edol-gold); font-size: 10px; letter-spacing: .12em; text-transform: lowercase; }
.edol-index-grid a strong { font-size: 20px; font-weight: 400; }
.edol-index-grid a i { color: var(--edol-gold); font-style: normal; }

.edol-contact-page h1 { max-width: 800px; margin-bottom: 28px; }
.edol-contact-intro { padding-bottom: clamp(40px, 6vw, 74px); }
.edol-contact-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 34px; padding: 24px 0; border-top: 1px solid var(--edol-line); border-bottom: 1px solid var(--edol-line); }
.edol-contact-detail { min-width: 0; padding: 4px 0; }
.edol-contact-detail span { display: block; margin-bottom: 10px; color: var(--edol-gold); font-size: 10px; font-weight: 600; letter-spacing: .16em; line-height: 1.4; text-transform: lowercase; }
.edol-contact-detail p { max-width: none; margin: 0; color: rgba(250, 248, 242, .90); font-size: 15px; line-height: 1.55; }
.edol-contact-detail a { color: inherit; text-decoration: none; }
.edol-contact-detail a:hover { color: var(--edol-gold); }
.edol-contact-form { margin-top: 34px; padding: clamp(24px, 4vw, 48px); border: 1px solid var(--edol-white-line); background: rgba(255, 255, 255, .025); }
.edol-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.edol-form-grid label { display: grid; gap: 8px; color: var(--edol-gold); font-size: 10px; letter-spacing: .12em; text-transform: lowercase; }
.edol-form-grid label em { color: var(--edol-muted); font-style: normal; letter-spacing: 0; }
.edol-form-grid input,
.edol-form-grid select,
.edol-form-grid textarea { box-sizing: border-box; width: 100%; border: 1px solid var(--edol-white-line); border-radius: 0; background: rgba(0, 0, 0, .18); color: var(--edol-paper); font: inherit; font-size: 14px; letter-spacing: 0; outline: none; padding: 13px 14px; }
.edol-form-grid input:focus,
.edol-form-grid select:focus,
.edol-form-grid textarea:focus { border-color: var(--edol-gold); }
.edol-form-grid textarea { resize: vertical; }
.edol-form-wide { grid-column: 1 / -1; }
.edol-form-privacy { margin: 22px 0 0; color: #d9d4c8; font-size: 12px; line-height: 1.6; }
.edol-form-notice { margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--edol-line); font-size: 13px; }
.edol-form-success { color: #d9e5c5; }
.edol-form-error { color: #f0c5b7; }

.edol-auto-footer { width: 100vw; margin: 70px calc(50% - 50vw) 0; padding: 70px 5vw 18px; background: #10100f; color: var(--edol-paper); }
.edol-auto-footer-inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: clamp(42px, 8vw, 130px); width: min(100%, 1600px); margin: 0 auto; }
.edol-auto-footer h2 { max-width: 820px; font-size: clamp(26px, 3vw, 48px); }
.edol-auto-footer-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.edol-auto-footer-links ul { margin: 0; padding: 0; list-style: none; }
.edol-auto-footer-links li { padding: 6px 0; color: var(--edol-muted); font-size: 12px; line-height: 1.4; }
.edol-auto-footer-links a { color: var(--edol-paper); text-decoration: none; }
.edol-auto-footer-links a:hover { color: var(--edol-gold); }
.edol-auto-footer-bottom { display: flex; justify-content: space-between; gap: 18px; width: 100%; max-width: none; margin: 68px auto 0; padding-top: 16px; border-top: 1px solid var(--edol-white-line); color: var(--edol-muted); font-size: 10px; letter-spacing: .08em; text-transform: lowercase; }

.edol-lightbox { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 5vw; background: rgba(0, 0, 0, .88); }
.edol-lightbox img { max-width: 94vw; max-height: 86vh; object-fit: contain; }
.edol-lightbox button { position: absolute; top: 20px; right: 24px; border: 0; background: transparent; color: white; cursor: pointer; font-size: 28px; }

@media (max-width: 760px) {
  .edol-service-media,
  .edol-service-copy,
  .edol-service-index,
  .edol-contact-page { padding-left: 20px; padding-right: 20px; }
  .edol-service-media { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding-left: 0; padding-right: 0; }
  .edol-service-section { grid-template-columns: 1fr; gap: 16px; }
  .edol-service-list,
  .edol-process-grid,
  .edol-index-grid,
  .edol-form-grid,
  .edol-contact-details,
  .edol-auto-footer-inner,
  .edol-auto-footer-links { grid-template-columns: 1fr; }
  .edol-form-wide { grid-column: auto; }
  .edol-service-notice { grid-template-columns: 1fr; gap: 8px; }
  .edol-service-media-grid { grid-template-columns: 1fr; padding-left: 20px; padding-right: 20px; }
  .edol-media-caption { padding-left: 20px; padding-right: 20px; }
  .edol-auto-footer { padding-left: 20px; padding-right: 20px; }
  .edol-auto-footer-bottom { flex-direction: column; gap: 8px; }
}
