:root {
    --ivory: #fffaf2;
    --paper: #f7eedf;
    --paper-deep: #eadbc4;
    --plum: #29172b;
    --plum-2: #3b2039;
    --ink: #201923;
    --muted: #6f6670;
    --red: #ee2f25;
    --red-dark: #c9201a;
    --gold: #b9852b;
    --gold-light: #d6ab61;
    --green: #2d7d55;
    --border: rgba(123, 88, 45, .22);
    --shadow: 0 24px 70px rgba(58, 35, 35, .14);
    --serif: Georgia, 'Times New Roman', serif;
    --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --container: 1440px;
    --radius: 18px;
    --header-h: 104px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 24px); }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--sans); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img, video { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--plum); font-family: var(--serif); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
h1 { font-size: clamp(3.4rem, 6.5vw, 7.6rem); }
h2 { font-size: clamp(2.5rem, 4.5vw, 5.5rem); }
h3 { font-size: 1.55rem; line-height: 1.15; }
::selection { color: white; background: var(--red); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
[hidden] { display: none !important; }

.skip-link { position: fixed; z-index: 999; top: 8px; left: 8px; transform: translateY(-150%); padding: 10px 16px; color: white; background: var(--plum); border-radius: 8px; }
.skip-link:focus { transform: none; }
.site-header, .flow-header { position: sticky; z-index: 50; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: var(--header-h); padding: 18px max(30px, calc((100vw - var(--container)) / 2)); background: rgba(255,250,242,.94); border-bottom: 1px solid var(--border); backdrop-filter: blur(18px); }
.brand { display: inline-flex; flex: none; align-items: center; }
.brand img { width: 238px; height: auto; }
.site-nav { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 40px); }
.site-nav > a:not(.button) { font-size: .95rem; font-weight: 600; text-decoration: none; }
.site-nav > a:not(.button):hover { color: var(--red); }
.menu-toggle { display: none; align-items: center; gap: 10px; min-width: 96px; min-height: 48px; padding: 8px 14px; color: var(--plum); background: transparent; border: 1px solid var(--border); border-radius: 8px; }
.menu-icon, .menu-icon::before, .menu-icon::after { display: block; width: 20px; height: 2px; content: ''; background: currentColor; transition: transform .25s, opacity .25s; }
.menu-icon { position: relative; }
.menu-icon::before { position: absolute; top: -6px; }.menu-icon::after { position: absolute; top: 6px; }
.menu-toggle[aria-expanded="true"] .menu-icon { background: transparent; }.menu-toggle[aria-expanded="true"] .menu-icon::before { top: 0; transform: rotate(45deg); }.menu-toggle[aria-expanded="true"] .menu-icon::after { top: 0; transform: rotate(-45deg); }

.button { display: inline-flex; min-height: 58px; align-items: center; justify-content: center; gap: 20px; padding: 14px 27px; color: white; background: var(--red); border: 1px solid var(--red); border-radius: 4px; box-shadow: 0 10px 24px rgba(238,47,37,.12); font-size: 1rem; font-weight: 650; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .2s, background .2s, box-shadow .2s; }
.button:hover { background: var(--red-dark); box-shadow: 0 14px 30px rgba(201,32,26,.2); transform: translateY(-2px); }
.button--small { min-height: 48px; padding: 10px 20px; font-size: .9rem; }
.button--ghost { color: var(--plum); background: transparent; border-color: var(--gold); box-shadow: none; }
.button--ghost:hover { color: white; background: var(--plum); border-color: var(--plum); }
.button--ghost-light { color: white; background: transparent; border-color: var(--gold-light); box-shadow: none; }
.button--ghost-light:hover { color: var(--plum); background: var(--ivory); }
.text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--red); font-weight: 700; text-decoration: none; }

.hero { display: grid; grid-template-columns: minmax(440px, .95fr) minmax(680px, 1.55fr); gap: clamp(35px, 4.2vw, 68px); align-items: center; width: min(var(--container), calc(100% - 60px)); min-height: calc(100vh - var(--header-h)); margin: 0 auto; padding: 48px 0 42px; }
.hero-copy h1 { max-width: 740px; margin-bottom: 28px; font-size: clamp(3.5rem, 4.1vw, 4.8rem); }
.hero-copy > p { max-width: 620px; margin-bottom: 34px; font-size: clamp(1.05rem, 1.45vw, 1.38rem); line-height: 1.5; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.transformation-rail { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: end; min-width: 0; }
.photo-frame { position: relative; min-width: 0; margin: 0 0 58px; filter: drop-shadow(0 14px 18px rgba(55,30,26,.14)); }
.photo-frame img { width: 100%; height: clamp(430px, 35.5vw, 545px); object-fit: cover; border-radius: 8px; }
.photo-frame--motion { overflow: visible; padding: 8px; background: #171214; border-radius: 12px; }
.photo-frame--motion::before { position: absolute; inset: 16px auto 16px 1px; width: 7px; content: ''; background: repeating-linear-gradient(to bottom, #f4eee5 0 8px, transparent 8px 20px); border-radius: 3px; }
.photo-frame figcaption { position: absolute; top: calc(100% + 12px); left: 16%; width: 68%; padding: 10px 8px; color: var(--gold-light); background: var(--plum); border-radius: 3px; font-family: var(--serif); font-size: clamp(.85rem, 1.2vw, 1.18rem); text-align: center; }
.play-button { position: absolute; bottom: 35px; left: 28px; display: grid; width: 62px; height: 62px; place-items: center; color: white; background: rgba(20,15,18,.72); border: 2px solid white; border-radius: 50%; cursor: pointer; }
.photo-frame--motion.is-playing img { animation: photo-breathe 5s ease-in-out infinite alternate; transform-origin: 50% 40%; }
@keyframes photo-breathe { from { transform: scale(1); } to { transform: scale(1.035); } }
.hero-promise { grid-column: 2; justify-self: center; margin: 0; color: var(--plum); font-family: var(--serif); font-size: clamp(1.1rem, 1.6vw, 1.5rem); text-align: center; }

.care-section { display: grid; grid-template-columns: .82fr 1fr; gap: clamp(45px, 7vw, 110px); align-items: center; padding: clamp(90px, 12vw, 180px) max(30px, calc((100vw - 1320px) / 2)); background-color: var(--paper); background-image: radial-gradient(rgba(94,59,30,.06) .7px, transparent .7px); background-size: 5px 5px; clip-path: polygon(0 3%, 7% 2.5%, 16% 3.4%, 27% 2.7%, 41% 3.3%, 58% 2.5%, 73% 3.2%, 89% 2.6%, 100% 3.2%, 100% 100%, 0 100%); }
.care-copy > p { max-width: 650px; margin-bottom: 42px; font-size: 1.1rem; }
.service-lines { margin: 0; }
.service-lines > div { position: relative; padding: 22px 0 22px 46px; border-top: 1px solid var(--border); }
.service-lines > div::before { position: absolute; top: 28px; left: 4px; color: var(--gold); content: '✦'; font-size: 1.2rem; }
.service-lines dt { color: var(--plum); font-family: var(--serif); font-size: 1.45rem; }
.service-lines dd { margin: 5px 0 0; color: var(--muted); }
.comparison { position: relative; overflow: hidden; max-width: 700px; margin-inline: auto; border: 10px solid #f6e6cd; border-radius: 12px; box-shadow: var(--shadow); }
.comparison > img, .comparison-before img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.comparison-before { position: absolute; inset: 0 auto 0 0; width: 48%; overflow: hidden; border-right: 2px solid white; }
.comparison-before img { width: auto; max-width: none; height: 100%; }
.comparison input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.comparison::after { position: absolute; top: 50%; left: var(--split, 48%); display: grid; width: 48px; height: 48px; place-items: center; color: var(--plum); content: '↔'; background: white; border-radius: 50%; box-shadow: 0 5px 18px rgba(0,0,0,.2); pointer-events: none; transform: translate(-50%,-50%); }
.comparison-label { position: absolute; bottom: 14px; padding: 5px 9px; color: white; background: rgba(41,23,43,.82); border-radius: 3px; font-size: .75rem; font-weight: 700; }.comparison-label--before { left: 14px; }.comparison-label--after { right: 14px; }

.process-section { padding: clamp(90px, 10vw, 150px) max(30px, calc((100vw - 1320px) / 2)); text-align: center; }
.process-section h2 { margin-bottom: 70px; font-size: clamp(2.7rem, 4.5vw, 4.8rem); }
.process-timeline { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 50px; padding: 0; list-style: none; counter-reset: step; }
.process-timeline li { position: relative; padding: 0 28px; }
.process-timeline li::before { position: absolute; z-index: -1; top: 27px; left: 0; width: 100%; height: 1px; content: ''; background: var(--gold); }
.process-timeline li:first-child::before { left: 50%; width: 50%; }.process-timeline li:last-child::before { width: 50%; }
.process-timeline span { display: grid; width: 56px; height: 56px; margin: 0 auto 25px; place-items: center; color: white; background: linear-gradient(135deg,var(--gold-light),var(--gold)); border-radius: 50%; font-family: var(--serif); font-size: 1.6rem; box-shadow: 0 0 0 10px var(--ivory); }
.process-timeline h3 { margin-bottom: 12px; }.process-timeline p { margin: 0; color: var(--muted); font-size: .95rem; }

.special-band { display: grid; grid-template-columns: minmax(340px,.55fr) minmax(600px,1fr); gap: 50px; padding: clamp(90px, 9vw, 140px) max(30px, calc((100vw - 1360px) / 2)); color: #fff9f2; background: var(--plum); clip-path: polygon(0 2%, 11% 1.2%, 24% 2.1%, 38% 1.4%, 53% 2.2%, 70% 1.2%, 85% 1.8%, 100% 1%, 100% 100%, 0 100%); }
.special-copy h2 { color: white; }.special-copy p { max-width: 520px; margin-bottom: 32px; color: rgba(255,255,255,.76); }
.special-image { position: relative; align-self: center; margin: 0; transform: rotate(1deg); }.special-image img { aspect-ratio: 16/9; object-fit: cover; border: 8px solid #ead8bd; border-radius: 8px; box-shadow: 0 30px 60px rgba(0,0,0,.25); }.special-image figcaption { margin-top: 10px; color: rgba(255,255,255,.55); font-size: .75rem; text-align: right; }
.special-uses { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); margin-top: 35px; border-top: 1px solid rgba(214,171,97,.45); }
.special-uses > div { padding: 32px; border-right: 1px solid rgba(214,171,97,.45); }.special-uses > div:last-child { border: 0; }.special-uses h3 { color: var(--gold-light); }.special-uses p { margin: 0; color: rgba(255,255,255,.7); }
.trust-section { display: grid; grid-template-columns: 1fr .75fr; gap: 90px; align-items: center; padding: clamp(100px,12vw,180px) max(30px,calc((100vw - 1240px)/2)); }.trust-section p { max-width: 700px; font-size: 1.15rem; }.trust-section blockquote { margin: 0; padding: 45px; color: var(--plum); background: var(--paper); border-left: 5px solid var(--gold); font-family: var(--serif); font-size: clamp(1.6rem,2.5vw,2.4rem); line-height: 1.2; }
.faq-section { display: grid; grid-template-columns: .65fr 1fr; gap: 80px; padding: 110px max(30px,calc((100vw - 1240px)/2)); background: #fff; }.faq-list { border-top: 1px solid var(--border); }.faq-list details { padding: 24px 0; border-bottom: 1px solid var(--border); }.faq-list summary { color: var(--plum); font-weight: 700; cursor: pointer; }.faq-list p { margin: 18px 0 0; color: var(--muted); }
.final-cta { padding: 100px 30px; color: white; background: var(--red); text-align: center; }.final-cta h2 { color: white; }.final-cta p { font-size: 1.2rem; }.final-cta > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; }.final-cta .button:first-child { color: var(--plum); background: white; border-color: white; }

.site-footer { display: grid; grid-template-columns: 1.4fr repeat(3,1fr); gap: 55px; padding: 75px max(30px,calc((100vw - 1320px)/2)) 35px; color: rgba(255,255,255,.7); background: #1e111f; }.site-footer img { width: 220px; margin-bottom: 20px; }.site-footer h2 { color: white; font-family: var(--sans); font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.site-footer a { display: block; margin: 8px 0; text-decoration: none; }.site-footer a:hover { color: white; }.footer-brand p { max-width: 410px; }.footer-note { grid-column: 1/-1; margin: 30px 0 0; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.12); font-size: .8rem; }

.flow-page { min-height: 100vh; background: var(--ivory); }.flow-header { position: relative; max-width: 1600px; margin: 0 auto; padding-inline: 35px; }.back-link { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }.flow-main { width: min(1480px,calc(100% - 60px)); margin: 0 auto; padding: 35px 0 90px; }.flow-progress { display: grid; grid-template-columns: repeat(4,1fr); max-width: 1320px; margin: 0 auto 35px; }.flow-progress span { position: relative; display: flex; align-items: center; gap: 12px; color: var(--muted); }.flow-progress span:not(:last-child)::after { width: 100%; height: 1px; margin-inline: 20px; content: ''; background: var(--border); }.flow-progress b { display: grid; width: 46px; height: 46px; flex: none; place-items: center; color: var(--gold); border: 1px solid var(--gold-light); border-radius: 50%; font-family: var(--serif); font-size: 1.35rem; }.flow-progress .is-active { color: var(--ink); font-weight: 700; }.flow-progress .is-active b { color: white; background: var(--gold); }
.order-builder { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 26px; }.order-workspace, .order-summary { background: rgba(255,255,255,.35); border: 1px solid var(--border); border-radius: 8px; }.order-workspace { padding: clamp(25px,4vw,55px); }.order-step h1 { margin-bottom: 18px; font-size: clamp(3rem,5vw,5.2rem); }.order-step > p { margin-bottom: 35px; }.order-step h2, .order-summary h2 { margin: 35px 0 20px; font-size: 2rem; }.dropzone { display: flex; min-height: 180px; flex-direction: column; align-items: center; justify-content: center; padding: 28px; border: 2px dashed var(--paper-deep); border-radius: 9px; cursor: pointer; transition: background .2s,border .2s; }.dropzone:hover,.dropzone.is-dragging { background: var(--paper); border-color: var(--gold); }.dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }.dropzone-icon { color: var(--gold); font-size: 3.4rem; line-height: 1; }.dropzone strong { font-size: 1.1rem; }.dropzone > span:not(.dropzone-icon) { color: var(--red); }.dropzone small { color: var(--muted); }.privacy-note { margin: 14px 0!important; color: var(--muted); font-size: .83rem; }.photo-editor { margin-top: 14px; overflow: hidden; border: 1px solid var(--border); border-radius: 8px; }.photo-editor header { display: flex; align-items: center; gap: 16px; padding: 14px; background: var(--paper); }.photo-editor-thumb { width: 82px; aspect-ratio: 1; object-fit: cover; border-radius: 5px; }.photo-editor header div { min-width: 0; flex: 1; }.photo-editor header strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.photo-editor header small { color: var(--green); }.remove-photo { width: 44px; height: 44px; color: var(--muted); background: transparent; border: 0; cursor: pointer; }.photo-editor-body { padding: 20px; }.choice-row { display: flex; flex-wrap: wrap; gap: 24px; margin-bottom: 20px; }.choice-row label { display: flex; align-items: center; gap: 9px; }.choice-row input { width: 20px; height: 20px; accent-color: var(--plum); }.field-stack { display: grid; gap: 16px; }.field-stack label, .field-grid label, .project-form label, .login-card label, .admin-login label, .settings-form label, .admin-upload label { display: grid; gap: 7px; font-size: .88rem; font-weight: 700; }.field-stack textarea, .field-grid input, .project-form input, .project-form select, .project-form textarea, .login-card input, .admin-login input, .settings-form input, .settings-form select, .admin-upload input, .admin-upload select, .admin-upload textarea, .inline-form select, .preview-actions textarea { width: 100%; padding: 13px 14px; color: var(--ink); background: rgba(255,255,255,.6); border: 1px solid var(--border); border-radius: 5px; }.field-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; max-width: 850px; }.field-grid label:first-child { grid-column: 1/-1; }.step-actions { display: flex; justify-content: flex-end; gap: 14px; margin-top: 35px; }.step-actions .button:disabled { opacity: .45; cursor: not-allowed; transform: none; }.order-summary { position: sticky; top: 24px; align-self: start; padding: 28px; }.order-summary h2 { margin-top: 0; }.order-summary > p { padding: 15px 0; margin: 0; border-bottom: 1px solid var(--border); }.summary-price { display: grid; gap: 4px; padding: 24px 0; }.summary-price strong { color: var(--plum); font-family: var(--serif); font-size: 2.2rem; }.summary-pending { display: grid; gap: 8px; padding: 22px 0; color: var(--muted); }.summary-pending strong { color: var(--plum); }.review-output { display: grid; gap: 12px; }.review-item { padding: 18px; background: var(--paper); border-left: 4px solid var(--gold); }.review-item h3 { margin-bottom: 8px; }.review-item p { margin: 4px 0; }.consent-list { display: grid; gap: 16px; margin-top: 35px; }.consent-list label { display: grid; grid-template-columns: auto 1fr; gap: 12px; }.consent-list input { width: 20px; height: 20px; accent-color: var(--plum); }
.confirmation-card,.login-card,.error-page { max-width: 760px; margin: 50px auto; padding: clamp(30px,5vw,70px); background: white; border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); text-align: center; }.confirmation-card h1,.login-card h1,.error-page h1 { font-size: clamp(2.7rem,5vw,4.8rem); }.confirmation-icon { display: grid; width: 70px; height: 70px; margin: 0 auto 24px; place-items: center; color: white; background: var(--green); border-radius: 50%; font-size: 2rem; }.order-code { display: grid; gap: 4px; margin: 30px 0; padding: 22px; background: var(--paper); }.order-code strong { color: var(--plum); font-size: 1.6rem; letter-spacing: .06em; }.notice { padding: 15px; color: #5e4d3a; background: #fff3da; border: 1px solid #e5c887; border-radius: 5px; }.login-card form,.admin-login form { display: grid; gap: 18px; margin-top: 30px; text-align: left; }.login-card .button,.admin-login .button { width: 100%; }.flash { position: fixed; z-index: 100; top: 120px; right: 24px; max-width: 440px; padding: 15px 20px; color: white; background: var(--plum); border-radius: 6px; box-shadow: var(--shadow); }.flash--success { background: var(--green); }.flash--info { background: #44647a; }

.client-heading { display: flex; align-items: start; justify-content: space-between; gap: 40px; margin: 25px 0 35px; }.client-heading h1 { margin-bottom: 12px; font-size: clamp(3.2rem,5vw,5.6rem); }.client-order-id { display: grid; min-width: 310px; gap: 5px; padding: 20px 25px; border: 1px solid var(--border); }.client-order-id strong { color: var(--red); }.client-order-id a { justify-self: end; font-size: .85rem; }.client-layout { display: grid; grid-template-columns: 330px 1fr; gap: 26px; }.client-timeline,.client-workspace { padding: 26px; border: 1px solid var(--border); border-radius: 8px; }.client-timeline h2,.client-workspace > h2 { font-size: 2rem; }.client-timeline ol { padding: 0; list-style: none; }.client-timeline li { position: relative; display: grid; grid-template-columns: 46px 1fr; gap: 15px; min-height: 110px; }.client-timeline li:not(:last-child)::after { position: absolute; top: 46px; bottom: 0; left: 22px; width: 2px; content: ''; background: var(--border); }.client-timeline li > span { z-index: 1; display: grid; width: 46px; height: 46px; place-items: center; color: var(--muted); background: var(--ivory); border: 1px solid var(--border); border-radius: 50%; }.client-timeline .is-done > span { color: white; background: var(--gold); }.client-timeline .is-current > span { color: white; background: var(--red); border-color: var(--red); }.client-timeline strong { display: block; padding-top: 10px; }.client-timeline small { display: block; margin-top: 8px; color: var(--muted); line-height: 1.5; }.empty-preview { display: grid; min-height: 210px; place-content: center; color: var(--muted); border: 1px dashed var(--border); text-align: center; }.empty-preview span { color: var(--gold); font-size: 3rem; }.preview-card { margin-top: 20px; padding: 16px; border: 1px solid var(--border); border-radius: 7px; }.preview-card header { display: flex; justify-content: space-between; gap: 20px; }.preview-card header h3 { margin-bottom: 4px; }.preview-card header p { color: var(--muted); font-size: .85rem; }.status-text { color: var(--red); font-size: .8rem; }.preview-card > img,.preview-card > video { width: 100%; max-height: 760px; object-fit: contain; background: #110e10; }.team-note { padding: 15px; background: var(--paper); }.preview-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }.preview-actions details { flex: 1; min-width: 280px; }.preview-actions summary { list-style: none; cursor: pointer; }.preview-actions details[open] summary { margin-bottom: 14px; }.preview-actions label { display: grid; gap: 7px; }.preview-actions details .button:last-child { margin-top: 10px; }.balance-panel { margin-top: 24px; padding: 28px; color: white; background: var(--plum); }.balance-panel h2 { color: white; }.feedback-history { margin-top: 35px; }.feedback-history > div { padding: 15px 0; border-top: 1px solid var(--border); }.feedback-history time { float: right; color: var(--muted); font-size: .8rem; }

.special-hero { display: grid; grid-template-columns: .75fr 1fr; gap: 70px; align-items: center; padding: 90px max(30px,calc((100vw - 1360px)/2)); }.special-hero h1 { font-size: clamp(3.5rem,5.5vw,6.5rem); }.special-hero p { max-width: 660px; margin-bottom: 30px; font-size: 1.15rem; }.special-hero img { aspect-ratio: 16/9; object-fit: cover; border: 8px solid var(--paper-deep); border-radius: 8px; box-shadow: var(--shadow); }.project-types { display: grid; grid-template-columns: repeat(3,1fr); padding: 0 max(30px,calc((100vw - 1320px)/2)) 110px; }.project-types article { padding: 40px; border-top: 1px solid var(--gold); border-right: 1px solid var(--border); }.project-types article:last-child { border-right: 0; }.project-types span { color: var(--gold); font-family: var(--serif); font-size: 2rem; }.project-process { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; padding: 110px max(30px,calc((100vw - 1200px)/2)); color: white; background: var(--plum); }.project-process h2 { color: white; }.project-process ol { margin: 0; padding: 0; list-style: none; counter-reset: project-step; }.project-process li { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.2); counter-increment: project-step; }.project-process li::before { margin-right: 22px; color: var(--gold-light); content: '0' counter(project-step); font-family: var(--serif); }.project-contact { display: grid; grid-template-columns: .65fr 1fr; gap: 90px; padding: 110px max(30px,calc((100vw - 1240px)/2)); }.project-form { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }.field-full { grid-column: 1/-1; }.hp-field { position: absolute!important; left: -9999px!important; }.success-panel { padding: 50px; background: var(--paper); }.legal-page { width: min(840px,calc(100% - 50px)); margin: 80px auto 120px; }.legal-page h1 { font-size: clamp(3.5rem,6vw,6rem); }.legal-page h2 { margin-top: 45px; font-size: 2rem; }.legal-updated { color: var(--muted); }.error-page > span { color: var(--gold); font-size: 3rem; }

.admin-page { min-height: 100vh; background: #f6f3ef; }.admin-header { display: flex; align-items: center; justify-content: space-between; min-height: 78px; padding: 12px 4vw; background: white; border-bottom: 1px solid var(--border); }.admin-header img { width: 190px; }.admin-header nav { display: flex; gap: 24px; }.admin-header nav a { font-size: .9rem; font-weight: 650; text-decoration: none; }.admin-main { width: min(1420px,calc(100% - 50px)); margin: 0 auto; padding: 45px 0 90px; }.admin-login { max-width: 480px; margin: 8vh auto; padding: 45px; background: white; border: 1px solid var(--border); box-shadow: var(--shadow); }.admin-title { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 30px; }.admin-title h1 { margin-bottom: 6px; font-size: 3.6rem; }.admin-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 26px; }.admin-stats div { display: grid; padding: 25px; background: white; border: 1px solid var(--border); }.admin-stats strong { color: var(--plum); font-family: var(--serif); font-size: 2.8rem; line-height: 1; }.admin-stats span { color: var(--muted); font-size: .8rem; }.admin-section { margin-bottom: 26px; padding: 28px; background: white; border: 1px solid var(--border); }.admin-section h2 { font-size: 2rem; }.admin-section-heading { display: flex; align-items: center; justify-content: space-between; }.admin-section-heading span { color: var(--muted); font-size: .8rem; }.table-wrap { overflow-x: auto; }.table-wrap table { width: 100%; border-collapse: collapse; font-size: .88rem; }.table-wrap th,.table-wrap td { padding: 14px 12px; border-bottom: 1px solid var(--border); text-align: left; white-space: nowrap; }.table-wrap th { color: var(--muted); font-size: .72rem; text-transform: uppercase; }.table-wrap td small { display: block; color: var(--muted); }.admin-status { display: inline-block; padding: 4px 8px; color: var(--plum); background: var(--paper); border-radius: 4px; font-size: .75rem; }.admin-status--large { padding: 10px 15px; font-size: .9rem; }.lead-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.lead-grid article { display: grid; align-content: start; gap: 5px; padding: 20px; background: #faf8f5; border: 1px solid var(--border); }.lead-grid article > span { color: var(--gold); font-size: .72rem; font-weight: 800; text-transform: uppercase; }.lead-grid h3 { margin-bottom: 8px; }.lead-grid time { margin-top: 12px; color: var(--muted); font-size: .72rem; }.admin-order-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }.order-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.order-facts div { padding: 15px; background: #faf8f5; }.order-facts dt { color: var(--muted); font-size: .72rem; }.order-facts dd { margin: 3px 0 0; font-weight: 700; }.inline-form { display: flex; align-items: end; gap: 12px; margin-top: 20px; }.inline-form label { display: grid; flex: 1; gap: 5px; }.payment-actions { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 20px; }.text-button { padding: 0; color: var(--red); background: transparent; border: 0; text-decoration: underline; cursor: pointer; }.admin-upload { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.admin-upload label:nth-last-of-type(-n+2) { grid-column: 1/-1; }.admin-item-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.admin-item-list article { padding: 20px; background: #faf8f5; }.admin-item-list h3 { font-family: var(--sans); font-size: 1rem; font-weight: 700; }.admin-item-list h4 { margin-bottom: 4px; }.settings-form { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }.settings-form .admin-section { display: grid; gap: 15px; }.settings-form .button { justify-self: start; }.settings-form code { font-size: .78rem; }

@media (max-width: 1180px) {
    :root { --header-h: 88px; }
    .site-header { padding-inline: 24px; }.brand img { width: 200px; }.menu-toggle { display: flex; }.site-nav { position: fixed; inset: var(--header-h) 0 0; display: none; flex-direction: column; align-items: stretch; padding: 35px 28px max(35px,env(safe-area-inset-bottom)); background: var(--ivory); }.site-nav.is-open { display: flex; }.site-nav > a { padding: 12px 0; font-family: var(--serif); font-size: 1.8rem!important; }.site-nav .button { margin-top: auto; font-family: var(--sans); font-size: 1rem!important; }
    .hero { grid-template-columns: 1fr; width: min(900px,calc(100% - 48px)); padding-top: 60px; }.hero-copy h1 { max-width: 850px; font-size: clamp(3.5rem,8vw,5.6rem); }.hero-copy > p { max-width: 720px; }.hero-promise { grid-column: 1; }.transformation-rail { margin-top: 25px; }.photo-frame img { height: auto; aspect-ratio: 4/5; }
    .care-section,.special-hero { grid-template-columns: 1fr 1fr; }.special-band { grid-template-columns: 1fr 1.2fr; }.client-layout { grid-template-columns: 280px 1fr; }.admin-stats { grid-template-columns: repeat(2,1fr); }.lead-grid,.admin-item-list { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 860px) {
    body { font-size: 16px; }
    .hero { width: min(100% - 34px,700px); min-height: auto; padding: 44px 0 70px; }.hero-copy h1 { font-size: clamp(3.1rem,12vw,5rem); }.hero-actions { display: grid; }.transformation-rail { display: flex; margin-inline: calc((100vw - 100%) / -2); padding: 0 17px 10px; overflow-x: auto; scroll-snap-type: x mandatory; }.photo-frame { min-width: 72vw; scroll-snap-align: center; }.hero-promise { padding-inline: 15px; }
    .care-section,.trust-section,.faq-section,.special-hero,.project-process,.project-contact { grid-template-columns: 1fr; gap: 45px; }.care-section { padding-inline: 22px; clip-path: none; }.comparison { width: 100%; }.process-timeline { grid-template-columns: 1fr; gap: 0; text-align: left; }.process-timeline li { display: grid; grid-template-columns: 58px 1fr; padding: 0 0 32px; }.process-timeline li::before { top: 56px!important; bottom: 0; left: 27px!important; width: 1px!important; height: auto; }.process-timeline span { grid-row: 1/3; margin: 0; box-shadow: 0 0 0 6px var(--ivory); }.process-timeline h3,.process-timeline p { grid-column: 2; }.process-timeline h3 { margin: 4px 0 8px; }
    .special-band { grid-template-columns: 1fr; clip-path: none; }.special-uses { grid-template-columns: 1fr; }.special-uses > div { border-right: 0; border-bottom: 1px solid rgba(214,171,97,.45); }.faq-section { padding-inline: 25px; }.site-footer { grid-template-columns: 1fr 1fr; }.footer-brand { grid-column: 1/-1; }
    .flow-header { padding-inline: 18px; }.flow-header .brand img { width: 180px; }.flow-main { width: min(100% - 28px,700px); padding-top: 20px; }.flow-progress { grid-template-columns: repeat(4,1fr); margin-bottom: 20px; }.flow-progress span { display: grid; justify-items: center; gap: 5px; font-size: .65rem; }.flow-progress span:not(:last-child)::after { position: absolute; top: 22px; left: 50%; z-index: -1; width: 100%; margin: 0; }.flow-progress b { width: 40px; height: 40px; }.order-builder { grid-template-columns: 1fr; padding-bottom: 110px; }.order-workspace { padding: 22px 16px; }.order-step h1 { font-size: 3.4rem; }.order-summary { position: fixed; z-index: 40; inset: auto 0 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px max(14px,env(safe-area-inset-bottom)); background: var(--ivory); border-width: 1px 0 0; border-radius: 0; box-shadow: 0 -8px 25px rgba(41,23,43,.1); }.order-summary h2,.order-summary > p:nth-of-type(n+2),.order-summary > small,.summary-pending span { display: none; }.order-summary > p { padding: 0; border: 0; }.summary-price,.summary-pending { margin-left: auto; padding: 0; text-align: right; }.summary-price strong { font-size: 1.3rem; }.field-grid { grid-template-columns: 1fr; }.field-grid label:first-child { grid-column: auto; }.choice-row { display: grid; gap: 12px; }.step-actions { flex-direction: column-reverse; }.step-actions .button { width: 100%; }.photo-editor-body { padding: 16px 12px; }
    .client-heading { display: grid; }.client-order-id { min-width: 0; }.client-layout { grid-template-columns: 1fr; }.client-timeline ol { display: flex; overflow-x: auto; }.client-timeline li { min-width: 180px; min-height: 100px; grid-template-columns: 40px 1fr; }.client-timeline li:not(:last-child)::after { top: 20px; right: 0; bottom: auto; left: 40px; width: calc(100% - 40px); height: 2px; }.client-timeline li > span { width: 40px; height: 40px; }.preview-actions { flex-direction: column; }.preview-actions .button { width: 100%; }.special-hero { padding-top: 55px; }.project-types { grid-template-columns: 1fr; padding-bottom: 70px; }.project-types article { border-right: 0; }.project-form { grid-template-columns: 1fr; }.field-full { grid-column: auto; }
    .admin-header { align-items: flex-start; gap: 12px; }.admin-header nav { flex-wrap: wrap; justify-content: end; gap: 8px 15px; }.admin-main { width: min(100% - 24px,700px); padding-top: 24px; }.admin-title { align-items: flex-start; }.admin-title h1 { font-size: 2.7rem; }.admin-stats,.admin-order-grid,.settings-form { grid-template-columns: 1fr; }.lead-grid,.admin-item-list { grid-template-columns: 1fr; }.order-facts { grid-template-columns: repeat(2,1fr); }.admin-upload { grid-template-columns: 1fr; }.admin-upload label { grid-column: auto!important; }
}

@media (max-width: 520px) {
    .brand img { width: 175px; }.back-link { font-size: .8rem; }.hero-copy h1 { font-size: 3.55rem; }.button { width: 100%; }.photo-frame { min-width: 78vw; }.site-footer { grid-template-columns: 1fr; }.footer-brand { grid-column: auto; }.final-cta > div { display: grid; }.special-band,.trust-section,.project-process,.project-contact { padding-inline: 24px; }.client-workspace,.client-timeline { padding: 18px 13px; }.preview-card header { display: grid; }.admin-stats { grid-template-columns: 1fr 1fr; }.admin-stats div { padding: 16px; }.order-facts { grid-template-columns: 1fr; }.admin-title { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; }
}

.preview-media { position: relative; overflow: hidden; background: #110e10; }
.preview-media img,.preview-media video { width: 100%; max-height: 760px; object-fit: contain; }
.preview-media--protected::after { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.25); content: 'PREVIEW · FOTO MEMÓRIA'; background: repeating-linear-gradient(-28deg,transparent 0 115px,rgba(41,23,43,.1) 115px 170px); font-size: clamp(1rem,2.2vw,2rem); font-weight: 800; letter-spacing: .14em; pointer-events: none; text-align: center; }

.eyebrow { margin-bottom: 16px; color: var(--red); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.examples-preview { padding: 110px max(30px,calc((100vw - 1280px)/2)); background: #efe1ca; }.examples-preview__heading { max-width: 760px; margin-bottom: 50px; }.examples-preview__heading h2 { margin-bottom: 20px; font-size: clamp(3rem,5vw,5.5rem); }.examples-preview__heading > p:not(.eyebrow) { max-width: 650px; }.examples-preview__intro { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin: 38px 0 15px; border-bottom: 1px solid var(--border); }.examples-preview__intro span,.example-case header span { color: var(--red); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.examples-preview__intro p { margin-bottom: 12px; color: var(--muted); font-size: .88rem; }.example-grid { display: grid; gap: 16px; }.example-grid--video { grid-template-columns: repeat(3,1fr); }.example-grid--photos { grid-template-columns: repeat(3,1fr); }.example-card { padding: 14px; background: var(--ivory); border: 1px solid rgba(123,88,45,.18); }.example-card h3 { min-height: 2.4em; margin: 4px 4px 15px; font-size: 1.25rem; }.example-card__compare,.example-case__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }.example-card__compare img { width: 100%; aspect-ratio: 1/1; object-fit: cover; background: var(--plum); }.example-card video { width: 100%; margin-top: 6px; aspect-ratio: 16/10; background: #110e10; object-fit: cover; }
.examples-hero { width: min(1100px,calc(100% - 60px)); padding: 105px 0 90px; }.examples-hero h1 { max-width: 1050px; margin-bottom: 28px; }.examples-hero > p:not(.eyebrow) { max-width: 700px; margin-bottom: 35px; font-size: 1.2rem; }.examples-section { padding: 100px max(30px,calc((100vw - 1320px)/2)); }.examples-section--soft { background: var(--paper); }.examples-section__heading { display: grid; grid-template-columns: .9fr 1fr; gap: 50px; align-items: end; margin-bottom: 48px; }.examples-section__heading .eyebrow { grid-column: 1/-1; margin-bottom: -25px; }.examples-section__heading h2 { margin: 0; font-size: clamp(3rem,5.2vw,5.7rem); }.examples-section__heading > p:not(.eyebrow) { max-width: 540px; margin: 0; }.examples-gallery { display: grid; gap: 28px; }.examples-gallery--video { grid-template-columns: repeat(2,1fr); }.examples-gallery--photos { grid-template-columns: repeat(3,1fr); }.example-case { overflow: hidden; background: var(--ivory); border: 1px solid var(--border); box-shadow: 0 12px 34px rgba(58,35,35,.08); }.example-case header { display: flex; align-items: start; justify-content: space-between; gap: 15px; padding: 24px 24px 18px; }.example-case header h3 { margin: 0; font-size: 1.55rem; }.example-case__photos { padding: 0 10px; }.example-case figure { margin: 0; background: var(--plum); }.example-case figure img { width: 100%; aspect-ratio: 4/3; object-fit: contain; }.example-case figcaption { padding: 8px 10px; color: white; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.example-case video { width: calc(100% - 20px); margin: 10px; aspect-ratio: 16/10; background: #110e10; object-fit: contain; }.example-case--photo .example-case__photos { padding-bottom: 10px; }
@media (max-width: 860px) { .examples-preview,.examples-section { padding: 70px 22px; }.examples-hero { width: min(100% - 40px,700px); padding: 65px 0; }.examples-section__heading { grid-template-columns: 1fr; gap: 18px; }.examples-section__heading .eyebrow { margin-bottom: 0; }.example-grid--video,.examples-gallery--video { grid-template-columns: 1fr; }.example-grid--photos,.examples-gallery--photos { grid-template-columns: 1fr 1fr; }.examples-preview__intro { display: grid; gap: 2px; } }
@media (max-width: 520px) { .example-grid--photos,.examples-gallery--photos { grid-template-columns: 1fr; }.example-case header { display: grid; }.examples-hero h1 { font-size: clamp(3.2rem,14vw,4.5rem); } }
