/* ============================================================
   Premura portal design system (po-*), lifted from the Claude Design
   portal export. Shared across all portal pages.
   ============================================================ */
*{ box-sizing:border-box; }
    html,body{ margin:0; }
    body{ background:#F4EFE6; }
    .po-h{ font-family:'Playfair Display',serif; font-weight:400; }
    .po-body{ font-family:'Jost',sans-serif; font-weight:300; }
    .po-eyebrow{ font-family:'Jost',sans-serif; font-weight:500; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:#B0824F; }
    .po-fieldlabel{ font-family:'Jost',sans-serif; font-weight:500; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#6B7880; margin-bottom:9px; }
    /* section header */
    .po-sechead{ margin-bottom:34px; }
    .po-titlerow{ display:flex; align-items:center; gap:28px; margin-top:14px; }
    .po-rule{ flex:1; height:1px; background:rgba(26,45,58,.14); }
    .po-rail{ display:grid; grid-template-columns:240px 1fr; gap:46px; align-items:start; padding:40px 0; border-top:1px solid rgba(26,45,58,.12); }
    /* nav */
    .po-headlink{ font-family:'Jost',sans-serif; font-weight:400; font-size:14px; letter-spacing:.04em; text-decoration:none; color:rgba(244,239,230,.82); transition:color .3s; }
    .po-headlink:hover{ color:#D4A574; }
    .po-tab{ display:flex; align-items:center; gap:14px; padding:15px 28px; border-left:3px solid transparent; text-decoration:none; color:rgba(244,239,230,.78); font-family:'Jost',sans-serif; font-weight:400; font-size:15px; letter-spacing:.02em; cursor:pointer; transition:background .25s, color .25s; }
    .po-tab:hover{ background:rgba(255,255,255,.05); color:#FBF8F2; }
    .po-tab:hover svg{ stroke:#FBF8F2; }
    .po-tab[data-active="1"]{ background:rgba(212,165,116,.13); border-left-color:#D4A574; color:#E7C9A3; }
    .po-tab svg{ stroke:rgba(244,239,230,.55); flex-shrink:0; transition:stroke .25s; }
    .po-tab[data-active="1"] svg{ stroke:#D4A574; }
    /* cards + inputs */
    .po-card{ background:#fff; border:1px solid rgba(26,45,58,.07); border-radius:18px; box-shadow:0 1px 0 rgba(26,45,58,.03), 0 16px 44px -20px rgba(26,45,58,.16); }
    .po-navy{ background:#1A2D3A; color:#FBF8F2; border-radius:18px; }
    .po-input{ width:100%; background:#fff; border:1px solid rgba(26,45,58,.18); border-radius:9px; padding:14px 16px; font-family:'Jost',sans-serif; font-weight:300; font-size:15px; color:#1A2D3A; outline:none; transition:border-color .25s; }
    .po-input::placeholder{ color:#9aa6ae; }
    .po-input:focus{ border-color:#B0824F; }
    select.po-input{ cursor:pointer; }
    textarea.po-input{ resize:vertical; min-height:90px; }
    /* chips */
    .po-chip{ font-family:'Jost',sans-serif; font-weight:400; font-size:14px; color:#1A2D3A; background:#fff; border:1px solid rgba(26,45,58,.22); border-radius:40px; padding:10px 20px; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
    .po-chip:hover{ border-color:#B0824F; }
    .po-chip[data-sel="1"]{ background:#1A2D3A; color:#FBF8F2; border-color:#1A2D3A; }
    /* segmented */
    .po-seg{ display:inline-flex; border:1px solid rgba(26,45,58,.22); border-radius:40px; overflow:hidden; }
    .po-segbtn{ font-family:'Jost',sans-serif; font-weight:400; font-size:14px; padding:9px 22px; background:transparent; border:none; color:#52616a; cursor:pointer; transition:background .2s, color .2s; }
    .po-segbtn[data-active="1"]{ background:#1A2D3A; color:#FBF8F2; }
    /* buttons */
    .po-btn{ font-family:'Jost',sans-serif; font-weight:500; font-size:14px; letter-spacing:.02em; color:#1A2D3A; background:#D4A574; border:none; border-radius:10px; padding:16px 30px; cursor:pointer; transition:filter .25s, transform .25s; text-decoration:none; display:inline-block; }
    .po-btn:hover{ filter:brightness(1.05); transform:translateY(-1px); }
    .po-btn-ghost{ font-family:'Jost',sans-serif; font-weight:500; font-size:14px; color:#1A2D3A; background:#fff; border:1px solid #D4A574; border-radius:10px; padding:16px 30px; cursor:pointer; transition:background .25s; }
    .po-btn-ghost:hover{ background:#FBF4E9; }
    .po-ask{ font-family:'Jost',sans-serif; font-weight:500; font-size:13px; letter-spacing:.02em; color:#1A2D3A; background:transparent; border:1px solid #D4A574; border-radius:40px; padding:10px 22px; cursor:pointer; transition:background .25s, color .25s; text-decoration:none; display:inline-block; }
    .po-ask:hover{ background:#D4A574; }
    .po-paytab{ font-family:'Jost',sans-serif; font-weight:500; font-size:15px; padding:13px 26px; border-radius:40px; cursor:pointer; border:none; background:transparent; color:#52616a; transition:background .25s, color .25s; }
    .po-paytab[data-active="1"]{ background:#1A2D3A; color:#FBF8F2; }
    /* itinerary rows */
    .po-row{ display:flex; gap:26px; padding:17px 4px; border-bottom:1px dotted rgba(26,45,58,.18); }
    .po-row:last-child{ border-bottom:none; }
    .po-time{ font-family:'Jost',sans-serif; font-weight:500; font-size:14px; color:#B0824F; min-width:90px; flex-shrink:0; padding-top:1px; }
    .po-rowbody{ font-family:'Jost',sans-serif; font-weight:300; font-size:16px; line-height:1.6; color:#42525b; }
    .po-rowbody strong{ font-weight:500; color:#1A2D3A; }
    .po-badge{ font-family:'Jost',sans-serif; font-weight:500; font-size:12px; letter-spacing:.04em; padding:6px 14px; border-radius:40px; display:inline-block; }
    /* day folder tabs */
    .po-daytab{ font-family:'Playfair Display',serif; font-weight:400; font-size:15px; color:#B0824F; background:#EAE1D1; border:1px solid rgba(26,45,58,.12); border-bottom:none; border-radius:11px 11px 0 0; padding:10px 18px; cursor:pointer; position:relative; top:1px; white-space:nowrap; transition:background .2s, color .2s; }
    .po-daytab:hover{ background:#F3ECDF; }
    .po-daytab[data-active="1"]{ background:#fff; color:#1A2D3A; border-color:rgba(26,45,58,.08); z-index:3; }
    /* chat */
    .po-bubble{ font-family:'Jost',sans-serif; font-weight:300; font-size:16px; line-height:1.6; padding:18px 22px; border-radius:16px; max-width:78%; margin-bottom:14px; }
    .po-bubble-them{ background:#FBF8F2; border:1px solid rgba(26,45,58,.1); color:#1A2D3A; border-bottom-left-radius:4px; }
    .po-bubble-me{ background:#1A2D3A; color:#FBF8F2; margin-left:auto; border-bottom-right-radius:4px; }
    .po-wishbar{ background:#FBF4E9; border-left:3px solid #D4A574; border-radius:10px; padding:22px 26px; }
    .po-map{ height:460px; width:100%; border-radius:16px; overflow:hidden; border:1px solid rgba(26,45,58,.1); }
    .po-imgtile{ position:relative; border-radius:16px; overflow:hidden; background:#0E1A22; box-shadow:0 16px 44px -22px rgba(26,45,58,.45); transition:transform .5s ease; }
    .po-imgtile:hover{ transform:translateY(-5px); }
    .po-imgtile:hover .po-dimg{ transform:scale(1.06); }
    .po-dimg{ transition:transform 1.4s ease; }
    .leaflet-container{ background:#cfe3e6; font-family:'Jost',sans-serif; }
    .po-tick{ display:flex; align-items:center; gap:11px; font-family:'Jost',sans-serif; font-weight:300; font-size:15px; color:rgba(244,239,230,.9); }
    .po-stage{ position:relative; padding-left:34px; }
    .po-stage::before{ content:''; position:absolute; left:5px; top:6px; width:11px; height:11px; border-radius:50%; background:#D4A574; }
    .po-stage::after{ content:''; position:absolute; left:10px; top:20px; bottom:-30px; width:1px; background:rgba(26,45,58,.16); }
    .po-stage:last-child::after{ display:none; }
    @keyframes po-slidein{ from{ transform:translateX(40px); opacity:0; } to{ transform:translateX(0); opacity:1; } }
    @keyframes po-pop{ from{ transform:translate(-50%,-50%) scale(.95); opacity:0; } to{ transform:translate(-50%,-50%) scale(1); opacity:1; } }
    @media (max-width: 860px){
      .po-header{ padding:16px 20px !important; }
      .po-bodywrap{ flex-direction:column !important; }
      .po-aside{ width:100% !important; border-right:none !important; border-bottom:1px solid rgba(212,165,116,.16) !important; padding:16px 0 14px !important; }
      .po-aside nav{ flex-direction:row !important; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:0 8px; }
      .po-aside .po-tab{ border-left:none !important; border-bottom:3px solid transparent; white-space:nowrap; padding:11px 15px !important; font-size:14px !important; }
      .po-aside .po-tab[data-active="1"]{ border-bottom-color:#D4A574; }
      .po-main{ padding:26px 18px 64px !important; }
      [data-welcomehero]{ flex-direction:column !important; min-height:0 !important; }
      [data-welcomehero] > div:first-child{ padding:32px 24px !important; }
      [data-welcomehero] > div:last-child{ width:100% !important; height:200px !important; order:-1; }
      [data-welcomehero] h1{ font-size:42px !important; }
      .po-titlerow h2{ font-size:28px !important; }
      [style*="grid-template-columns"]{ grid-template-columns:1fr !important; }
      .po-rail{ grid-template-columns:1fr !important; gap:14px !important; padding:28px 0 !important; }
      .po-exprow{ grid-template-columns:1fr !important; }
      .po-exprow > div:first-child{ min-height:220px !important; }
      .po-map{ height:300px !important; }
      [data-modal] [style*="width:440px"]{ width:100% !important; }
    }
    .po-playbtn{ width:74px; height:74px; border-radius:50%; background:rgba(255,255,255,.94); color:#1A2D3A; display:flex; align-items:center; justify-content:center; font-size:24px; padding-left:5px; box-shadow:0 12px 34px rgba(0,0,0,.34); transition:transform .3s ease; }
    .po-videobox:hover .po-playbtn{ transform:scale(1.08); }
    .po-videobox{ cursor:pointer; }

/* ===== Accessibility additions (July 2026 audit) ===== */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid #B0824F; outline-offset:2px; border-radius:3px;
}
.po-navy a:focus-visible, .po-navy button:focus-visible,
.po-header a:focus-visible, .po-header button:focus-visible, .po-side a:focus-visible{
  outline-color:#D4A574;
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* ===== Motion polish (July 2026) ===== */
@media (prefers-reduced-motion: no-preference){
  .po-panelin{ animation:po-panelin .32s ease; }
  @keyframes po-panelin{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
}
.po-btn:active{ transform:translateY(0) scale(.98); }
