/*
 * The site's design profiles applied to native Elementor containers and widgets.
 * Content remains independently editable; removing a profile class in Advanced
 * returns an element to Elementor's ordinary layout. No editor UI is flattened.
 */

:where(.gb-elementor-document,.gb-elementor-chrome) {
  --widgets-spacing: 0px;
  --widgets-spacing-row: 0px;
  --widgets-spacing-column: 0px;
  font-family: var(--sans);
  color: var(--ink);
}

:where(.gb-elementor-document,.gb-elementor-chrome) .gb-container.e-con {
  display: block;
  width: var(--width,100%);
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  gap: 0;
  align-items: initial;
  justify-content: initial;
  flex: 0 1 auto;
  --container-default-padding-top: 0px;
  --container-default-padding-right: 0px;
  --container-default-padding-bottom: 0px;
  --container-default-padding-left: 0px;
}

/* Full-width migrated containers have no inner box. This also supports an
 * optional Elementor inner box without introducing another grid/flex child. */
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-container > .e-con-inner {
  display: contents;
}

:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget {
  min-width: 0;
  margin-block-end: 0;
}

:where(.gb-elementor-document,.gb-elementor-chrome) :is(.gb-paragraph,.gb-heading,.gb-image,.gb-button) {
  width: 100%;
  max-width: 100%;
}

:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-text-editor.gb-paragraph {
  color: #6b5d52;
  font-family: var(--sans);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.85;
  text-align: inherit;
}

:where(.gb-elementor-document,.gb-elementor-chrome) .gb-paragraph.elementor-widget-text-editor p {
  margin: 0; font-size: inherit; line-height: inherit; color: inherit;
}
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-paragraph > .elementor-widget-container { height: auto; }
:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-heading.gb-heading { color: var(--ink); }
:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-heading.gb-heading .elementor-heading-title {
  font-family: var(--serif);
  font-weight: 400;
  color: inherit;
}
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-heading h1 { font-size: 2em; }
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-heading h2 { font-size: 1.5em; }
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-heading h3 { font-size: 1.17em; }
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-heading h4 { font-size: 1em; }

:where(.gb-elementor-document,.gb-elementor-chrome) .gb-container.section { padding: 112px var(--gutter); }
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-container.section-heading {
  display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between;
  gap: 30px; margin-bottom: 48px;
}
:where(.gb-elementor-document,.gb-elementor-chrome) .section-heading > :is(.gb-container,.gb-paragraph) { width: auto; }
:where(.gb-elementor-document,.gb-elementor-chrome) .section-heading h2 {
  font-size: clamp(46px,4.6vw,70px); line-height: 1.06; letter-spacing: -.035em;
}
:where(.gb-elementor-document,.gb-elementor-chrome) .section-heading h1 {
  font-size: clamp(56px,5.6vw,86px); line-height: 1.05; letter-spacing: -.035em;
}

/* Home opening: the image widget itself replaces the former figure frame. */
:where(.gb-elementor-document) .gb-container.home-hero {
  display: grid; grid-template-columns: 43% 57%; min-height: 660px;
  padding: 35px var(--gutter) 0; gap: 0;
}
:where(.gb-elementor-document) .gb-container.hero-copy {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  padding: 35px 42px 50px 0; position: relative; z-index: 1;
}
:where(.gb-elementor-document) .hero-copy h1 {
  font-size: clamp(66px,6.7vw,105px); line-height: .99; letter-spacing: -.047em;
}
:where(.gb-elementor-document) .hero-copy > .gb-paragraph.hero-description { max-width: 290px; }
:where(.gb-elementor-document) .gb-paragraph.hero-description { font-size: 19px; line-height: 1.9; }
:where(.gb-elementor-document) .gb-image.hero-image {
  position: relative; min-height: 610px; overflow: hidden; align-self: stretch;
}
:where(.gb-elementor-document) .gb-image.hero-image :is(.elementor-widget-container,figure,a) { height: 100%; }
:where(.gb-elementor-document) .gb-image.hero-image img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: 52% 47%;
}
:where(.gb-elementor-document) .gb-container.hero-caption {
  display: flex; flex-direction: row; justify-content: space-between;
  width: auto; margin: 0 var(--gutter); padding: 23px 0; border-bottom: 1px solid var(--line);
}
:where(.gb-elementor-document) .hero-caption > .gb-paragraph { width: auto; }
:where(.gb-elementor-document) .hero-caption > .gb-paragraph:first-child p { text-align: left; }
:where(.gb-elementor-document) .hero-caption > .gb-paragraph:last-child { text-align: right; }

/* Introductions and the photographer's portrait. */
:where(.gb-elementor-document) .gb-container.intro {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12%; align-items: center;
  max-width: 1450px; margin-inline: auto; padding-block: 135px;
}
:where(.gb-elementor-document) .gb-container.home-intro { padding-block: 88px; }
:where(.gb-elementor-document) .gb-container.intro-visual {
  position: relative; padding: 0 48px 50px 0;
}
:where(.gb-elementor-document) .home-intro .gb-container.intro-visual { max-width: 430px; }
:where(.gb-elementor-document) .gb-container.intro-portrait { padding: 0; }
:where(.gb-elementor-document) .intro-visual .gb-image.photo-main { aspect-ratio: .88; max-width: 480px; overflow: hidden; }
:where(.gb-elementor-document) .intro-visual .gb-image.photo-main img { height: 100%; width: 100%; object-fit: cover; }
:where(.gb-elementor-document) .intro-visual .gb-image.photo-detail {
  position: absolute; right: 0; bottom: 0; width: 43%; aspect-ratio: .84;
  border: 9px solid var(--paper); overflow: hidden;
}
:where(.gb-elementor-document) .intro-visual .gb-image.photo-detail img { height: 100%; width: 100%; object-fit: cover; }
:where(.gb-elementor-document) .intro-portrait .gb-image.photo-main { aspect-ratio: auto; max-width: none; }
:where(.gb-elementor-document) .intro-portrait .gb-image.photo-main img { height: auto; object-fit: contain; }
:where(.gb-elementor-document) .intro-copy h2 {
  font-size: clamp(43px,4.2vw,65px); line-height: 1.05; letter-spacing: -.035em;
}
:where(.gb-elementor-document) .intro-copy > .gb-paragraph:not(.eyebrow) { max-width: 420px; }

/* Independent image/text widgets retain the staggered portfolio layout. */
:where(.gb-elementor-document) .gb-container.story-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; align-items: start; }
:where(.gb-elementor-document) .gb-container.story-grid-small { grid-template-columns: 1fr 1fr; margin-top: 55px; }
:where(.gb-elementor-document) .gb-container.story-card { position: relative; }
:where(.gb-elementor-document) .story-card > .gb-image { aspect-ratio: 1.5; overflow: hidden; }
:where(.gb-elementor-document) .story-card > .gb-image :is(a,figure,.elementor-widget-container) { display: block; height: 100%; }
:where(.gb-elementor-document) .story-card > .gb-image img { width: 100%; height: 100%; object-fit: cover; }
:where(.gb-elementor-document) .story-card h3 { font-size: 36px; letter-spacing: -.02em; }
:where(.gb-elementor-document) .story-card > .gb-paragraph { font-size: 18px; letter-spacing: .02em; }
:where(.gb-elementor-document) .gb-container.stories-bottom { display: flex; justify-content: center; margin-top: 60px; }
:where(.gb-elementor-document) .stories-bottom > .gb-paragraph { width: auto; }
:where(.gb-elementor-document) .gb-container.view-grid { display: grid; grid-template-columns: 1.15fr .8fr 1fr; gap: 20px; align-items: start; }
:where(.gb-elementor-document) .gb-container.view-column { display: grid; gap: 20px; }
:where(.gb-elementor-document) .gb-container.view-column:nth-child(2) { padding-top: 65px; }
:where(.gb-elementor-document) .gb-container.view-column:nth-child(3) { padding-top: 24px; }
:where(.gb-elementor-document) .gb-image.gallery-photo { overflow: hidden; }
:where(.gb-elementor-document) .gb-image.gallery-photo img { display: block; width: 100%; height: auto; object-fit: contain; }
:where(.gb-elementor-document) .gb-image.gallery-photo a { display: block; width: 100%; cursor: zoom-in; }
:where(.gb-elementor-document) .gb-image.gallery-photo.square { aspect-ratio: 1; }
:where(.gb-elementor-document) .gb-image.gallery-photo.square img { height: 100%; object-fit: cover; }

/* Page-level sections. */
:where(.gb-elementor-document) .gb-container.manifesto { padding: 88px var(--gutter); background: var(--sand); text-align: center; }
:where(.gb-elementor-document) .manifesto h2 { font-size: clamp(40px,4.5vw,68px); line-height: 1.14; max-width: 940px; letter-spacing: -.025em; }
:where(.gb-elementor-document) .gb-container.project-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
:where(.gb-elementor-document) .gb-container.project-card:nth-child(2) { padding-top: 70px; }
:where(.gb-elementor-document) .project-card > .gb-image { aspect-ratio: 1.38; overflow: hidden; }
:where(.gb-elementor-document) .project-card > .gb-image img { height: 100%; width: 100%; object-fit: cover; }
:where(.gb-elementor-document) .project-card h3 { font-size: 38px; line-height: 1.1; letter-spacing: -.02em; }
:where(.gb-elementor-document) .project-card > .gb-paragraph { max-width: 420px; }
:where(.gb-elementor-document) .gb-container.project-feature { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 9%; }
:where(.gb-elementor-document) .project-feature > .gb-image img { width: 100%; height: auto; }
:where(.gb-elementor-document) .project-feature-copy h3 { font-size: clamp(40px,4.2vw,65px); line-height: 1.05; letter-spacing: -.035em; }
:where(.gb-elementor-document) .project-feature-copy > .gb-paragraph { max-width: 420px; }
:where(.gb-elementor-document) .gb-container.home-projects { padding-top: 60px; padding-bottom: 100px; border-top: 1px solid var(--line); }
:where(.gb-elementor-document) .gb-container.page-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; align-items: center; padding: 75px var(--gutter) 90px; }
:where(.gb-elementor-document) .page-hero h1 { font-size: clamp(57px,5.6vw,86px); line-height: 1.02; letter-spacing: -.04em; }
:where(.gb-elementor-document) .page-hero > .gb-image { aspect-ratio: auto; overflow: hidden; }
:where(.gb-elementor-document) .page-hero > .gb-image img { height: auto; width: 100%; object-fit: contain; }
:where(.gb-elementor-document) .gb-container.service-intro { max-width: 850px; text-align: center; padding: 85px 25px; margin-inline: auto; }
:where(.gb-elementor-document) .service-intro h2 { font-size: clamp(40px,4vw,62px); line-height: 1.08; }
:where(.gb-elementor-document) .service-intro .gb-paragraph { max-width: 660px; margin-inline: auto; }
:where(.gb-elementor-document) .gb-container.process-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 55px; }
:where(.gb-elementor-document) .gb-container.process-item { border-top: 1px solid var(--line); padding-top: 25px; }
:where(.gb-elementor-document) .process-item h3 { font-size: 30px; }
:where(.gb-elementor-document) .gb-container.faq-layout { display: grid; grid-template-columns: 1fr 1.25fr; gap: 13%; }
:where(.gb-elementor-document) .faq-layout h2 { font-size: 55px; line-height: 1.05; }
:where(.gb-elementor-document) .gb-container.seasonal { display: flex; flex-direction: row; align-items: center; justify-content: space-between; width: auto; margin: 0 var(--gutter) 90px; padding: 45px; gap: 30px; border: 1px solid var(--line); }
:where(.gb-elementor-document) .seasonal h2 { font-size: 42px; }
:where(.gb-elementor-document) .gb-container.empty-portfolio { display: flex; flex-direction: column; justify-content: center; padding: 60px; background: var(--soft); min-height: 400px; }
:where(.gb-elementor-document) .gb-heading.about-letter { max-width: 1050px; margin-inline: auto; padding: 95px 30px; text-align: center; }
:where(.gb-elementor-document) .gb-heading.about-letter .elementor-heading-title { font-size: clamp(48px,5vw,78px); line-height: 1.08; }

/* Keep the existing server-side form and its privacy acknowledgement. */
:where(.gb-elementor-document) .gb-container.contact-layout { display: grid; grid-template-columns: 1fr 1.05fr; gap: 10%; padding: 90px var(--gutter) 120px; }
:where(.gb-elementor-document) .contact-layout h1 { font-size: clamp(56px,5.6vw,86px); line-height: 1.02; letter-spacing: -.04em; }
:where(.gb-elementor-document) .contact-copy > .gb-paragraph:not(.eyebrow) { max-width: 410px; }
:where(.gb-elementor-document) .gb-container.contact-address { margin-top: 45px; }
:where(.gb-elementor-document) .contact-address .gb-paragraph { font-size: 14px; }
:where(.gb-elementor-document) .contact-address .gb-paragraph.location { font-size: 19px; }
:where(.gb-elementor-document) .gb-container.contact-band { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 70px; padding: 96px var(--gutter); background: var(--ink); color: var(--paper); }
:where(.gb-elementor-document) .contact-band .gb-heading { color: var(--paper); }
:where(.gb-elementor-document) .contact-band h2 { font-size: clamp(52px,6vw,88px); line-height: 1.02; letter-spacing: -.035em; }
:where(.gb-elementor-document) .contact-band > .gb-buttons { width: auto; }
:where(.gb-elementor-document) .gb-container.gb-buttons { display: flex; flex-direction: row; flex-wrap: wrap; gap: 16px; margin-top: 26px; }
:where(.gb-elementor-document) .gb-buttons > .gb-button { width: auto; }
:where(.gb-elementor-document) .elementor-widget-button.gb-button .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 25px;
  padding: 18px 25px; max-width: 100%; background: var(--ink); border: 1px solid var(--ink);
  border-radius: 0; color: var(--paper); font: 500 15px/1.5 var(--sans);
  letter-spacing: .1em; text-transform: uppercase; text-align: center;
}
:where(.gb-elementor-document) .elementor-widget-button.gb-button .elementor-button:hover { background: var(--stone); border-color: var(--stone); color: var(--paper); }
:where(.gb-elementor-document) .gb-button.is-style-outline .elementor-button { background: transparent; color: var(--ink); }
:where(.gb-elementor-document) .gb-button.is-style-outline .elementor-button:hover { background: var(--ink); color: var(--paper); }
:where(.gb-elementor-document) .contact-band .gb-button .elementor-button { border-color: #958576; background: transparent; color: var(--paper); padding: 25px 32px; }
:where(.gb-elementor-document) .contact-band .gb-button .elementor-button:hover { background: var(--paper); color: var(--ink); }
:where(.gb-elementor-document) .gb-image.contact-badge { width: fit-content; max-width: 220px; }

/* Native widget boxes replacing former direct-child paragraphs. */
:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-image.gb-image { text-align: inherit; }
:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-image.gb-image img { display: block; }
:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-text-editor.gb-paragraph a,
:where(.gb-elementor-document,.gb-elementor-chrome) .elementor-widget-heading.gb-heading a { color: inherit; }
:where(.gb-elementor-document) .gb-paragraph.eyebrow { font: 500 14px/1.8 var(--sans); text-transform: uppercase; letter-spacing: .19em; color: var(--stone); }
:where(.gb-elementor-document) .contact-band .gb-paragraph:not(.eyebrow) { font-size: 19px; color: #c6b8a8; }
:where(.gb-elementor-document) .contact-band .gb-paragraph.eyebrow { color: #c6b8a8; }
:where(.gb-elementor-document) .process-item .gb-paragraph:not(.eyebrow) { font-size: 19px; }
:where(.gb-elementor-document) .hero-caption .gb-paragraph { font-size: 13.5px; color: var(--stone); }
:where(.gb-elementor-document) .gb-paragraph.gallery-caption { font-size: 16px; color: var(--stone); }
:where(.gb-elementor-document) .gb-paragraph.editorial-note { font-size: 18px; color: var(--stone); }
:where(.gb-elementor-document) .gb-paragraph.breadcrumb { font-size: 14px; color: var(--stone); }
:where(.gb-elementor-document) .gb-paragraph.handwritten { font: 42px/1.2 Allura,cursive; color: var(--stone); }
:where(.gb-elementor-document) .gb-paragraph.big-letter { font: 130px/.8 var(--serif); color: #bcae9e; }
/* These profile classes exist on both the widget and its editable paragraph.
 * Keep spacing/decoration on the outer widget once, rather than doubling it. */
:where(.gb-elementor-document,.gb-elementor-chrome) .gb-paragraph:is(.gallery-caption,.editorial-note,.breadcrumb,.handwritten,.big-letter,.footer-intro) > .elementor-widget-container > p {
  margin: 0 !important; padding: 0; border: 0; transform: none;
}
:where(.gb-elementor-document) .gb-paragraph.eyebrow p.eyebrow { margin: 0 !important; }
:where(.gb-elementor-document) .faq-list > .elementor-widget-gb-faq:not(:first-child) details { padding-top: 24px; }

/* Elementor-rendered shared header/footer. Dynamic navigation stays accessible. */
.gb-elementor-header { position: relative; z-index: 50; overflow: visible; }
:where(.gb-elementor-chrome) .gb-container.site-header { display: flex; flex-direction: row; align-items: center; justify-content: space-between; height: 110px; padding: 0 var(--gutter); gap: 34px; position: relative; z-index: 50; overflow: visible; background: var(--paper); }
:where(.gb-elementor-chrome) .elementor-widget-text-editor.gb-paragraph.gb-brand-markup { width: auto; flex-shrink: 0; color: var(--ink); }
:where(.gb-elementor-chrome) .site-header > :is(.gb-navigation,.gb-header-tools) { display: contents; }
/* These navigation helpers contribute their native nav/tools boxes directly to
 * the header. Their optional Elementor wrapper must not trap the mobile panel
 * in a separate positioned box or a stacking context underneath the page. */
.gb-elementor-header .site-header :is(.gb-navigation,.gb-header-tools) > .elementor-widget-container { display: contents; }
:where(.gb-elementor-chrome) .gb-container.site-footer { padding: 60px var(--gutter) 0; }
/* Cookie content is rendered once, outside the editable footer template. */
.gb-elementor-cookie-shell { padding: 0 var(--gutter) 24px; }
:where(.gb-elementor-chrome) .gb-container.footer-top { display: grid; grid-template-columns: 1.2fr 1fr .8fr; gap: 50px; padding-bottom: 46px; }
:where(.gb-elementor-chrome) .gb-container.footer-brand { display: flex; flex-direction: column; align-items: flex-start; }
:where(.gb-elementor-chrome) .footer-brand > .gb-brand-markup { width: auto; }
:where(.gb-elementor-chrome) .footer-brand .gb-paragraph.footer-intro { max-width: 260px; margin-top: 25px; }
:where(.gb-elementor-chrome) .gb-paragraph.footer-intro { font-size: 18px; }
:where(.gb-elementor-chrome) .footer-col .gb-paragraph { font-size: 14px; margin-bottom: 18px; letter-spacing: .16em; text-transform: uppercase; color: var(--stone); }
:where(.gb-elementor-chrome) .gb-container.footer-bottom { display: flex; flex-direction: row; justify-content: space-between; gap: 20px; padding-top: 23px; border-top: 1px solid var(--line); color: var(--stone); font-size: 14px; line-height: 1.8; }
:where(.gb-elementor-chrome) .footer-bottom > .elementor-widget { width: auto; }
:where(.gb-elementor-chrome) .footer-bottom .gb-paragraph { font-size: 14px; color: var(--stone); line-height: 1.8; }

@media (min-width:1700px) {
  :where(.gb-elementor-document) .gb-container.home-hero { min-height: 780px; }
  :where(.gb-elementor-document) .gb-image.hero-image { min-height: 730px; }
  :where(.gb-elementor-document) .hero-copy h1 { font-size: 116px; }
  :where(.gb-elementor-document) .gb-container.section { padding-block: 140px; }
}

@media (max-width:1100px) {
  .gb-elementor-header .main-nav {
    display: none;
    position: absolute;
    inset: 100% 0 auto;
    width: 100%;
    max-width: none;
    z-index: 60;
    padding: 22px var(--gutter) 32px;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    align-items: stretch;
    max-height: calc(100dvh - 88px);
    overflow: auto;
    pointer-events: auto;
  }
  .gb-elementor-header .main-nav.is-open { display: flex; flex-direction: column; gap: 8px; }
  :where(.gb-elementor-document) .gb-container.home-hero { grid-template-columns: 45% 55%; min-height: 550px; }
  :where(.gb-elementor-document) .gb-image.hero-image { min-height: 520px; }
  :where(.gb-elementor-document) .gb-container.hero-copy { padding-right: 20px; }
  :where(.gb-elementor-document) .hero-copy h1 { font-size: 72px; }
  :where(.gb-elementor-document) .gb-container.intro { gap: 8%; }
  :where(.gb-elementor-document) .gb-container.section { padding-block: 85px; }
  :where(.gb-elementor-document) .gb-container.home-intro { padding-block: 88px; }
  :where(.gb-elementor-document) .gb-container.story-grid { gap: 20px; }
  :where(.gb-elementor-document) .story-card h3 { font-size: 32px; }
  :where(.gb-elementor-document) .gb-container.contact-layout { gap: 6%; }
  :where(.gb-elementor-document) .gb-container.contact-band { gap: 30px; }
  :where(.gb-elementor-chrome) .gb-container.site-header { height: 88px; gap: 20px; }
}

@media (max-width:850px) {
  :where(.gb-elementor-document) .gb-container.home-hero { grid-template-columns: 1fr 1.1fr; min-height: 510px; }
  :where(.gb-elementor-document) .hero-copy h1 { font-size: 64px; }
  :where(.gb-elementor-document) .gb-image.hero-image { min-height: 480px; }
  :where(.gb-elementor-document) .gb-container.intro { gap: 7%; }
  :where(.gb-elementor-document) .gb-container.intro-visual { padding-right: 20px; }
  :where(.gb-elementor-document) .gb-container.intro-portrait { padding-right: 0; }
  :where(.gb-elementor-document) .gb-container.home-intro { gap: 8%; padding-block: 68px; }
  :where(.gb-elementor-document) .intro-copy h2 { font-size: 44px; }
  :where(.gb-elementor-document) .gb-container.story-grid { gap: 17px; }
  :where(.gb-elementor-document) .story-card h3 { font-size: 29px; }
  :where(.gb-elementor-document) :is(.gb-container.view-grid,.gb-container.view-column) { gap: 12px; }
  :where(.gb-elementor-document) .gb-container.contact-band { grid-template-columns: 1fr; }
  :where(.gb-elementor-document) .contact-band > .gb-buttons { margin-top: 0; }
  :where(.gb-elementor-document) .gb-container.page-hero { gap: 6%; padding-top: 50px; }
  :where(.gb-elementor-document) .page-hero h1 { font-size: 60px; }
  :where(.gb-elementor-document) .gb-container.process-grid { gap: 25px; }
  :where(.gb-elementor-document) .gb-container.faq-layout { gap: 8%; grid-template-columns: .8fr 1.2fr; }
  :where(.gb-elementor-document) .gb-container.contact-layout { gap: 5%; }
  :where(.gb-elementor-document) .gb-container.project-feature { gap: 6%; }
  :where(.gb-elementor-chrome) .gb-container.footer-top { gap: 30px; grid-template-columns: 1fr 1fr; }
}

@media (max-width:600px) {
  .gb-elementor-header .main-nav { max-height: calc(100dvh - 82px); }
  :where(.gb-elementor-document) .gb-container.home-hero { display: flex; flex-direction: column; align-items: stretch; padding-top: 25px; min-height: 0; }
  :where(.gb-elementor-document) .gb-container.hero-copy { display: contents; }
  :where(.gb-elementor-document) .hero-copy > .gb-paragraph.eyebrow { order: 0; }
  :where(.gb-elementor-document) .hero-copy > .gb-heading { order: 1; }
  :where(.gb-elementor-document) .hero-copy h1 { font-size: 68px; line-height: .98; letter-spacing: -.045em; }
  :where(.gb-elementor-document) .gb-image.hero-image { order: 2; min-height: 0; height: auto; aspect-ratio: 1.18; }
  :where(.gb-elementor-document) .gb-image.hero-image img { position: absolute; inset: 0; height: 100%; object-position: 53% 45%; }
  :where(.gb-elementor-document) .hero-copy > .gb-paragraph.hero-description { order: 3; max-width: none; margin-top: 22px; }
  :where(.gb-elementor-document) .hero-copy > .gb-paragraph.link-line { order: 4; margin-bottom: 10px; }
  :where(.gb-elementor-document) .gb-container.hero-caption { padding: 14px 0; gap: 20px; }
  :where(.gb-elementor-document) .hero-caption > .gb-paragraph { max-width: 48%; }
  :where(.gb-elementor-document) .hero-caption .gb-paragraph { font-size: 13px; letter-spacing: .1em; line-height: 1.8; }
  :where(.gb-elementor-document) .hero-caption .gb-paragraph p { max-width: none; }
  :where(.gb-elementor-document) .gb-container.section { padding-block: 68px; }
  :where(.gb-elementor-document) .gb-container.section-heading { display: block; margin-bottom: 30px; }
  :where(.gb-elementor-document) .section-heading h2 { font-size: 47px; }
  :where(.gb-elementor-document) .section-heading h1 { font-size: 54px; }
  :where(.gb-elementor-document) .gb-container.intro { display: flex; flex-direction: column; gap: 44px; padding-block: 68px; }
  :where(.gb-elementor-document) .gb-container.intro-visual { width: 100%; padding: 0 46px 36px 0; max-width: 440px; }
  :where(.gb-elementor-document) .gb-container.intro-portrait { padding: 0; }
  :where(.gb-elementor-document) .intro-visual .gb-image.photo-detail { width: 39%; border-width: 7px; }
  :where(.gb-elementor-document) .intro-copy h2 { font-size: 48px; }
  :where(.gb-elementor-document) .gb-container.home-intro { gap: 32px; padding-block: 54px; }
  :where(.gb-elementor-document) .home-intro .gb-container.intro-visual { max-width: 350px; }
  :where(.gb-elementor-document) .gb-container.story-grid { grid-template-columns: 1fr; gap: 32px; }
  :where(.gb-elementor-document) .gb-container.story-card:nth-child(3) { display: block; grid-column: auto; }
  :where(.gb-elementor-document) .story-card h3 { font-size: 28px; }
  :where(.gb-elementor-document) .story-grid-small .story-card h3 { font-size: 24px; }
  :where(.gb-elementor-document) .gb-container.stories-bottom { margin-top: 28px; }
  :where(.gb-elementor-document) .gb-container.view-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  :where(.gb-elementor-document) .gb-container.view-column:nth-child(2) { padding-top: 32px; }
  :where(.gb-elementor-document) .gb-container.view-column:nth-child(3) { display: grid; grid-column: 1/-1; grid-template-columns: 1fr 1fr; padding-top: 0; align-items: start; }
  :where(.gb-elementor-document) .gb-container.manifesto { padding: 60px 24px; }
  :where(.gb-elementor-document) .manifesto h2 { font-size: 39px; }
  :where(.gb-elementor-document) .gb-container.project-grid { grid-template-columns: 1fr; gap: 40px; }
  :where(.gb-elementor-document) .gb-container.project-card:nth-child(2) { padding-top: 0; }
  :where(.gb-elementor-document) .project-card > .gb-image { aspect-ratio: 1.3; }
  :where(.gb-elementor-document) .project-card h3 { font-size: 35px; }
  :where(.gb-elementor-document) .gb-container.project-feature { grid-template-columns: 1fr; gap: 28px; }
  :where(.gb-elementor-document) .project-feature-copy h3 { font-size: 42px; }
  :where(.gb-elementor-document) .gb-container.home-projects { padding-top: 48px; padding-bottom: 60px; }
  :where(.gb-elementor-document) .gb-container.contact-band { padding: 66px 24px; gap: 30px; }
  :where(.gb-elementor-document) .contact-band h2 { font-size: 58px; }
  :where(.gb-elementor-document) .contact-band .gb-button .elementor-button { padding: 18px 25px; }
  :where(.gb-elementor-document) .gb-container.page-hero { grid-template-columns: 1fr; padding: 35px 24px 65px; gap: 35px; }
  :where(.gb-elementor-document) .page-hero h1 { font-size: 62px; line-height: 1.02; }
  :where(.gb-elementor-document) .gb-container.service-intro { padding: 60px 24px; }
  :where(.gb-elementor-document) .service-intro h2 { font-size: 43px; }
  :where(.gb-elementor-document) .gb-container.process-grid { grid-template-columns: 1fr; gap: 32px; }
  :where(.gb-elementor-document) .gb-container.faq-layout { grid-template-columns: 1fr; gap: 30px; }
  :where(.gb-elementor-document) .faq-layout h2 { font-size: 47px; }
  :where(.gb-elementor-document) .gb-container.seasonal { padding: 26px; margin-bottom: 65px; flex-direction: column; align-items: flex-start; }
  :where(.gb-elementor-document) .seasonal h2 { font-size: 37px; }
  :where(.gb-elementor-document) .gb-container.contact-layout { display: flex; flex-direction: column; gap: 0; padding-top: 35px; padding-bottom: 65px; }
  :where(.gb-elementor-document) .gb-container.contact-copy { display: contents; }
  :where(.gb-elementor-document) .contact-copy > .gb-paragraph.eyebrow { order: 0; }
  :where(.gb-elementor-document) .contact-copy > .gb-heading { order: 1; }
  :where(.gb-elementor-document) .contact-copy > .gb-paragraph:not(.eyebrow) { order: 2; }
  :where(.gb-elementor-document) .gb-container.contact-form-wrap { order: 3; margin-top: 30px; }
  :where(.gb-elementor-document) .gb-container.contact-address { order: 4; margin-top: 30px; padding-top: 4px; border-top: 1px solid var(--line); }
  :where(.gb-elementor-document) .gb-container.empty-portfolio { padding: 40px; min-height: 330px; }
  :where(.gb-elementor-document) .gb-paragraph.big-letter { font-size: 100px; }
  :where(.gb-elementor-document) .gb-heading.about-letter { padding: 65px 24px; }
  :where(.gb-elementor-document) .gb-heading.about-letter .elementor-heading-title { font-size: 43px; }
  :where(.gb-elementor-document) .gb-paragraph.handwritten { font-size: 38px; }
  :where(.gb-elementor-chrome) .gb-container.site-header { height: 82px; }
  :where(.gb-elementor-chrome) .gb-container.site-footer { padding: 45px 24px 0; }
  :where(.gb-elementor-chrome) .gb-container.footer-top { grid-template-columns: 1fr; gap: 35px; }
  :where(.gb-elementor-chrome) .gb-container.footer-bottom { flex-direction: column; font-size: 14px; }
}
