@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600;700&family=DM+Sans:wght@300;400;500&display=swap');

:root {
  --ca-bg:       #020d1a;
  --ca-bg2:      #0a1c30;
  --ca-gold:     #c9a84c;
  --ca-gold-dim: rgba(201,168,76,0.15);
  --ca-blue:     #8ab4c9;
  --ca-blue-dim: rgba(138,180,201,0.08);
  --ca-text:     #e8dcc8;
  --ca-muted:    #6a9ab0;
  --ca-border:   rgba(201,168,76,0.18);
  --ca-radius:   14px;
}

#cruise-aggregator-root * { box-sizing: border-box; }
#cruise-aggregator-root {
  font-family: 'DM Sans', sans-serif;
  color: var(--ca-text);
  background: radial-gradient(ellipse at 20% 0%, rgba(0,40,80,.8) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 100%, rgba(0,30,60,.6) 0%, transparent 60%),
              var(--ca-bg);
  border-radius: var(--ca-radius);
  overflow: hidden;
  min-height: 400px;
}

.ca-hero { text-align:center; padding:56px 24px 40px; border-bottom:1px solid var(--ca-border); position:relative; }
.ca-hero::after { content:''; position:absolute; bottom:0;left:0;right:0;height:2px; background:linear-gradient(90deg,transparent,var(--ca-gold),transparent); }
.ca-eyebrow { font-size:.72rem; letter-spacing:.3em; color:var(--ca-gold); font-family:monospace; text-transform:uppercase; margin-bottom:14px; }
.ca-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(2rem,5vw,3.8rem); font-weight:700; line-height:1.1; margin:0 0 14px; background:linear-gradient(135deg,#e8dcc8 30%,#c9a84c 70%,#e8dcc8 100%); background-size:200% 100%; -webkit-background-clip:text; -webkit-text-fill-color:transparent; animation:ca-shimmer 4s linear infinite; }
.ca-subtitle { color:var(--ca-muted); font-size:.95rem; line-height:1.7; max-width:480px; margin:0 auto; }

.ca-panel { max-width:1100px; margin:0 auto; padding:36px 24px; }
.ca-search-box { background:rgba(10,28,48,.6); border:1px solid var(--ca-border); border-radius:var(--ca-radius); padding:24px; backdrop-filter:blur(12px); margin-bottom:36px; }
.ca-row { display:flex; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.ca-input { flex:1; min-width:200px; background:rgba(2,13,26,.8); border:1px solid rgba(201,168,76,.25); border-radius:10px; color:var(--ca-text); padding:12px 18px; font-size:.95rem; font-family:'DM Sans',sans-serif; outline:none; transition:border-color .2s; }
.ca-input:focus { border-color:rgba(201,168,76,.6); }
.ca-input::placeholder { color:#3a5a6a; }
.ca-btn { background:linear-gradient(135deg,var(--ca-gold),#a07c2a); border:none; color:#020d1a; padding:12px 28px; border-radius:10px; cursor:pointer; font-size:.9rem; font-weight:600; letter-spacing:.05em; box-shadow:0 4px 20px rgba(201,168,76,.3); transition:all .2s; white-space:nowrap; }
.ca-btn:hover { box-shadow:0 6px 28px rgba(201,168,76,.45); transform:translateY(-1px); }
.ca-btn:disabled { background:var(--ca-gold-dim); color:var(--ca-gold); cursor:not-allowed; box-shadow:none; transform:none; }
.ca-select-wrap { position:relative; }
.ca-select { background:rgba(10,28,48,.9); border:1px solid rgba(201,168,76,.2); color:var(--ca-blue); padding:10px 32px 10px 14px; border-radius:8px; font-size:.85rem; font-family:monospace; cursor:pointer; appearance:none; -webkit-appearance:none; outline:none; }
.ca-select option { background:#0a1c30; }
.ca-select-arrow { position:absolute; right:10px; top:50%; transform:translateY(-50%); color:var(--ca-gold); font-size:.6rem; pointer-events:none; }
.ca-clear-btn { background:none; border:1px solid rgba(255,255,255,.1); color:#5a7a8a; padding:10px 16px; border-radius:8px; cursor:pointer; font-size:.8rem; font-family:monospace; transition:all .2s; }
.ca-clear-btn:hover { border-color:rgba(255,255,255,.25); color:#8ab4c9; }
.ca-quick { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:28px; }
.ca-chip { background:rgba(201,168,76,.06); border:1px solid rgba(201,168,76,.15); color:#7a6a4a; padding:8px 16px; border-radius:20px; cursor:pointer; font-size:.8rem; font-family:monospace; transition:all .2s; }
.ca-chip:hover { background:rgba(201,168,76,.14); color:var(--ca-gold); }

.ca-empty { text-align:center; padding:70px 20px; }
.ca-empty-icon { font-size:3.5rem; opacity:.3; margin-bottom:18px; }
.ca-empty-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:1.4rem; color:#3a5a6a; margin-bottom:8px; }
.ca-empty-sub { color:#2a3a44; font-size:.85rem; }

.ca-loading { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:70px 20px; gap:22px; }
.ca-dots { display:flex; gap:8px; }
.ca-dot { width:10px; height:10px; border-radius:50%; background:var(--ca-gold); animation:ca-wave 1.2s ease-in-out infinite; }
.ca-dot:nth-child(1){animation-delay:0s} .ca-dot:nth-child(2){animation-delay:.15s} .ca-dot:nth-child(3){animation-delay:.3s} .ca-dot:nth-child(4){animation-delay:.45s} .ca-dot:nth-child(5){animation-delay:.6s}
.ca-loading-text { color:var(--ca-blue); font-family:'Cormorant Garamond',Georgia,serif; font-size:1.1rem; letter-spacing:.08em; }
.ca-error { background:rgba(180,60,60,.1); border:1px solid rgba(180,60,60,.3); border-radius:12px; padding:20px; text-align:center; color:#c97a7a; margin-bottom:24px; }

.ca-results-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; flex-wrap:wrap; gap:12px; }
.ca-results-label { color:var(--ca-gold); font-family:monospace; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:4px; }
.ca-results-title { font-family:'Cormorant Garamond',Georgia,serif; font-size:1.6rem; color:var(--ca-text); margin:0; }
.ca-results-count { color:#3a5a6a; font-family:monospace; font-size:.85rem; }

.ca-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; }

.ca-card { background:linear-gradient(135deg,rgba(10,28,48,.95),rgba(6,20,36,.98)); border:1px solid var(--ca-border); border-radius:16px; overflow:hidden; opacity:0; transition:transform .3s,box-shadow .3s,border-color .3s; animation:ca-fade-up .5s ease forwards; }
.ca-card:hover { transform:translateY(-4px); box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 1px rgba(201,168,76,.35); border-color:rgba(201,168,76,.35); }
.ca-card-bar { height:3px; }
.ca-card-body { padding:22px; }
.ca-card-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; gap:12px; }
.ca-badge { display:inline-block; padding:2px 10px; border-radius:20px; font-size:.7rem; font-family:monospace; letter-spacing:.1em; text-transform:uppercase; margin-right:6px; margin-bottom:6px; }
.ca-card-name { font-family:'Cormorant Garamond',Georgia,serif; font-size:1.25rem; font-weight:600; color:var(--ca-text); margin:6px 0 2px; line-height:1.3; }
.ca-card-line { color:var(--ca-blue); font-size:.83rem; font-family:monospace; margin:0; }
.ca-stats { display:flex; gap:18px; flex-wrap:wrap; margin:14px 0; }
.ca-stat { display:flex; align-items:center; gap:6px; }
.ca-stat-icon { color:var(--ca-gold); font-size:.9rem; }
.ca-stat-text { color:var(--ca-blue); font-size:.8rem; }
.ca-ports { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.ca-port { background:var(--ca-blue-dim); color:#6a9ab0; border:1px solid rgba(138,180,201,.15); padding:3px 10px; border-radius:4px; font-size:.74rem; }
.ca-desc { color:#7a9aaa; font-size:.84rem; line-height:1.6; margin:0; }
.ca-read-more { background:none; border:none; color:var(--ca-gold); cursor:pointer; font-size:.78rem; padding:4px 0; font-family:monospace; letter-spacing:.05em; }
.ca-highlights { margin-top:14px; padding-top:14px; border-top:1px solid rgba(201,168,76,.1); }
.ca-highlights-label { color:var(--ca-gold); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-family:monospace; margin-bottom:8px; }
.ca-highlight-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.ca-highlight-item { color:var(--ca-blue); font-size:.82rem; display:flex; gap:8px; align-items:flex-start; }
.ca-highlight-dot { color:var(--ca-gold); margin-top:1px; flex-shrink:0; }
.ca-book-btn { display:inline-block; margin-top:16px; background:linear-gradient(135deg,rgba(201,168,76,.15),rgba(201,168,76,.05)); border:1px solid rgba(201,168,76,.4); color:var(--ca-gold); padding:8px 20px; border-radius:8px; font-size:.8rem; text-decoration:none; font-family:monospace; letter-spacing:.1em; transition:background .2s; }
.ca-book-btn:hover { background:rgba(201,168,76,.25); }

.ca-footer { border-top:1px solid rgba(201,168,76,.08); padding:20px 24px; text-align:center; margin-top:20px; }
.ca-footer-text { color:#1e3448; font-size:.72rem; font-family:monospace; letter-spacing:.04em; }

@keyframes ca-shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes ca-wave { 0%,100%{transform:translateY(0);opacity:.4} 50%{transform:translateY(-14px);opacity:1} }
@keyframes ca-fade-up { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
#cruise-aggregator-root ::-webkit-scrollbar{width:6px} #cruise-aggregator-root ::-webkit-scrollbar-track{background:var(--ca-bg)} #cruise-aggregator-root ::-webkit-scrollbar-thumb{background:rgba(201,168,76,.3);border-radius:3px}
