/* Full-width photographs with the original landing-page content and interactions. */
@font-face {
  font-family: "Hebrew Display Serif";
  src: url("fonts/NotoSerifHebrew-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Hebrew Display Sans";
  src: url("fonts/NotoSansHebrew-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.landing {
  --page-gutter: clamp(22px, 4.4vw, 60px);
  --panel-radius: 20px;
  font-family: Rubik, "Noto Sans Hebrew", system-ui, Arial, sans-serif;
  padding-bottom: 0;
}

.landing .wrap {
  width: min(100%, 1320px);
  max-width: none;
  padding-inline: var(--page-gutter);
  margin-inline: auto;
}

.landing .site-header {
  background: var(--white);
  color: var(--navy);
  border-bottom: 1px solid #e1e9f1;
}

.landing .nav-wrap { min-height: 76px; }
.landing .brand { font-family: inherit; font-size: 1.25rem; font-weight: 650; letter-spacing: .14em; }
.landing .subbrand { font-family: inherit; font-size: .61rem; letter-spacing: .25em; }
.landing #main-nav a { color: var(--navy); font-weight: 520; }
.landing #main-nav a:hover { color: var(--accent); }
.landing .nav-contact, .landing .menu-toggle { border: 1px solid #b9cadd; border-radius: 999px; }
.landing .nav-contact { padding: 9px 16px; }
.landing #main-nav > .nav-contact:hover { background: var(--sky-wash); color: var(--navy); }

.landing .hero,
.landing .approach {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  background: var(--navy-deep);
  color: var(--white);
}

.landing .hero { min-height: clamp(570px, 72svh, 790px); padding-block: 84px 78px; }
.hero-visual, .about-visual { position: absolute; z-index: -2; inset: 0; }
.hero-visual img, .about-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-visual img { object-position: center 78%; }
.about-visual picture { display: block; height: 100%; }

.landing .hero::before, .landing .approach::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
}

.landing .hero::before {
  background: linear-gradient(270deg, #0c1c31f2 0%, #0c1c31e6 25%, #0c1c31bb 43%, #0c1c315c 57%, transparent 74%);
}

.landing .hero-copy { max-width: 610px; }
.landing .hero h1 {
  margin: 0 0 23px;
  font-family: "Hebrew Display Serif", "Noto Serif Hebrew", David, serif;
  font-size: clamp(3.1rem, 6.7vw, 5.8rem);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: -.018em;
  line-height: 1.13;
  color: #fbfdff;
}
.landing .hero h1 span {
  display: block;
  margin-top: 10px;
  color: #d1e4f5;
  font-family: "Hebrew Display Sans", "Noto Sans Hebrew", Arial, sans-serif;
  font-size: clamp(1.25rem, 2.12vw, 1.85rem);
  letter-spacing: normal;
  line-height: 1.48;
  font-weight: 400;
}
.landing .hero h1::after {
  display: block;
  width: 46px;
  height: 1px;
  margin-top: 20px;
  background: #b8cfe19c;
  content: "";
}
.hero-slogan { margin: 0 0 12px; font-size: clamp(1.25rem, 2vw, 1.72rem); font-weight: 720; line-height: 1.38; }
.landing .hero-intro { color: #e5f1ff; max-width: 480px; font-size: 1.05rem; line-height: 1.75; }
.landing .hero-actions { margin-top: 26px; gap: 12px; }
.landing .button, .landing .hero-actions .text-link { border-radius: 999px; min-height: 49px; font-size: .96rem; }
.landing .hero .primary { color: var(--navy-deep); background: #b1ddff; font-weight: 720; }
.landing .hero .primary:hover { background: #d6efff; }
.landing .hero-actions .text-link {
  color: var(--white);
  padding: 11px 19px;
  border: 1px solid #c8e6ffa8;
  background: #0b24465c;
}
.landing .hero-actions .text-link:hover { background: #244a72; }
.landing .hero-footnote { margin-top: 20px; color: #cfdef1; font-size: .87rem; }
.landing :is(.hero, .approach, .process) :focus-visible { outline-color: #b1ddff; }

.landing .proof-strip { background: var(--white); padding-block: 35px; border-bottom: 1px solid var(--line); }
.landing .proof-grid > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  padding-inline: clamp(10px, 2.8vw, 36px);
}
.landing .proof-grid > div:first-child { padding-inline-start: 0; }
.landing .proof-grid strong { font-family: inherit; font-size: clamp(2rem, 3.8vw, 3.35rem); font-weight: 780; white-space: normal; }
.landing .proof-grid strong small { font-family: inherit; font-size: .52em; font-weight: 680; }
.landing .proof-grid span { max-width: 100%; font-size: .92rem; color: var(--muted); line-height: 1.5; }

.landing .approach :is(.eyebrow, .serif-word) { color: #aadaff; }
.landing .approach h2 { margin-bottom: 20px; font-size: clamp(2.15rem, 4.7vw, 4rem); font-weight: 760; line-height: 1.13; }
.landing .approach-copy { color: #e3effd; font-size: 1rem; line-height: 1.75; }
.landing .large-copy { color: var(--white); font-size: 1.22rem; font-weight: 660; }
.landing .signature { margin-top: 27px; }
.landing .signature > span { color: #afd9ff; font-family: inherit; font-size: 1.4rem; font-style: normal; font-weight: 720; transform: none; }
.landing .signature > div, .landing .signature small { color: #e4effd; }

.values-band {
  min-height: clamp(265px, 36vw, 420px);
  background-color: var(--white);
  background-image: url("values-mark.jpg"), linear-gradient(90deg, #edf6fe, white 30%, white 70%, #edf6fe);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain, cover;
}

.document-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 23px;
  font-size: .94rem;
}
.document-nav a[aria-current="page"] {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.document-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.landing .document-main {
  width: min(100%, 1000px);
  padding-block: clamp(42px, 7vw, 88px);
  overflow-wrap: anywhere;
}
.document-main h1 {
  margin: 0 0 16px;
  color: var(--navy);
  font-size: clamp(1.8rem, 4.4vw, 2.85rem);
  font-weight: 720;
  line-height: 1.27;
}
.document-quote {
  margin: 0 0 30px;
  padding: 14px 18px;
  border-inline-start: 3px solid var(--sky);
  background: var(--sky-wash);
}
.document-quote p { margin: 0; font-weight: 680; }
.document-quote footer { margin-top: 3px; color: var(--muted); font-size: .92rem; }
.document-download { color: var(--accent); }
.document-transcript { margin-top: 24px; font-size: 1.03rem; line-height: 1.85; }
.document-list { padding-inline-start: 1.65em; }
.document-list li { padding-inline-start: .25em; margin-block: .58em; }
.document-list li::marker { color: var(--accent); font-weight: 700; }
.document-address {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  padding-top: 18px;
  margin-top: 32px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .9rem;
  font-style: normal;
}
.document-page .site-footer .document-nav { margin-bottom: 17px; }

.landing h2 { font-weight: 730; letter-spacing: -.028em; }
.landing .eyebrow { font-size: .86rem; letter-spacing: .01em; font-weight: 700; }
.landing .services { background: #eef6ff; }
.landing .service-tabs {
  background: #dceaff;
  border: 1px solid #ccdef2;
  border-radius: 16px;
  gap: 6px;
  padding: 6px;
}
.landing .service-tabs button {
  justify-content: center;
  min-height: 54px;
  margin: 0;
  padding: 9px 14px;
  border: 0;
  border-radius: 11px;
  font-weight: 650;
}
.landing .service-tabs button[aria-selected="true"] { color: var(--white); background: var(--navy); }
.landing .service-tabs button:not([aria-selected="true"]):hover { background: #eef6ff; }
.landing .service-panel {
  min-height: 0;
  border: 1px solid #c9ddef;
  border-radius: var(--panel-radius);
  padding: clamp(22px, 4.6vw, 54px);
  box-shadow: 0 12px 36px #0a2a5010;
}
.landing .service-intro h3 { font-weight: 710; }
.landing .service-intro > p:not(.eyebrow), .landing .service-questions li { font-size: 1rem; }
.landing .service-products, .landing .service-disclaimer { font-size: .86rem; }
.profile-photo {
  margin: 0;
  width: 100%;
  height: clamp(360px, 42vw, 760px);
  overflow: hidden;
  background: var(--navy-deep);
}
.profile-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.profile-photo--office { height: auto; }
.profile-photo--office img { height: auto; aspect-ratio: 1.95; object-position: center 34%; }
.profile-photo--lounge picture { display: block; height: 100%; }
.profile-photo--lounge img { object-position: center 35%; }
.landing .process { background: linear-gradient(115deg, #102d50, #091b33 69%); }
.landing .process-grid article { border-top: 1px solid #a7cfff59; padding-top: 20px; }
.landing .process-grid h3 { font-weight: 720; }
.landing .step-number { font-family: inherit; font-weight: 720; }
.landing .faq-list summary { font-weight: 650; }
.landing .reviews {
  padding-block: clamp(48px, 7vw, 94px);
  background: linear-gradient(115deg, #13355a, var(--navy-deep) 74%);
  color: var(--white);
}
.reviews-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(24px, 5vw, 70px);
}
.reviews-intro h2 { margin: 0 0 14px; color: inherit; }
.reviews-google { white-space: nowrap; }
.reviews-google .google-blue { color: #4285f4; }
.reviews-google .google-red { color: #ea4335; }
.reviews-google .google-yellow { color: #fbbc05; }
.reviews-google .google-green { color: #34a853; }
.reviews-rating { display: flex; align-items: center; gap: 14px; }
.reviews-rating strong { font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }
.review-stars { letter-spacing: .14em; color: #fbbc04; }
.review-slide .review-stars { -webkit-text-stroke: .5px #825900; }
.reviews-date { margin: 10px 0 14px; color: var(--light-ink); font-size: .9rem; }
.landing .reviews-source { color: var(--light-ink); min-height: 44px; }
.landing .reviews-source:hover { color: var(--white); }
.landing .reviews-source:focus-visible { outline-color: var(--sky); }
.review-carousel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--panel-radius);
  background: var(--white);
  color: var(--navy);
}
.review-viewport {
  display: grid;
  overflow: hidden;
  border-radius: var(--panel-radius) var(--panel-radius) 0 0;
}
.review-slide {
  grid-area: 1 / 1;
  min-width: 0;
  visibility: hidden;
  padding: clamp(20px, 3.5vw, 38px);
}
.review-slide.is-active { visibility: visible; }
.review-slide.is-entering { animation: review-enter .48s ease-out both; }
.review-slide.is-leaving { animation: review-leave .48s ease-in both; }
.review-carousel[data-direction="reverse"] .review-viewport {
  --review-enter-from: 100%;
  --review-leave-to: -100%;
}
@keyframes review-enter {
  from { transform: translateX(var(--review-enter-from, -100%)); }
  to { transform: translateX(0); }
}
@keyframes review-leave {
  from { visibility: visible; transform: translateX(0); }
  to { visibility: hidden; transform: translateX(var(--review-leave-to, 100%)); }
}
.review-slide :is(p, blockquote) {
  margin: 12px 0 20px;
  color: var(--navy);
  font-size: clamp(1.125rem, 2.2vw, 1.45rem);
  line-height: 1.55;
}
.review-slide footer { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.review-author { font-weight: 700; overflow-wrap: anywhere; }
.review-slide footer :is(span, a) { color: var(--muted); font-size: .82rem; }
.review-slide footer a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: .18em;
}
.review-slide footer a:hover { color: var(--accent-hover); }
.review-controls:not([hidden]) {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  padding: 8px clamp(10px, 3.5vw, 38px);
  border-top: 1px solid var(--line);
}
.review-navigation { display: flex; align-items: center; gap: 6px; direction: ltr; }
.review-controls button {
  min-width: 44px;
  min-height: 44px;
  padding: 0 10px;
  border: 0;
  border-radius: 999px;
  background: var(--white);
  color: var(--navy);
  font-size: .9rem;
  font-weight: 650;
}
.review-navigation button { font-size: 1.2rem; }
.review-controls button:hover { background: var(--sky-wash); }
#reviews-position { min-width: 3ch; text-align: center; color: var(--muted); font-size: .85rem; }
.reviews-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.landing .contact { background: #eef6ff; }
.landing .contact-card { border-radius: var(--panel-radius); border-color: #ccdef2; box-shadow: 0 15px 42px #0c2c5010; }
.landing .contact-card :is(input, select, textarea) { border-radius: 10px; }
.landing .contact-line { max-width: 100%; }
.landing .contact-line bdi { min-width: 0; overflow-wrap: anywhere; }
.landing .site-footer { padding-block-end: 72px; }
.landing .site-footer .brand { font-family: inherit; }

.location-wrap { margin-top: 42px; }
.office-location {
  display: grid;
  grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
  align-items: start;
  gap: 24px;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid #ccdef2;
  border-radius: var(--panel-radius);
  background: var(--white);
}
.office-address h3 { margin: 0 0 9px; font-size: 1.35rem; font-weight: 740; }
.office-address address { font-style: normal; color: var(--muted); line-height: 1.65; }
.office-address .text-link { display: inline-flex; margin-top: 11px; }
.office-map { min-width: 0; border: 1px solid var(--line); border-radius: 13px; background: #eef6ff; }
.office-map summary { min-height: 48px; padding: 13px 17px; font-weight: 680; }
.office-map-content { padding: 0 10px 10px; }
.office-map iframe { display: block; width: 100%; height: clamp(280px, 33vw, 390px); border: 0; border-radius: 8px; }

@media (max-width: 900px) {
  .landing .hero-copy { max-width: 560px; }
  .landing .hero::before {
    background: linear-gradient(270deg, #0c1c31f2, #0c1c31dc 48%, #0c1c31bf 68%, #0c1c3112 100%);
  }
}

@media (max-width: 1040px) {
  .landing .nav-wrap { min-height: 64px; }
  .landing .menu-toggle { display: flex; align-items: center; gap: 9px; color: var(--navy); font-size: .9rem; padding: 8px 13px; }
  .landing #main-nav {
    display: none;
    position: absolute;
    top: 100%;
    inset-inline: 0;
    max-height: 70dvh;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 12px var(--page-gutter) 20px;
    border-bottom: 1px solid var(--line);
    background: var(--white);
    box-shadow: 0 12px 18px #0a1d3510;
  }
  .landing #main-nav.open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .landing #main-nav > a { padding: 10px 12px; font-size: .94rem; }
  .landing #main-nav > .nav-contact { justify-content: space-between; margin-top: 8px; }
}

@media (max-width: 760px) {
  .landing .hero {
    --hero-photo-height: clamp(210px, 58vw, 300px);
    min-height: 0;
    padding-block: var(--hero-photo-height) 54px;
  }
  .landing .hero-visual, .landing .hero::before {
    inset-block-end: auto;
    height: var(--hero-photo-height);
  }
  .hero-visual img { object-position: center 60%; }
  .landing .hero::before {
    background: linear-gradient(180deg, transparent 82%, #0a1d3533 92%, var(--navy-deep) 100%);
  }
}

@media (max-width: 620px) {
  .profile-photo { height: auto; aspect-ratio: 4 / 3; }
  .profile-photo--office { aspect-ratio: auto; }
  .profile-photo--lounge { aspect-ratio: 4 / 5; }
  .reviews-grid { grid-template-columns: minmax(0, 1fr); }
  .landing .hero h1 { font-size: clamp(2.8rem, 11.8vw, 3.9rem); }
  .landing .hero h1 span { font-size: clamp(1.18rem, 4.7vw, 1.55rem); }
  .landing .hero-actions > a { width: 100%; justify-content: space-between; }
  .landing .hero-footnote { font-size: .86rem; }
  .landing .proof-strip { padding-block: 23px; }
  .landing .proof-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .landing .proof-grid > div { gap: 5px; padding-inline: 8px; text-align: start; }
  .landing .proof-grid strong { margin: 0; font-size: clamp(1.45rem, 7.2vw, 2.05rem); }
  .landing .proof-grid strong small { display: block; margin-top: 3px; }
  .landing .proof-grid span { margin: 0; font-size: .75rem; }
  .landing .approach { display: block; min-height: 0; padding: 0; }
  .landing .approach::before { display: none; }
  .about-visual { position: relative; z-index: auto; aspect-ratio: 4 / 3; }
  .about-visual img { position: absolute; inset: 0; object-position: center 35%; }
  .landing .approach > .wrap { padding-block: 34px 50px; }
  .landing .approach-content { max-width: none; }
  .values-band { background-image: url("values-mark.jpg"); }
  .document-page .nav-wrap { flex-wrap: wrap; gap: 12px; padding-block: 14px; }
  .document-nav { gap: 10px 15px; }
  .landing .process-grid article { padding-top: 14px; }
  .office-location { grid-template-columns: minmax(0, 1fr); padding: clamp(10px, 4vw, 18px); }
  .office-map-content { padding: 0 6px 6px; }
  .location-wrap { margin-top: 26px; }
}

@media (min-width: 621px) {
  .landing .approach {
    display: block;
    padding: 0;
  }
  .landing .approach > .wrap {
    padding-block: clamp(40px, 5vw, 72px);
  }
  .landing .approach-content { max-width: 720px; }
  .about-visual {
    position: relative;
    z-index: auto;
    height: clamp(245px, 38.48vw, 600px);
  }
  .profile-photo--office {
    /* The outer columns continue the wall in the original photograph. */
    display: grid;
    direction: ltr;
    grid-template-columns: minmax(0, 1fr) min(100%, 960px, 104svh) minmax(0, 1fr);
    isolation: isolate;
    background: #b9b7b2;
  }
  .profile-photo--office::before,
  .profile-photo--office::after {
    content: "";
    grid-row: 1;
    z-index: -1;
    background-size: 100% 100%;
  }
  .profile-photo--office::before { grid-column: 1; background-image: url("office-wall-left.webp"); }
  .profile-photo--office::after { grid-column: 3; background-image: url("office-wall-right.webp"); }
  .profile-photo--office img {
    grid-area: 1 / 2;
    direction: rtl;
  }
  .profile-photo--lounge {
    height: clamp(280px, 38.5vw, 600px);
  }
  .profile-photo--lounge img { object-position: center 48%; }
}

@media (min-width: 1050px) {
  html:not([data-a11y-large="true"], [data-a11y-contrast="true"]) .landing .approach {
    display: grid;
    min-height: clamp(535px, 40vw, 680px);
  }
  html:not([data-a11y-large="true"], [data-a11y-contrast="true"]) .about-visual {
    position: absolute;
    z-index: -2;
    height: auto;
  }
  .about-visual img { object-position: 64% 42%; }
  .landing .approach::before {
    background: linear-gradient(to left, #0b1930fa, #0b1930f0 32%, #0b1930e0 50%, #0b193073 61%, #0b193014 73%, transparent 88%);
  }
  html:not([data-a11y-large="true"], [data-a11y-contrast="true"]) .landing .approach-content {
    max-width: min(600px, 51%);
  }
}

html[data-a11y-large="true"] .landing .approach-content { max-width: min(100%, 740px); }
html[data-a11y-large="true"] .landing .office-location { grid-template-columns: minmax(0, 1fr); }
html[data-a11y-large="true"] .landing .proof-grid { grid-template-columns: minmax(0, 1fr); }
html[data-a11y-large="true"] .landing #main-nav { flex-wrap: wrap; }
html[data-a11y-contrast="true"] .landing .process { background-image: none; }
html[data-a11y-large="true"] .reviews-grid { grid-template-columns: minmax(0, 1fr); }
html[data-a11y-contrast="true"] .landing .reviews { background-image: none; }
html[data-a11y-contrast="true"] .review-slide .review-stars { -webkit-text-stroke: 0; }
