/* CaricaJoy studio: one clear path from photo to artwork. */
:root { --cream:#f7f6f2; --paper:#fff; --ink:#252b29; --muted:#6a706c; --coral:#32624f; --plum-900:#294f40; --plum-800:#32624f; --gold:#e4c78e; --line:#e1e5df; --max:1160px; }
body { background:var(--cream); }
:focus-visible { outline:3px solid #bb8738; outline-offset:4px; }
section[id], details[id] { scroll-margin-top:100px; }
.site-header { min-height:76px; background:rgba(247,246,242,.96); border-color:var(--line); backdrop-filter:blur(12px); }
.brand-mark { background:#32624f; border-radius:12px; transform:none; }
.brand-mark b { transform:none; }
.brand small { font-size:11px; }
.site-header nav a { font-size:13px; }
.header-cta { background:#32624f; border-radius:8px; }
.language-switcher { border:1px solid var(--line); background:transparent; border-radius:8px; }
.language-switcher button { min-height:34px; }
.language-switcher button.active { background:#fff; color:var(--ink); box-shadow:0 1px 4px #0001; }
.studio-hero { max-width:var(--max); margin:auto; padding:136px 0 72px; min-height:630px; display:grid; grid-template-columns:1.05fr 1fr; gap:64px; overflow:visible; background:none; }
.studio-hero::before,.studio-hero::after { display:none; }
.studio-hero .eyebrow { padding:0; background:none; color:#32624f; font-size:11px; letter-spacing:1.6px; }
.studio-hero h1 { font-size:clamp(44px,4.7vw,66px); line-height:1.08; letter-spacing:-3px; margin:22px 0; }
.studio-hero h1 em { color:#32624f; font-weight:600; }
.studio-hero .hero-copy > p { max-width:430px; font-size:17px; line-height:1.7; }
.studio-hero .hero-actions { display:flex; margin-top:30px; gap:24px; flex-direction:row; align-items:center; }
.upload-start { border:0; border-radius:10px; background:#32624f; box-shadow:0 6px 15px #294f4015; padding:15px 19px; min-height:56px; font-size:15px; cursor:pointer; transition:background .2s,transform .2s; }
.upload-start:hover { background:#234a3a; transform:translateY(-2px); }
.upload-start b { background:none; color:#fff; width:24px; height:24px; font-size:22px; }
.hero-price { display:grid; gap:3px; white-space:nowrap; }
.hero-price strong { font-size:24px; letter-spacing:-1px; }
.hero-price small { color:var(--muted); font-size:11px; }
.studio-hero .trust-row { display:flex; margin-top:22px; gap:18px; }
.studio-hero .trust-row > span { font-size:11px; }
.studio-gallery { position:relative; align-self:center; height:410px; padding:0 0 22px 30px; }
.studio-art { margin:0; background:#fff; padding:9px; border-radius:12px; box-shadow:0 16px 42px #23332a12; border:1px solid #e5e3da; overflow:hidden; }
.studio-art img { width:100%; aspect-ratio:1; display:block; object-fit:cover; border-radius:6px; }
.main-art { width:77%; transform:rotate(3deg); margin-left:auto; }
.studio-art figcaption { display:flex; align-items:center; justify-content:center; gap:8px; font-size:11px; padding:14px 4px 6px; color:#555e57; }
.art-dot { width:6px; height:6px; border-radius:50%; background:#32624f; flex-shrink:0; }
.small-art { position:absolute; width:41%; bottom:14px; left:-5px; transform:rotate(-7deg); }
.small-art figcaption { font-size:10px; padding:10px 3px 4px; }
.gallery-label { position:absolute; bottom:-16px; right:0; color:var(--muted); font-size:10px; letter-spacing:.2px; }
.creator-section { max-width:var(--max); margin:0 auto; padding:40px 0 64px; border-top:1px solid var(--line); background:none; }
.creator-section .section-heading { align-items:center; gap:40px; margin-bottom:25px; }
.section-heading h2 { font-size:36px; letter-spacing:-1.6px; }
.section-label { color:#32624f; letter-spacing:1.5px; font-size:10px; }
.section-heading > p { max-width:440px; font-size:14px; line-height:1.65; }
.creator-layout { grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr); gap:24px; }
.creator-form { gap:16px; }
.builder-card { border-radius:14px; padding:26px; background:#fff; box-shadow:none; }
.builder-heading { margin-bottom:20px; }
.builder-heading > span { background:#edf3ee; color:#32624f; border-radius:50%; width:30px; height:30px; font-size:13px; }
.builder-heading h3 { font-size:18px; letter-spacing:-.4px; }
.builder-heading p { font-size:12px; margin-top:5px; }
.drop-zone { min-height:155px; padding:20px; background:#f7faf7; border:1.5px dashed #aabdb0; border-radius:10px; }
.drop-zone:hover,.drop-zone:focus-within { border-color:#32624f; background:#eef5ee; }
.drop-zone .drop-icon { width:40px; height:40px; margin-bottom:10px; background:#e8f0e8; color:#32624f; border-radius:10px; font-size:26px; }
.drop-zone strong { font-size:15px; }
.drop-zone small { font-size:11px; }
.drop-zone b { font-size:13px; }
.consent-row { margin-top:18px; gap:10px; }
.consent-row b { font-size:12px; line-height:1.5; font-weight:500; }
.consent-row small { font-size:11px; line-height:1.5; margin-top:5px; }
input[type=checkbox] { accent-color:#32624f; min-width:18px; min-height:18px; }
.detail-grid { margin-top:0; gap:18px; }
.detail-grid label > span,.note-field > span { font-size:12px; }
.detail-grid select,.note-field textarea { font-size:16px; background:#fff; border:1px solid var(--line); border-radius:8px; min-height:44px; }
.creator-extra { border-top:1px solid var(--line); padding:16px 0 0; margin-top:16px; }
.creator-extra summary { cursor:pointer; font-size:13px; font-weight:600; color:#4e5c52; padding:3px 0; }
.creator-extra[open] summary { margin-bottom:16px; }
.creator-extra .note-field { margin-top:0; }
.product-options { gap:8px; }
.product-option { padding:13px; border-radius:9px; box-shadow:none; }
.product-option.active { background:#f0f5ef; border-color:#6a9077; }
.product-option strong { font-size:13px; }
.product-option small { font-size:11px; }
.product-option > b { font-size:15px; }
.order-summary { top:96px; border-radius:14px; box-shadow:none; background:#fff; }
.summary-preview { min-height:145px; background:#edf1ea; }
.summary-preview::before,.summary-preview::after,.summary-spark { display:none; }
.summary-preview:not(.generated) .preview-face { width:auto; height:auto; transform:none; background:none; box-shadow:none; border:0; }
.preview-placeholder { min-height:70px; color:#6e846f; background:none; }
.preview-placeholder span { font-size:34px; }
.preview-placeholder strong { font-size:13px; }
.summary-preview > p { color:#627365; background:none; padding:0; font-size:11px; bottom:13px; }
.summary-preview.generated { min-height:300px; }
.summary-body { padding:24px; }
.summary-body dl { font-size:13px; }
.summary-body dt,.summary-body dd { font-size:12px; }
.total-row { padding:18px 0; }
.total-row > span { font-size:13px; }
.total-row strong { font-size:32px; }
.ai-generate { color:#fff; background:#32624f; border-radius:9px; min-height:52px; font-size:14px; box-shadow:none; }
.ai-progress:empty,.summary-warning:empty,.upload-message:empty,.photo-previews:empty { display:none; }
.ai-progress,.summary-warning { font-size:12px; }
.summary-warning,.ai-progress[data-status="error"] { color:#a13528; }
.privacy-banner .section-label.light { color:#32624f; }
.ai-generate:hover { background:#244d3c; }
.no-charge { font-size:11px; line-height:1.6; }
.how-section { max-width:var(--max); margin:0 auto; padding:65px 0; border-top:1px solid var(--line); }
.how-section .section-heading.centered { text-align:left; margin:0 0 28px; max-width:none; }
.how-section .section-heading.centered p { margin-left:0; }
.steps-grid { gap:30px; }
.steps-grid article { border:0; border-radius:0; padding:0; min-height:130px; background:none; box-shadow:none; }
.step-icon { display:none; }
.step-number { position:static; display:block; color:#7c927c; font-size:12px; margin-bottom:16px; }
.steps-grid h3 { font-size:17px; margin:0 0 10px; }
.steps-grid p { font-size:13px; max-width:300px; }
.privacy-banner { max-width:var(--max); margin:0 auto 48px; padding:28px 30px; min-height:0; border-radius:14px; background:#e9eee7; color:var(--ink); grid-template-columns:auto 1fr; gap:22px; }
.privacy-banner h2 { font-size:24px; letter-spacing:-.8px; }
.privacy-banner p { color:var(--muted); font-size:13px; max-width:760px; }
.privacy-icon { color:#32624f; background:#dce7d9; width:52px; height:52px; border-radius:50%; }
.privacy-points { display:none; }
.faq-section { max-width:var(--max); margin:auto; padding:32px 0 60px; }
.faq-grid { grid-template-columns:1fr 1fr; gap:12px; }
.faq-grid details { background:#fff; border:1px solid var(--line); box-shadow:none; border-radius:10px; }
.faq-grid summary { font-size:14px; }
.faq-grid p { font-size:13px; line-height:1.7; }
.final-cta { padding:42px 24px; background:#e9eee7; color:var(--ink); }
.final-cta > span { display:none; }
.final-cta h2 { font-size:32px; letter-spacing:-1px; }
.final-cta p { color:var(--muted); }
.final-cta a { background:#32624f; border-radius:9px; font-size:14px; }
.secondary-video { max-width:var(--max); margin:26px auto; }
.secondary-video > summary { display:flex; justify-content:space-between; padding:18px 0; color:var(--muted); font-size:14px; cursor:pointer; border-bottom:1px solid var(--line); }
.secondary-video .video-launch { padding:40px 0; }
footer { background:#f0f1ec; color:var(--ink); border-top:1px solid var(--line); padding-top:35px; padding-bottom:35px; }
.footer-brand strong,footer p,.footer-legal a,.footer-legal button { color:#59635c; }
.footer-brand small { color:var(--muted); }
.cookie-consent { border:1px solid var(--line); border-radius:12px; box-shadow:0 8px 40px #0002; max-width:480px; }
.cookie-actions button { min-height:42px; border-radius:7px; }
.cookie-accept { background:#32624f; }
@media(max-width:1240px) { .studio-hero,.creator-section,.how-section,.faq-section,.secondary-video { margin-left:28px; margin-right:28px; } .privacy-banner { margin-left:28px; margin-right:28px; } }
@media(max-width:820px) {
 .studio-hero { grid-template-columns:1fr 1fr; gap:20px; min-height:500px; padding-top:115px; padding-bottom:45px; }
 .studio-hero h1 { font-size:43px; letter-spacing:-2px; }
 .studio-hero .hero-copy > p { font-size:14px; }
 .studio-gallery { height:300px; padding-left:10px; }
 .main-art { width:86%; }
 .small-art { width:47%; }
 .hero-price { display:none; }
 .creator-layout { grid-template-columns:1fr; }
 .order-summary { position:static; }
 .summary-preview:not(.generated):not(.generating) { display:none; }
 .creator-section .section-heading { display:block; }
 .creator-section .section-heading > p { max-width:none; }
 .steps-grid { gap:20px; }
 .privacy-banner { grid-template-columns:1fr; }
 .privacy-icon { display:none; }
}
@media(max-width:560px) {
 .site-header { min-height:68px; padding:0 18px; }
 .header-actions { gap:10px; }
 .header-cta { display:none; }
 .brand-mark { width:34px; height:34px; }
 .brand strong { font-size:19px; }
 .brand small { font-size:9px; }
 .studio-hero { margin:0 20px; padding:102px 0 32px; grid-template-columns:1fr; gap:28px; }
 .studio-hero h1 { font-size:45px; max-width:100%; margin:18px 0; line-height:1.08; }
 .studio-hero .hero-copy > p { font-size:15px; max-width:100%; }
 .studio-hero .hero-actions { margin-top:24px; gap:16px; }
 .upload-start { padding:14px 16px; font-size:14px; flex:1; justify-content:space-between; }
 .hero-price { display:grid; }
 .hero-price strong { font-size:23px; }
 .hero-price small { font-size:10px; }
 .studio-hero .trust-row { gap:12px; margin-top:16px; }
 .studio-gallery { height:235px; width:280px; justify-self:center; margin-bottom:18px; }
 .main-art { width:78%; }
 .small-art { width:43%; left:-12px; bottom:0; }
 .studio-art { padding:6px; border-radius:8px; }
 .main-art figcaption { font-size:8px; gap:4px; padding-top:8px; }
 .small-art figcaption { font-size:8px; }
 .gallery-label { bottom:-22px; font-size:9px; }
 .creator-section,.how-section,.faq-section,.secondary-video { margin-left:16px; margin-right:16px; }
 .creator-section { padding-top:28px; padding-bottom:36px; }
 .section-heading h2 { font-size:29px; }
 .section-heading > p { font-size:13px; }
 .builder-card { padding:20px 16px; }
 .builder-heading h3 { font-size:16px; }
 .builder-heading p { font-size:11px; }
 .detail-grid { grid-template-columns:1fr 1fr; gap:12px; }
 .detail-grid label > span { min-height:32px; display:block; }
 .creator-extra summary { font-size:12px; line-height:1.5; }
 .summary-body { padding:20px; }
 .how-section { padding:36px 0; }
 .steps-grid { grid-template-columns:1fr; gap:22px; }
 .steps-grid article { min-height:0; padding-left:40px; position:relative; }
 .step-number { position:absolute; left:0; top:4px; }
 .steps-grid p { max-width:none; }
 .privacy-banner { margin:0 16px 24px; padding:22px; }
 .privacy-banner h2 { font-size:22px; }
 .faq-grid { grid-template-columns:1fr; }
 .final-cta h2 { font-size:28px; }
 .cookie-consent { width:calc(100% - 24px); }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .upload-start { transition:none; } }
