/* Quiet, consistent navigation across light and dark pages. */
.theme-light .site-header { background: #f2f1ec; color: #171816; }
.theme-dark .site-header:not(.on-hero) { background: #10110f; color: #f2f1ec; }
.site-header.on-hero { background: transparent; color: #fff; }
.desktop-nav { gap: 10px; }
.desktop-nav a { border: 0; border-radius: 0; padding: 9px 10px; position: relative; }
.desktop-nav a::after { content: ''; position: absolute; left: 10px; right: 10px; bottom: 3px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.desktop-nav a:hover::after, .desktop-nav a[aria-current]::after { transform: scaleX(1); }
.header-cta { border-radius: 0; border: 0; border-bottom: 1px solid currentColor; padding: 9px 0; }
.seo-breadcrumb { padding: 0 max(4vw,24px); font-size: 10px; letter-spacing: .04em; opacity: .7; }
.seo-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.privacy-form-note { font-size: 13px; line-height: 1.65; color: #4e514a; }
.privacy-form-note a { text-decoration: underline; text-underline-offset: 3px; }
.contact-form-wrap .privacy-accept { display:flex; align-items:flex-start; gap:12px; margin:20px 0 22px; }
.contact-form-wrap .privacy-accept input { flex:0 0 20px; width:20px; height:20px; margin:1px 0 0; accent-color:#171816; cursor:pointer; }
.contact-form-wrap .privacy-accept label { margin:0; font-size:13px; line-height:1.6; color:#34372f; cursor:pointer; }
.contact-form-wrap .privacy-accept a { text-decoration:underline; text-underline-offset:3px; }
.contact-form-wrap .form-status { margin:0 0 18px; padding:15px 17px; background:#e2e7dc; border-left:3px solid #526d4f; color:#293c27; font-size:13px; line-height:1.65; }

/* Keep navigation accessible without obscuring section links. */
html { scroll-padding-top: 110px; }
.site-header { position: sticky; top: 0; z-index: 60; transition: height .25s ease, background-color .25s ease, box-shadow .25s ease; }
.site-header.on-hero { position: fixed; top: 0; left: 0; right: 0; }
.site-header.is-scrolled { height: 84px; box-shadow: 0 1px 0 rgba(100,100,90,.14); }
.site-header.on-hero.is-scrolled { color: #fff; background: #171816; text-shadow: none; box-shadow: 0 1px 0 rgba(255,255,255,.1); }
.menu-is-open .site-header, .menu-is-open .site-header.on-hero { color: #f2f1ec; background: #10110f; text-shadow: none; }
@media (max-width: 760px) {
  html { scroll-padding-top: 88px; }
  .site-header.is-scrolled { height: 72px; }
}
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }

/* All controls use consistent SVGs, independent of the platform font. */
.icon { display: inline-block; vertical-align: middle; flex: 0 0 auto; }
.menu-toggle .icon-menu { width: 30px; height: 30px; display: block; }
.icon-menu path { transform-origin: center; transform-box: fill-box; transition: transform .2s ease; }
.menu-is-open .icon-menu .menu-line-top { transform: translateY(4px) rotate(45deg); }
.menu-is-open .icon-menu .menu-line-bottom { transform: translateY(-4px) rotate(-45deg); }
.slider-controls .icon, .portfolio-rail-controls .icon, .lightbox-nav .icon { width: 20px; height: 20px; }
.lightbox-close .icon { width: 25px; height: 25px; }
.hero-scroll .icon { width: 18px; height: 18px; }
.tiny-star .icon { width: 38px; height: 38px; }
.footer-middle .icon, .contact-details .icon, .legal-sources .icon { width: 14px; height: 14px; margin-left: 3px; }
.ed-offer-nav .icon { width: 12px; height: 12px; margin-left: 3px; opacity: .65; }
.ed-offer-card li .icon { width: 15px; height: 15px; margin-top: 3px; opacity: .55; }
.ed-offer-card-link .icon { width: 19px; height: 19px; }
.ed-offer-details summary .icon { width: 22px; height: 22px; transition: transform .2s ease; }
.ed-offer-details[open] summary .icon { transform: rotate(45deg); }
.ed-offer-included li, .ed-offer-combined-body li { display: flex; align-items: baseline; gap: 10px; }
.ed-offer-included li .icon, .ed-offer-combined-body li .icon { width: 11px; height: 11px; color: #a39d8e; }
select { appearance: none; padding-right: 28px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23171816' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right center; }
input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; width: 20px; height: 20px; padding: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23171816' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18'/%3E%3C/svg%3E") center / 18px 18px no-repeat; }
@media (prefers-reduced-motion: reduce) { .icon-menu path, .ed-offer-details summary .icon { transition: none; } }

/* Show the photographs selected by the client in their original proportions. */
.ed-offer-photo > img { width: 100%; height: auto; min-height: 0; max-height: none; object-fit: contain; }
.contact-image { width: 100%; height: auto; aspect-ratio: 685 / 960; object-fit: contain; }
.contact-image-copy { position: static; height: auto; aspect-ratio: auto; background: #171816; padding: 24px 28px; gap: 14px; }
.contact-image-copy > p { font-size: clamp(24px, 2.2vw, 34px); }

/* Original logo displayed using a luminance mask on the supplied artwork. */
.brand { display: inline-flex; width: auto; line-height: 1; flex: 0 0 auto; }
.brand .brand-logo { display: block; width: clamp(210px, 20vw, 270px); height: auto; max-width: 100%; stroke: none; }
.site-footer .brand .brand-logo { width: clamp(235px, 24vw, 330px); }
@media (max-width: 760px) {
  .site-header .brand .brand-logo { width: min(57vw, 230px); }
  .site-footer .brand .brand-logo { width: min(78vw, 300px); }
}
