/* Compositions for the price catalogue and team pages. */
.public-page { --public-nav-overlap: 48px; margin-top: calc(-1 * var(--public-nav-overlap)); color: #18212b; font-family: 'Golos Text', Arial, sans-serif; }
.public-page .gallery-page { padding-bottom: 0; }
.public-page #price { padding-top: 20px; }
.public-page__count { flex-shrink: 0; margin: 0; color: #697583; font-size: 13px; line-height: 1.5; }
.public-page .price-service { margin-top: 32px; scroll-margin-top: 100px; }
.public-page .price-service[hidden] { display: none; }
.public-page #price .price__nav a[aria-selected="true"] { border-color: #ffcd00; background: #ffcd00; color: #18212b; font-weight: 600; }
.public-page .price__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 24px; }
.public-page .price__actions .slider__btn { margin: 0; }
.public-page #price .price__card--order-1 { order: 1; }
.public-page #price .price__card--order-2 { order: 2; }
.public-page #price .price__card--order-3 { order: 3; }
.public-page #price .price__card--order-4 { order: 4; }
.public-page #price .price__card--order-5 { order: 5; }
.public-page #price .price__card--order-6 { order: 6; }
.public-page #price .price__card--order-7 { order: 7; }
.public-page #price .price__card--order-8 { order: 8; }
.public-page #masters { padding-top: 12px; }
@media (max-width: 767.98px) {
    .public-page #price .price__heading { flex-direction: column; align-items: flex-start; gap: 10px; }
    .public-page .price-service { margin-top: 24px; scroll-margin-top: 80px; }
    .public-page .price__actions { gap: 18px; }
    .public-page__count { font-size: 12px; }
}

/* Full-width photographic intros use the site's type and existing action buttons. */
.public-hero, .public-hero * { box-sizing: border-box; }
.public-hero {
    position: relative;
    isolation: isolate;
    min-height: calc(min(780px, calc(100svh - 130px)) + var(--public-nav-overlap));
    margin-bottom: 48px;
    overflow: hidden;
    background: #17212a;
    color: #fff;
}
.public-hero__backdrop { position: absolute; z-index: -2; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.public-hero--team .public-hero__backdrop { object-position: center 40%; }
.public-hero::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(9,16,22,.92), rgba(9,16,22,.78) 38%, rgba(9,16,22,.24) 68%, rgba(9,16,22,.04)); }
.public-hero .public-hero__inner { position: relative; display: flex; flex-direction: column; width: 90%; max-width: 1230px; min-height: inherit; margin: 0 auto; padding: calc(28px + var(--public-nav-overlap)) 0 40px; }
.public-hero .gallery-topline { flex: 0 0 auto; margin: 0; padding: 0 0 20px; border-bottom: 1px solid #ffffff26; }
.public-hero .gallery-breadcrumbs { flex-wrap: wrap; gap: 12px; color: #fff; }
.public-hero .gallery-breadcrumbs, .public-hero .gallery-topline a { font-size: 13px; line-height: 1.6; }
.public-hero .gallery-topline a { color: #dce1e5; text-underline-offset: 4px; }
.public-hero .gallery-breadcrumbs > [aria-hidden] { color: #ffda38; }
.public-hero .gallery-topline a:hover { color: #ffd100; text-decoration: underline; }
.public-hero__content { flex: 1; display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) 340px; align-items: center; gap: 84px; padding: 40px 0; }
.public-hero__copy { width: 100%; max-width: 650px; }
.public-hero__eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; color: #ffda38; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.public-hero__eyebrow::before { content: ''; flex: 0 0 28px; height: 3px; background: #ffd100; }
.public-hero h1 { margin: 0; padding: 0; color: #fff; font: 700 clamp(48px, 4.6vw, 70px)/1.07 'Geologica', Arial, sans-serif; letter-spacing: -2px; text-align: left; }
.public-hero__description { max-width: 510px; margin: 25px 0 30px; color: #e0e5e9; font-size: 17px; line-height: 1.7; }
.public-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.public-hero__actions .masters-intro__button { padding: 16px 20px; white-space: nowrap; }
.public-hero__anchor { display: inline-flex; align-items: center; gap: 12px; color: #fff; font-size: 13px; font-weight: 500; }
.public-hero__anchor span { font-size: 20px; transition: transform .2s; }
.public-hero__anchor:hover { color: #ffd100; }
.public-hero__anchor:hover span { transform: translateY(3px); }
.public-hero__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-self: center; gap: 12px; }
.public-hero__fact { position: relative; padding: 25px 20px 22px; border: 1px solid #ffffff40; border-radius: 4px; background: #101a23d9; box-shadow: 0 12px 32px #0000001a; backdrop-filter: blur(12px); transform-origin: center; backface-visibility: hidden; }
.public-hero__fact:first-child { grid-column: 1 / -1; padding: 26px; border-color: #ffce00; background: #ffce00; }
.public-hero__fact strong { display: block; margin: 20px 0 10px; color: #fff; font: 600 25px/1.15 'Geologica', Arial, sans-serif; letter-spacing: -.7px; }
.public-hero__fact:first-child strong { margin-top: 6px; color: #15202a; font-size: 64px; letter-spacing: -2px; }
.public-hero__fact > span:not(.public-hero__fact-index) { display: block; color: #e0e5e9; font-size: 12px; line-height: 1.5; }
.public-hero__fact:first-child > span:not(.public-hero__fact-index) { color: #26313b; font-size: 14px; }
.public-hero__fact-index { position: absolute; top: 14px; right: 16px; color: #ffda38; font-size: 10px; font-weight: 600; letter-spacing: .12em; }
.public-hero__fact:first-child .public-hero__fact-index { color: #26313b; }
.public-hero__fact:first-child::after { content: ''; position: absolute; top: 21px; right: 26px; width: 48px; height: 48px; border: 1px solid #15202a40; transform: rotate(12deg); }
.public-hero a:focus-visible, .public-hero button:focus-visible { outline: 2px solid #ffd100; outline-offset: 5px; }
@media (max-width: 1100px) {
    .public-hero { min-height: calc(650px + var(--public-nav-overlap)); }
    .public-hero__content { grid-template-columns: minmax(0, 1fr) 290px; gap: 40px; }
    .public-hero h1 { font-size: 54px; }
    .public-hero__description { font-size: 16px; }
    .public-hero__fact { padding-right: 16px; padding-left: 16px; }
    .public-hero__fact strong { font-size: 22px; }
}
@media (max-width: 991.98px) {
    .public-hero__content { grid-template-columns: 1fr; align-content: center; justify-items: center; gap: 36px; }
    .public-hero__copy { max-width: 620px; }
    .public-hero__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; max-width: 620px; margin: 0; }
    .public-hero__fact:first-child { grid-column: auto; padding: 25px 20px 22px; }
    .public-hero__fact:first-child strong { margin-top: 20px; font-size: 32px; letter-spacing: -.7px; }
    .public-hero__fact:first-child::after { display: none; }
}
@media (max-width: 960px) {
    .public-page { --public-nav-overlap: 0px; }
}
@media (max-width: 767.98px) {
    .public-hero { min-height: calc(100svh - 74px); margin-bottom: 30px; }
    .public-hero::before { background: linear-gradient(90deg, rgba(9,16,22,.88), rgba(9,16,22,.58)); }
    .public-hero__backdrop { object-position: 65% center; }
    .public-hero--team .public-hero__backdrop { object-position: 72% center; }
    .public-hero .public-hero__inner { width: calc(100% - 32px); padding: 22px 0 28px; }
    .public-hero .gallery-topline { padding-bottom: 16px; }
    .public-hero .gallery-breadcrumbs, .public-hero .gallery-topline a { font-size: 12px; }
    .public-hero__content { padding: 38px 0 12px; gap: 30px; }
    .public-hero__copy { max-width: 560px; }
    .public-hero__eyebrow { margin-bottom: 18px; font-size: 10px; letter-spacing: .08em; }
    .public-hero h1 { font-size: 44px; letter-spacing: -1.2px; }
    .public-hero__description { max-width: 100%; margin: 22px 0 26px; font-size: 16px; line-height: 1.6; }
    .public-hero__actions { gap: 20px; }
    .public-hero__facts { gap: 8px; }
    .public-hero__fact, .public-hero__fact:first-child { padding: 18px 10px 16px; }
    .public-hero__fact strong, .public-hero__fact:first-child strong { margin: 18px 0 8px; font-size: 21px; }
    .public-hero__fact > span:not(.public-hero__fact-index), .public-hero__fact:first-child > span:not(.public-hero__fact-index) { font-size: 10px; }
    .public-hero__fact-index { top: 10px; right: 10px; font-size: 9px; }
}
@media (max-width: 359.98px) {
    .public-hero h1 { font-size: 39px; }
    .public-hero__description { font-size: 15px; }
    .public-hero__fact strong, .public-hero__fact:first-child strong { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .public-hero__anchor span { transition: none; }
}
