/* Secondary public pages: the same rhythm as the archive and catalogue. */
.vision-public :is(.editorial-shell,.legal-shell,.search-hero,.search-results,.search-return,.community-shell,.projects-hub) { max-width: var(--content-width); }
.vision-public :is(.editorial-intro,.account-hero,.search-hero,.auth-story) { background: var(--bg-alt); }
.vision-public :is(.editorial-text-link,.legal-nav a,.chapter-list strong,.search-result__copy > strong,.search-result__copy b,.account-menu-card > strong,.project-card__copy h2) { text-transform: none; letter-spacing: -.015em; font-weight: 500; }
.vision-public :is(.auth-form label,.account-page .auth-form label,.cart-checkout label,.search-main-form > label,.community-form label,.quick-request-reply label) { font-size: .77rem; font-weight: 400; letter-spacing: .01em; text-transform: none; }
.vision-public :is(.auth-form input,.auth-form select,.auth-form textarea,.cart-checkout input,.cart-checkout select,.cart-checkout textarea,.community-form input:not([type="checkbox"]),.community-form textarea) { background: var(--surface); border-color: var(--line-strong); color: var(--text-strong); }
.vision-public :is(.auth-form input,.cart-checkout input,.cart-checkout select,.community-form input):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { min-height: 48px; }
.vision-public :is(.auth-form input,.auth-form select,.auth-form textarea,.cart-checkout input,.cart-checkout select,.cart-checkout textarea,.community-form input,.community-form textarea):focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 3px; }
.vision-public :is(select,select option) { background-color: var(--surface); color: var(--text); }
.vision-public :is(.auth-form__links a,.auth-panel__links a,.cart-login-hint a,.legal-section a) { color: var(--accent-ink); }

/* Sign-in, registration, email verification and recovery share one shell. */
.vision-public.auth-page #content { padding-block: calc(var(--header-height) + 64px) 80px; }
.vision-public .auth-shell { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); box-shadow: none; background: transparent; max-width: 1120px; }
.vision-public .auth-story { min-height: 540px; padding: clamp(28px,4vw,58px); }
.vision-public .auth-story h1 { font-size: clamp(2.2rem,4vw,4rem); line-height: 1.12; }
.vision-public .auth-story::after { content: "BMD"; color: color-mix(in srgb,var(--text) 4%,transparent); -webkit-text-stroke: 0; font-size: clamp(7rem,15vw,13rem); font-family: var(--font-sans); bottom: -12px; right: 12px; }
.vision-public .auth-story > p { font-size: .88rem; line-height: 1.8; }
.vision-public .auth-panel { padding: clamp(28px,4vw,58px); }
.vision-public .auth-panel h2 { font-size: clamp(1.8rem,2.7vw,2.7rem); line-height: 1.15; }
.vision-public .auth-panel__intro { font-size: .87rem; line-height: 1.75; }
.vision-public .auth-form { gap: 21px; }
.vision-public .auth-form .button { margin-top: 8px; }
.vision-public .auth-status { font-size: .85rem; line-height: 1.65; }

/* Account and private requests: retain the dense card layout. */
.vision-public .account-hero { border-inline: 0; border-top: 0; padding: 26px 0 36px; background: transparent; }
.vision-public .account-hero h1 { font-size: clamp(2.1rem,4vw,4rem); }
.vision-public .account-card-grid { gap: 16px; margin-top: 16px; }
.vision-public .account-menu-card { background: var(--surface); min-height: 166px; padding: 22px; }
.vision-public .account-menu-card > strong { line-height: 1.25; font-size: clamp(1.05rem,1.5vw,1.45rem); }
.vision-public .account-menu-card:hover { transform: translateY(-2px); background: var(--surface-strong); }
.vision-public .account-modal__head h2 { text-transform: none; font-weight: 500; font-size: clamp(1.6rem,2.6vw,2.5rem); line-height: 1.2; }
.vision-public :is(.account-subcard > h3,.account-card__heading h3,.account-order-head h3) { text-transform: none; font-weight: 500; font-size: 1.5rem; line-height: 1.2; }
.vision-public .account-modal__head { min-height: 110px; }
.vision-public :is(.account-subcard,.account-notice,.dsr-notice,.quick-request-ticket,.quick-request-thread) { border-color: var(--line); }
.vision-public :is(.dsr-hero h1,.quick-request-center h1,.projects-hub__hero h1) { font-size: clamp(2.5rem,4.5vw,4.6rem); line-height: 1.1; }
.vision-public :is(.quick-request-message,.quick-request-panel,.quick-request-conversation,.dsr-detail__copy) { background-color: var(--surface); border-color: var(--line); }
.vision-public .quick-request-message--admin { border-left-color: var(--accent); }
.vision-public :is(.dsr-detail__copy h2,.dsr-detail__copy h3) { font-size: 1.6rem; }

/* Shopping cart and order form. */
.vision-public .cart-page-shell { padding-top: 45px; padding-bottom: 80px; }
.vision-public :is(.cart-items-panel,.cart-checkout-panel) { background: var(--surface); border-color: var(--line); }
.vision-public .cart-panel-title h2 { font-size: 1.45rem; }
.vision-public .cart-empty > strong { font-weight: 500; font-size: clamp(1.7rem,2.8vw,2.8rem); letter-spacing: -.035em; }
.vision-public .cart-empty p { line-height: 1.8; }
.vision-public .cart-checkout-panel__intro { line-height: 1.8; }
.vision-public .cart-item__copy > a { font-weight: 500; }
.vision-public .cart-checkout h3 { font-size: 1.2rem; }
.vision-public :is(.cart-money-row strong,.cart-dialog__total > strong,.cart-item__price) { font-family: var(--font-sans); font-weight: 500; }
.vision-public :is(.cart-checkout,.cart-dialog__actions,.cart-empty) .button:has(> span)::after { content: none; }

/* Search is an index of the same photographic cards as the catalogue. */
.vision-public .search-hero { padding: 0 0 42px; background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.vision-public .search-hero h1 { font-size: clamp(2.6rem,5vw,5rem); }
.vision-public .search-results { margin-top: 32px; }
.vision-public .search-grid { border: 0; gap: 30px 24px; padding-top: 30px; }
.vision-public .search-result { border: 0; background: transparent; }
.vision-public .search-result:hover { background: transparent; }
.vision-public .search-result__media { border: 0; }
.vision-public .search-result__copy { padding: 20px 0; }
.vision-public .search-result__copy > strong { font-size: 1.12rem; line-height: 1.4; }
.vision-public .search-result__copy small { color: var(--accent-ink); font-weight: 500; font-size: .57rem; }
.vision-public .search-empty { background: var(--bg-alt); border: 1px solid var(--line); }

/* Community photographs, author details and the existing submission form. */
.vision-public.community-page .community-shell { padding-top: calc(var(--header-height) + 70px); padding-bottom: 90px; }
.vision-public .community-hero { padding-bottom: 42px; margin-bottom: 35px; }
.vision-public .community-hero h1 { font-size: clamp(2.5rem,5vw,5rem); letter-spacing: -.05em; }
.vision-public .community-hero p { max-width: 700px; line-height: 1.8; }
.vision-public .community-grid { gap: 30px 24px; }
.vision-public .community-card { background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.vision-public :is(.community-card > a > div,.community-card-open > div) { padding: 20px 0; }
.vision-public .community-card h3 { line-height: 1.35; font-size: 1.15rem; }
.vision-public .community-card-tools { padding-inline: 0; }
.vision-public .community-form-wrap { max-width: 920px; }
.vision-public .community-form fieldset { background: var(--bg-alt); }
.vision-public .community-note { line-height: 1.75; }
.vision-public .product-community .community-hero { padding: 28px; }

/* Editorial: book, reader, behind-the-scenes, FAQ and changelog. */
.vision-public .editorial-intro { background: transparent; }
.vision-public .editorial-shell { --editorial-width: var(--content-width); }
.vision-public :is(.book-overview h2,.reader-missing h1) { font-size: clamp(2.2rem,3.8vw,3.8rem); }
.vision-public :is(.editorial-section-head h2,.editorial-cta h2,.behind-summary h2,.project-stage__text h2) { font-size: clamp(1.8rem,3vw,3rem); line-height: 1.2; }
.vision-public .book-cover { box-shadow: none; padding: 12px; background: var(--bg-alt); }
.vision-public .book-description { font-size: .98rem; line-height: 1.85; }
.vision-public .chapter-list > a { min-height: 100px; }
.vision-public .chapter-list > a > span { font-size: 1.3rem; color: var(--accent-ink); font-weight: 500; }
.vision-public .chapter-list strong { font-size: 1.15rem; }
.vision-public .behind-feed { gap: 34px 24px; }
.vision-public .behind-card { border: 0; background: transparent; border-bottom: 1px solid var(--line); }
.vision-public .behind-card__copy { padding: 24px 0; }
.vision-public .behind-card__copy h2 { font-size: clamp(1.5rem,2.4vw,2.4rem); }
.vision-public .reader-card { background: var(--surface); border-color: var(--line); }
.vision-public .reader-content { font-size: 1.02rem; line-height: 1.9; }
.vision-public .reader-content h2 { font-size: clamp(1.7rem,2.8vw,2.7rem); }
.vision-public .reader-toolbar { background: var(--bg); border-color: var(--line); }
.vision-public .faq-section h2 { font-size: clamp(1.7rem,2.8vw,2.6rem); }
.vision-public .faq-list summary { font-size: 1rem; font-weight: 500; line-height: 1.55; }
.vision-public .faq-list details { border-color: var(--line); background: transparent; }
.vision-public .faq-list details[open] { background: var(--surface); }
.vision-public .changelog-entry { background: transparent; border-color: var(--line); }
.vision-public .changelog-entry__version { font-family: var(--font-sans); font-weight: 500; color: var(--accent-ink); }
.vision-public .changelog-entry__copy h2 { font-size: 1.5rem; }

/* Policies, related projects, news and giveaways. */
.vision-public .legal-shell { grid-template-columns: minmax(190px,.3fr) minmax(0,1fr); gap: clamp(36px,6vw,90px); }
.vision-public .legal-nav a { font-size: .78rem; line-height: 1.55; }
.vision-public .legal-content { max-width: 860px; }
.vision-public .legal-lead { font-size: 1.12rem; line-height: 1.8; }
.vision-public .legal-section h2 { font-size: clamp(1.75rem,2.8vw,2.7rem); }
.vision-public .legal-section h3 { font-size: 1rem; letter-spacing: -.01em; }
.vision-public .legal-section p, .vision-public .legal-section li { font-size: .94rem; line-height: 1.85; }
.vision-public .other-project-card { border-color: var(--line); background: transparent; }
.vision-public .other-project-card__content { background: var(--surface); }
.vision-public .other-project-card__content h3 { font-size: 2rem; }
.vision-public .news-builder-card { background: var(--bg-alt); border-color: var(--line); }
.vision-public .news-card__body { padding-inline: 0; }
.vision-public .news-card h3 { font-weight: 500; }
.vision-public .giveaway-tile { background: transparent; border-color: var(--line); }
.vision-public .giveaway-tile-body { padding: 22px; background: var(--surface); }
.vision-public .giveaway-tile h3 { font-size: 1.4rem; line-height: 1.3; }
.vision-public :is(.giveaway-empty-card,.giveaway-announcement,.giveaway-prize,.giveaway-rules) { background: var(--surface); border-color: var(--line); }
.vision-public .giveaway-empty-mark { color: var(--accent-ink); }
.vision-public .giveaway-filters a { font-weight: 500; text-transform: none; letter-spacing: 0; }
.vision-public .giveaway-announcement h1 { font-size: clamp(2.4rem,4.5vw,4.5rem); }
.vision-public .giveaway-copy h1 { line-height: 1.15; font-size: clamp(2.4rem,4.5vw,4.5rem); }
.vision-public .giveaway-list-heading h2 { font-size: 2rem; }
.vision-public .error-view__code { color: color-mix(in srgb,var(--text) 9%,transparent); font-family: var(--font-sans); letter-spacing: -.08em; }
.vision-public .error-view h1 { font-size: clamp(2.1rem,4vw,4rem); }

/* Saved designs belong to the site; their thumbnails keep their exact scale. */
.vision-public .projects-hub__hero { min-height: 0; padding-bottom: 42px; }
.vision-public.builder-projects-page .project-card { background: var(--surface); border: 1px solid var(--line); }
.vision-public .project-card__preview { background: var(--bg-alt); }
.vision-public .project-card__copy h2 { font-size: 1.2rem; line-height: 1.25; }
.vision-public .project-card__actions :is(a,button) { font-weight: 500; text-transform: none; letter-spacing: 0; }
.vision-public .projects-hub__empty h2 { font-size: clamp(2rem,4vw,3.8rem); }

@media(max-width:900px) {
    .vision-public .auth-shell { grid-template-columns: 1fr; max-width: 680px; }
    .vision-public .auth-story { min-height: 260px; border-right: 0; border-bottom: 1px solid var(--line); gap: 28px; }
    .vision-public .auth-story h1 { max-width: 500px; }
    .vision-public .search-hero { grid-template-columns: 1fr; gap: 30px; }
    .vision-public .legal-shell { grid-template-columns: 1fr; gap: 35px; }
    .vision-public .legal-nav { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; }
}
@media(max-width:640px) {
    .vision-public.auth-page #content { padding-top: calc(var(--header-height) + 32px); padding-bottom: 45px; }
    .vision-public .auth-story { min-height: 0; padding: 26px; }
    .vision-public .auth-story h1 { font-size: 2.2rem; }
    .vision-public .auth-panel { padding: 26px; }
    .vision-public .auth-panel h2 { font-size: 1.85rem; }
    .vision-public .auth-form__row { grid-template-columns: 1fr; }
    .vision-public .auth-story::after { font-size: 7rem; }
    .vision-public .search-grid { gap: 24px 14px; }
    .vision-public .search-result__copy > strong { font-size: 1rem; }
    .vision-public .search-hero h1 { font-size: 2.8rem; }
    .vision-public.community-page .community-shell { padding-top: calc(var(--header-height) + 40px); padding-bottom: 55px; }
    .vision-public .community-hero h1 { font-size: 2.5rem; }
    .vision-public .community-grid { gap: 25px; }
    .vision-public .legal-nav { grid-template-columns: 1fr; }
    .vision-public .legal-section h2 { font-size: 1.8rem; }
    .vision-public .cart-page-shell { padding-top: 28px; padding-bottom: 50px; }
    .vision-public .cart-panel-title h2 { font-size: 1.25rem; }
    .vision-public .account-hero { padding-inline: var(--page-gutter); padding-bottom: 26px; }
    .vision-public .account-card-grid { gap: 10px; }
    .vision-public .account-menu-card { padding: 18px; }
    .vision-public .account-menu-card > strong { font-size: 1.1rem; }
    .vision-public .editorial-section-head h2 { font-size: 1.9rem; }
}
