/* Visitor controls share one tactile, readable language in both themes. */
:root { --campaign-bar-height: 100px; }
.motion-story .studio-dock { z-index:4; background:var(--paper); }
.button, .text-link, .header-contact, .select-trigger { font-size:.9375rem; }
.button { white-space:normal; min-height:48px; }
.text-link, .action-button, .chat-popover-footer button, .chat-popover-footer a {
  display:inline-flex; justify-content:center; align-items:center; gap:10px;
  min-height:46px; max-width:100%; padding:11px 16px; border-radius:14px;
  border:1px solid var(--line); background:var(--soft); color:var(--ink);
  box-shadow:inset 0 1px 0 #ffffff40, 0 2px 0 var(--line);
  font-size:.9375rem; font-weight:600; line-height:1.4; text-decoration:none;
  white-space:normal; transition:transform .18s,background .18s,box-shadow .18s;
}
.text-link:hover, .action-button:hover { background:var(--leaf); transform:translateY(-2px); }
.text-link:active, .action-button:active { transform:translateY(1px); box-shadow:none; }
.button.action-button { padding:13px 16px; }
.button.action-button:not(.button-outline) { background:var(--green); color:var(--on-green); }
.chat-popover .chat-actions { display:grid; grid-template-columns:1fr; gap:10px; margin-top:20px; }
.chat-popover .chat-actions a { width:100%; justify-content:space-between; font-size:.9375rem; }
.chat-popover .chat-actions a::after { content:'↗'; font-size:1.125rem; flex-shrink:0; }
.chat-popover .chat-actions .whatsapp-action { order:-1; }
.chat-popover-footer { display:grid; grid-template-columns:auto 1fr; gap:10px; }
.chat-popover-footer :is(a,button) { padding:11px 13px; font-size:.875rem; }
.chat-popover-heading h2 { font-size:1.125rem; }
.chat-popover-heading p, .chat-greeting small, .chat-popover .chat-author { font-size:.875rem; }
.chat-popover .chat-questions button, .chat-popover .chat-response>p, .chat-popover .chat-user { font-size:1rem; line-height:1.65; }
.chat-popover .chat-response { padding:20px; }
.chat-popover .chat-turn { padding:0 16px 20px; }
.question-actions, .accessory-cta, .showroom-actions, .room-actions { gap:12px; align-items:stretch; }
.question-actions>* { flex:1 1 180px; }
.accessory-cta .text-link, .accessory-cta .button, .campaign-path .text-link, .campaign-source .text-link { font-size:.9375rem; }
.campaign-source { gap:12px; flex-wrap:wrap; }
.campaign-section .text-link { background:#ffffff16; border-color:#ffffff40; color:inherit; box-shadow:0 2px 0 #0002; }
.campaign-section .text-link:hover { background:#ffffff25; }
.film-credit a, .privacy-settings { display:inline-flex; padding:10px 15px; border:1px solid var(--line); border-radius:12px; background:var(--soft); color:var(--ink); min-height:44px; align-items:center; font-size:.9375rem; font-weight:600; }
.article-copy p a:not([class]), .lead-consent a { text-decoration:underline; text-underline-offset:3px; }

/* WhatsApp remains recognizable without continuous shaking or flashing. */
.whatsapp-action, a.mobile-whatsapp, .chat-popover-footer a.whatsapp-action {
  position:relative; isolation:isolate; background:#087b4a; color:#fff;
  border:1px solid #1f9b63; box-shadow:inset 0 1px 0 #ffffff38,0 3px 0 #045231,0 8px 22px #087b4a22;
  font-weight:700; text-decoration:none;
}
.whatsapp-action::before {
  content:''; display:inline-block; width:21px; height:21px; flex:0 0 21px; background:currentColor;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M20.5 3.5A12 12 0 0 0 1.8 18L.2 24l6.2-1.6A12 12 0 0 0 20.5 3.5ZM12 22a10 10 0 0 1-5.1-1.4l-.4-.2-3.7 1 1-3.6-.3-.4A10 10 0 1 1 12 22Zm5.5-7.5-1.8-.9c-.2-.1-.5-.2-.7.2l-.8 1c-.2.2-.4.2-.6.1a8.2 8.2 0 0 1-3.8-3.3c-.2-.3 0-.4.1-.6l.6-.8c.2-.3.2-.5.1-.7l-.8-2c-.2-.5-.5-.5-.7-.5h-.6c-.2 0-.5.1-.7.3-.7.7-1 1.5-1 2.4 0 1.4 1 2.8 1.2 3 1.8 2.8 4.3 4.8 7.2 5.5.8.2 1.5.1 2.1-.2.7-.4 1.3-1.1 1.4-1.8.1-.6.1-1-.2-1.1Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.whatsapp-action:hover { background:#09633f; color:#fff; transform:translateY(-2px); }
.campaign-bar .whatsapp-action { animation:wa-beacon 6s ease-in-out infinite; }
@keyframes wa-beacon { 0%,65%,100% { box-shadow:inset 0 1px 0 #ffffff38,0 3px 0 #045231,0 0 0 0 #087b4a00; } 77% { box-shadow:inset 0 1px 0 #ffffff38,0 3px 0 #045231,0 0 0 8px #087b4a18; } 90% { box-shadow:inset 0 1px 0 #ffffff38,0 3px 0 #045231,0 0 0 12px #087b4a00; } }

/* One persistent campaign, using the real publication dates from the CMS. */
body { padding-bottom:calc(var(--campaign-bar-height) + 28px + env(safe-area-inset-bottom)); }
.campaign-bar {
  position:fixed; z-index:900; bottom:calc(14px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%);
  width:min(1080px,calc(100% - 32px)); padding:14px 18px; display:grid;
  grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:24px;
  background:color-mix(in srgb,var(--paper) 96%,transparent); backdrop-filter:blur(20px);
  border:1px solid var(--line); border-radius:22px; box-shadow:0 6px 36px #0e382929,inset 0 1px 0 #ffffff60;
}
.campaign-bar-offer { min-width:0; display:flex; flex-direction:column; gap:4px; border-radius:8px; }
.campaign-bar-title { font-size:1rem; font-weight:700; line-height:1.3; }
.campaign-bar-benefit { font-size:.875rem; color:var(--muted); line-height:1.5; }
.campaign-bar-timer { display:flex; flex-direction:column; gap:3px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.campaign-bar-timer>span { font-size:.875rem; color:var(--muted); }
.campaign-bar-timer strong { font-size:1.0625rem; line-height:1.5; letter-spacing:.015em; }
.campaign-bar .whatsapp-action { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:14px; padding:14px 20px; min-height:52px; font-size:.9375rem; }
.campaign-bar.is-expired .campaign-bar-timer { display:none; }
.chat-launcher { bottom:calc(var(--campaign-bar-height) + 45px + env(safe-area-inset-bottom)); }
.chat-nudge { bottom:calc(var(--campaign-bar-height) + 112px + env(safe-area-inset-bottom)); }
.campaign-section.is-expired .campaign-grid, .campaign-section.is-expired .campaign-details { display:none; }
.campaign-expired:not([hidden]) { display:block; margin:18px 0; font-size:1rem; }

/* Localized cookie choice: equal-sized choices and an explicit preferences view. */
.cookie-dialog { position:fixed; inset:0; margin:auto; width:min(800px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:clamp(24px,4vw,40px); overflow:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:24px; background:var(--paper); color:var(--ink); box-shadow:0 24px 100px #0003; }
.cookie-dialog::backdrop { background:#071c1766; backdrop-filter:blur(3px); }
.cookie-dialog h2 { font-family:inherit; font-size:clamp(1.5rem,3vw,2rem); font-weight:700; line-height:1.2; margin:0 0 20px; letter-spacing:-.03em; }
.cookie-dialog>p { font-size:1rem; line-height:1.75; color:var(--muted); }
.cookie-links { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0 24px; }
.cookie-links a { display:inline-flex; min-height:44px; align-items:center; padding:8px 14px; border-radius:12px; border:1px solid var(--line); background:var(--soft); font-size:.9375rem; font-weight:600; }
.cookie-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.cookie-actions button, .cookie-preferences-actions button { padding:14px 16px; min-height:52px; border:1px solid var(--line); border-radius:14px; background:var(--soft); color:var(--ink); font-size:1rem; font-weight:700; }
.cookie-actions button:first-child, .cookie-preferences-actions button:last-child { background:var(--ink); border-color:var(--ink); color:var(--paper); }
.cookie-actions button:hover, .cookie-preferences-actions button:hover { outline:2px solid var(--green); outline-offset:2px; }
.cookie-dialog #privacy-status { font-size:.9375rem; margin-top:12px; }
.cookie-dialog #privacy-status:empty { display:none; }
.cookie-category { display:flex; gap:20px; align-items:center; justify-content:space-between; padding:20px 0; border-top:1px solid var(--line); }
.cookie-category strong { font-size:1rem; }
.cookie-category p { font-size:.9375rem; color:var(--muted); line-height:1.6; margin-top:6px; max-width:520px; }
.cookie-category>span { flex-shrink:0; font-size:.875rem; color:var(--green); }
.cookie-switch { position:relative; flex:0 0 52px; width:52px; height:30px; }
.cookie-switch input { position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; z-index:1; cursor:pointer; }
.cookie-switch span { display:block; width:52px; height:30px; border-radius:20px; background:var(--line); border:1px solid var(--muted); transition:background .2s; }
.cookie-switch span::after { content:''; position:absolute; top:5px; left:5px; width:20px; height:20px; border-radius:50%; background:var(--paper); box-shadow:0 1px 4px #0003; transition:transform .2s; }
.cookie-switch input:checked+span { background:var(--green); border-color:var(--green); }
.cookie-switch input:checked+span::after { transform:translateX(22px); background:var(--on-green); }
.cookie-switch input:focus-visible+span { outline:3px solid var(--green); outline-offset:4px; }
.cookie-preferences-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:16px; }
html:has(.cookie-dialog[open]) { overflow:hidden; }

/* Accessible telephone and consent controls; no fixed pixel text size. */
.form-fields { grid-template-columns:minmax(0,1fr); }
.contact-grid>*,.form-fields>* { min-width:0; }
.contact-person>div { min-width:0; overflow-wrap:anywhere; }
.question summary { overflow-wrap:anywhere; }
.question-actions>* { min-width:0; }
html:not([data-text-scale="100"]) .contact-grid { grid-template-columns:minmax(0,1fr); }
.phone-field { display:grid; grid-template-columns:minmax(124px,.4fr) minmax(0,1fr); align-items:stretch; gap:8px; }
.phone-field .select-trigger { margin:0; height:100%; min-height:54px; border-radius:14px; padding:12px; gap:8px; }
.phone-field .select-value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.phone-field input { min-width:0; width:100%; font-size:1rem; min-height:54px; margin:0; border-radius:14px; }
.phone-status { margin-top:8px; font-size:.875rem; line-height:1.6; color:var(--muted); }
.phone-status[data-state="invalid"] { color:#b34235; }
[data-theme="dark"] .phone-status[data-state="invalid"] { color:#ffa89c; }
.phone-status[data-state="valid"] { color:var(--green); }
.select-popover { padding:6px; max-width:calc(100vw - 24px); }
.select-options { overflow:auto; max-height:260px; overscroll-behavior:contain; }
.select-options [role="option"] { padding:12px; border-radius:9px; min-height:44px; cursor:pointer; font-size:1rem; }
.select-options [aria-selected="true"],.select-options .is-active { background:var(--leaf); color:var(--ink); }
.lead-consent { align-items:flex-start; gap:12px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--soft); font-size:.9375rem!important; line-height:1.65; cursor:pointer; }
.lead-consent:has(input:checked) { background:color-mix(in srgb,var(--leaf) 65%,var(--paper)); border-color:var(--green); }
.lead-consent input { appearance:none; flex:0 0 24px; width:24px; height:24px; min-height:24px; margin:2px 0 0; padding:0; background:var(--paper); border:1.5px solid var(--muted); border-radius:7px; cursor:pointer; }
.lead-consent input:checked { background-color:var(--green); border-color:var(--green); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
[data-theme="dark"] .lead-consent input:checked { background-color:#087b4a; border-color:var(--green); }
.form-note,.form-error,.contact-person span,.contact-panel label,.selected-answer p { font-size:.9375rem; }
.contact-panel :is(input,textarea,.select-trigger) { font-size:1rem; }
.contact-panel .button { font-size:1rem; }
.section-label,.breadcrumb,.film-credit,.media-credit,.research-date,.accessory-caption,.model-origin,.model-hint,.compact-caption small,.compact-caption span { font-size:.875rem; line-height:1.5; letter-spacing:.02em; }
.accessory-tabs button,.accessory-context p,.accessory-context span,.accessory-editorial>p,.campaign-topline,.campaign-terms p,.campaign-source,.campaign-clarification,.model-status,.room-privacy,.film-copy p,.instagram-permission p { font-size:.9375rem; line-height:1.7; }
.desktop-nav a,.header-contact,.dock-actions>.text-link,.function-panel .text-link { font-size:.9375rem; }
.campaign-path .button,.campaign-path li span { font-size:1rem; }

@media(max-width:760px) {
  .campaign-bar { bottom:calc(8px + env(safe-area-inset-bottom)); width:calc(100% - 16px); border-radius:18px; padding:12px; gap:5px 12px; grid-template-columns:minmax(0,1fr) auto; }
  .campaign-bar-offer { grid-column:1; grid-row:1; gap:3px; }
  .campaign-bar-title { font-size:.9375rem; }
  .campaign-bar-benefit { font-size:.875rem; line-height:1.4; }
  .campaign-bar-timer { grid-column:1; grid-row:2; flex-direction:row; align-items:baseline; flex-wrap:wrap; gap:2px 5px; white-space:normal; }
  .campaign-bar-timer>span { display:none; }
  .campaign-bar-timer strong { font-size:.9375rem; }
  .campaign-bar .whatsapp-action { grid-column:2; grid-row:1/3; padding:13px 10px; gap:6px; font-size:.9375rem; flex-direction:column; min-width:96px; }
  .chat-launcher { right:12px; bottom:calc(var(--campaign-bar-height) + 29px + env(safe-area-inset-bottom)); }
  .chat-nudge { right:12px; bottom:calc(var(--campaign-bar-height) + 92px + env(safe-area-inset-bottom)); }
  .cookie-dialog { width:calc(100vw - 24px); padding:24px; border-radius:22px; }
  .cookie-actions { grid-template-columns:1fr 1fr; gap:10px; }
  .cookie-actions button:last-child { grid-column:1/-1; }
  .cookie-actions button { font-size:.9375rem; padding:13px 9px; }
  .cookie-links { gap:8px; margin:16px 0; }
  .cookie-links a { font-size:.875rem; padding:8px 10px; }
  .chat-popover-footer { grid-template-columns:1fr 1.8fr; gap:8px; }
  .chat-popover-footer :is(a,button) { padding:10px; }
  .accessory-cta { display:grid; grid-template-columns:1fr; width:100%; }
  .accessory-cta a { width:100%; }
  .compact-caption { max-width:min(260px,75vw); }
  .studio-dock { gap:15px; }
  html:not([data-text-scale="100"]) .campaign-bar-benefit { display:none; }
  html:not([data-text-scale="100"]) .campaign-bar-title { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
  html[data-text-scale="200"] .campaign-bar-timer { display:none; }
  html[data-text-scale="200"] .campaign-bar .whatsapp-action { grid-row:1; }
}
@media(max-width:380px) {
  .phone-field { grid-template-columns:minmax(0,1fr); }
  .campaign-bar { gap:4px 8px; }
  .campaign-bar .whatsapp-action { min-width:86px; font-size:.875rem; }
  .cookie-dialog { padding:22px 18px; }
  .chat-popover .chat-response { padding:16px; }
}
html[data-text-scale="150"] .campaign-bar-benefit,html[data-text-scale="200"] .campaign-bar-benefit { display:none; }
html[data-text-scale="200"] .campaign-bar .whatsapp-action { min-width:0; padding:8px; font-size:.875rem; }
html[data-text-scale="200"] .cookie-actions { grid-template-columns:1fr; }
html[data-text-scale="150"] .phone-field,html[data-text-scale="200"] .phone-field { grid-template-columns:minmax(0,1fr); }
@media(max-width:760px) {
  html[data-text-scale="200"] .campaign-bar .whatsapp-action { font-size:.75rem; }
}
@media(prefers-reduced-motion:reduce) {
  .campaign-bar .whatsapp-action { animation:none; }
  .text-link,.action-button,.whatsapp-action,.cookie-switch span,.cookie-switch span::after { transition:none; }
  .text-link:hover,.action-button:hover,.whatsapp-action:hover { transform:none; }
}

.care-story { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:clamp(24px,5vw,72px); align-items:center; margin:60px 0 20px; padding-top:48px; border-top:1px solid var(--line); }
.care-story picture { display:block; overflow:hidden; border-radius:24px; }
.care-story img { width:100%; height:auto; }
.care-story h3 { font-size:clamp(1.8rem,3vw,2.8rem); margin:14px 0 20px; }
.care-story p { font-size:1rem; line-height:1.75; }
.care-story details { margin:20px 0; }
.care-story summary { min-height:48px; cursor:pointer; font-size:.9375rem; font-weight:600; }
.care-story details p { margin:10px 0; font-size:.9375rem; color:var(--muted); }
.film-scene video::cue { font-size:1rem; background:#081b15d9; color:#fff; }
@media(max-width:760px) { .care-story { grid-template-columns:1fr; gap:24px; margin-top:36px; padding-top:32px; } .care-story picture { max-width:480px; } }

.contact-panel .lead-consent { display:flex; align-items:flex-start; }
.contact-panel .lead-consent>span { min-width:0; flex:1; }
