.plp-launcher { position:fixed; z-index:60; right:24px; bottom:24px; border:1px solid #8a949c; background:#111417; color:#f8f9f9; padding:14px 19px; min-height:48px; box-shadow:0 4px 20px #0003; font:500 13px 'DM Sans',Arial,sans-serif; cursor:pointer; }
.plp-launcher span { margin-left:14px; color:#aeb6bc; font-size:11px; }
.plp-assistant { --ink:#111417; --paper:#eef0f1; position:fixed; inset:auto 24px 24px auto; z-index:70; width:420px; max-width:calc(100vw - 32px); height:680px; max-height:calc(100dvh - 48px); padding:0; margin:0; border:1px solid #75808a; background:var(--paper); color:var(--ink); box-shadow:0 12px 60px #0005; font:14px/1.5 'DM Sans',Arial,sans-serif; }
.plp-assistant[open] { display:flex; flex-direction:column; }
.plp-assistant::backdrop { background:#11141733; }
.plp-assistant * { box-sizing:border-box; }
.plp-assistant button,.plp-assistant input,.plp-assistant select,.plp-assistant textarea { font:inherit; border-radius:0; }
.plp-assistant button { cursor:pointer; min-height:44px; padding:8px 12px; border:1px solid #88939c; color:var(--ink); background:transparent; }
.plp-assistant button:disabled { opacity:.55; cursor:default; }
.plp-assistant :focus-visible,.plp-launcher:focus-visible { outline:3px solid #34769e; outline-offset:2px; }
.plp-head { padding:18px 20px; background:#111417; color:#f8f9f9; display:flex; align-items:center; gap:12px; }
.plp-head h2 { margin:0; font:500 23px/1.1 'Oswald',Arial,sans-serif; text-transform:uppercase; letter-spacing:-.02em; }
.plp-head p { margin:5px 0 0; font-size:11px; color:#bdc6cc; }
.plp-head button { margin-left:auto; color:#fff; border-color:#68737c; font-size:22px; }
.plp-tabs { display:flex; border-bottom:1px solid #aeb6bc; }
.plp-tabs button { flex:1; border:0; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.plp-tabs button[aria-selected=true] { border-bottom:3px solid #111417; font-weight:700; }
.plp-chat { min-height:0; flex:1; display:flex; flex-direction:column; overflow-y:auto; }
.plp-log { padding:20px; overflow:auto; flex:1; min-height:90px; overscroll-behavior:contain; }
.plp-message { padding:12px 14px; background:#fff; border:1px solid #cbd0d4; margin:0 24px 12px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.plp-message[data-role=user] { background:#dce1e4; margin:0 0 12px 24px; }
.plp-message small { display:block; text-transform:uppercase; letter-spacing:.08em; font-size:10px; margin-bottom:5px; color:#53616b; }
.plp-privacy { margin:0; padding:10px 20px; font-size:11px; line-height:1.5; color:#45545e; border-top:1px solid #ccd1d5; }
.plp-compose { padding:12px 20px; display:flex; gap:8px; }
.plp-compose input { width:100%; min-width:0; background:white; border:1px solid #89949d; padding:10px; }
.plp-assistant .plp-primary { background:#111417; color:#f8f9f9; }
.plp-voice { padding:0 20px 12px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.plp-voice button { font-size:12px; }
.plp-state { font-size:11px; flex-basis:100%; color:#45545e; }
.plp-review { overflow:auto; padding:18px 20px; overscroll-behavior:contain; }
.plp-review p { margin:0 0 16px; }
.plp-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px 12px; }
.plp-fields label { display:flex; flex-direction:column; gap:5px; font-size:12px; font-weight:500; min-width:0; }
.plp-fields input,.plp-fields select,.plp-fields textarea { width:100%; min-width:0; padding:10px 8px; background:#fff; border:1px solid #89949d; min-height:44px; font-size:14px; }
.plp-wide { grid-column:1/-1; }
.plp-estimate { padding:12px 0; border-bottom:1px solid #aeb6bc; font-size:17px; font-weight:600; }
.plp-availability { padding:12px 0; font-size:12px; }
.plp-slots { display:flex; flex-wrap:wrap; gap:6px; max-height:145px; overflow:auto; margin:8px 0; }
.plp-assistant .plp-check { display:flex; align-items:flex-start; gap:10px; font-size:12px; margin:14px 0; }
.plp-check input { width:20px; height:20px; flex:none; }
.plp-send { width:100%; }
.plp-alert { margin:0; padding:10px 20px; font-size:12px; background:#fff6dd; border-top:1px solid #c9ad65; overflow-wrap:anywhere; flex-shrink:0; max-height:24dvh; overflow-y:auto; }
.plp-footer { padding:8px 20px 12px; font-size:11px; display:flex; justify-content:center; gap:12px; }
.plp-footer a { text-decoration:underline; }
.plp-demo { background:#fff6dd; padding:8px 20px; font-size:11px; }
@media(max-width:520px) { .plp-assistant { inset:8px; width:auto; max-width:none; height:calc(100dvh - 16px); max-height:none; } .plp-launcher { right:12px; bottom:12px; } .plp-head { padding:14px 16px; } .plp-fields input,.plp-fields select,.plp-fields textarea,.plp-compose input { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .plp-assistant * { scroll-behavior:auto; } }

/* Six round petals from the supplied reference; no rotation or morphing. */
.plp-ai-mark { position:relative; display:block; width:26px; height:26px; flex:none; color:inherit; }
.plp-ai-mark svg { position:relative; display:block; width:100%; height:100%; overflow:visible; transform-origin:center; animation:plp-flower-rotate 40s linear infinite, plp-flower-breathe 6s ease-in-out infinite; }
@keyframes plp-flower-rotate { to { transform:rotate(360deg); } }
@keyframes plp-flower-breathe { 0%,100% { scale:1; } 50% { scale:1.03; } }
.plp-launcher { left:auto; right:24px; bottom:24px; width:62px; height:62px; padding:12px; border-radius:50%; display:grid; place-items:center; border:0; background:transparent; color:#fff; box-shadow:none; mix-blend-mode:difference; transition:opacity .2s; }
.plp-launcher[hidden] { display:none; }
.plp-launcher span { margin:0; color:inherit; }
.plp-launcher:hover { background:transparent; opacity:.85; }
.plp-launcher .plp-ai-mark { width:29px; height:29px; }
.home-redesign .hero-chat-invitation [data-ai-icon] { margin:0; color:#454545; }
.home-redesign .hero-chat-invitation .plp-ai-mark { margin:0; color:inherit; }
.plp-assistant { left:auto; right:24px; }
@media(max-width:520px) { .plp-launcher { left:auto; right:16px; bottom:16px; } .plp-assistant { inset:8px; } }
@media(prefers-reduced-motion:reduce) { .plp-ai-mark svg { animation:none; } }

.english-date-wrap { position:relative; display:block; width:100%; }
.english-date-source { position:absolute!important; width:1px!important; height:1px!important; min-height:0!important; opacity:0; pointer-events:none; padding:0!important; }
.english-date-trigger { width:100%; min-height:44px; padding:10px 0; border:0; border-bottom:1px solid #b8b8b8; background:transparent; color:#171717; font:16px 'DM Sans',Arial,sans-serif; text-align:left; cursor:pointer; }
.plp-assistant .english-date-trigger { padding:10px 8px; border:1px solid #89949d; background:#fff; }
.english-calendar { position:fixed; inset:0; margin:auto; width:340px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); overflow:auto; padding:20px; border:1px solid #ccc; border-radius:14px; background:#fff; color:#171717; box-shadow:0 12px 50px #0003; font:14px 'DM Sans',Arial,sans-serif; letter-spacing:normal; text-transform:none; }
.english-calendar::backdrop { background:#0004; }
.english-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:16px; }
.english-calendar button { min-height:38px; border:0; border-radius:6px; padding:6px; background:transparent; color:#171717; font:inherit; cursor:pointer; }
.english-calendar-head button { width:38px; font-size:24px; }
.english-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.english-calendar-grid span { text-align:center; font-size:11px; color:#666; padding:6px 0; }
.english-calendar button:hover { background:#eee; }
.english-calendar button[aria-pressed="true"] { background:#171717; color:#fff; }
.english-calendar button:disabled { color:#aaa; cursor:default; background:none; }
.english-calendar button:focus-visible { outline:2px solid #555; outline-offset:1px; }
.english-calendar-footer { display:flex; justify-content:space-between; border-top:1px solid #eee; margin-top:12px; padding-top:10px; }

/* Editorial assistant panel and gently accented heart pulse. */
.plp-assistant .plp-voice-start { display:flex; flex:0 0 100%; flex-direction:column; align-items:center; gap:6px; padding:6px 10px; border:0; background:transparent; border-radius:12px; }
.plp-voice { justify-content:center; padding:14px 20px 8px; flex-shrink:0; }
.plp-voice .plp-state { text-align:center; }
.plp-assistant .plp-voice-start[hidden] { display:none; }
.plp-voice-heart { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:#f4f4f4; transition:background .2s; }
.plp-voice-heart .plp-ai-mark { width:44px; height:44px; }
.plp-voice-start:hover .plp-voice-heart { background:#e5e5e5; }
.plp-assistant .plp-voice-start:disabled { opacity:1; }
.plp-voice-start.is-live .plp-voice-heart { background:#fff0f4; color:#a84969; animation:plp-live-glow 2.4s ease-in-out infinite; }
@keyframes plp-live-glow { 0%,100% { box-shadow:0 0 0 4px #f3b6cb22,0 0 14px #efacc233; } 50% { box-shadow:0 0 0 9px #f3b6cb33,0 0 25px #efacc277; } }
@media(prefers-reduced-motion:reduce) { .plp-voice-start.is-live .plp-voice-heart { animation:none; box-shadow:0 0 0 5px #f3b6cb33; } }
.plp-ai-mark svg { animation:plp-heart-accent 3.5s ease-in-out infinite; }
@keyframes plp-heart-accent { 0%,100% { scale:1; } 45% { scale:1.09; } 65% { scale:1.02; } }
.plp-assistant { --paper:#fff; border:1px solid #ddd; border-radius:20px; background:#fff; color:#171717; }
.plp-head { background:#fff; color:#171717; border-bottom:1px solid #eee; padding:22px; }
.plp-head h2 { font:400 32px/1.1 'Libre Caslon Display',Georgia,serif; text-transform:none; letter-spacing:-.025em; }
.plp-head p { color:#666; }
.plp-head button { color:#171717; border:0; border-radius:50%; }
.plp-tabs { border-color:#ddd; }
.plp-tabs button { text-transform:none; letter-spacing:0; font-size:13px; }
.plp-tabs button.needs-review { background:#fff0f4; color:#873a54; font-weight:600; box-shadow:inset 0 -3px #dfa0b6; }
.plp-assistant .plp-review-prompt { flex-shrink:0; margin:0 20px 10px; padding:13px 16px; border:1px solid #efc4d2; border-radius:12px; background:#fff0f4; color:#79364c; font-size:13px; line-height:1.5; text-align:left; }
.plp-assistant .plp-review-prompt[hidden] { display:none; }
.plp-assistant .plp-review-prompt:hover { background:#fce4ec; }
.plp-message { border:0; background:#f4f4f4; border-radius:14px 14px 14px 3px; }
.plp-message[data-role=user] { background:#eaeaea; border-radius:14px 14px 3px 14px; }
.plp-message small { color:#606060; }
.plp-assistant :is(input,select,textarea),.plp-assistant .english-date-trigger { border-color:#bdbdbd; border-radius:9px; }
.plp-assistant button { border-radius:999px; }
.plp-assistant .plp-primary { background:#171717; color:#fff; }
.plp-privacy,.plp-state { color:#666; }
.plp-demo { background:#f5f5f5; color:#555; }
@media(prefers-reduced-motion:reduce) { .plp-ai-mark svg { animation:none; } }
