/*
Theme Name: Lampline UV
Template: kadence
Description: Child theme of Kadence for a UV printing shop. The page is the printer's bed: an aluminum deck with vacuum holes, black foam jigs that hold the work, a violet lamp that cures each section as it scrolls in, and headlines that print in cyan, magenta and yellow before they lock into register. Every section is a standard block the shop can edit.
Version: 1.0
*/

@font-face { font-family: "Hubot Sans"; src: url("fonts/hubot-sans-latin-wdth-normal.woff2") format("woff2"); font-weight: 200 900; font-stretch: 75% 125%; font-style: normal; font-display: swap; }
@font-face { font-family: "Piazzolla"; src: url("fonts/piazzolla-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Piazzolla"; src: url("fonts/piazzolla-latin-wght-italic.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Fragment Mono"; src: url("fonts/fragment-mono-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
    --lp-bed: #dcdfe2;
    --lp-hole: #bfc4c9;
    --lp-foam: #1f2125;
    --lp-foam-2: #2a2d32;
    --lp-ink: #141519;
    --lp-ink-2: rgba(20, 21, 25, 0.72);
    --lp-ink-3: rgba(20, 21, 25, 0.52);
    --lp-white: #f7f6f1;
    --lp-white-2: rgba(247, 246, 241, 0.72);
    --lp-white-3: rgba(247, 246, 241, 0.5);
    --lp-uv: #7c4dff;
    --lp-uv-deep: #4b22c9;
    --lp-uv-glow: rgba(124, 77, 255, 0.65);
    --lp-c: #00a0dc;
    --lp-m: #e6007e;
    --lp-y: #ffd200;
    --lp-gut: clamp(16px, 4.4vw, 72px);
    --lp-max: 1320px;
    --lp-sp: clamp(56px, 8vw, 120px);
    --lp-display: "Hubot Sans", "Arial Black", Arial, sans-serif;
    --lp-body: "Piazzolla", Georgia, serif;
    --lp-mono: "Fragment Mono", ui-monospace, Menlo, monospace;
    --lp-cmyk: linear-gradient(90deg, var(--lp-c) 0 25%, var(--lp-m) 25% 50%, var(--lp-y) 50% 75%, var(--lp-ink) 75% 100%);
    --lp-reg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='%23141519' stroke-width='1.2'%3E%3Ccircle cx='20' cy='20' r='9'/%3E%3Cpath d='M20 2v36M2 20h36'/%3E%3C/svg%3E");
}

html { scroll-padding-top: 96px; }
body { font-family: var(--lp-body); color: var(--lp-ink); background: var(--lp-ink); font-size: 18px; line-height: 1.6; overflow-x: clip; -webkit-font-smoothing: antialiased; font-optical-sizing: auto; }
.site, #wrapper, .content-bg, body.content-style-unboxed .site { background: transparent; }
#inner-wrap { background: var(--lp-bed); }
h1, h2, h3, h4, .site-title, .entry-title { font-family: var(--lp-display); color: inherit; letter-spacing: -0.015em; }
h1 { font-weight: 850; font-stretch: 125%; font-size: clamp(2.5rem, 7vw, 6rem); line-height: 0.92; margin: 0 0 0.35em; }
h2 { font-weight: 800; font-stretch: 112%; font-size: clamp(2rem, 4.4vw, 3.9rem); line-height: 0.98; margin: 0 0 0.45em; }
h3 { font-weight: 700; font-stretch: 75%; font-size: clamp(1.6rem, 2.8vw, 2.4rem); line-height: 1; margin: 0 0 0.3em; letter-spacing: 0; }
p { margin: 0 0 1em; }
a { color: inherit; text-decoration-color: var(--lp-uv); text-decoration-thickness: 2px; text-underline-offset: 4px; }
a:hover { color: var(--lp-uv-deep); }
::selection { background: var(--lp-y); color: var(--lp-ink); }

.lp-sample-bar { margin: 0; padding: 7px var(--lp-gut); background: var(--lp-ink); color: var(--lp-white-2); font-family: var(--lp-mono); font-size: 0.72rem; line-height: 1.5; }
.lp-lede { font-size: clamp(1.1rem, 1.5vw, 1.32rem); color: var(--lp-ink-2); max-width: 36em; }
.lp-note { font-family: var(--lp-mono); font-size: 0.74rem; color: var(--lp-ink-3); margin-top: 0.8em; }
.lp-more { font-family: var(--lp-display); font-weight: 650; font-stretch: 110%; margin-top: 1.4em; }
.lp-more a { text-decoration: none; border-bottom: 3px solid var(--lp-uv); padding-bottom: 2px; }
.lp-more a::after { content: " →"; }

/* header: a plain strip with the press sheet's color bar under it */
#masthead, #masthead .site-header-row-container-inner { background: var(--lp-bed); }
#masthead { position: relative; }
#masthead::after { content: ""; display: block; height: 5px; background: var(--lp-cmyk); }
#masthead .site-container { padding-left: var(--lp-gut); padding-right: var(--lp-gut); max-width: none; }
.site-header .site-title { font-family: var(--lp-display); font-weight: 850; font-stretch: 125%; font-size: 1.35rem; letter-spacing: -0.02em; }
.site-header .site-title a, #masthead .site-branding .site-title { color: var(--lp-ink) !important; }
.site-branding .site-description { display: none; }
.main-navigation .primary-menu-container > ul > li.menu-item > a { font-family: var(--lp-display); font-weight: 600; font-stretch: 100%; font-size: 0.95rem; color: var(--lp-ink); padding-left: 0.8em; padding-right: 0.8em; }
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover, .main-navigation .primary-menu-container > ul > li.current-menu-item > a { color: var(--lp-uv-deep); }
.main-navigation .primary-menu-container > ul > li.menu-item.lp-nav-cta > a { background: var(--lp-uv); color: var(--lp-white); margin-left: 10px; padding: 0.75em 1.1em; border-radius: 2px; box-shadow: 3px 3px 0 var(--lp-ink); }
.main-navigation .primary-menu-container > ul > li.menu-item.lp-nav-cta > a:hover { background: var(--lp-uv-deep); color: var(--lp-white); }
.menu-toggle-open { color: var(--lp-ink) !important; }
#mobile-drawer .drawer-inner { background: var(--lp-foam); }
#mobile-drawer .mobile-navigation ul li > a, #mobile-drawer .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap { font-family: var(--lp-display); font-stretch: 112%; font-weight: 700; font-size: 1.3rem; color: var(--lp-white); }

/* sections */
.entry-content > .alignfull { margin: 0 !important; width: auto; max-width: none; }
.entry-content { margin: 0; }
.wp-block-group__inner-container { display: contents; }
.entry-content > section.wp-block-group { position: relative; padding: var(--lp-sp) var(--lp-gut); overflow: clip; }
section.wp-block-group > .wp-block-group__inner-container > * { max-width: var(--lp-max); margin-left: auto; margin-right: auto; }
.lp-bed { background-color: var(--lp-bed); background-image: radial-gradient(circle at center, var(--lp-hole) 0 2.2px, transparent 2.8px); background-size: 26px 26px; background-position: 13px 13px; }
.lp-foam { background: var(--lp-foam); color: var(--lp-white); }
.lp-foam .lp-lede, .lp-foam p { color: var(--lp-white-2); }
.lp-foam strong, .lp-foam h2, .lp-foam h3 { color: var(--lp-white); }
.lp-foam .lp-note { color: var(--lp-white-3); }
.lp-foam a:hover { color: var(--lp-white); }
.lp-bed::after { content: ""; position: absolute; width: 34px; height: 34px; right: calc(var(--lp-gut) * 0.5); top: 22px; background: var(--lp-reg) center / contain no-repeat; opacity: 0.55; pointer-events: none; }
.wp-block-columns.lp-split { gap: clamp(28px, 4.5vw, 72px); align-items: center; margin: 0 auto; }

/* the cure: a violet lamp crosses each section as it comes into view */
.lp-cure::before { content: ""; position: absolute; z-index: 3; top: 0; bottom: 0; left: -12%; width: 10px; background: linear-gradient(90deg, transparent, var(--lp-uv) 40%, #d9c9ff 50%, var(--lp-uv) 60%, transparent); box-shadow: 0 0 40px 18px var(--lp-uv-glow); opacity: 0; pointer-events: none; }
.lp-cure.is-cured::before { animation: lp-lamp 1.15s cubic-bezier(.5, .1, .3, 1) both; }
@keyframes lp-lamp { 0% { left: -6%; opacity: 0; } 12% { opacity: 1; } 85% { opacity: 1; } 100% { left: 106%; opacity: 0; } }
.lp-js .lp-cure > * { transition: opacity .7s ease .25s, filter .7s ease .25s; }
.lp-js .lp-cure:not(.is-cured) > * { opacity: 0.35; filter: saturate(0.15); }

/* the print: cyan, magenta and yellow land off register, then lock */
.lp-pass { position: relative; isolation: isolate; }
.lp-pass::before, .lp-pass::after { content: attr(data-text); position: absolute; inset: 0; z-index: -1; pointer-events: none; transition: transform 1.1s cubic-bezier(.2, .8, .2, 1) .35s, opacity 1.1s ease .9s; }
.lp-pass::before { color: var(--lp-c); transform: translate(0, 0); }
.lp-pass::after { color: var(--lp-m); transform: translate(0, 0); }
.lp-pass { text-shadow: 0 0 0 transparent; }
.lp-js .lp-cure:not(.is-cured) .lp-pass::before { transform: translate(-0.07em, 0.05em); }
.lp-js .lp-cure:not(.is-cured) .lp-pass::after { transform: translate(0.06em, -0.04em); }
.lp-cure.is-cured .lp-pass::before, .lp-cure.is-cured .lp-pass::after { opacity: 0; }
.lp-head .lp-pass::before { text-shadow: 0.05em 0.04em 0 var(--lp-y); }

/* buttons: square, with the offset of a print that missed its mark */
.entry-content .wp-block-button__link, .lp-submit { font-family: var(--lp-display); font-weight: 700; font-stretch: 112%; font-size: 1rem; border-radius: 2px; padding: 0.95em 1.45em; background: var(--lp-uv); color: var(--lp-white); border: 2px solid var(--lp-ink); box-shadow: 4px 4px 0 var(--lp-ink); transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.wp-block-button__link:hover, .lp-submit:hover { background: var(--lp-uv-deep); color: var(--lp-white); transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--lp-ink); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--lp-ink) !important; border: 2px solid var(--lp-ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lp-white); color: var(--lp-ink); }
.wp-block-buttons { gap: 14px; margin-top: 1.6em; }

/* hero: the machine itself, lamp lit */
.entry-content > .wp-block-cover.lp-hero { min-height: min(88svh, 860px); padding: clamp(48px, 7vw, 110px) var(--lp-gut); align-items: flex-end; overflow: clip; }
.lp-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(20, 21, 25, .9) 0%, rgba(20, 21, 25, .62) 42%, rgba(20, 21, 25, .08) 78%) !important; opacity: 1 !important; }
.lp-hero .wp-block-cover__inner-container { max-width: var(--lp-max); width: 100%; margin: 0 auto; color: var(--lp-white); }
.lp-hero .wp-block-cover__inner-container > * { max-width: 700px; }
.lp-hero h1 { font-size: clamp(2.9rem, 7.2vw, 7rem); color: var(--lp-white); }
.lp-hero .lp-lede { color: var(--lp-white-2); }
.lp-hero .lp-note { color: var(--lp-white-3); margin-top: 2.4em; }
.lp-hero .wp-block-button.is-style-outline .wp-block-button__link { color: var(--lp-white) !important; border-color: var(--lp-white); box-shadow: 4px 4px 0 var(--lp-white); }
.lp-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lp-white); color: var(--lp-ink) !important; }
.lp-hero .lp-pass::before { text-shadow: 0.05em 0.04em 0 var(--lp-y); }
.lp-js .lp-hero.lp-cure:not(.is-cured) > * { opacity: 1; filter: none; }
.lp-js .lp-hero.lp-cure:not(.is-cured) .wp-block-cover__image-background { filter: saturate(0.1) brightness(.8); }
.lp-hero .wp-block-cover__image-background { object-position: 70% 50%; transition: filter 1s ease .3s; }

/* the jig: what is on the bed */
.lp-jig { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 10px; background: var(--lp-foam); border-radius: 10px; box-shadow: 0 30px 60px -30px rgba(20, 21, 25, .55); margin-top: 28px !important; }
.lp-slot { margin: 0 !important; background: var(--lp-foam-2); border-radius: 6px; padding: 6px; box-shadow: inset 0 3px 8px rgba(0, 0, 0, .65); }
.lp-slot:first-child { grid-column: span 2; grid-row: span 2; }
.lp-slot__img { margin: 0 !important; }
.lp-slot__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 3px; }
.lp-slot:first-child .lp-slot__img img { aspect-ratio: auto; height: 100%; min-height: 220px; }
.lp-slot:first-child { display: flex; flex-direction: column; }
.lp-slot:first-child .lp-slot__img { flex: 1; }
.lp-slot__cap { font-family: var(--lp-mono); font-size: 0.74rem; margin: 6px 2px 0 !important; color: var(--lp-white-2); }
.lp-slot__cap a { text-decoration: none; color: var(--lp-white); }
.lp-slot__cap a::after { content: " →"; color: var(--lp-uv); }
.lp-slot:hover { box-shadow: inset 0 3px 8px rgba(0, 0, 0, .65), 0 0 0 2px var(--lp-uv); }

/* layers: three sheets that separate as the lamp passes */
.lp-stack { display: flex; flex-direction: column; padding: 40px 0 20px; }
.lp-layer { margin: -42px 0 0 !important; padding: 26px 28px 46px; border-radius: 6px; transform: skewY(-7deg); transition: margin .9s cubic-bezier(.2, .8, .2, 1) .5s; }
.lp-layer:first-child { margin-top: 0 !important; }
.lp-cure.is-cured .lp-layer:not(:first-child) { margin-top: 14px !important; }
.lp-layer p { transform: skewY(7deg); margin: 0; font-size: 1rem; }
.lp-layer strong { display: block; font-family: var(--lp-display); font-stretch: 75%; font-weight: 800; font-size: 1.7rem; line-height: 1; margin-bottom: 6px; }
.lp-layer--gloss { position: relative; z-index: 3; background: linear-gradient(135deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .05) 45%, rgba(255, 255, 255, .18)); border: 1px solid rgba(255, 255, 255, .45); backdrop-filter: blur(3px); }
.lp-layer--color { position: relative; z-index: 2; background: linear-gradient(110deg, var(--lp-c), var(--lp-m) 55%, var(--lp-y)); }
.lp-layer--color p, .lp-layer--color strong { color: var(--lp-ink) !important; }
.lp-layer--white { position: relative; z-index: 1; background: var(--lp-white); }
.lp-layer--white p, .lp-layer--white strong { color: var(--lp-ink) !important; }

/* will it fit */
.lp-fit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); grid-template-areas: "in bed" "verdict bed" "note bed"; gap: 18px clamp(24px, 4vw, 64px); align-items: start; margin-top: 28px; }
.lp-fit__inputs { grid-area: in; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.lp-fit label { display: flex; flex-direction: column; font-family: var(--lp-mono); font-size: 0.78rem; color: var(--lp-ink-2); }
.lp-fit label span { color: var(--lp-ink-3); }
.lp-fit input { font-family: var(--lp-display); font-stretch: 112%; font-weight: 750; font-size: clamp(1.8rem, 3.4vw, 2.8rem); width: 100%; padding: 0.15em 0.3em; margin-top: 4px; border: 2px solid var(--lp-ink); border-radius: 2px; background: var(--lp-white); color: var(--lp-ink); }
.lp-fit input:focus { outline: 3px solid var(--lp-uv); outline-offset: 2px; }
.lp-fit__bed { grid-area: bed; justify-self: center; width: min(100%, 380px); aspect-ratio: 18 / 24; padding: 12px; background: var(--lp-foam); border-radius: 8px; box-shadow: 0 30px 60px -30px rgba(20, 21, 25, .6); }
.lp-fit__area { position: relative; width: 100%; height: 100%; background-color: var(--lp-foam-2); background-image: radial-gradient(circle, #3a3e44 0 1.5px, transparent 2px); background-size: 14px 14px; outline: 1px dashed rgba(247, 246, 241, .35); overflow: hidden; }
.lp-fit__area i { position: absolute; box-sizing: border-box; border: 1.5px solid var(--lp-foam-2); background: var(--lp-uv); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); animation: lp-drop .35s ease both; }
@keyframes lp-drop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }
.lp-fit__verdict { grid-area: verdict; font-family: var(--lp-display); font-weight: 750; font-stretch: 100%; font-size: clamp(1.3rem, 2.2vw, 1.8rem); line-height: 1.15; margin: 0; }
.lp-fit.is-no .lp-fit__verdict { color: #b0005e; }
.lp-fit__note { grid-area: note; font-family: var(--lp-mono); font-size: 0.74rem; color: var(--lp-ink-3); margin: 0; }

/* what people bring us: job tickets on a perforated edge */
.lp-work { background: var(--lp-white); }
.lp-tickets { margin-top: 24px !important; }
.lp-ticket { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.1fr) minmax(0, 2fr); gap: 8px 28px; align-items: baseline; padding: 26px 0 22px; margin: 0 !important; border-top: 2px dashed rgba(20, 21, 25, .3); transition: background .2s ease, padding .2s ease; }
.lp-ticket:last-child { border-bottom: 2px dashed rgba(20, 21, 25, .3); }
.lp-ticket:hover { background: linear-gradient(90deg, rgba(124, 77, 255, .08), transparent 70%); padding-left: 14px; }
.lp-ticket__who { font-family: var(--lp-mono); font-size: 0.78rem; color: var(--lp-ink-3); margin: 0 !important; }
.lp-ticket__name { margin: 0 !important; font-size: clamp(1.7rem, 3vw, 2.6rem); }
.lp-ticket__text { margin: 0 !important; color: var(--lp-ink-2); }

/* the machine */
.lp-machine__img img, .lp-svc__img img, .lp-tray__img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 3px; }
.lp-machine__img, .lp-svc__img, .lp-tray__img { margin: 0 !important; }
.lp-machine__title { font-stretch: 100%; font-size: clamp(1.8rem, 3.2vw, 2.8rem); }
.lp-specs { list-style: none; padding: 0; margin: 1em 0 0; font-family: var(--lp-mono); font-size: 0.86rem; }
.lp-specs li { padding: 11px 0 11px 22px; border-bottom: 1px solid rgba(20, 21, 25, .16); position: relative; }
.lp-foam .lp-specs li { border-color: rgba(247, 246, 241, .16); color: var(--lp-white-2); }
.lp-specs li::before { content: ""; position: absolute; left: 0; top: 50%; width: 9px; height: 9px; margin-top: -5px; background: var(--lp-uv); box-shadow: 0 0 10px var(--lp-uv-glow); }

/* call to action: under the lamp */
.lp-uv { background: radial-gradient(ellipse 70% 120% at 18% 40%, #9a74ff 0%, var(--lp-uv-deep) 45%, #1d0c55 100%); color: var(--lp-white); }
.lp-uv p { color: var(--lp-white-2); font-size: 1.15rem; max-width: 34em; }
.lp-cta__title { font-stretch: 125%; font-weight: 850; font-size: clamp(2.3rem, 6vw, 5.2rem); line-height: .94; max-width: 12em; }
.lp-uv .wp-block-button__link { background: var(--lp-white); color: var(--lp-ink); }
.lp-uv .wp-block-button__link:hover { background: var(--lp-y); color: var(--lp-ink); }

/* inner page heads */
.entry-content > .lp-head { padding-top: clamp(40px, 6vw, 90px); padding-bottom: clamp(40px, 6vw, 90px); }

/* services */
.lp-svc:nth-of-type(odd) { background: var(--lp-white); }
.lp-svc:nth-of-type(even) .lp-split { flex-direction: row-reverse; }
.lp-svc__title { font-stretch: 75%; font-size: clamp(2.2rem, 4.6vw, 3.8rem); }

/* what we print on: foam trays */
.lp-trays { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 32px); }
.lp-tray { margin: 0 !important; background: var(--lp-foam-2); border-radius: 10px; padding: 10px; box-shadow: inset 0 3px 10px rgba(0, 0, 0, .55); display: flex; flex-direction: column; }
.lp-tray__body { padding: 18px 12px 12px; }
.lp-tray__title { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.lp-tray__items { list-style: none; padding: 0; margin: 0.6em 0 0; display: flex; flex-wrap: wrap; gap: 6px; font-family: var(--lp-mono); font-size: 0.78rem; }
.lp-tray__items li { border: 1px solid rgba(247, 246, 241, .3); padding: 4px 8px; border-radius: 2px; color: var(--lp-white-2); }

/* questions */
.lp-faqsec { background: var(--lp-white); }
.lp-faq { max-width: 860px !important; }
.lp-faq .wp-block-details { border-top: 2px solid var(--lp-ink); padding: 0; margin: 0; }
.lp-faq .wp-block-details:last-child { border-bottom: 2px solid var(--lp-ink); }
.lp-faq summary { cursor: pointer; list-style: none; font-family: var(--lp-display); font-weight: 700; font-stretch: 100%; font-size: clamp(1.2rem, 2vw, 1.55rem); padding: 22px 48px 22px 0; position: relative; }
.lp-faq summary::-webkit-details-marker { display: none; }
.lp-faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: linear-gradient(var(--lp-uv), var(--lp-uv)) center / 100% 3px no-repeat, linear-gradient(var(--lp-uv), var(--lp-uv)) center / 3px 100% no-repeat; transition: transform .25s ease; }
.lp-faq details[open] summary::after { transform: rotate(45deg); }
.lp-faq details p { padding: 0 0 22px; margin: 0; color: var(--lp-ink-2); max-width: 44em; }

/* quote form */
.lp-form-wrap { margin-top: 28px; }
.lp-form { display: grid; gap: 18px; background: var(--lp-white); border: 2px solid var(--lp-ink); border-radius: 4px; padding: clamp(18px, 3vw, 36px); box-shadow: 8px 8px 0 var(--lp-ink); }
.lp-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; max-width: 640px; }
.lp-row--end { grid-template-columns: minmax(0, 1fr); align-items: start; }
.lp-row--end .lp-submit { justify-self: start; }
.lp-form > label { max-width: 640px; }
.lp-form label { display: flex; flex-direction: column; gap: 6px; font-family: var(--lp-mono); font-size: 0.8rem; color: var(--lp-ink-2); }
.lp-form label span { color: var(--lp-ink-3); }
.lp-form input[type=text], .lp-form input[type=email], .lp-form input[type=number], .lp-form input[type=date], .lp-form select, .lp-form textarea { font-family: var(--lp-body); font-size: 1.05rem; color: var(--lp-ink); background: #fff; border: 1.5px solid var(--lp-ink); border-radius: 2px; padding: 0.7em 0.8em; width: 100%; }
.lp-form input:focus, .lp-form select:focus, .lp-form textarea:focus { outline: 3px solid var(--lp-uv); outline-offset: 1px; }
.lp-file input[type=file] { font-family: var(--lp-mono); font-size: 0.85rem; padding: 18px; border: 2px dashed rgba(20, 21, 25, .4); border-radius: 2px; background: repeating-linear-gradient(45deg, transparent 0 10px, rgba(124, 77, 255, .06) 10px 20px); }
.lp-captcha input { max-width: 160px; }
.lp-hp { position: absolute !important; left: -9999px !important; }
.lp-done { background: var(--lp-foam); color: var(--lp-white); padding: 20px 24px; border-left: 8px solid var(--lp-uv); margin-bottom: 18px; }
.lp-done p { margin: 0; color: var(--lp-white-2); }
.lp-done .lp-done__title { font-family: var(--lp-display); font-weight: 750; font-size: 1.4rem; color: var(--lp-white); margin-bottom: 4px; }
.lp-error { background: #ffe1ef; border-left: 8px solid var(--lp-m); padding: 14px 18px; }
.lp-direct { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 40px !important; font-size: 0.98rem; color: var(--lp-ink-2); }
.lp-direct strong { display: block; font-family: var(--lp-display); color: var(--lp-ink); }

/* footer */
.site-footer { background: var(--lp-ink); color: var(--lp-white-2); position: relative; }
.site-footer::before { content: ""; display: block; height: 5px; background: var(--lp-cmyk); }
.site-footer .site-footer-wrap, .site-footer .site-bottom-footer-wrap, .site-footer .site-footer-row-container-inner { background: var(--lp-ink) !important; }
.site-footer a { color: var(--lp-white); }
.site-footer .footer-html { font-family: var(--lp-mono); font-size: 0.76rem; }

@media (max-width: 900px) {
    .lp-jig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .entry-content > .wp-block-cover.lp-hero { min-height: 80svh; }
    .lp-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(20, 21, 25, .35) 0%, rgba(20, 21, 25, .9) 62%) !important; }
    .wp-block-columns.lp-split { flex-direction: column !important; }
    .lp-fit { grid-template-columns: minmax(0, 1fr); grid-template-areas: "in" "verdict" "bed" "note"; }
    .lp-ticket { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .lp-trays { grid-template-columns: minmax(0, 1fr); }
    .lp-row, .lp-row--end, .lp-direct { grid-template-columns: minmax(0, 1fr); }
    .lp-submit { width: 100%; }
}
@media (max-width: 520px) {
    .lp-fit__bed { width: min(100%, 250px); }
    .lp-slot:last-child { grid-column: span 2; }
    .lp-slot:last-child .lp-slot__img img { aspect-ratio: 2 / 1; }
    body { font-size: 17px; }
    .lp-jig { gap: 6px; padding: 6px; }
    .lp-slot { padding: 4px; }
    .lp-slot__cap { font-size: 0.66rem; }
    .lp-slot:first-child .lp-slot__img img { min-height: 160px; }
    .lp-fit__inputs { gap: 10px; }
    .lp-layer { padding: 20px 20px 40px; }
}
@media (prefers-reduced-motion: reduce) {
    .lp-cure::before { display: none; }
    .lp-pass::before, .lp-pass::after, .lp-layer, .lp-js .lp-cure > * { transition: none !important; }
    .lp-fit__area i { animation: none; }
}
