/* Core Cruises Newsletter Module v1.0
   Scope: .ccn only. No dependency on Bootstrap or external JS libraries.
*/
.ccn{
  --ccn-navy:#0A1A2F;
  --ccn-blue:#003366;
  --ccn-blue-2:#0B4F7A;
  --ccn-gold:#D4AF37;
  --ccn-gold-hover:#E5C665;
  --ccn-bg:#F4F7F9;
  --ccn-white:#FFFFFF;
  --ccn-text:#0A1A2F;
  --ccn-muted:#5D7182;
  --ccn-line:#D9E3EA;
  --ccn-success:#176B4D;
  --ccn-danger:#9B2430;
  box-sizing:border-box;
  width:100%;
  padding:28px 20px;
  color:var(--ccn-text);
  font-family:Figtree,"Segoe UI",system-ui,-apple-system,sans-serif;
}
.ccn *, .ccn *::before, .ccn *::after{box-sizing:border-box}
.ccn [hidden]{display:none!important}
.ccn-shell{
  max-width:1120px;
  margin:0 auto;
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);
  gap:34px;
  align-items:center;
  padding:38px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:
    radial-gradient(circle at 92% 0%,rgba(212,175,55,.16),transparent 34%),
    radial-gradient(circle at 0% 100%,rgba(11,79,122,.42),transparent 42%),
    linear-gradient(135deg,var(--ccn-navy) 0%,var(--ccn-blue) 58%,var(--ccn-blue-2) 100%);
  box-shadow:0 18px 46px rgba(10,26,47,.16);
}
.ccn-copy{position:relative;z-index:1;padding:6px 4px}
.ccn-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 12px;
  color:var(--ccn-gold);
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.ccn-kicker::before{
  content:"";
  width:28px;height:2px;border-radius:99px;background:currentColor;
}
.ccn-title{
  margin:0;
  max-width:650px;
  color:#fff;
  font-size:clamp(30px,4.2vw,48px);
  font-weight:760;
  line-height:1.06;
  letter-spacing:-.035em;
}
.ccn-title em{color:var(--ccn-gold);font-style:normal}
.ccn-lead{
  max-width:620px;
  margin:18px 0 0;
  color:#D7E4ED;
  font-size:16px;
  line-height:1.65;
}
.ccn-benefits{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:24px 0 0;
  padding:0;
  list-style:none;
}
.ccn-benefits li{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:#EEF5FA;
  background:rgba(255,255,255,.075);
  font-size:12px;
  font-weight:650;
}
.ccn-benefits svg{width:14px;height:14px;color:var(--ccn-gold)}
.ccn-card{
  position:relative;
  z-index:1;
  padding:24px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:18px;
  background:rgba(255,255,255,.97);
  box-shadow:0 16px 36px rgba(3,23,41,.22);
}
.ccn-card-head{margin-bottom:18px}
.ccn-card-head strong{
  display:block;
  color:var(--ccn-navy);
  font-size:19px;
  font-weight:800;
  letter-spacing:-.02em;
}
.ccn-card-head span{
  display:block;
  margin-top:5px;
  color:var(--ccn-muted);
  font-size:13px;
  line-height:1.45;
}
.ccn-form{display:grid;gap:13px}
.ccn-label{
  display:block;
  margin:0 0 7px;
  color:var(--ccn-navy);
  font-size:12px;
  font-weight:750;
}
.ccn-input-wrap{position:relative}
.ccn-input-icon{
  position:absolute;
  left:14px;
  top:50%;
  width:18px;height:18px;
  transform:translateY(-50%);
  color:#71879A;
  pointer-events:none;
}
.ccn-input{
  width:100%;
  min-height:52px;
  padding:12px 14px 12px 43px;
  border:1px solid var(--ccn-line);
  border-radius:11px;
  outline:0;
  background:#fff;
  color:var(--ccn-navy);
  font:inherit;
  font-size:15px;
  transition:border-color .16s,box-shadow .16s;
}
.ccn-input::placeholder{color:#8294A4}
.ccn-input:focus{
  border-color:var(--ccn-gold);
  box-shadow:0 0 0 3px rgba(212,175,55,.18);
}
.ccn-consent{
  display:grid;
  grid-template-columns:19px minmax(0,1fr);
  gap:9px;
  align-items:start;
  color:#526879;
  font-size:12px;
  line-height:1.48;
}
.ccn-consent input{
  width:18px;height:18px;
  margin:1px 0 0;
  accent-color:var(--ccn-blue);
}
.ccn-consent a{color:var(--ccn-blue);font-weight:700}
.ccn-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  width:100%;
  min-height:52px;
  padding:12px 16px;
  border:1px solid var(--ccn-gold);
  border-radius:11px;
  background:var(--ccn-gold);
  color:var(--ccn-navy);
  cursor:pointer;
  font:inherit;
  font-size:14px;
  font-weight:850;
  box-shadow:0 7px 17px rgba(10,26,47,.12);
  transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;
}
.ccn-submit:hover{
  background:var(--ccn-gold-hover);
  border-color:var(--ccn-gold-hover);
  transform:translateY(-1px);
  box-shadow:0 9px 21px rgba(10,26,47,.16);
}
.ccn-submit:disabled{cursor:wait;opacity:.65;transform:none}
.ccn-submit svg{width:17px;height:17px}
.ccn-fineprint{
  margin:0;
  color:#7A8D9D;
  font-size:10.5px;
  line-height:1.45;
}
.ccn-hp{
  position:absolute!important;
  width:1px!important;height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
  clip-path:inset(50%)!important;
}
.ccn-status{
  padding:12px 13px;
  border-radius:10px;
  font-size:13px;
  font-weight:650;
  line-height:1.45;
}
.ccn-status--error{
  border:1px solid #F1BCC2;
  background:#FFF1F3;
  color:#84242E;
}
.ccn-success{
  display:grid;
  gap:12px;
  justify-items:start;
  padding:4px 0 2px;
}
.ccn-success-icon{
  display:grid;place-items:center;
  width:44px;height:44px;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#218A67,#176B4D);
  box-shadow:0 8px 20px rgba(23,107,77,.18);
}
.ccn-success-icon svg{width:23px;height:23px}
.ccn-success h3{
  margin:0;
  color:var(--ccn-navy);
  font-size:22px;
  line-height:1.2;
}
.ccn-success p{
  margin:0;
  color:var(--ccn-muted);
  font-size:13px;
  line-height:1.55;
}
.ccn-success small{color:#8294A4;font-size:11px;line-height:1.45}
@media(max-width:880px){
  .ccn-shell{grid-template-columns:1fr;padding:30px;gap:26px}
  .ccn-copy{padding-right:0}
}
@media(max-width:560px){
  .ccn{padding:18px 14px}
  .ccn-shell{padding:24px 18px;border-radius:18px}
  .ccn-title{font-size:32px}
  .ccn-card{padding:19px;border-radius:15px}
  .ccn-benefits{gap:6px}
}
@media(prefers-reduced-motion:reduce){
  .ccn *, .ccn *::before, .ccn *::after{scroll-behavior:auto!important;transition:none!important}
}

/* P6.5 feedback uses the shared submit state. */
.ccn-hp{display:none!important}
.ccn-status{scroll-margin-top:100px;border:1px solid #D9E3EA;color:#0A1A2F;background:#F4F7F9}
.ccn-status--error,.ccn .cc-form-status--error{background:#FFF1F3;border-color:#F1BCC2}
.ccn .cc-form-status--success{background:#f3f8f5;border-color:#c2d5cc}
