:root {
  --red: #e3222b;
  --red-dark: #bd1720;
  --ink: #17191e;
  --muted: #6f7178;
  --cream: #f7f3ef;
  --white: #fff;
  --line: #dfddd9;
  --success: #22a267;
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; font-family: "Manrope", system-ui, sans-serif; color: var(--ink); background: var(--cream); -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; padding: 12px 18px; background: var(--ink); color: white; border-radius: 12px; transition: top .2s; }
.skip-link:focus { top: 16px; }
.section-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }

.site-header { width: min(1180px, calc(100% - 48px)); height: 84px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 11px; color: var(--red); }
.brand__mark { width: 42px; height: 42px; flex: none; }
.brand span { display: grid; line-height: 1; }
.brand strong { color: var(--ink); font-size: 19px; font-weight: 800; letter-spacing: -.5px; }
.brand small { color: var(--muted); font-size: 10px; letter-spacing: .17em; text-transform: uppercase; margin-top: 5px; }
.desktop-nav { display: flex; align-items: center; gap: 32px; font-size: 14px; font-weight: 600; }
.desktop-nav a, .header-phone { transition: color .2s; }
.desktop-nav a:hover, .header-phone:hover { color: var(--red); }
.header-phone { font-weight: 800; font-size: 15px; }

.hero { min-height: 685px; display: grid; grid-template-columns: 1fr; align-items: center; gap: 48px; padding-block: 74px 104px; }
.hero__copy { max-width: 760px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 24px; color: var(--muted); text-transform: uppercase; letter-spacing: .15em; font-size: 11px; font-weight: 800; }
.eyebrow span { width: 28px; height: 2px; background: var(--red); }
.hero h1 { max-width: 650px; margin: 0; font-size: clamp(48px, 5.3vw, 79px); line-height: .99; letter-spacing: -.065em; font-weight: 800; }
.hero h1 em { color: var(--red); font-style: normal; }
.hero__lead { max-width: 585px; margin: 28px 0 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.hero__actions { display: flex; gap: 12px; margin-top: 34px; }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; padding: 0 25px; border: 0; border-radius: 14px; font-weight: 800; cursor: pointer; transition: transform .18s, background .18s, box-shadow .18s; }
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--red); color: white; box-shadow: 0 12px 28px rgba(227,34,43,.2); }
.button--primary:hover { background: var(--red-dark); box-shadow: 0 16px 34px rgba(227,34,43,.26); }
.button--ghost { background: white; border: 1px solid var(--line); }
.button--ghost:hover { border-color: #bbb8b2; }
.proof-row { display: flex; margin-top: 42px; }
.proof-row span { display: grid; padding: 0 28px; border-left: 1px solid var(--line); }
.proof-row span:first-child { padding-left: 0; border: 0; }
.proof-row b { font-size: 14px; }
.proof-row small { color: var(--muted); margin-top: 3px; }

.hero__visual { position: relative; height: 510px; }
.hero__visual--photo { display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid #e9e7e3; border-radius: 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(36,24,19,.13); }
.hero__visual--photo::before { display: none; }
.hero__visual--photo img { display: block; position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.hero__visual::before { content: ""; position: absolute; inset: 18px 10px 35px 45px; background: #eae2dc; border-radius: 50% 42% 48% 38%; transform: rotate(-7deg); }
.portrait-card { position: absolute; overflow: hidden; background: white; border: 8px solid white; border-radius: 22px; box-shadow: 0 30px 70px rgba(36,24,19,.15); }
.portrait-card--before { width: 205px; height: 292px; left: 3%; top: 115px; transform: rotate(-7deg); opacity: .88; }
.portrait-card--after { width: 290px; height: 405px; right: 1%; top: 24px; transform: rotate(4deg); }
.portrait-card__label { position: absolute; z-index: 3; top: 15px; left: 15px; border-radius: 999px; padding: 7px 12px; background: rgba(255,255,255,.82); backdrop-filter: blur(8px); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.portrait-card__label--red { background: var(--red); color: white; }
.portrait { position: relative; width: 100%; height: 100%; overflow: hidden; background: linear-gradient(160deg, #dfd8d1, #f5f2ef 70%); }
.portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg, rgba(255,255,255,.35), transparent 42%); }
.portrait i { position: absolute; display: block; }
.portrait__head { width: 42%; aspect-ratio: .79; top: 20%; left: 29%; border-radius: 46% 46% 44% 44%; background: #d9a98d; z-index: 2; }
.portrait__hair { width: 49%; height: 38%; top: 14%; left: 26%; border-radius: 52% 52% 25% 25%; background: #3b2b29; z-index: 3; clip-path: polygon(5% 0,95% 0,100% 89%,77% 100%,75% 37%,43% 27%,26% 45%,22% 100%,0 89%); }
.portrait__neck { width: 16%; height: 18%; top: 52%; left: 42%; background: #d9a98d; z-index: 1; }
.portrait__body { width: 86%; height: 42%; left: 7%; bottom: -13%; border-radius: 48% 48% 0 0; background: #d9c5b7; }
.portrait--after { background: linear-gradient(160deg, #cbd7dc, #fff 68%); }
.portrait--after .portrait__body { background: #242b38; }
.portrait--after .portrait__hair { background: #2f2424; }
.portrait-card--after p { position: absolute; z-index: 5; left: 18px; bottom: 16px; margin: 0; padding: 11px 14px; background: rgba(255,255,255,.9); border-radius: 12px; font-size: 12px; line-height: 1.3; backdrop-filter: blur(8px); }
.floating-note { position: absolute; z-index: 6; right: 28%; bottom: 8px; display: flex; align-items: center; gap: 10px; background: var(--ink); color: white; border-radius: 16px; padding: 14px 17px; font-size: 12px; line-height: 1.45; box-shadow: 0 18px 40px rgba(23,25,30,.2); }
.floating-note span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--success); font-weight: 800; }

.services { padding: 104px 0 120px; background: white; border-radius: 42px 42px 0 0; }
.section-heading { display: flex; justify-content: space-between; gap: 32px; align-items: end; }
.section-heading .eyebrow { margin-bottom: 14px; }
.section-heading h2, .booking h2 { margin: 0; font-size: clamp(38px, 5vw, 58px); line-height: 1; letter-spacing: -.055em; }
.section-heading > p { max-width: 380px; margin: 0; color: var(--muted); line-height: 1.6; }
.service-tabs { display: flex; gap: 8px; margin: 48px 0 24px; padding: 6px; width: fit-content; background: var(--cream); border-radius: 15px; }
.tab { min-height: 44px; border: 0; border-radius: 11px; padding: 0 18px; background: transparent; color: var(--muted); font-weight: 700; cursor: pointer; }
.tab.is-active { background: var(--ink); color: white; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.service-grid[hidden] { display: none; }
.service-card { min-height: 398px; display: flex; flex-direction: column; padding: 26px; border: 1px solid #e9e7e3; border-radius: 22px; background: #fff; transition: transform .2s, box-shadow .2s, border-color .2s; }
.service-card:hover { transform: translateY(-4px); border-color: #d4d0ca; box-shadow: 0 18px 45px rgba(34,29,25,.08); }
.service-card--featured { background: var(--ink); color: white; border-color: var(--ink); }
.service-card--business { background: linear-gradient(145deg, #fdf6f5, #fff); border-color: #edb8ba; }
.service-card--featured p, .service-card--featured li { color: #bdbfc5; }
.service-card--wide { grid-column: 1 / -1; min-height: auto; flex-direction: row; align-items: center; justify-content: space-between; gap: 34px; }
.service-card__wide-copy { display: flex; align-items: center; gap: 22px; }
.service-card__wide-copy .service-card__top { flex: none; }
.service-card__wide-copy h3 { margin-bottom: 4px; }
.service-card__top { display: flex; align-items: center; justify-content: space-between; }
.service-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: var(--cream); color: var(--red); font-size: 18px; font-weight: 800; }
.service-card--featured .service-icon { background: #30333a; }
.service-tag { padding: 7px 9px; border-radius: 8px; background: #f4f1ee; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.service-card--featured .service-tag { background: var(--red); color: white; }
.service-card h3 { margin: 26px 0 10px; font-size: 21px; line-height: 1.25; letter-spacing: -.02em; }
.service-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.service-card ul { display: grid; gap: 9px; margin: 22px 0; padding: 0; list-style: none; color: var(--muted); font-size: 12px; }
.service-card li::before { content: "✓"; margin-right: 8px; color: var(--red); font-weight: 900; }
.service-card__bottom { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: auto; padding-top: 18px; border-top: 1px solid #eceae7; }
.service-card--featured .service-card__bottom { border-color: #34373e; }
.service-card__bottom strong { white-space: nowrap; font-size: 16px; }
.choose-service { border: 0; background: transparent; color: var(--red); font-weight: 800; cursor: pointer; padding: 8px 0; }
.choose-service::after { content: " →"; }

.booking { background: var(--ink); color: white; padding: 118px 0 96px; }
.booking__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; }
.eyebrow--light { color: #aaaeb6; }
.booking__info > p:not(.eyebrow) { margin: 25px 0 0; color: #aaadb4; font-size: 16px; line-height: 1.7; }
.contact-card { margin-top: 45px; padding: 21px; border-radius: 18px; background: #24272e; }
.contact-card div { display: grid; gap: 5px; }
.contact-card span, .contact-links small { color: #92959c; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contact-card strong { font-size: 14px; line-height: 1.5; }
.contact-card a { display: inline-block; margin-top: 18px; color: #ff7c83; font-size: 12px; font-weight: 800; }
.contact-links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.contact-links a { display: grid; gap: 5px; padding: 18px 20px; background: #24272e; border-radius: 16px; }
.contact-links strong { font-size: 12px; }

.booking-form { background: white; color: var(--ink); border-radius: 26px; padding: 30px; box-shadow: 0 35px 75px rgba(0,0,0,.22); }
.form-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; padding-bottom: 19px; border-bottom: 1px solid #eceae7; }
.form-heading span { font-size: 18px; font-weight: 800; }
.form-heading b { color: #d7d3ce; font-size: 12px; }
.booking-form label { display: grid; gap: 8px; margin-bottom: 16px; font-size: 11px; font-weight: 800; }
.booking-form input, .booking-form select { width: 100%; height: 49px; border: 1px solid #dedbd6; border-radius: 11px; background: white; padding: 0 14px; color: var(--ink); outline: none; transition: border-color .2s, box-shadow .2s; }
.booking-form input:focus, .booking-form select:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(227,34,43,.1); }
.booking-form .is-invalid { border-color: var(--red); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.consent { display: flex !important; align-items: flex-start; gap: 10px !important; color: var(--muted); font-weight: 500 !important; line-height: 1.45; cursor: pointer; }
.consent input { width: 17px; height: 17px; flex: none; margin: 2px 0 0; accent-color: var(--red); }
.field-error { display: none; color: var(--red); font-size: 10px; font-weight: 700; }
.field-error.is-visible { display: block; }
.field-error--consent { margin: -9px 0 14px; }
.button--submit { width: 100%; justify-content: space-between; margin-top: 6px; padding-inline: 20px; }
.button--submit span { font-size: 20px; }
.form-note { margin: 12px 0 0; text-align: center; color: var(--muted); font-size: 10px; }

.site-footer { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px max(24px, calc((100vw - 1180px) / 2)); background: #111318; color: white; }
.brand--footer .brand__mark { width: 36px; height: 36px; }
.brand--footer strong { color: white; }
.site-footer p, .site-footer > a:last-child { color: #8d9097; font-size: 11px; }
.site-footer > a:last-child:hover { color: white; }
.toast { position: fixed; z-index: 50; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 12px; padding: 14px 18px 14px 13px; background: white; border-radius: 16px; box-shadow: 0 18px 60px rgba(0,0,0,.18); transform: translateY(130px); opacity: 0; pointer-events: none; transition: transform .3s, opacity .3s; }
.toast.is-visible { transform: translateY(0); opacity: 1; }
.toast > span { width: 32px; height: 32px; display: grid; place-items: center; background: #e4f7ed; color: var(--success); border-radius: 50%; font-weight: 900; }
.toast div { display: grid; gap: 2px; }
.toast strong { font-size: 12px; }
.toast small { color: var(--muted); font-size: 10px; }

@media (max-width: 960px) {
  .hero { grid-template-columns: 1fr; padding-top: 60px; }
  .hero__copy { max-width: 730px; }
  .hero__visual { width: min(590px, 100%); margin-inline: auto; }
  .service-grid { grid-template-columns: 1fr 1fr; }
  .service-card--wide { grid-column: 1 / -1; }
  .booking__grid { gap: 45px; }
}

@media (max-width: 720px) {
  html { scroll-padding-top: 20px; }
  .section-shell, .site-header { width: min(100% - 32px, 580px); }
  .site-header { height: 72px; }
  .desktop-nav { display: none; }
  .header-phone { font-size: 0; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; }
  .header-phone::after { content: "☎"; font-size: 18px; }
  .hero { min-height: auto; padding: 54px 0 78px; gap: 52px; }
  .hero h1 { font-size: clamp(43px, 13vw, 64px); }
  .hero__lead { font-size: 15px; }
  .hero__actions { display: grid; grid-template-columns: 1.35fr .8fr; }
  .button { min-height: 52px; padding-inline: 15px; font-size: 13px; }
  .proof-row { display: grid; grid-template-columns: 1fr 1fr 1fr; margin-top: 34px; }
  .proof-row span { padding: 0 10px; }
  .proof-row b { font-size: 11px; }
  .proof-row small { font-size: 9px; }
  .hero__visual { height: auto; aspect-ratio: 3 / 2; }
  .hero__visual--photo img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
  .services { padding: 78px 0 86px; border-radius: 28px 28px 0 0; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 18px; }
  .service-tabs { width: 100%; overflow-x: auto; margin-top: 34px; }
  .tab { flex: 0 0 auto; padding: 0 14px; font-size: 11px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 365px; }
  .service-card--wide { grid-column: auto; min-height: auto; display: block; }
  .service-card__wide-copy { display: block; }
  .service-card__wide-copy h3 { margin-top: 18px; }
  .service-card--wide .service-card__bottom { margin-top: 22px; }
  .booking { padding: 82px 0 70px; }
  .booking__grid { grid-template-columns: 1fr; gap: 40px; }
  .booking-form { padding: 23px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .contact-links { grid-template-columns: 1fr; }
  .site-footer { flex-wrap: wrap; justify-content: center; padding-block: 30px; text-align: center; }
  .site-footer p { order: 3; flex-basis: 100%; }
  .toast { left: 16px; right: 16px; bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
/* Clear, readable service funnel. */
:root { --cream:#f7f7f8; --muted:#595d65; }
body { font-size:16px; line-height:1.65; }
.hero { min-height:auto; padding-block:72px; }
.hero h1 { max-width:900px; font-size:clamp(2.5rem,5.5vw,4.7rem); line-height:1.1; letter-spacing:-.045em; }
.hero__copy { max-width:900px; }
.hero__lead { max-width:720px; font-size:1.125rem; }
.eyebrow,.brand small,.service-tag { font-size:.75rem; }
.proof-row small,.proof-row b,.service-card ul,.contact-links strong,.contact-card a,.booking-form label,.field-error,.form-note,.toast small,.site-footer p,.site-footer>a:last-child { font-size:.875rem; }
.service-card p,.booking-form input,.booking-form select { font-size:1rem; }
.service-card__bottom strong { font-size:1.25rem; white-space:normal; }
.service-card--business { grid-column:1/-1; min-height:0; }
.service-grid { margin-top:32px; }
.service-card h3 a:hover { text-decoration:underline; }
.content-section { padding:64px 0; }
.content-section:nth-of-type(even) { background:white; }
.content-section h2 { font-size:clamp(1.8rem,3.5vw,2.7rem); line-height:1.15; letter-spacing:-.035em; margin:0 0 28px; max-width:850px; }
.section-lead { max-width:800px; font-size:1.125rem; color:var(--muted); }
.info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.info-grid article { padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.info-grid h3 { font-size:1.125rem; line-height:1.4; margin:0 0 12px; }
.info-grid p { margin:0; color:var(--muted); }
.chips { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.chips span { padding:10px 16px; background:var(--cream); border:1px solid var(--line); border-radius:100px; }
.text-link { display:inline-block; color:var(--red-dark); font-weight:700; margin-top:24px; }
.text-link:hover { text-decoration:underline; }
.guarantee { background:#fff0f1!important; border-block:1px solid #f3cacc; }
.price { display:block; font-size:1.6rem; margin:18px 0; }
.extras-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:22px; padding:0; list-style:none; counter-reset:step; }
.steps li { border-top:2px solid var(--red); padding-top:14px; counter-increment:step; }
.steps li:before { content:'0' counter(step); font-size:2rem; font-weight:800; color:var(--red); }
.steps h3 { font-size:1.125rem; margin:12px 0; }
.steps p { color:var(--muted); }
.hours { color:#ddd; }
.footer-directory { display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px; padding-block:50px; }
.footer-directory a { display:block; margin:8px 0; }
.footer-directory a:hover { color:var(--red); }
.detail { padding-block:40px 80px; max-width:950px; }
.detail h1 { font-size:clamp(2.2rem,5vw,4rem); line-height:1.15; letter-spacing:-.04em; }
.detail .eyebrow { margin-top:40px; }
.detail li { margin:12px 0; }
a:focus-visible,button:focus-visible { outline:3px solid var(--red); outline-offset:5px; }
@media(max-width:960px) { .info-grid,.extras-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .steps { grid-template-columns:repeat(3,minmax(0,1fr)); } .booking__grid { grid-template-columns:1fr; } }
@media(max-width:720px) { .hero { padding-block:38px 50px; } .hero__actions { grid-template-columns:1fr; } .info-grid,.extras-grid,.steps,.footer-directory { grid-template-columns:1fr; } .content-section { padding-block:44px; } .service-card--business { grid-column:auto; } .button { font-size:1rem; } .proof-row { display:flex; flex-wrap:wrap; gap:16px; } .proof-row span { padding:0; border:0; } .proof-row b,.proof-row small { font-size:.875rem; } .booking h2 { font-size:2.2rem; line-height:1.15; } .service-card__bottom { flex-wrap:wrap; } .brand small { font-size:.75rem; } .section-heading h2 { line-height:1.15; } }

blockquote { margin:0 0 24px; font-size:1.125rem; line-height:1.7; }
/* Service illustrations: always visibly attributed, never portfolio examples. */
.service-photo { margin:0; min-width:0; }
.service-photo img { display:block; width:100%; height:auto; border-radius:24px; background:#eee; }
.service-photo figcaption { font-size:.875rem; line-height:1.5; color:#62656c; padding:12px 2px 0; }
.hero { grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:48px; }
.hero h1 { font-size:clamp(2.5rem,4.4vw,4rem); }
.service-photo--hero img { aspect-ratio:4/5; object-fit:cover; object-position:center 35%; }
.photo-feature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; }
.photo-feature__copy { min-width:0; }
.service-photo--prints img { aspect-ratio:3/2; object-fit:cover; }
.detail .service-photo { max-width:640px; margin:28px 0; }
.detail .service-photo--hero { max-width:360px; }
@media(max-width:800px) {
 .hero,.photo-feature { grid-template-columns:1fr; gap:30px; }
 .hero h1 { font-size:clamp(2.5rem,9vw,3.8rem); }
 .service-photo--hero { max-width:440px; width:100%; margin-inline:auto; }
 .service-photo img { border-radius:18px; }
 .service-photo figcaption { font-size:.875rem; }
}

/* File orders */
.print-page{padding-block:40px 72px;max-width:1180px}.print-page h1{font-size:clamp(34px,5vw,62px);line-height:1.12;letter-spacing:-.035em;margin:24px 0}.print-page h1 em{color:var(--red);font-style:normal}.print-lead{font-size:18px;max-width:720px;line-height:1.7;margin-bottom:32px}.print-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:28px;align-items:start}.print-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;min-width:0}.print-card fieldset{border:0;padding:0;margin:0 0 28px;min-width:0}.print-card legend{font-size:21px;font-weight:800;margin-bottom:20px}.print-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.print-card label{display:grid;gap:8px;font-size:16px;font-weight:600;margin-bottom:16px}.print-card input:not([type=checkbox]),.print-card select,.print-card textarea{width:100%;min-width:0;min-height:48px;border:1px solid #bdbfc3;border-radius:10px;padding:12px;font:inherit;background:#fff;color:var(--ink)}.print-card textarea{resize:vertical}.print-card .upload-box{padding:22px;border:2px dashed var(--red);border-radius:14px;background:#fff7f7;cursor:pointer}.upload-box span,.print-note{font-size:14px;line-height:1.6;color:#555860}.print-card .print-consent{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.6}.print-consent input{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--red)}.print-card progress{width:100%;accent-color:var(--red)}.print-aside li{margin:0 0 16px;line-height:1.6}.print-aside ol{padding-left:22px}.print-aside h3{margin-top:28px}.file-list{list-style:none;padding:0;display:grid;gap:10px}.file-list li{display:flex;align-items:center;gap:12px;overflow-wrap:anywhere;background:#f7f7f8;border-radius:10px;padding:10px;font-size:14px}.file-list img{width:52px;height:52px;object-fit:cover;border-radius:6px;flex-shrink:0}.file-list button{margin-left:auto;flex-shrink:0;background:white;border:1px solid #aaa;border-radius:6px;min-height:40px;padding:8px;cursor:pointer}.file-list span{min-width:0}.orders-list{display:grid;gap:20px;margin:24px 0}.order-card h2{font-size:21px;overflow-wrap:anywhere}.order-card p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.order-files{display:grid;gap:12px;padding-left:20px}.order-files a{color:var(--red-dark);text-decoration:underline;overflow-wrap:anywhere}.print-page button:disabled{opacity:.6;cursor:wait}.print-page [hidden]{display:none!important}#upload-status,#admin-status{line-height:1.6;overflow-wrap:anywhere}.print-error{color:#a4121b}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #235be0;outline-offset:3px}
@media(max-width:760px){.print-layout,.print-fields{grid-template-columns:1fr}.print-page{padding-top:24px}.print-card{padding:20px}.print-page .button{width:100%;white-space:normal;text-align:center}.print-page h1{font-size:36px}.file-list li{flex-wrap:wrap}.print-aside{margin-top:0}}
.hero__actions{flex-wrap:wrap}@media(max-width:1100px){.desktop-nav{gap:16px}}@media(max-width:960px){.desktop-nav{display:none}}

/* Full artwork stays readable without cropping on every screen. */
.library-posters {display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;margin:24px 0;}
.detail .library-posters .library-poster {flex:1 1 280px;max-width:480px;margin:0;}
.library-poster img {height:auto;aspect-ratio:auto;object-fit:contain;border-radius:14px;}
.service-card .library-poster {margin:16px 0;}
.library-poster a {display:block;}
.library-poster a:focus-visible {outline:3px solid #c91824;outline-offset:4px;}

.account-entry{display:flex;justify-content:flex-end;padding-top:12px;padding-bottom:12px;font-size:14px}.account-entry a{color:#ad2029;font-weight:700}.account-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:24px 0}.account-page details{margin:20px 0}.account-page summary{cursor:pointer;font-weight:700}.account-page code{display:block;overflow-wrap:anywhere;font-size:14px;margin:18px 0}.account-badge{display:inline-block;background:#f8e9eb;color:#8c1922;border-radius:8px;padding:8px 12px;font-weight:700}.account-page p,.order-card p{overflow-wrap:anywhere}.account-upload-option{font-size:14px}.account-upload-option a{color:#ad2029;text-decoration:underline}.admin-account-form{display:grid;gap:12px;margin-top:20px;border-top:1px solid #ddd;padding-top:20px}.admin-account-form input,.admin-account-form button{max-width:100%;min-width:0}.admin-account-form label{display:grid;gap:8px}.admin-account-form .print-consent{display:flex}.account-page h1{font-size:clamp(30px,6vw,56px)}
