
:root{
  --teal:#0e7c86;
  --teal-dark:#0a5c64;
  --foam:#e8f4f6;
  --sand:#f6efe4;
  --ink:#14343a;
  --muted:#3d5c62;
  --sun:#f3d15a;
  --white:#fff;
  --shadow:0 18px 40px rgba(10,50,56,.12);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Source Sans 3",system-ui,sans-serif;
  color:var(--ink);
  background:linear-gradient(#c9e7ec 0, var(--foam) 28vh, #f3f8f9 100%);
  min-height:100vh;
}
.skyline{
  height:8px;
  background:linear-gradient(90deg,#f3d15a,#e07a3d,#0e7c86,#1a6b8a);
}
a{color:var(--teal-dark)}
.wrap{width:min(1180px, calc(100% - 2rem)); margin:0 auto}
.site-header{padding:1.25rem 0 0}
.header-grid{
  display:grid;
  gap:1.25rem;
  grid-template-columns:1fr;
  align-items:center;
}
.brand{text-align:center}
.logo-link img{max-width:260px;height:auto}
.tag{margin:.35rem 0 0;color:var(--muted);font-size:.95rem}
.cam-picker{
  background:var(--white);
  border:1px solid #cfe3e6;
  border-radius:16px;
  padding:1rem;
  box-shadow:var(--shadow);
}
.cam-picker label{
  display:block; text-align:center; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:#c0392b; font-size:.78rem; margin-bottom:.5rem;
}
.picker-row{display:flex; gap:.6rem}
select,button,input[type=email]{
  font:inherit; border-radius:10px; border:1px solid #9ec4c9; padding:.65rem .8rem;
}
select{flex:1; background:var(--foam); color:var(--teal-dark)}
button, input[type=submit]{
  background:var(--teal); color:#fff; border:0; font-weight:700; cursor:pointer; padding:.65rem 1rem;
}
button:hover, input[type=submit]:hover{background:var(--teal-dark)}
.partners{text-align:center}
.partners p{margin:0 0 .4rem; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal)}
.partners img{max-width:210px; height:auto; display:block; margin:.35rem auto}
.hero{
  margin:1.5rem auto 0;
  background:linear-gradient(180deg, var(--teal), var(--teal-dark));
  color:#fff; border-radius:22px; overflow:hidden; box-shadow:var(--shadow);
}
.hero-inner{display:grid; gap:0}
.hero figure{margin:0}
.hero img{width:100%; height:auto; display:block; aspect-ratio:16/10; object-fit:cover}
.hero-copy{padding:1.2rem 1.3rem 1.5rem}
.hero-copy p.kicker{margin:0; letter-spacing:.12em; text-transform:uppercase; font-size:.75rem; opacity:.85}
.hero-copy h1{font-family:Fraunces,Georgia,serif; font-size:clamp(1.4rem,3vw,2rem); margin:.2rem 0 .5rem; font-weight:700}
.hero-copy p{margin:0; line-height:1.55}
.hero-h3{
  margin:.85rem 0 0;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.05rem,2.2vw,1.35rem);
  font-weight:700;
  color:#f3d15a;
}
.cam-grid{
  display:grid; gap:1.15rem;
  grid-template-columns:1fr;
  margin:1.6rem 0 2rem;
}
.cam-card{
  background:#fff; border-radius:16px; overflow:hidden; text-decoration:none; color:inherit;
  box-shadow:var(--shadow); border:1px solid #d7e8eb; display:flex; flex-direction:column;
}
.cam-card img{width:100%; aspect-ratio:16/9; object-fit:cover; background:#123}
.cam-card span{display:block; padding:.7rem .75rem .9rem; font-weight:600; font-size:.92rem; color:var(--teal-dark); line-height:1.25}
.cam-page{padding:0 0 2.5rem}
.player-shell{
  background:var(--teal); color:#fff; padding:1.5rem 0 2rem;
}
.player-shell h1{
  font-family:Fraunces,Georgia,serif; text-align:center; font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.4rem); margin:0 1rem .9rem; color:#f7ef7a;
}
.player-frame{width:min(1100px, calc(100% - 1.5rem)); margin:0 auto; background:#041416; border-radius:12px; overflow:hidden; box-shadow:var(--shadow)}
.player-frame img, .player-frame iframe{width:100%; display:block; aspect-ratio:16/9; border:0; background:#000; object-fit:contain}
.yt-wrap{position:relative;width:100%;padding-top:56.25%;background:#000}
.yt-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;aspect-ratio:auto}
.placeholder{
  aspect-ratio:16/9; display:grid; place-items:center; text-align:center; padding:2rem; color:#d7ecee;
}
.placeholder strong{display:block; color:var(--sun); margin-bottom:.35rem}
.note{text-align:center; color:rgba(255,255,255,.65); font-size:.8rem; margin:.55rem 0 0}
.copy{width:min(720px, calc(100% - 2rem)); margin:1.4rem auto 0; line-height:1.7; font-size:1.125rem}
.site-footer{padding:1rem 0 2.5rem}
.site-footer .wrap{
  background:#fff; border:4px solid var(--teal); border-radius:20px; padding:1.1rem 1rem; text-align:center;
}
.site-footer p{margin:.35rem 0; color:var(--teal-dark)}
.fine{font-size:.85rem; color:var(--muted)}
.legal h1{font-family:Fraunces,Georgia,serif}
.legal{width:min(760px, calc(100% - 2rem)); margin:1.5rem auto 2rem; background:#fff; padding:1.4rem 1.3rem; border-radius:16px; box-shadow:var(--shadow)}
form.report label{display:block; margin:.7rem 0 .25rem; font-weight:600}
form.report select, form.report input{width:100%}
.ext-note{background:#fff6d6; border:1px solid #e6d089; padding:.8rem 1rem; border-radius:10px; margin:1rem 0}
@media (min-width:700px){
  .cam-grid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:800px){
  .header-grid{grid-template-columns:1fr 1.1fr 1fr}
  .hero-inner{grid-template-columns:1.15fr .85fr}
  .cam-grid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1100px){
  .cam-grid{grid-template-columns:repeat(3,1fr)}
}

.site-h1{
  margin:.15rem 0 0;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(2rem,5vw,3.1rem);
  line-height:1;
  color:#0a5c64;
}
.socials{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.45rem .7rem;
  margin-top:.65rem;
}
.socials a{
  font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:#0a5c64; text-decoration:none;
}
.socials a:hover{color:#c0392b}
.island-pulse{
  margin:1.25rem 0 0;
  background:#fff;
  border:1px solid #d7e8eb;
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:1rem 1rem 1.1rem;
}
.pulse-label{
  margin:0 0 .75rem;
  text-align:center;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:700;
  color:var(--teal);
}
.pulse-grid{display:grid; gap:.75rem}
.pulse-card{
  display:block; text-decoration:none; color:inherit;
  background:linear-gradient(135deg,#0e7c86,#163c55);
  color:#fff; border-radius:14px; padding:1rem 1.1rem;
}
.pulse-kicker{display:block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; opacity:.8}
.pulse-card strong{display:block; font-size:1.35rem; margin:.2rem 0 .15rem; font-family:Fraunces,Georgia,serif}
.pulse-card em{font-style:normal; font-size:.85rem; color:#f3d15a}
.featured-name{font-family:Fraunces,Georgia,serif; font-size:clamp(1.3rem,3vw,1.9rem); margin:.2rem 0 .5rem}
.home .hero{margin-top:1rem}
@media (min-width:800px){
  .pulse-grid{grid-template-columns:1fr 1fr 1fr}
}

.seo-block{
  background:#fff; border-radius:20px; padding:1.4rem 1.35rem 1.6rem;
  margin:1.25rem 0 0; box-shadow:var(--shadow); border:1px solid #d7e8eb;
}
.seo-block h1{
  font-family:Fraunces,Georgia,serif; font-size:clamp(1.6rem,3.2vw,2.3rem);
  margin:0 0 .7rem; color:#0a5c64; line-height:1.15;
}
.seo-block p{margin:0 0 .85rem; line-height:1.65; color:#1d3c41}
.footer-panel{background:#fff; border:4px solid var(--teal); border-radius:20px; padding:1.3rem 1.2rem 1rem}
.footer-grid{display:grid; gap:1.1rem; text-align:left; margin-bottom:.8rem}
.footer-grid h2{margin:0 0 .4rem; font-size:.95rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal)}
.footer-grid p, .footer-grid li{font-size:.92rem; color:#24545a; line-height:1.45}
.footer-grid ul{list-style:none; margin:0; padding:0}
.footer-grid li{margin:.28rem 0}
@media (min-width:800px){
  .footer-grid{grid-template-columns:1.3fr .9fr 1fr}
}
.cam-card img{aspect-ratio:16/10}
.spotlights{
  display:grid;
  grid-template-columns:1fr;
  gap:1.35rem;
  margin:0 0 2.2rem;
}
.spotlight{
  display:grid;
  grid-template-columns:1fr;
  background:#06262b;
  color:#fff;
  border-radius:24px;
  overflow:hidden;
  text-decoration:none;
  box-shadow:0 24px 50px rgba(6,30,36,.28);
  min-height:340px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.spotlight:hover{
  transform:scale(1.025);
  box-shadow:0 30px 60px rgba(6,30,36,.38);
}
.spotlight-media{position:relative; min-height:220px}
.spotlight-media img{width:100%; height:100%; min-height:220px; object-fit:cover; display:block}
.ad-flag{
  position:absolute; left:14px; top:14px;
  background:#f3d15a; color:#14343a;
  font-size:.68rem; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; padding:.35rem .55rem; border-radius:999px;
}
.spotlight-copy{padding:1.35rem 1.4rem 1.5rem}
.spotlight-copy .kicker{
  margin:0; letter-spacing:.14em; text-transform:uppercase;
  font-size:.72rem; font-weight:700; color:#f3d15a;
}
.spotlight-copy h2{
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.55rem,3.2vw,2.15rem);
  margin:.3rem 0 .55rem; color:#fff; line-height:1.15;
}
.spotlight-copy p{margin:0 0 .95rem; line-height:1.6; color:#d7ecee}
.spotlight-cta{
  display:inline-block;
  background:#f3d15a; color:#14343a;
  font-weight:800; padding:.7rem 1rem; border-radius:999px;
}
.spotlight.duval{background:linear-gradient(180deg,#0b3a48,#071c24)}
.spotlight.pikw{background:linear-gradient(180deg,#0e7c86,#0a3d44)}
@media (min-width:860px){
  .spotlight{grid-template-columns:1.05fr .95fr; min-height:360px}
  .spotlight-media{min-height:100%}
  .spotlight-media img{min-height:360px}
}


.cam-card{
  transition: transform .28s ease, box-shadow .28s ease;
  transform-origin: center center;
}
.cam-grid{ padding: .35rem; }
.cam-card:hover,
.cam-card:focus-visible{
  transform: scale(1.06);
  box-shadow: 0 22px 40px rgba(10,50,56,.22);
  z-index: 2;
}

.logo-link{display:inline-block;line-height:0}
.logo-link img{display:block;max-width:min(260px,100%);height:auto;visibility:visible;opacity:1}

.duval-ph{display:block}
.duval-ph img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}

.skip-link{
  position:absolute;left:-999px;top:0;background:#14343a;color:#fff;padding:.6rem 1rem;z-index:999;
}
.skip-link:focus{left:8px;top:8px}
.copy{font-size:1.125rem;line-height:1.7}
.copy p{margin:0 0 1rem}
.page-h2{
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.25rem,2.4vw,1.7rem);
  margin:0 0 .7rem;
  color:#0a5c64;
}
.footer-grid p, .footer-grid li, .site-footer .fine{font-size:1.05rem;line-height:1.55}
.email-vis{display:block;font-size:.92rem;font-weight:600;color:#0a5c64}
textarea{width:100%;font:inherit;border-radius:10px;border:1px solid #9ec4c9;padding:.65rem .8rem}
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:3px solid #f3d15a; outline-offset:3px;
}

.hero-h3 a{color:#f3d15a;text-decoration:none}
.hero-h3 a:hover{text-decoration:underline}
.client-logo{margin:1.2rem 0 0;text-align:center}
.client-logo img{max-width:220px;height:auto}
