/*
 * Tourism Cozumel site polish — 2026-07-13
 * Shared article, archive, navigation, footer and form presentation.
 */
:root {
  --tc-ink: #143c43;
  --tc-reef: #0e8c8f;
  --tc-reef-dark: #0c5f68;
  --tc-seafoam: #dff5f1;
  --tc-sand: #fbf4e8;
  --tc-coral: #e36f4f;
  --tc-card: #ffffff;
  --tc-shadow: 0 20px 60px rgba(20, 60, 67, .11);
}

.grecaptcha-badge { visibility: hidden !important; }

header[role="banner"],
body > header {
  box-shadow: 0 1px 0 rgba(20, 60, 67, .08);
}
#wpconvert-flat-nav > a,
.wpconvert-flat-nav-items > a {
  white-space: nowrap;
  font-size: .92rem;
  font-weight: 650;
  color: var(--tc-ink);
  position: relative;
  padding: .45rem 0;
}
#wpconvert-flat-nav > a::after,
.wpconvert-flat-nav-items > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--tc-reef);
  transition: right .2s ease;
}
#wpconvert-flat-nav > a:hover::after,
.wpconvert-flat-nav-items > a:hover::after,
#wpconvert-flat-nav > a[aria-current="page"]::after,
.wpconvert-flat-nav-items > a[aria-current="page"]::after { right: 0; }

.tc-article-hero,
.tc-archive-hero,
.tc-page-hero {
  background:
    radial-gradient(circle at 85% 0%, rgba(14, 140, 143, .19), transparent 34%),
    linear-gradient(135deg, var(--tc-sand), #fff 68%);
  border-bottom: 1px solid rgba(20, 60, 67, .09);
}
.tc-article-hero__inner,
.tc-archive-hero__inner,
.tc-page-hero__inner {
  width: min(100% - 2rem, 1120px);
  margin-inline: auto;
  padding: clamp(3.5rem, 7vw, 6.75rem) 0 clamp(3rem, 6vw, 5.5rem);
}
.tc-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--tc-reef-dark);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .74rem;
  font-weight: 800;
}
.tc-kicker::before {
  content: "";
  width: 1.8rem;
  height: 2px;
  background: currentColor;
}
.tc-article-hero h1,
.tc-archive-hero h1,
.tc-page-hero h1 {
  max-width: 930px;
  margin: .8rem 0 1rem;
  color: var(--tc-ink);
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(2.45rem, 6vw, 5rem);
  line-height: 1.01;
  letter-spacing: -.035em;
}
.tc-archive-hero h1 { font-size: clamp(2.35rem, 5vw, 4.25rem); }
.tc-hero-deck {
  max-width: 760px;
  color: rgba(20, 60, 67, .76);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
  line-height: 1.65;
}
.tc-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem 1.1rem;
  margin-top: 1.4rem;
  color: rgba(20, 60, 67, .68);
  font-size: .9rem;
}
.tc-category-pill {
  display: inline-flex;
  padding: .4rem .75rem;
  border-radius: 999px;
  color: var(--tc-reef-dark);
  background: rgba(14, 140, 143, .11);
  font-weight: 750;
}

.tc-article-shell {
  width: min(100% - 2rem, 1200px);
  margin: clamp(2.5rem, 6vw, 5rem) auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.tc-article-main {
  min-width: 0;
  background: var(--tc-card);
  border: 1px solid rgba(20, 60, 67, .08);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--tc-shadow);
}
.tc-article-media {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--tc-seafoam);
}
.tc-article-media img { width: 100%; height: 100%; object-fit: cover; }
.tc-article-body { padding: clamp(1.35rem, 4vw, 3.5rem); }
.tc-article-body.prose {
  color: #284e54;
  font-size: 1.075rem;
  line-height: 1.82;
}
.tc-article-body.prose > :first-child { margin-top: 0; }
.tc-article-body.prose h2,
.tc-article-body.prose h3 {
  color: var(--tc-ink);
  font-family: Fraunces, Georgia, serif;
  letter-spacing: -.02em;
}
.tc-article-body.prose h2 { font-size: clamp(1.75rem, 3vw, 2.35rem); margin-top: 2.2em; }
.tc-article-body.prose h3 { font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
.tc-article-body.prose a { color: var(--tc-reef-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tc-article-body.prose li { list-style: disc; margin-left: 1rem; }
.tc-article-body.prose ol li { list-style: decimal; }
.tc-article-body.prose blockquote {
  margin: 2rem 0;
  padding: 1.4rem 1.6rem;
  border: 0;
  border-left: 4px solid var(--tc-coral);
  border-radius: 0 16px 16px 0;
  background: var(--tc-sand);
  color: var(--tc-ink);
}
.tc-article-body.prose img { border-radius: 18px; box-shadow: 0 12px 35px rgba(20,60,67,.12); }
.tc-share-row,
.tc-post-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  padding: 1.25rem clamp(1.35rem, 4vw, 3.5rem);
  border-top: 1px solid rgba(20,60,67,.09);
}
.tc-share-row a,
.tc-share-row button,
.tc-post-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .62rem .9rem;
  border: 1px solid rgba(20,60,67,.14);
  border-radius: 999px;
  background: #fff;
  color: var(--tc-ink);
  font-size: .86rem;
  font-weight: 700;
}
.tc-share-row a:hover,
.tc-share-row button:hover,
.tc-post-nav a:hover { color: #fff; background: var(--tc-reef-dark); border-color: var(--tc-reef-dark); text-decoration: none; }
.tc-post-nav { justify-content: space-between; }

.tc-sidebar {
  display: grid;
  gap: 1.15rem;
  position: sticky;
  top: 6.75rem;
}
.tc-sidebar-card {
  padding: 1.35rem;
  border: 1px solid rgba(20,60,67,.09);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(20,60,67,.08);
}
.tc-sidebar-card--reef {
  color: #fff;
  background:
    radial-gradient(circle at 100% 0%, rgba(255,255,255,.16), transparent 36%),
    linear-gradient(145deg, var(--tc-reef), var(--tc-reef-dark));
}
.tc-sidebar-card h2,
.tc-sidebar-card h3 { margin: .3rem 0 .7rem; font-family: Fraunces, Georgia, serif; color: inherit; }
.tc-sidebar-card p { margin: 0; line-height: 1.6; font-size: .93rem; opacity: .86; }
.tc-sidebar-actions { display: grid; gap: .7rem; margin-top: 1.1rem; }
.tc-sidebar-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .82rem 1rem;
  border-radius: 13px;
  background: #fff;
  color: var(--tc-ink);
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(7,52,58,.15);
}
.tc-sidebar-button:hover { color: var(--tc-reef-dark); transform: translateY(-1px); }
.tc-sidebar-list { display: grid; gap: .65rem; margin-top: .9rem; }
.tc-sidebar-list a { color: var(--tc-reef-dark); font-size: .92rem; font-weight: 700; }
.tc-sidebar-list a:hover { text-decoration: underline; text-underline-offset: 3px; }

.tc-related {
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  background: linear-gradient(180deg, rgba(223,245,241,.62), rgba(251,244,232,.55));
}
.tc-section-inner { width: min(100% - 2rem, 1200px); margin-inline: auto; }
.tc-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.tc-section-heading h2 { margin: .3rem 0 0; color: var(--tc-ink); font-family: Fraunces, Georgia, serif; font-size: clamp(2rem, 4vw, 3rem); }
.tc-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.35rem; }
.tc-guide-card {
  min-width: 0;
  overflow: hidden;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(20,60,67,.09);
  transition: transform .2s ease, box-shadow .2s ease;
}
.tc-guide-card:hover { transform: translateY(-4px); box-shadow: 0 22px 55px rgba(20,60,67,.15); }
.tc-guide-card__media { display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--tc-seafoam); }
.tc-guide-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.tc-guide-card:hover .tc-guide-card__media img { transform:scale(1.045); }
.tc-guide-card__body { padding: 1.2rem; }
.tc-guide-card__body h3 { margin: .45rem 0 .6rem; color: var(--tc-ink); font-family: Fraunces, Georgia, serif; font-size: 1.28rem; line-height: 1.25; }
.tc-guide-card__body p { color: rgba(20,60,67,.7); font-size:.92rem; line-height:1.55; }
.tc-guide-card__meta { margin-top:.8rem; color:var(--tc-reef-dark); font-size:.78rem; font-weight:750; }

.tc-newsletter-wrap { width:min(100% - 2rem,1200px); margin:clamp(3rem,7vw,6rem) auto; }
.tc-newsletter {
  position:relative;
  overflow:hidden;
  padding:clamp(2rem,6vw,4.5rem);
  border-radius:30px;
  color:#fff;
  background:
    radial-gradient(circle at 12% 0%,rgba(255,255,255,.2),transparent 28%),
    radial-gradient(circle at 95% 100%,rgba(227,111,79,.32),transparent 32%),
    linear-gradient(135deg,#0e8c8f,#0b5964);
  box-shadow:0 28px 70px rgba(12,95,104,.25);
}
.tc-newsletter__content { max-width:720px; margin:auto; text-align:center; }
.tc-newsletter h2,
.tc-newsletter h3 { margin:.35rem 0 .75rem; color:#fff; font-family:Fraunces,Georgia,serif; font-size:clamp(2rem,5vw,3.35rem); }
.tc-newsletter p { margin:0 auto; max-width:600px; color:rgba(255,255,255,.84); line-height:1.65; }
.tc-newsletter-form,
form[data-wpconvert-form="needs-wiring"].tc-newsletter-form {
  display:flex;
  align-items:center;
  gap:.65rem;
  width:min(100%,560px);
  margin:1.5rem auto 0;
  padding:.42rem;
  border-radius:999px;
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 30px rgba(7,52,58,.2);
}
.tc-newsletter-form input[type="email"] {
  min-width:0;
  flex:1;
  border:0;
  outline:0;
  background:transparent;
  color:var(--tc-ink);
  padding:.8rem 1rem;
}
.tc-newsletter-form button[type="submit"] {
  flex:0 0 auto;
  border:0;
  border-radius:999px;
  background:var(--tc-coral);
  color:#fff;
  padding:.82rem 1.15rem;
  font-weight:800;
}
.tc-newsletter-form button[disabled] { opacity:.65; cursor:wait; }
.tc-form-status { min-height:1.4em; margin-top:.8rem !important; font-size:.86rem; }
.tc-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.tc-archive-main { width:min(100% - 2rem,1200px); margin:clamp(2.5rem,6vw,5rem) auto; }
.tc-archive-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.tc-archive-grid .tc-guide-card__media { aspect-ratio:16/9; }
.tc-empty-state { padding:3rem; border-radius:22px; text-align:center; background:var(--tc-sand); color:var(--tc-ink); }
.tc-category-strip { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:2rem; }
.tc-category-strip a { padding:.55rem .8rem; border-radius:999px; background:#fff; border:1px solid rgba(20,60,67,.12); color:var(--tc-ink); font-size:.82rem; font-weight:700; }
.tc-category-strip a:hover,
.tc-category-strip a[aria-current="page"] { color:#fff; background:var(--tc-reef-dark); border-color:var(--tc-reef-dark); }

.tc-footer-motto {
  margin:.8rem 0 .9rem;
  color:#fff;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.45rem,3vw,2.25rem);
  line-height:1.15;
  letter-spacing:-.02em;
}
.tc-recaptcha-notice { max-width:760px; line-height:1.5; }
.tc-recaptcha-notice a { text-decoration:underline; text-underline-offset:2px; }
.tc-footer-bottom { align-items:flex-start; }

body.page-template-default .content-area > article,
body.page-template-default .site-main > article { width:min(100% - 2rem,960px); margin:3rem auto; }
body.page-template-default .prose { color:#284e54; }
body.error404 .site-main { display:grid; place-items:center; min-height:55vh; padding:2rem; text-align:center; }

@media (max-width:1023px) {
  .tc-article-shell { grid-template-columns:1fr; }
  .tc-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tc-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .tc-article-hero__inner,.tc-archive-hero__inner,.tc-page-hero__inner,.tc-article-shell,.tc-section-inner,.tc-newsletter-wrap,.tc-archive-main { width:min(100% - 1.25rem,1200px); }
  .tc-article-shell { margin-top:1.5rem; }
  .tc-article-main { border-radius:20px; }
  .tc-sidebar { grid-template-columns:1fr; }
  .tc-card-grid,.tc-archive-grid { grid-template-columns:1fr; }
  .tc-section-heading { align-items:start; flex-direction:column; }
  .tc-newsletter { border-radius:22px; padding:2rem 1.1rem; }
  .tc-newsletter-form,form[data-wpconvert-form="needs-wiring"].tc-newsletter-form { flex-direction:column; border-radius:18px; padding:.65rem; }
  .tc-newsletter-form input[type="email"],.tc-newsletter-form button[type="submit"] { width:100%; }
  .tc-post-nav { align-items:stretch; flex-direction:column; }
  .tc-post-nav a { width:100%; }
}

/* Category directory */
body.page-id-14 .site-main > article,
body.page-id-14 .content-area > article {
  width:100%;
  max-width:none;
  margin:0;
}
body.page-id-14 .tc-category-hub-shell {
  width:min(100% - 2rem,1200px);
  max-width:1200px !important;
  margin:0 auto;
  padding:clamp(4rem,7vw,6.5rem) 0 clamp(4.5rem,8vw,7rem) !important;
}
body.page-id-14 .tc-category-hub-shell > h1 {
  margin:0;
  color:#123c43;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(3.2rem,7vw,6.35rem);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.045em;
}
body.page-id-14 .tc-category-hub-shell > h1::before {
  content:"PLAN THE ISLAND";
  display:block;
  margin-bottom:1.25rem;
  color:#148b91;
  font-family:Inter,system-ui,sans-serif;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.18em;
}
body.page-id-14 .tc-category-hub-shell > .prose { max-width:none; }
.tc-category-hub__intro {
  max-width:780px;
  margin:1.4rem 0 3rem;
  color:#4b686d;
  font-size:clamp(1.08rem,2vw,1.35rem);
  line-height:1.7;
}
.tc-category-hub__intro p { margin:0; }
.tc-category-hub__grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.tc-category-hub__card {
  position:relative;
  display:flex;
  min-height:265px;
  overflow:hidden;
  flex-direction:column;
  padding:1.65rem;
  border:1px solid rgba(18,60,67,.1);
  border-radius:24px;
  background:#fff;
  box-shadow:0 13px 40px rgba(18,60,67,.07);
  color:#123c43;
  text-decoration:none;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.tc-category-hub__card::after {
  content:"";
  position:absolute;
  width:160px;
  height:160px;
  right:-75px;
  top:-75px;
  border-radius:999px;
  background:rgba(31,167,171,.08);
  transition:transform .25s ease;
}
.tc-category-hub__card:hover {
  border-color:rgba(20,139,145,.32);
  box-shadow:0 20px 54px rgba(18,60,67,.12);
  transform:translateY(-4px);
}
.tc-category-hub__card:hover::after { transform:scale(1.18); }
.tc-category-hub__eyebrow {
  position:relative;
  z-index:1;
  margin-bottom:1rem;
  color:#148b91;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.tc-category-hub__title {
  position:relative;
  z-index:1;
  max-width:90%;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.45rem,2.4vw,2rem);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.025em;
}
.tc-category-hub__description {
  position:relative;
  z-index:1;
  margin:.75rem 0 1.4rem;
  color:#5b7377;
  font-size:.95rem;
  line-height:1.55;
}
.tc-category-hub__link {
  position:relative;
  z-index:1;
  margin-top:auto;
  color:#0e7d83;
  font-size:.88rem;
  font-weight:800;
}
.tc-category-hub__card--tours {
  border-color:transparent;
  background:linear-gradient(145deg,#0f9498,#123f47);
  color:#fff;
}
.tc-category-hub__card--tours::after { background:rgba(255,255,255,.1); }
.tc-category-hub__card--tours .tc-category-hub__eyebrow,
.tc-category-hub__card--tours .tc-category-hub__description,
.tc-category-hub__card--tours .tc-category-hub__link { color:rgba(255,255,255,.88); }
.tc-category-hub__card--where-to-stay { background:#f6eee2; }
.tc-category-hub__card--cruise-ferry { background:#e9f6f6; }
.tc-category-hub__cta {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);
  gap:2rem;
  align-items:center;
  margin-top:clamp(3rem,6vw,5rem);
  padding:clamp(2rem,5vw,4rem);
  border-radius:30px;
  background:linear-gradient(135deg,#0d9195 0%,#113e47 100%);
  box-shadow:0 24px 70px rgba(18,60,67,.18);
  color:#fff;
}
.tc-category-hub__cta h2 {
  max-width:650px;
  margin:.55rem 0 .7rem;
  color:#fff;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1.04;
  letter-spacing:-.035em;
}
.tc-category-hub__cta p { max-width:660px; margin:0; color:rgba(255,255,255,.8); line-height:1.65; }
.tc-category-hub__actions { display:grid; gap:.75rem; }
.tc-category-hub__actions a {
  display:flex;
  justify-content:center;
  padding:.9rem 1.1rem;
  border:1px solid rgba(255,255,255,.4);
  border-radius:999px;
  color:#fff;
  font-weight:800;
  text-align:center;
  text-decoration:none;
}
.tc-category-hub__actions a:first-child { border-color:#fff; background:#fff; color:#123c43; }
.tc-category-hub__actions a:hover { transform:translateY(-2px); }
body.page-id-14 .tc-category-hub__card {
  color:#123c43 !important;
  text-decoration:none !important;
}
body.page-id-14 .tc-category-hub__card * { text-decoration:none !important; }
body.page-id-14 .tc-category-hub__card--tours { color:#fff !important; }

@media (max-width:1023px) {
  .tc-category-hub__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tc-category-hub__cta { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  body.page-id-14 .tc-category-hub-shell { width:min(100% - 1.25rem,1200px); }
  .tc-category-hub__grid { grid-template-columns:1fr; }
  .tc-category-hub__card { min-height:225px; }
  .tc-category-hub__cta { padding:2rem 1.25rem; border-radius:22px; }
}
