/* Concierge Desk modal — fully scoped under .cd-* */
.cd-overlay{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(3,7,20,.78);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.cd-overlay.cd-open{display:flex}
.cd-dialog{position:relative;box-sizing:border-box;width:100%;max-width:640px;max-height:calc(100dvh - 32px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:36px 22px 22px;border-radius:26px;color:#e9dcc0;
 background:radial-gradient(120% 60% at 50% 0%,#15254a 0%,#0b1633 45%,#070f26 100%);
 border:1.5px solid rgba(214,184,120,.55);box-shadow:inset 0 0 0 4px #0a1430,inset 0 0 0 5px rgba(214,184,120,.25),0 24px 60px rgba(0,0,0,.6);
 font-family:"PT Serif","Libre Baskerville",Georgia,serif;text-align:center}
.cd-dialog *,.cd-dialog *::before,.cd-dialog *::after{box-sizing:border-box}
.cd-close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(214,184,120,.5);background:rgba(10,20,48,.8);color:#e3c886;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.cd-close:hover{background:#15254a}
.cd-dialog :focus-visible{outline:2px solid #f0d58f;outline-offset:3px}
.cd-title{margin:0;font-family:"Cinzel","Cormorant SC",Georgia,serif;font-weight:500;font-variant:small-caps;letter-spacing:.06em;font-size:clamp(1.7rem,6.4vw,2.3rem);line-height:1.1;color:#e3c886}
.cd-sub{margin:8px 0 0;font-size:clamp(.92rem,3.6vw,1.05rem);color:#e9dcc0}
.cd-rule{height:1px;width:62%;margin:16px auto 18px;background:linear-gradient(90deg,transparent,rgba(214,184,120,.75),transparent);position:relative}
.cd-rule::after{content:"";position:absolute;left:50%;top:-2px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#f4e2ae;box-shadow:0 0 8px 2px rgba(244,226,174,.55)}
.cd-welcome{margin:0 auto 22px;max-width:30em;font-size:clamp(.98rem,3.9vw,1.1rem);line-height:1.38;color:#eadfc6}
.cd-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 20px;padding:0;list-style:none}
.cd-tile{aspect-ratio:.8;border-radius:18px;padding:6px;border:1.5px solid rgba(214,184,120,.6);background:linear-gradient(180deg,#132349,#0a1431);box-shadow:0 0 14px rgba(214,184,120,.18)}
.cd-tile-in{height:100%;border-radius:13px;border:1px solid rgba(214,184,120,.4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:8px 2px}
.cd-tile svg{width:44px;height:44px;color:#d7b879}
.cd-tile span{font-size:clamp(1rem,4.4vw,1.25rem);line-height:1.2;color:#eadfc6}
.cd-how{margin:0 0 18px}
.cd-how-btn{width:100%;min-height:52px;border-radius:999px;border:1.5px solid rgba(214,184,120,.6);background:rgba(10,20,48,.6);color:#eadfc6;font:inherit;font-size:clamp(1.02rem,4.2vw,1.18rem);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}
.cd-how-btn svg{transition:transform .2s ease}
.cd-how-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.cd-how-btn[aria-expanded="true"]{background:linear-gradient(100deg,#b99248,#f3dd9e,#b99248);color:#1d1609;border-color:#e3c886}
.cd-how-panel{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .35s ease,opacity .25s ease,visibility .35s;font-size:.98rem;line-height:1.45;color:#eadfc6;text-align:left}
.cd-how-panel.cd-expanded{grid-template-rows:1fr;opacity:1;visibility:visible}
.cd-how-clip{min-height:0;overflow:hidden}
.cd-how-frame{position:relative;margin:14px 0 2px;padding:18px 18px 18px 34px;border:1.5px solid #cfae6c;border-radius:10px;background:linear-gradient(145deg,#101e38,#091329);box-shadow:inset 0 0 0 3px rgba(214,184,120,.08),0 0 12px rgba(214,184,120,.1)}
.cd-how-frame::before{content:"";position:absolute;top:-7px;left:calc(50% - 6px);width:12px;height:12px;transform:rotate(45deg);background:#101e38;border-top:1.5px solid #cfae6c;border-left:1.5px solid #cfae6c}
.cd-how-frame ol{margin:0;padding:0;list-style:decimal}
.cd-how-frame li{padding-left:3px}
.cd-how-frame li+li{margin-top:10px}
.cd-how-frame strong{font-weight:700;color:#f0ddb0}
.cd-plan{border:1.5px solid rgba(214,184,120,.55);border-radius:20px;padding:10px 20px 18px;text-align:left;background:rgba(8,16,40,.55)}
.cd-row{display:flex;align-items:flex-start;gap:14px;padding:12px 0;font-size:clamp(1.08rem,4.6vw,1.3rem);color:#eadfc6;cursor:pointer}
.cd-row + .cd-row{border-top:1px solid rgba(214,184,120,.25)}
.cd-row input{position:absolute;opacity:0;width:1px;height:1px}
.cd-radio,.cd-check{flex:0 0 auto;width:28px;height:28px;margin-top:1px;border:2px solid #cfae6c;display:flex;align-items:center;justify-content:center}
.cd-radio{border-radius:50%}
.cd-radio::after{content:"";width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fbecc0,#c9a45c)}
.cd-check{border-radius:6px}
.cd-check svg{opacity:0}
.cd-row input:checked + .cd-check svg{opacity:1}
.cd-row input:focus-visible + .cd-check,.cd-row input:focus-visible + .cd-radio{outline:2px solid #f0d58f;outline-offset:3px}
.cd-cta{display:block;width:100%;min-height:56px;margin-top:10px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-size:clamp(1.15rem,4.8vw,1.35rem);color:#1d1609;background:linear-gradient(180deg,#f3dd9e 0%,#d8b56a 55%,#b99248 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 18px rgba(0,0,0,.4)}
.cd-status{margin:12px 0 0;min-height:1.2em;font-size:.92rem;text-align:center;color:#d7c79f}
@media (min-width:768px){.cd-dialog{padding:44px 44px 32px}.cd-tiles{gap:20px}.cd-tile svg{width:52px;height:52px}}
.cd-dialog .cd-sub{font-family:Georgia,serif;font-size:clamp(.85rem,3.5vw,1.05rem);letter-spacing:0;line-height:1.35;color:#e9dcc0}
.cd-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cd-tile,.cd-tile-in{min-width:0}
.cd-tile span{font-size:clamp(.85rem,3.9vw,1.25rem)}
.cd-status:empty{display:none}
.cd-cta{border-radius:18px;position:relative}
@media(max-width:480px){.cd-overlay{padding:10px}.cd-dialog{padding:52px 14px 18px;max-height:calc(100dvh - 20px)}.cd-title{font-size:clamp(1.3rem,5.8vw,1.7rem)}.cd-welcome{font-size:clamp(.98rem,4.15vw,1.1rem);line-height:1.25}.cd-tile{aspect-ratio:.8}.cd-plan{padding:10px 16px 16px}}
@media (prefers-reduced-motion:reduce){.cd-how-btn svg,.cd-how-panel{transition:none}}
/* Desktop/tablet sizing only; phone rules above remain unchanged. */
@media (min-width:768px){
 .cd-dialog{max-width:840px;max-height:90dvh;padding:12px 30px}
 .cd-title{font-size:1.8rem;line-height:1.1}
 .cd-dialog .cd-sub{margin-top:4px}
 .cd-rule{margin:5px auto}
 .cd-welcome{max-width:none;font-size:1rem;line-height:1.2;margin-bottom:10px}
 .cd-tiles{gap:16px;margin-bottom:10px}
 .cd-tile{aspect-ratio:auto;height:60px;padding:4px;border-radius:14px}
 .cd-tile-in{flex-direction:row;gap:14px;padding:6px}
 .cd-tile svg{width:36px;height:36px}
 .cd-tile span{font-size:1.05rem;line-height:1.1}
 .cd-how{margin-bottom:10px}
 .cd-how-btn{min-height:38px;font-size:1.05rem}
 .cd-how-panel{font-size:.95rem;line-height:1.2}
 .cd-how-frame{margin-top:10px;padding:10px 14px 10px 32px}
 .cd-how-frame li+li{margin-top:5px}
 .cd-plan{padding:6px 18px 10px}
 .cd-row{padding:6px 0;font-size:1.05rem;line-height:1.2;align-items:center}
 .cd-radio,.cd-check{width:22px;height:22px;margin-top:0}
 .cd-cta{min-height:40px;margin-top:6px;font-size:1.2rem}
 .cd-status{margin-top:6px;font-size:.85rem;line-height:1.2}
}
@media (min-width:768px) and (max-height:700px){
 .cd-overlay{padding:8px}
 .cd-dialog{max-height:90dvh;padding:10px 30px}
 .cd-title{font-size:1.6rem}
 .cd-rule{margin:5px auto}
 .cd-welcome{font-size:.95rem;line-height:1.15;margin-bottom:6px}
 .cd-tiles{margin-bottom:6px}
 .cd-tile{height:48px}
 .cd-tile-in{padding:2px 6px}
 .cd-tile svg{width:28px;height:28px}
 .cd-how{margin-bottom:6px}
 .cd-how-panel{font-size:.92rem;line-height:1.15}
 .cd-how-frame{padding-top:8px;padding-bottom:8px}
 .cd-how-frame li+li{margin-top:4px}
}
@media (min-width:768px) and (max-height:640px){
 .cd-dialog{padding:5px 28px}
 .cd-title{font-size:1.4rem}
 .cd-dialog .cd-sub{font-size:.95rem;margin-top:2px;line-height:1.15}
 .cd-rule{margin:4px auto}
 .cd-welcome{font-size:.9rem;line-height:1.1;margin-bottom:4px}
 .cd-tiles{margin-bottom:2px}
 .cd-tile{height:44px;padding:3px}
 .cd-tile span{font-size:.95rem;line-height:1}
 .cd-how-btn{min-height:32px;font-size:1rem}
 .cd-how{margin-bottom:4px}
 .cd-how-panel{font-size:.875rem;line-height:1.1}
 .cd-how-frame{margin-top:8px;padding:6px 12px 6px 30px}
 .cd-how-frame li+li{margin-top:3px}
 .cd-plan{padding:4px 16px 6px}
 .cd-row{padding:4px 0;font-size:.95rem;line-height:1.1}
 .cd-cta{min-height:34px;margin-top:4px;font-size:1.1rem}
}
/* The expanded explanation fills the app viewport, without browser fullscreen permissions. */
.cd-overlay.cd-fullscreen{padding:0}
.cd-fullscreen .cd-dialog{
 width:100%;max-width:none;height:100dvh;max-height:100dvh;
 border-radius:0;
 padding-left:max(18px,calc((100vw - 780px)/2));
 padding-right:max(18px,calc((100vw - 780px)/2));
}
/* Three-second breaths, separated by ten seconds of quiet.
   Closing the modal removes the animations; reopening starts the greeting again. */
.cd-open .cd-tile{
 animation:cd-badge-welcome 3s ease-in-out 1,
           cd-badge-idle 39s ease-in-out 13s infinite;
}
.cd-open .cd-tile:nth-child(2){animation-delay:0s,26s}
.cd-open .cd-tile:nth-child(3){animation-delay:0s,39s}
@keyframes cd-badge-welcome{
 0%,100%{border-color:rgba(214,184,120,.6);box-shadow:0 0 14px rgba(214,184,120,.18)}
 50%{border-color:rgba(224,193,113,.74);box-shadow:0 0 20px rgba(212,175,55,.25)}
}
@keyframes cd-badge-idle{
 0%,7.692308%,100%{border-color:rgba(214,184,120,.6);box-shadow:0 0 14px rgba(214,184,120,.18)}
 3.846154%{border-color:rgba(224,193,113,.72);box-shadow:0 0 20px rgba(212,175,55,.23)}
}
@media(prefers-reduced-motion:reduce){
 .cd-open .cd-tile{animation:none}
}
