

/* Linked-do-Books portfolio profile — a source-limited editorial record that
   uses the parent site's navy/bronze system without imitating the service site. */
.books-profile-hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem;
  color: var(--white);
  background: linear-gradient(145deg, var(--navy) 0%, var(--navy-2) 62%, #243856 100%);
}
.books-profile-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -170px;
  top: -180px;
  border: 1px solid rgba(183,136,70,.45);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(183,136,70,.06), 0 0 0 58px rgba(183,136,70,.035);
  pointer-events: none;
}
.books-profile-hero .container { position: relative; z-index: 1; }
.books-back-link {
  display: inline-block;
  margin-bottom: 3.5rem;
  color: #f6c982;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.books-back-link:hover { color: var(--white); }
.books-profile-hero .hero-eyebrow { margin-bottom: .8rem; }
.books-profile-title {
  max-width: 760px;
  margin: 0 0 .9rem;
  color: var(--white);
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: .98;
  letter-spacing: -.055em;
}
.books-profile-lead {
  max-width: 710px;
  color: rgba(255,255,255,.84);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.45;
}
.books-status-card {
  display: grid;
  gap: .25rem;
  max-width: 650px;
  margin-top: 2.5rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(246,201,130,.48);
  border-left: 4px solid var(--accent);
  background: rgba(255,255,255,.07);
}
.books-status-label {
  color: #f6c982;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.books-status-card strong { font-size: 1.1rem; }
.books-status-card p { margin-top: .2rem; color: rgba(255,255,255,.77); font-size: .94rem; }
.books-profile-section { padding: 5.5rem 0; }
.books-profile-section--tinted { background: linear-gradient(180deg, var(--off-white) 0%, #eef1f5 100%); }
.books-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}
.books-profile-copy { max-width: 680px; }
.books-profile-copy .section-title { margin-top: .65rem; }
.books-profile-copy .section-title + p { margin-bottom: 2.6rem; }
.books-profile-copy p,
.books-narrow-content > p { max-width: 70ch; color: var(--charcoal); font-size: 1.04rem; }
.books-fact-rail {
  padding: 1.6rem;
  border: 1px solid var(--border);
  border-top: 4px solid var(--accent);
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(15,27,48,.07);
}
.books-fact-rail h2 { color: var(--navy); font-size: 1.25rem; margin-bottom: 1rem; }
.books-fact-rail dl { display: grid; gap: 1rem; }
.books-fact-rail dl > div { padding-top: 1rem; border-top: 1px solid var(--border); }
.books-fact-rail dl > div:first-child { padding-top: 0; border-top: 0; }
.books-fact-rail dt { color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.books-fact-rail dd { margin-top: .25rem; color: var(--navy); font-weight: 700; overflow-wrap: anywhere; }
.books-fact-rail a { color: var(--navy); text-decoration: underline; text-underline-offset: .15em; }
.books-fact-rail a:hover { color: var(--accent); }
.books-narrow-content { max-width: 850px; }
.books-narrow-content .section-eyebrow { margin-bottom: .7rem; }
.books-narrow-content .section-title { margin-bottom: 1rem; }
.books-evidence-note {
  margin-top: 1.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--accent);
  background: var(--white);
  color: var(--muted) !important;
  font-size: .94rem !important;
}
.books-evidence-note strong { color: var(--navy); }
.books-profile-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  margin-top: 1.5rem;
  padding: .75rem 1rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
}
.books-profile-cta:hover { background: var(--accent); color: var(--white); text-decoration: none; }
.books-main-cta { margin-top: 1.25rem; }
.books-disclosure,
.books-parent-note {
  margin-top: 2.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--accent);
  background: var(--off-white);
  color: var(--muted) !important;
  font-size: .91rem !important;
}
.books-disclosure strong,
.books-parent-note strong { color: var(--navy); }
.books-parent-note { margin-top: 1rem; border-left-color: var(--border); }
@media (max-width: 700px) {
  .books-profile-hero { padding: 3.25rem 0 3.75rem; }
  .books-back-link { margin-bottom: 2.75rem; }
  .books-profile-title { font-size: clamp(3rem, 18vw, 5rem); }
  .books-profile-section { padding: 4rem 0; }
  .books-profile-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .books-fact-rail { padding: 1.3rem; }
}
@media (max-width: 390px) {
  .books-status-card { padding: .95rem; }
  .books-profile-lead { font-size: 1.05rem; }
  .books-profile-cta { width: 100%; justify-content: center; text-align: center; }
}


/* Linkedd LLC — corporate holding-company site */
:root {
  --navy: #0f1b30;
  --navy-2: #16233c;
  --charcoal: #2a2f38;
  --white: #ffffff;
  --off-white: #f6f7f9;
  --muted: #6b7280;
  --border: #e5e7eb;
  --accent: #b78846; /* muted bronze/gold accent, used sparingly */
}

* , *::before, *::after { margin: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  background: var(--white);
  color: var(--charcoal);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
}

a { color: var(--accent); text-decoration: none; transition: color 0.2s ease; }
a:hover { text-decoration: underline; }

a:focus-visible,
button:focus-visible,
.company-card:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

.container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Nav */
.nav {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.5rem;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}

.logo {
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--navy);
  padding: 0.15rem 0;
  line-height: 1;
}
.logo:hover { text-decoration: none; }
.logo-img { height: 44px; width: auto; display: block; }

.nav-links { display: flex; gap: 2rem; }
.nav-links a {
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 500;
  position: relative;
  padding-bottom: 4px;
  transition: color 0.2s ease;
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background: var(--accent);
  transition: width 0.25s ease;
}
.nav-links a:hover { color: var(--navy); text-decoration: none; }
.nav-links a:hover::after { width: 100%; }

/* Fade-in on scroll */
.fade-in {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

.hero-enter {
  opacity: 0;
  transform: translateY(16px);
  animation: heroEnter 0.7s ease forwards;
}
@keyframes heroEnter {
  to { opacity: 1; transform: translateY(0); }
}

/* Hero */
.hero {
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 45%, var(--navy) 100%);
  background-size: 220% 220%;
  animation: heroDrift 18s ease-in-out infinite alternate;
  color: var(--white);
  padding: 8.5rem 1.5rem 7.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
@keyframes heroDrift {
  0%   { background-position: 0% 30%; }
  50%  { background-position: 100% 70%; }
  100% { background-position: 40% 100%; }
}
.hero::before {
  content: "";
  position: absolute;
  top: -120px;
  right: -120px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(183,136,70,0.16) 0%, rgba(183,136,70,0) 70%);
  pointer-events: none;
  animation: heroFloat 12s ease-in-out infinite alternate;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.055) 1px, transparent 1.5px);
  background-size: 26px 26px;
  pointer-events: none;
  opacity: 0.6;
}
@keyframes heroFloat {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-30px, 30px) scale(1.12); }
}
.hero > * { position: relative; z-index: 1; }
.hero-eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 1.25rem;
}
.hero-title {
  font-size: clamp(2.3rem, 5vw, 3.6rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 1.1rem;
}
.hero-subtitle {
  max-width: 640px;
  margin: 0 auto;
  font-size: 1.15rem;
  color: rgba(255,255,255,0.78);
}

.hero-video-wrap {
  position: relative;
  max-width: 720px;
  margin: 2.75rem auto 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.06);
  background: rgba(0,0,0,0.2);
  aspect-ratio: 16 / 9;
}
.hero-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2.5rem;
}
.video-gallery-item {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: rgba(0,0,0,0.15);
  box-shadow: 0 12px 40px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.05);
}
/* Native-aspect items (e.g. the two source-crop-preserved videos) size
   themselves to the video's own aspect ratio instead of forcing 16:9,
   so their content is shown via object-fit: contain without cropping
   or stretching. */
.video-gallery-item--native {
  aspect-ratio: 3 / 2;
}
.gallery-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #0a0f19;
}
.gallery-video--contain {
  object-fit: contain;
}
@media (max-width: 1024px) {
  .video-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .video-gallery-grid { grid-template-columns: 1fr; gap: 1.25rem; }
}

.hero-video-mute {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(10,15,25,0.55);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: background 0.2s ease, transform 0.15s ease;
}
.hero-video-mute:hover {
  background: rgba(10,15,25,0.75);
  transform: scale(1.06);
}
.hero-video-mute:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Sections */
section { padding: 6.5rem 0; border-bottom: 1px solid var(--border); }
section:last-of-type { border-bottom: none; }
.section-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 3.5rem;
}
.section-eyebrow {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 0.75rem;
  display: block;
}
.section-title {
  font-size: clamp(1.8rem, 3.4vw, 2.4rem);
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -0.01em;
  margin-bottom: 0.75rem;
}
.section-desc { color: var(--muted); font-size: 1.02rem; }

.bg-off { background: var(--off-white); }
/* Audience split */
.audience-section {
  padding: 5.5rem 0;
  background: linear-gradient(180deg, #f6f7f9 0%, #eef1f5 100%);
}
.audience-section-header {
  margin-bottom: 2.25rem;
}
.audience-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  max-width: 980px;
  margin: 0 auto;
}
.audience-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 2rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-top: 4px solid var(--accent);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(15, 27, 48, 0.07);
}
.audience-label {
  color: var(--accent);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
}
.audience-card h3 {
  margin-top: 0.65rem;
  color: var(--navy);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.audience-card > p:not(.audience-label):not(.audience-boundary) {
  margin-top: 0.85rem;
  color: var(--muted);
  font-size: 0.98rem;
}
.audience-boundary {
  margin-top: 1rem;
  padding: 0.8rem 0.9rem;
  border-left: 3px solid #d8dee7;
  background: #fafbfc;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.5;
}
.audience-boundary strong { color: var(--navy); }
.audience-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem 1.15rem;
  margin-top: auto;
  padding-top: 1.5rem;
}
.audience-links a {
  color: var(--navy);
  font-size: 0.91rem;
  font-weight: 700;
}
.audience-links a:hover { color: var(--accent); }
.audience-links .audience-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0.65rem 0.9rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
}
.audience-links .audience-primary:hover {
  background: var(--accent);
  color: var(--white);
  text-decoration: none;
}
@media (max-width: 700px) {
  .audience-section { padding: 4.5rem 0; }
  .audience-grid { grid-template-columns: 1fr; gap: 1rem; }
  .audience-card { padding: 1.5rem; }
}



/* Companies grid */
.companies-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 900px) {
  .companies-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .companies-grid { grid-template-columns: 1fr; }
}

.company-card {
  position: relative;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  height: 100%;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.companies-grid {
  align-items: stretch;
}
.company-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  position: relative;
  z-index: 1;
}
.company-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: rgba(183, 136, 70, 0.1);
  color: var(--accent, #b78846);
  flex-shrink: 0;
}
.company-icon svg {
  display: block;
}
.company-card::before {
  content: "";
  position: absolute;
  top: -30px;
  right: -30px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  border: 1px solid rgba(183, 136, 70, 0.25);
  pointer-events: none;
  transition: transform 0.35s ease, border-color 0.35s ease;
}
.company-card:hover {
  transform: translateY(-6px) scale(1.015);
  box-shadow: 0 18px 36px rgba(15, 27, 48, 0.12);
  border-color: rgba(183, 136, 70, 0.35);
}
.company-card:hover::before {
  transform: scale(1.15);
  border-color: rgba(183, 136, 70, 0.45);
}

.company-mark {
  width: 46px;
  height: 46px;
  border-radius: 8px;
  background: linear-gradient(145deg, var(--navy) 0%, var(--navy-2) 100%);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: -0.02em;
  box-shadow: 0 3px 8px rgba(15, 27, 48, 0.25);
  position: relative;
  z-index: 1;
}

.company-name {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--navy);
}
.company-desc {
  color: var(--muted);
  font-size: 0.95rem;
  flex-grow: 1;
}

.btn-visit {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--navy);
  border: 1px solid var(--border);
  padding: 0.6rem 1.1rem;
  min-height: 40px;
  border-radius: 6px;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
  align-self: flex-start;
}
.btn-visit:hover {
  text-decoration: none;
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
  transform: translateX(2px);
}
.btn-visit:active { transform: translateX(0); }

/* About */
.about-wrap {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
.about-copy { flex: 1 1 420px; }
.about-copy p { color: var(--charcoal); margin-bottom: 1rem; font-size: 1.02rem; }
.about-copy p:last-child { margin-bottom: 0; }

.about-stats {
  flex: 0 0 260px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.stat {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem;
  text-align: center;
}
.stat-num { font-size: 1.7rem; font-weight: 700; color: var(--navy); }
.stat-label { font-size: 0.82rem; color: var(--muted); margin-top: 0.25rem; }

/* Portfolio proof table */
.portfolio-proof {
  background: linear-gradient(180deg, var(--off-white) 0%, #eef1f5 100%);
}
.portfolio-proof-note {
  max-width: 920px;
  margin: -1.5rem auto 1.75rem;
  padding: .9rem 1rem;
  border-left: 3px solid var(--accent);
  background: rgba(255,255,255,.72);
  color: var(--muted);
  font-size: .9rem;
}
.portfolio-proof-note strong { color: var(--navy); }
.portfolio-proof-table-wrap {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(15,27,48,.07);
}
.portfolio-proof-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  text-align: left;
}
.portfolio-proof-table th,
.portfolio-proof-table td {
  padding: 1.1rem 1rem;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
  overflow-wrap: anywhere;
}
.portfolio-proof-table thead th {
  background: var(--navy);
  color: var(--white);
  font-size: .76rem;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}
.portfolio-proof-table thead th:nth-child(1) { width: 15%; }
.portfolio-proof-table thead th:nth-child(2) { width: 18%; }
.portfolio-proof-table thead th:nth-child(3) { width: 35%; }
.portfolio-proof-table thead th:nth-child(4) { width: 15%; }
.portfolio-proof-table thead th:nth-child(5) { width: 17%; }
.portfolio-proof-table tbody th {
  color: var(--navy);
  font-size: .98rem;
  line-height: 1.35;
}
.portfolio-proof-table tbody td {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.5;
}
.portfolio-proof-table tbody tr:last-child th,
.portfolio-proof-table tbody tr:last-child td { border-bottom: 0; }
.portfolio-proof-table tbody tr:nth-child(even) { background: #fbfcfd; }
.portfolio-proof-table a { font-weight: 700; color: var(--navy); }
.portfolio-proof-table a:hover { color: var(--accent); }
.portfolio-proof-status {
  display: inline-block;
  color: var(--navy);
  font-weight: 700;
}
.portfolio-proof-undisclosed {
  display: inline-block;
  padding: .18rem .45rem;
  border: 1px solid #d9e0e8;
  border-radius: 999px;
  color: var(--navy);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
}
.portfolio-proof-footnote {
  max-width: 920px;
  margin: 1rem auto 0;
  color: var(--muted);
  font-size: .82rem;
}
@media (max-width: 760px) {
  .portfolio-proof-note { margin-top: -1rem; }
  .portfolio-proof-table-wrap { border-radius: 10px; }
  .portfolio-proof-table,
  .portfolio-proof-table thead,
  .portfolio-proof-table tbody,
  .portfolio-proof-table tr,
  .portfolio-proof-table th,
  .portfolio-proof-table td { display: block; }
  .portfolio-proof-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .portfolio-proof-table tbody tr {
    padding: 1.1rem 1rem;
    border-bottom: 1px solid var(--border);
  }
  .portfolio-proof-table tbody tr:last-child { border-bottom: 0; }
  .portfolio-proof-table tbody tr:nth-child(even) { background: #fbfcfd; }
  .portfolio-proof-table tbody th,
  .portfolio-proof-table tbody td {
    width: auto !important;
    padding: .3rem 0 .3rem 7.8rem;
    border: 0;
    min-height: 1.7rem;
    position: relative;
  }
  .portfolio-proof-table tbody th { padding-top: .1rem; padding-bottom: .55rem; }
  .portfolio-proof-table tbody th::before,
  .portfolio-proof-table tbody td::before {
    content: attr(data-label);
    position: absolute;
    left: 0;
    top: .3rem;
    width: 6.9rem;
    color: var(--navy);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1.3;
    text-transform: uppercase;
  }
  .portfolio-proof-table tbody th::before { top: .1rem; }
}
@media (max-width: 420px) {
  .portfolio-proof-table tbody th,
  .portfolio-proof-table tbody td { padding-left: 0; }
  .portfolio-proof-table tbody th::before,
  .portfolio-proof-table tbody td::before {
    display: block;
    position: static;
    width: auto;
    margin-bottom: .12rem;
  }
  .portfolio-proof-table tbody th { padding-bottom: .55rem; }
  .portfolio-proof-table tbody td { padding-bottom: .65rem; }
  .portfolio-proof-table tbody td:last-child { padding-bottom: .15rem; }
}

/* Guide */
.guide-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2rem 2.25rem;
  max-width: 720px;
  margin: 0 auto;
}
.guide-card-copy p { color: var(--charcoal); font-size: 1.02rem; margin-bottom: 1rem; }
.guide-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
  display: grid;
  gap: 0.6rem;
}
.guide-list li {
  position: relative;
  padding-left: 1.5rem;
  color: var(--charcoal);
  font-size: 0.98rem;
}
.guide-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}
.guide-fine { color: var(--muted); font-size: 0.92rem; font-style: italic; }
.guide-buy-row {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}
.guide-price { font-size: 1.6rem; font-weight: 700; color: var(--navy); }
.btn-buy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--white);
  background: var(--navy);
  border: 1px solid var(--navy);
  padding: 0.75rem 1.5rem;
  min-height: 46px;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}
.btn-buy:hover { background: var(--accent); border-color: var(--accent); text-decoration: none; color: var(--white); }
.btn-buy:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }

/* Updates / Build Alongside Me */
.updates-page-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 3rem;
}
.updates-feed {
  max-width: 700px;
  margin: 0 auto;
  display: grid;
  gap: 1.75rem;
}
.update-post {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 2rem 2.25rem;
  text-align: left;
  box-shadow: 0 8px 28px rgba(15,27,48,0.05);
}
.update-post-meta {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.9rem;
}
.update-post-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.update-post-byline { display: flex; flex-direction: column; line-height: 1.25; }
.update-post-author { font-weight: 600; font-size: 0.92rem; color: var(--navy); }
.update-post-date { font-size: 0.8rem; color: var(--muted); }
.update-post-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -0.01em;
  margin-bottom: 0.85rem;
}
.update-post-body {
  color: var(--charcoal);
  font-size: 1rem;
  white-space: pre-wrap;
}
.update-post-body p { margin-bottom: 1rem; }
.update-post-body p:last-child { margin-bottom: 0; }

/* Follow Along teaser (homepage) */
.follow-along-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2rem;
  align-items: start;
  max-width: 980px;
  margin: 0 auto;
}
@media (max-width: 820px) {
  .follow-along-grid { grid-template-columns: 1fr; }
}
.follow-along-copy {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2rem 2.25rem;
}
.follow-along-copy > p { color: var(--charcoal); font-size: 1.02rem; margin-bottom: 1rem; }
.follow-along-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem 0;
  display: grid;
  gap: 0.6rem;
}
.follow-along-list li {
  position: relative;
  padding-left: 1.5rem;
  color: var(--charcoal);
  font-size: 0.98rem;
}
.follow-along-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}
.follow-along-teaser {
  background: var(--navy);
  border-radius: 12px;
  padding: 1.75rem 2rem;
  color: var(--white);
  position: relative;
  overflow: hidden;
}
.follow-along-teaser-label {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  font-weight: 600;
  margin-bottom: 0.75rem;
  display: block;
}
.follow-along-teaser-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.follow-along-teaser-body {
  position: relative;
  font-size: 0.95rem;
  color: rgba(255,255,255,0.85);
  max-height: 6.4em;
  overflow: hidden;
}
.follow-along-teaser-fade {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 4.5rem;
  background: linear-gradient(to bottom, rgba(15,27,48,0), var(--navy) 85%);
}
.follow-along-lock {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.25rem;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.75);
}
.follow-along-lock a { color: var(--accent); font-weight: 700; }

/* Contact */
.contact-section { text-align: center; }
.contact-email {
  display: inline-block;
  margin-top: 1.75rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--navy);
  border-bottom: 2px solid var(--accent);
  padding-bottom: 4px;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.contact-email:hover { text-decoration: none; color: var(--accent); border-color: var(--navy); }
.contact-note { margin-top: 0.75rem; font-size: 0.85rem; color: var(--muted); }

/* Responsive refinements */
@media (max-width: 820px) {
  .portfolio-city-home-head { grid-template-columns: 1fr; gap: 2rem; }
  .portfolio-city-entry { max-width: 440px; transform: rotate(.7deg); }
}
@media (max-width: 768px) {
  .nav { padding: 0.9rem 1.25rem; align-items: flex-start; }
  .nav-links { flex: 1 1 0; min-width: 0; justify-content: flex-end; flex-wrap: wrap; gap: .35rem 1rem; }
  .hero { padding: 6rem 1.25rem 5rem; }
  section { padding: 4.5rem 0; }
  .section-header { margin-bottom: 2.5rem; }
  .about-wrap { gap: 2rem; }
  .about-stats { flex: 1 1 100%; }
  .hero-video-wrap { margin-top: 2rem; border-radius: 12px; max-width: 100%; }
  .hero-video-mute { width: 44px; height: 44px; right: 8px; bottom: 8px; }
}

@media (max-width: 480px) {
  .container { padding: 0 1.25rem; }
  .nav-links { gap: .3rem .7rem; }
  .nav-links a { font-size: 0.85rem; }
  .hero { padding: 5.5rem 1.1rem 4rem; }
  .hero-subtitle { font-size: 1.02rem; }
  section { padding: 3.75rem 0; }
  .company-card { padding: 1.75rem 1.5rem; }
  .btn-visit { width: 100%; justify-content: center; }
  .about-stats { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .contact-email { font-size: 1.05rem; word-break: break-word; }
}

@media (max-width: 560px) {
  .portfolio-city-home { padding-top: 4.25rem; padding-bottom: 4rem; }
  .portfolio-city-home-head { gap: 1.6rem; }
  .portfolio-city-entry { padding: 1.35rem; }
  .portfolio-city-frame-wrap { margin-top: 2.5rem; border-radius: 5px; box-shadow: 6px 7px 0 rgba(24, 51, 74, .1); }
  .portfolio-city-frame-bar { align-items: flex-start; flex-direction: column; gap: .35rem; padding: .75rem .8rem; }
  .portfolio-city-frame-wrap iframe { height: 1530px; }
  .portfolio-city-home-note { font-size: .78rem; }
  .pc-embed-banner { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .hero, .hero::before { animation: none; }
  .fade-in { transition: none; opacity: 1; transform: none; }
  .hero-enter { animation: none; opacity: 1; transform: none; }
  .company-card, .company-card::before, .btn-visit { transition: none; }
}

/* Footer */
.footer {
  border-top: 1px solid var(--border);
  padding: 3rem 1.5rem 2rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.footer a { color: var(--muted); text-decoration: none; transition: color 0.15s ease; }
.footer a:hover { color: var(--white); text-decoration: underline; }

.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 2rem;
  text-align: left;
}
.footer-col { min-width: 0; }
.footer-heading {
  color: var(--white);
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0 0 0.85rem;
  letter-spacing: 0.01em;
}
.footer-tagline {
  margin: 0;
  line-height: 1.6;
  color: var(--muted);
  max-width: 32ch;
}
.footer-accessibility {
  margin: 1rem 0 0;
  max-width: 42ch;
  color: #d3dae5;
  font-size: .82rem;
  line-height: 1.55;
}
.footer-accessibility strong { color: var(--white); }
.footer-links, .footer-social {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.footer-social li a {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}
.footer-social-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--muted);
}
.footer-social li a:hover .footer-social-icon { color: var(--white); }
.footer-bottom {
  max-width: 1100px;
  margin: 2rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  text-align: center;
  font-size: 0.8rem;
  color: var(--muted);
}

@media (max-width: 900px) {
  .footer-inner {
    grid-template-columns: 1fr 1fr;
    gap: 2rem 1.5rem;
  }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .footer { padding: 2.5rem 1.25rem 1.75rem; text-align: center; }
  .footer-inner {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }
  .footer-tagline { max-width: none; margin: 0 auto; }
  .footer-social li a { justify-content: center; }
  .footer-links, .footer-social { align-items: center; }
}

/* Legal pages (Privacy Policy / Terms of Service) */
.legal-page { padding: clamp(3.75rem, 7vw, 6rem) 1.25rem clamp(4.5rem, 8vw, 7rem); }
.legal-container { width: min(100%, 780px); margin: 0 auto; text-align: left; }
.legal-container > .hero-title { text-align: left; margin-bottom: .7rem; }
.legal-container > .hero-subtitle { max-width: none; margin: 0 0 2.25rem; text-align: left; font-size: 1rem; }
.legal-body { color: rgba(255,255,255,0.88); line-height: 1.72; font-size: 1rem; }
.legal-body h2 {
  color: var(--white);
  font-size: 1.28rem;
  line-height: 1.25;
  margin-top: 2.4rem;
  margin-bottom: 0.75rem;
  letter-spacing: -.01em;
}
.legal-body p { margin-bottom: 1rem; }
.legal-body ul { margin: 0 0 1.15rem 1.25rem; padding: 0; }
.legal-body li { margin-bottom: 0.65rem; padding-left: .15rem; }
.legal-body a { color: #e1b56f; text-decoration: underline; text-underline-offset: 2px; }
.legal-body a:hover { color: var(--white); }
.legal-body strong { color: var(--white); }
.legal-notice { margin: 0 0 2rem; padding: 1rem 1.1rem; border: 1px solid rgba(225,181,111,.55); border-left: 4px solid var(--accent); background: rgba(183,136,70,.13); color: rgba(255,255,255,.92); font-size: .95rem; }
.footer p { margin: 0.25rem 0; }

@media (max-width: 560px) {
  .legal-page { padding: 3.25rem 1rem 4.25rem; }
  .legal-container > .hero-title { font-size: clamp(2rem, 11vw, 2.8rem); }
  .legal-body { font-size: .96rem; line-height: 1.68; }
  .legal-body h2 { margin-top: 2rem; font-size: 1.18rem; }
  .legal-notice { padding: .85rem .9rem; }
}

/* Newsletter signup section */
.newsletter-section {
  background: var(--navy);
  color: var(--white);
}
.newsletter-section .section-title,
.newsletter-section .section-eyebrow { color: var(--white); }
.newsletter-section .section-desc { color: rgba(255,255,255,0.72); }
.newsletter-form {
  display: flex;
  gap: 0.75rem;
  max-width: 480px;
  margin: 1.75rem auto 0;
  flex-wrap: wrap;
}
.newsletter-form input[type="email"] {
  flex: 1 1 240px;
  min-width: 0;
  padding: 0.85rem 1rem;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.06);
  color: var(--white);
  font-size: 1rem;
}
.newsletter-form input[type="email"]::placeholder { color: rgba(255,255,255,0.5); }
.newsletter-form input[type="email"]:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255,255,255,0.1);
}
.newsletter-form button {
  padding: 0.85rem 1.5rem;
  border-radius: 8px;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--navy);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: opacity 0.2s ease;
  white-space: nowrap;
}
.newsletter-form button:hover { opacity: 0.9; }
.newsletter-form button:disabled { opacity: 0.6; cursor: not-allowed; }
.newsletter-note {
  margin-top: 0.9rem;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.72);
  text-align: center;
}
.newsletter-note a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.newsletter-note a:hover { color: var(--accent); }
.newsletter-status {
  margin-top: 1rem;
  font-size: 0.95rem;
  text-align: center;
  min-height: 1.2em;
}
.newsletter-status.success { color: #9be3a3; }
.newsletter-status.error { color: #f2a3a3; }

/* Free content preview: latest blog posts + FAQ, shown before any paid ask */
.preview-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 860px) {
  .preview-grid { grid-template-columns: 1fr; }
}
.preview-blog-list { display: flex; flex-direction: column; gap: 1.1rem; }
.preview-blog-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  background: var(--white);
  transition: border-color 0.2s ease;
}
.preview-blog-card:hover { border-color: var(--accent); }
.preview-blog-card a.preview-blog-title {
  color: var(--navy);
  font-weight: 700;
  font-size: 1.02rem;
  display: block;
  margin-bottom: 0.35rem;
}
.preview-blog-card p { color: var(--muted); font-size: 0.92rem; margin: 0; }
.preview-blog-more { margin-top: 0.5rem; }
.preview-faq-list { display: flex; flex-direction: column; gap: 0.9rem; }
.preview-faq-item {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  background: var(--off-white);
}
.preview-faq-item .preview-faq-q {
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.4rem;
}
.preview-faq-item .preview-faq-a { color: var(--charcoal); font-size: 0.95rem; margin: 0; }
.preview-subtitle {
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 1rem 0;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Portfolio City homepage feature — a distinct fictional play layer inside the holding-company story. */
.portfolio-city-home {
  position: relative;
  overflow: hidden;
  background: #f4f0e8;
  border-bottom-color: #d8d0c2;
}
.portfolio-city-home::before {
  content: "";
  position: absolute;
  width: 30rem;
  height: 30rem;
  top: -14rem;
  right: -11rem;
  border-radius: 50%;
  border: 1px solid rgba(168, 94, 55, .16);
  box-shadow: 0 0 0 2.2rem rgba(168, 94, 55, .045), 0 0 0 5rem rgba(168, 94, 55, .035);
  pointer-events: none;
}
.portfolio-city-home-head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 5rem);
  max-width: 1040px;
  margin: 0 auto;
}
.portfolio-city-home-copy .section-title { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 4vw, 3.35rem); letter-spacing: -.045em; }
.portfolio-city-home-copy .section-desc { font-size: 1.08rem; line-height: 1.65; }
.portfolio-city-honesty {
  margin-top: 1.25rem;
  max-width: 62ch;
  padding: .8rem 1rem;
  border-left: 3px solid #b97e43;
  color: #6d6256;
  font-size: .84rem;
  line-height: 1.55;
}
.portfolio-city-honesty strong { color: #995b37; }
.portfolio-city-entry {
  position: relative;
  padding: 1.65rem;
  color: #fffaf1;
  background: #18334a;
  border: 1px solid #ad8050;
  box-shadow: 8px 8px 0 rgba(184, 151, 104, .34);
  transform: rotate(1.2deg);
}
.portfolio-city-entry::after {
  content: "";
  position: absolute;
  inset: .55rem;
  border: 1px solid rgba(255,255,255,.15);
  pointer-events: none;
}
.portfolio-city-entry > * { position: relative; z-index: 1; }
.portfolio-city-entry-label {
  display: block;
  color: #efbd76;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.portfolio-city-entry strong { display: block; margin: .55rem 0 .45rem; font: 700 1.3rem/1.15 Georgia, serif; }
.portfolio-city-entry p { color: rgba(255,250,241,.72); font-size: .84rem; line-height: 1.5; margin-bottom: 1.2rem; }
.portfolio-city-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .8rem 1rem;
  color: #18334a;
  background: #efbd76;
  border: 1px solid #efbd76;
  font-weight: 800;
  font-size: .9rem;
  transition: transform .2s ease, filter .2s ease;
}
.portfolio-city-cta:hover { color: #18334a; text-decoration: none; filter: brightness(1.08); transform: translateX(2px); }
.portfolio-city-details { display: inline-block; margin-top: .9rem; color: #efbd76; font-size: .78rem; font-weight: 700; }
.portfolio-city-details:hover { color: #fffaf1; }
.portfolio-city-frame-wrap {
  position: relative;
  z-index: 1;
  max-width: 1120px;
  margin: 3.5rem auto 0;
  overflow: hidden;
  background: #f4f0e8;
  border: 1px solid #bfb4a3;
  border-radius: 8px;
  box-shadow: 12px 14px 0 rgba(24, 51, 74, .1), 0 18px 42px rgba(24, 51, 74, .08);
}
.portfolio-city-frame-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .8rem 1rem;
  color: #fffaf1;
  background: #18334a;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.portfolio-city-frame-bar span:first-child { display: inline-flex; align-items: center; gap: .55rem; }
.portfolio-city-frame-bar i, .pc-embed-banner i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #efbd76; box-shadow: 0 0 0 4px rgba(239,189,118,.15); }
.portfolio-city-frame-bar span:last-child { color: rgba(255,250,241,.58); font-size: .63rem; }
.portfolio-city-frame-wrap iframe { display: block; width: 100%; height: 1180px; border: 0; background: #f4f0e8; }
.portfolio-city-home-note { position: relative; z-index: 1; max-width: 760px; margin: 2rem auto 0; color: #756f64; text-align: center; font-size: .82rem; line-height: 1.6; }

/* Compact game presentation used by the homepage iframe; the standalone page keeps its full nav and intro. */
.portfolio-city-embedded { min-width: 0; overflow-x: hidden; }
.pc-embedded-shell { padding-top: 1.7rem; padding-bottom: 2.4rem; }
.pc-embed-banner { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: 1.2rem; padding-bottom: .85rem; border-bottom: 1px solid #d8d0c2; color: #8b806f; font-size: .69rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pc-embed-banner span:first-child { display: inline-flex; align-items: center; gap: .5rem; color: #a85e37; }

/* Portfolio City — a warm cartographic game layer that lives beside the corporate site. */
.portfolio-city-page { background: #f4f0e8; color: #193047; }
.portfolio-city-page .nav { background: rgba(244,240,232,.94); border-bottom-color: #d8d0c2; }
.portfolio-city-page .nav-links a { color: #51606a; }
.pc-page { overflow: hidden; background: #f4f0e8; }
.pc-intro { padding: 4.5rem 1.5rem 3.25rem; background: #18334a; color: #f9f5ec; position: relative; }
.pc-intro::after { content: ""; position: absolute; inset: 0; opacity: .18; pointer-events: none; background-image: linear-gradient(30deg, transparent 48%, #d9b36c 49%, transparent 51%), linear-gradient(150deg, transparent 48%, #d9b36c 49%, transparent 51%); background-size: 64px 64px; }
.pc-intro-inner { max-width: 1120px; margin: 0 auto; display: flex; gap: 3rem; align-items: end; justify-content: space-between; position: relative; z-index: 1; }
.pc-intro h1 { margin: .45rem 0 .7rem; font: 700 clamp(2.8rem, 8vw, 5.7rem)/.9 Georgia, "Times New Roman", serif; letter-spacing: -.06em; color: #fffaf1; }
.pc-intro h1 em { color: #edb36d; font-style: normal; }
.pc-intro p { max-width: 600px; font-size: 1.12rem; line-height: 1.55; color: rgba(255,250,241,.77); }
.pc-kicker { display: block; color: #b97e43; font-size: .7rem; line-height: 1.2; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.pc-intro .pc-kicker { color: #efbd76; }
.pc-intro-badge { min-width: 240px; border: 1px solid rgba(255,255,255,.25); border-radius: 6px; padding: 1.15rem; background: rgba(255,255,255,.07); transform: rotate(2deg); box-shadow: 8px 8px 0 rgba(239,189,118,.2); }
.pc-intro-badge span { font-size: .66rem; letter-spacing: .13em; color: #efbd76; font-weight: 800; }
.pc-intro-badge strong { display: block; margin: .35rem 0; font: 700 1.15rem Georgia, serif; color: #fffaf1; }
.pc-intro-badge small { color: rgba(255,250,241,.62); font-size: .72rem; }
.pc-game-shell { max-width: 1120px; margin: 0 auto; padding: 3.2rem 1.5rem 4.5rem; position: relative; }
.pc-game-top { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.25rem; }
.pc-game-top h2, .pc-panel-heading h3, .pc-side-heading h3, .pc-action-heading h2 { margin: .35rem 0 0; color: #18334a; font-family: Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.pc-game-top h2 { font-size: 2rem; }
.pc-game-tools { display: flex; align-items: center; gap: .85rem; color: #76817f; font-size: .76rem; }
.pc-text-button { border: 0; background: transparent; color: #9d6037; text-decoration: underline; cursor: pointer; font: inherit; padding: .3rem; }
.pc-text-button:hover { color: #18334a; }
.pc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-bottom: 1.25rem; }
.pc-stat { background: #fffdf8; border: 1px solid #d9d1c3; padding: .9rem 1rem .8rem; border-radius: 4px; box-shadow: 3px 3px 0 #e3dbcd; }
.pc-stat span { display: block; color: #6a7775; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pc-stat strong { display: block; color: #18334a; font: 700 1.55rem Georgia, serif; margin: .25rem 0 .05rem; }
.pc-stat small { display: block; color: #8a928e; font-size: .72rem; }
.pc-stat.cash strong { color: #a55a39; }
.pc-stat.health strong { color: #48826d; }
.pc-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(260px, .8fr); gap: 1.25rem; align-items: start; }
.pc-map-panel, .pc-side-panel { border: 1px solid #d9d1c3; background: #fffdf8; border-radius: 5px; padding: 1.25rem; box-shadow: 5px 5px 0 #e3dbcd; }
.pc-panel-heading, .pc-action-heading, .pc-picker-head { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.pc-panel-heading h3, .pc-side-heading h3 { font-size: 1.35rem; }
.pc-map-hint, .pc-tap-note { color: #9a9184; font-size: .73rem; }
.pc-map { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; padding: 8px; border: 1px solid #d8cdbd; background: #e6dbc8; background-image: linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px); background-size: 20% 20%; border-radius: 3px; touch-action: manipulation; }
.pc-lot { min-width: 0; aspect-ratio: 1 / 1; position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; border: 1px solid rgba(48,66,67,.18); border-radius: 3px; background: rgba(247,241,226,.78); color: #6b786f; cursor: pointer; padding: .25rem; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.pc-lot:hover, .pc-lot:focus-visible { transform: translateY(-2px); box-shadow: 0 3px 0 rgba(41,61,64,.2); z-index: 1; outline: none; }
.pc-lot.selected { outline: 2px solid #a85e37; outline-offset: 2px; z-index: 2; }
.pc-lot.occupied { color: #18334a; border-color: transparent; }
.pc-lot.coral { background: #e8a083; }
.pc-lot.gold { background: #e4bd70; }
.pc-lot.mint { background: #9ec3a8; }
.pc-lot.blue { background: #91b6c7; }
.pc-lot-icon { font-size: clamp(1.1rem, 3vw, 1.8rem); line-height: 1; font-family: Georgia, serif; }
.pc-lot-name { font-size: clamp(.48rem, 1.15vw, .67rem); line-height: 1.05; text-align: center; font-weight: 800; max-width: 95%; overflow: hidden; text-overflow: ellipsis; }
.pc-lot-level { position: absolute; top: 4px; right: 5px; font-size: .53rem; font-weight: 800; opacity: .66; }
.pc-lot-plus { font-size: 1.4rem; line-height: 1; opacity: .55; }
.pc-map-caption { margin: .8rem 0 0; color: #7d867f; font-size: .78rem; }
.pc-side-panel { min-height: 100%; }
.pc-event { display: flex; gap: .75rem; align-items: flex-start; background: #f5ead5; border-left: 4px solid #a85e37; padding: .9rem; margin-bottom: 1.5rem; }
.pc-event-quiet { background: #eef1e9; border-left-color: #8ea58c; }
.pc-event-icon { font: 700 1.6rem Georgia, serif; color: #a85e37; line-height: 1; }
.pc-event p { margin: .35rem 0 0; color: #596967; font-size: .83rem; line-height: 1.45; }
.pc-side-heading { border-bottom: 1px solid #e0d9ce; padding-bottom: .8rem; }
.pc-log { display: flex; flex-direction: column; gap: .7rem; padding-top: .9rem; }
.pc-log p { display: grid; grid-template-columns: 12px 1fr; gap: .35rem; margin: 0; color: #687673; font-size: .78rem; line-height: 1.4; }
.pc-log p span { color: #a85e37; font-weight: 900; }
.pc-log p.positive span { color: #4f876f; }
.pc-log p.event span { color: #c48b3d; }
.pc-log-empty { color: #9a9e94; font-size: .8rem; padding-top: 1rem; }
.pc-actions { margin-top: 1.5rem; }
.pc-action-heading { margin-bottom: .8rem; }
.pc-action-heading h2 { font-size: 1.55rem; }
.pc-action-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.pc-action-card { display: grid; grid-template-columns: 38px 1fr auto; gap: .65rem; align-items: center; text-align: left; border: 1px solid #cfc7b9; background: #fffdf8; color: #18334a; padding: .9rem; border-radius: 4px; min-height: 104px; cursor: pointer; box-shadow: 3px 3px 0 #ded5c6; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.pc-action-card:hover:not(:disabled), .pc-business-option:hover:not(:disabled) { transform: translate(-1px, -2px); border-color: #a85e37; box-shadow: 5px 5px 0 #ded5c6; }
.pc-action-card:disabled, .pc-business-option:disabled { opacity: .42; cursor: not-allowed; box-shadow: none; }
.pc-action-card strong, .pc-business-option strong { display: block; font-size: .86rem; }
.pc-action-card small, .pc-business-option small { display: block; color: #7e8982; font-size: .72rem; line-height: 1.35; margin-top: .25rem; }
.pc-action-card b, .pc-business-option b { color: #a85e37; font: 700 .78rem Georgia, serif; white-space: nowrap; align-self: start; }
.pc-action-icon, .pc-option-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font: 700 1.25rem Georgia, serif; color: #18334a; }
.pc-action-icon.coral, .pc-business-option.coral .pc-option-icon { background: #f0c0a7; }
.pc-action-icon.mint, .pc-business-option.mint .pc-option-icon { background: #b7d3bb; }
.pc-action-icon.gold, .pc-business-option.gold .pc-option-icon { background: #ecd18f; }
.pc-business-option.blue .pc-option-icon { background: #b1d1dc; }
.pc-picker { border: 1px solid #d1c6b7; background: #f9f5eb; margin-top: .8rem; padding: 1rem; }
.pc-picker[hidden] { display: none; }
.pc-picker-head { margin-bottom: .75rem; }
.pc-picker-head strong { color: #18334a; font-family: Georgia, serif; }
.pc-business-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.pc-business-option { display: grid; grid-template-columns: 34px 1fr auto; gap: .55rem; align-items: center; border: 1px solid #d6cebf; border-radius: 3px; padding: .65rem; background: #fffdf8; text-align: left; cursor: pointer; color: #18334a; }
.pc-helper, .pc-fineprint { color: #8a918b; font-size: .72rem; margin: .75rem 0 0; }
.pc-event + .pc-side-heading { margin-top: .25rem; }
.pc-overlay-panel { margin-top: 1.5rem; border: 1px solid #ad8050; background: #18334a; color: #f8f2e7; padding: 2.25rem clamp(1.25rem, 5vw, 3.2rem); text-align: center; box-shadow: 7px 7px 0 #cbb99f; }
.pc-overlay-panel .pc-kicker { color: #efbd76; }
.pc-overlay-panel h2 { color: #fffaf1; font: 700 clamp(1.8rem, 4vw, 2.7rem)/1.05 Georgia, serif; margin: .45rem 0 .75rem; }
.pc-overlay-panel p { max-width: 650px; margin: 0 auto; color: rgba(255,250,241,.77); line-height: 1.55; }
.pc-big-symbol { display: block; font: 700 2rem Georgia, serif; color: #efbd76; margin-bottom: .7rem; }
.pc-lock-actions { display: flex; flex-wrap: wrap; gap: .7rem; justify-content: center; margin: 1.35rem 0 .2rem; }
.pc-button { display: inline-flex; align-items: center; justify-content: center; border-radius: 3px; padding: .8rem 1.1rem; border: 1px solid transparent; font: 700 .84rem inherit; cursor: pointer; text-decoration: none; }
.pc-button.primary { background: #efbd76; border-color: #efbd76; color: #18334a; }
.pc-button.secondary { background: transparent; border-color: rgba(255,255,255,.34); color: #fffaf1; }
.pc-button:hover { text-decoration: none; filter: brightness(1.05); }
.pc-end-panel.is-success { background: #315f57; border-color: #88b49a; }
.pc-end-panel.is-failure { background: #5a3e3a; border-color: #c58c76; }
.pc-fiction-note { max-width: 720px; margin: 1.6rem auto 0; text-align: center; color: #7b847e; font-size: .74rem; line-height: 1.5; }
.pc-fiction-note strong { color: #a85e37; }
@media (max-width: 800px) {
  .pc-intro-inner { display: block; }
  .pc-intro-badge { display: inline-block; margin-top: 1.7rem; transform: rotate(1deg); }
  .pc-layout { grid-template-columns: 1fr; }
  .pc-side-panel { min-height: 0; }
  .pc-action-grid { grid-template-columns: 1fr; }
  .pc-action-card { min-height: 0; }
}
@media (max-width: 560px) {
  .portfolio-city-page .nav { padding: .85rem 1rem; }
  .portfolio-city-page .nav-links { gap: .7rem; }
  .portfolio-city-page .nav-links a { font-size: .78rem; }
  .pc-intro { padding: 3.25rem 1rem 2.5rem; }
  .pc-game-shell { padding: 2.3rem 1rem 3.5rem; }
  .pc-game-top { align-items: start; flex-direction: column; }
  .pc-game-tools { width: 100%; justify-content: space-between; }
  .pc-stats { grid-template-columns: repeat(2, 1fr); gap: .55rem; }
  .pc-stat { padding: .75rem .7rem; }
  .pc-stat strong { font-size: 1.25rem; }
  .pc-map-panel, .pc-side-panel { padding: .8rem; }
  .pc-map { gap: 3px; padding: 5px; }
  .pc-lot-name { font-size: .44rem; }
  .pc-lot-level { top: 2px; right: 3px; font-size: .43rem; }
  .pc-business-options { grid-template-columns: 1fr; }
  .pc-lock-actions { flex-direction: column; align-items: stretch; }
}
.pc-mini-lock { margin: 1.45rem 0 -.45rem; padding: .75rem 1rem; border: 1px dashed #cda873; background: #f8eddb; color: #766a58; font-size: .78rem; text-align: center; }
.pc-mini-lock strong { color: #a85e37; }
.pc-mini-lock a { color: #a85e37; font-weight: 800; text-decoration: underline; }

/* Portfolio City daily-life layer */
#pcPlayWrap[hidden], #pcSetupWrap[hidden] { display: none; }
.pc-game-tools { flex-wrap: wrap; justify-content: flex-end; }
#pcFounderBadge { display: inline-flex; align-items: center; gap: .45rem; padding: .25rem .55rem .25rem .3rem; background: #f8eddb; border: 1px solid #dfc9a7; border-radius: 99px; color: #18334a; }
#pcFounderBadge small, #pcFounderBadge b { display: block; line-height: 1.1; }
#pcFounderBadge b { font-size: .72rem; }
#pcFounderBadge small { color: #8b806f; font-size: .58rem; margin-top: .15rem; }
.pc-avatar-mark { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: #18334a; background: #efbd76; font: 700 1rem Georgia, serif; }
.pc-setup { max-width: 780px; margin: 1.3rem auto 0; padding: clamp(1.25rem, 4vw, 2.6rem); border: 1px solid #d2c4af; background: #fffdf8; box-shadow: 7px 7px 0 #e3dbcd; }
.pc-setup-intro { margin-bottom: 1.3rem; }
.pc-setup h2 { margin: .35rem 0 .4rem; color: #18334a; font: 700 clamp(1.8rem, 4vw, 2.7rem)/1.05 Georgia, serif; letter-spacing: -.03em; }
.pc-setup p { color: #6b7772; font-size: .9rem; }
.pc-field { display: block; margin-bottom: 1.15rem; color: #18334a; font-weight: 800; font-size: .82rem; }
.pc-field small { color: #918878; font-weight: 400; }
.pc-field input { display: block; width: 100%; margin-top: .4rem; border: 1px solid #cfc3b1; padding: .75rem .8rem; color: #18334a; background: #f9f5eb; font: inherit; border-radius: 3px; }
.pc-setup fieldset { border: 0; padding: 0; margin: 1.15rem 0; }
.pc-setup legend { color: #18334a; font-weight: 800; font-size: .82rem; margin-bottom: .55rem; }
.pc-avatar-grid, .pc-trait-grid, .pc-aspiration-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .55rem; }
.pc-avatar, .pc-trait, .pc-aspiration { color: #18334a; background: #f9f5eb; border: 1px solid #d7cbbb; border-radius: 3px; padding: .75rem; text-align: left; cursor: pointer; transition: .16s ease; }
.pc-avatar:hover, .pc-trait:hover, .pc-aspiration:hover { border-color: #a85e37; transform: translateY(-1px); }
.pc-avatar.selected, .pc-trait.selected, .pc-aspiration.selected { background: #f8ead5; border-color: #a85e37; box-shadow: inset 0 0 0 1px #a85e37; }
.pc-avatar { text-align: center; }
.pc-avatar span { display: block; font: 700 1.7rem Georgia, serif; color: #a85e37; }
.pc-avatar strong, .pc-avatar small, .pc-trait strong, .pc-trait small, .pc-aspiration strong, .pc-aspiration small { display: block; }
.pc-avatar strong, .pc-trait strong, .pc-aspiration strong { font-size: .78rem; }
.pc-avatar small, .pc-trait small, .pc-aspiration small { color: #7d867f; font-size: .68rem; line-height: 1.3; margin-top: .23rem; }
.pc-trait-grid, .pc-aspiration-grid { grid-template-columns: repeat(2, 1fr); }
.pc-aspiration { display: flex; gap: .5rem; }
.pc-aspiration input { accent-color: #a85e37; margin-top: .15rem; }
.pc-start-button { margin-top: .4rem; width: 100%; font-size: .95rem; }
.pc-needs { margin: 0 0 1.1rem; padding: 1rem 1.15rem; background: #18334a; border: 1px solid #31536a; color: #fffaf1; box-shadow: 5px 5px 0 #cbb99f; }
.pc-needs-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: .8rem; }
.pc-needs h3 { margin-top: .28rem; font: 700 1.25rem Georgia, serif; }
.pc-needs .pc-kicker { color: #efbd76; }
.pc-needs-note { color: rgba(255,250,241,.6); font-size: .7rem; }
.pc-need-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .65rem; }
.pc-need { min-width: 0; }
.pc-need > div:first-child { display: flex; justify-content: space-between; gap: .3rem; color: #fffaf1; font-size: .7rem; font-weight: 800; }
.pc-need > div:first-child span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-need > div:first-child b { color: #efbd76; }
.pc-meter { height: 7px; margin: .38rem 0 .25rem; border-radius: 99px; background: rgba(255,255,255,.15); overflow: hidden; }
.pc-meter i { display: block; height: 100%; border-radius: inherit; background: #9ec3a8; transition: width .3s ease; }
.pc-need.watch .pc-meter i { background: #efbd76; }
.pc-need.low .pc-meter i, .pc-need.bad-meter.high .pc-meter i { background: #e8a083; }
.pc-need.bad-meter .pc-meter i { background: #9ec3a8; }
.pc-need small { color: rgba(255,250,241,.55); font-size: .6rem; }
.pc-result { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1rem; align-items: center; margin: 0 0 1.2rem; padding: 1rem 1.15rem; background: #eef1e9; border: 1px solid #abc0ae; border-left: 5px solid #4f876f; }
.pc-result.warning { background: #f8eddb; border-color: #d4ae73; border-left-color: #c48b3d; }
.pc-result h3 { margin: .3rem 0 .2rem; color: #18334a; font: 700 1.35rem Georgia, serif; }
.pc-result p { color: #5c6a65; font-size: .8rem; line-height: 1.4; }
.pc-result-empty { display: flex; justify-content: space-between; gap: .7rem; color: #60716b; font-size: .8rem; }
.pc-result-empty strong { color: #18334a; }
.pc-result-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.pc-result-facts span { padding: .55rem; border-left: 1px solid #c7d3c5; color: #5c6a65; font-size: .68rem; line-height: 1.3; }
.pc-result-facts b { display: block; color: #18334a; font-size: .62rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .18rem; }
.pc-action-sub { color: #7d867f; font-size: .78rem; margin-top: .25rem; }
.pc-activity-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .6rem; }
.pc-activity-card { min-height: 155px; display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; padding: .8rem; border: 1px solid #cfc7b9; border-radius: 4px; color: #18334a; background: #fffdf8; text-align: left; cursor: pointer; box-shadow: 3px 3px 0 #ded5c6; transition: transform .16s ease, border-color .16s ease; }
.pc-activity-card:hover:not(:disabled) { transform: translateY(-3px); border-color: #a85e37; }
.pc-activity-card:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.pc-activity-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: #18334a; background: #ecd18f; font: 700 1.2rem Georgia, serif; }
.pc-activity-card.work .pc-activity-icon { background: #f0c0a7; }.pc-activity-card.rest .pc-activity-icon { background: #b1d1dc; }.pc-activity-card.social .pc-activity-icon { background: #b7d3bb; }.pc-activity-card.learn .pc-activity-icon { background: #d8c0df; }
.pc-activity-card strong { display: block; font-size: .82rem; }.pc-activity-card small { display: block; color: #73817a; font-size: .68rem; line-height: 1.35; margin-top: .25rem; }.pc-activity-card em { display: block; color: #a85e37; font-size: .63rem; font-style: normal; line-height: 1.25; margin-top: .42rem; }.pc-activity-card b { margin-top: auto; color: #8b806f; font: 700 .62rem Georgia, serif; }
.pc-invest { margin-top: 1.2rem; padding: 1rem; border: 1px dashed #cfc2af; background: rgba(255,253,248,.5); }
.pc-invest-heading { display: flex; align-items: baseline; gap: .6rem; margin-bottom: .65rem; }.pc-invest-heading strong { color: #5f6d68; font-size: .76rem; }
.pc-invest .pc-action-grid { grid-template-columns: repeat(3, 1fr); }
.pc-game-shell.is-dimmed > *:not(#pcGateWrap):not(.pc-fiction-note) { opacity: .55; }
@media (max-width: 800px) { .pc-avatar-grid { grid-template-columns: repeat(2, 1fr); }.pc-need-grid { grid-template-columns: repeat(3, 1fr); }.pc-activity-grid { grid-template-columns: repeat(2, 1fr); }.pc-result { grid-template-columns: 1fr; }.pc-invest .pc-action-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .pc-game-tools { width: 100%; justify-content: flex-start; gap: .45rem; }.pc-needs-heading { align-items: start; flex-direction: column; gap: .25rem; }.pc-needs { padding: .85rem; }.pc-need-grid { grid-template-columns: repeat(2, 1fr); gap: .55rem .8rem; }.pc-need:last-child { grid-column: span 2; }.pc-result { padding: .85rem; }.pc-result-facts { grid-template-columns: 1fr; gap: .3rem; }.pc-result-facts span { border-left: 0; border-top: 1px solid #c7d3c5; padding: .4rem 0 0; }.pc-result-empty { display: block; }.pc-result-empty span { display: block; margin-top: .3rem; }.pc-activity-grid { grid-template-columns: 1fr 1fr; }.pc-activity-card { min-height: 175px; padding: .65rem; }.pc-trait-grid, .pc-aspiration-grid { grid-template-columns: 1fr; } }
.pc-need.bad-meter.high .pc-meter i { background: #e8a083; }
.pc-need.bad-meter.watch .pc-meter i { background: #efbd76; }

/* Portfolio City relationship + consequence layer */
.pc-relationships { margin: 1.25rem 0 1.4rem; padding: 1.15rem; background: #f8f4ea; border: 1px solid #d8cbb7; box-shadow: 4px 4px 0 #e6dccb; }
.pc-section-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:.35rem; }
.pc-section-heading h3 { margin-top:.28rem; color:#18334a; font:700 1.3rem Georgia,serif; }
.pc-relationship-note { color:#a85e37; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.pc-panel-copy { color:#718078; font-size:.76rem; max-width:680px; margin-bottom:.9rem; }
.pc-resident-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.pc-resident-card { min-width:0; padding:.8rem; background:#fffdf8; border:1px solid #d7cbb9; border-radius:5px; transition:transform .16s ease, border-color .16s ease; }
.pc-resident-card:hover { transform:translateY(-2px); border-color:#b67a58; }
.pc-resident-card.strained { background:#fff9f5; border-color:#d5a995; }
.pc-resident-top { display:flex; align-items:center; gap:.55rem; }
.pc-resident-top > div { min-width:0; flex:1; }
.pc-resident-icon { flex:0 0 31px; display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:#ead08e; color:#18334a; font:700 1.05rem Georgia,serif; }
.pc-resident-card:nth-child(2) .pc-resident-icon { background:#b7d3bb; }.pc-resident-card:nth-child(3) .pc-resident-icon { background:#d8c0df; }.pc-resident-card:nth-child(4) .pc-resident-icon { background:#f0c0a7; }
.pc-resident-top strong { display:block; color:#18334a; font-size:.78rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pc-resident-top small { display:block; margin-top:.15rem; color:#79857e; font-size:.61rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pc-resident-top b { color:#a85e37; font:700 1rem Georgia,serif; }
.pc-relationship-meter { height:6px; margin:.7rem 0 .35rem; border-radius:99px; background:#e5ded2; overflow:hidden; }
.pc-relationship-meter i { display:block; height:100%; border-radius:inherit; background:#6c9c7b; transition:width .35s ease; }
.pc-resident-card.strained .pc-relationship-meter i { background:#c77858; }
.pc-resident-meta { display:flex; justify-content:space-between; gap:.3rem; color:#8a7968; font-size:.59rem; }
.pc-resident-meta span:last-child { text-align:right; color:#a85e37; }
.pc-resident-card p { min-height:46px; margin:.55rem 0 .7rem; color:#66736d; font-size:.65rem; line-height:1.4; }
.pc-social-actions { display:flex; flex-wrap:wrap; gap:.32rem; }
.pc-social-choice { border:1px solid #b9aa95; border-radius:3px; padding:.35rem .48rem; background:#f7f0e4; color:#27465a; font-size:.61rem; font-weight:800; cursor:pointer; }
.pc-social-choice:hover:not(:disabled) { background:#ead7bc; border-color:#a85e37; }
.pc-social-choice:disabled { opacity:.42; cursor:not-allowed; }
.pc-event.active { border-color:#ca8b55; background:#fff3df; box-shadow:3px 3px 0 #ead5b5; }
.pc-event.resolved { background:#edf4ec; border-color:#afc8b1; }
.pc-event-title { display:flex; align-items:center; gap:.6rem; }
.pc-event-title h3 { margin-top:.2rem; color:#18334a; font:700 1.15rem Georgia,serif; }
.pc-event > p { margin:.65rem 0 .8rem; color:#596d66; font-size:.72rem; line-height:1.45; }
.pc-event-outcome { color:#4c8163; font-size:.65rem; font-weight:800; }
.pc-event-choices { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; }
.pc-event-choice { display:flex; flex-direction:column; align-items:flex-start; gap:.18rem; padding:.55rem; text-align:left; border:1px solid #cfb28e; border-radius:4px; background:#fffdf8; color:#18334a; cursor:pointer; }
.pc-event-choice:hover:not(:disabled) { border-color:#a85e37; transform:translateY(-1px); }
.pc-event-choice.warning { background:#fff9f2; }.pc-event-choice:disabled { opacity:.5; cursor:not-allowed; }
.pc-event-choice strong { font-size:.68rem; }.pc-event-choice small { color:#7d8177; font-size:.59rem; line-height:1.25; }
@media (max-width:800px) { .pc-resident-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .pc-relationships { padding:.85rem; }.pc-section-heading { align-items:start; flex-direction:column; gap:.25rem; }.pc-resident-grid { grid-template-columns:1fr; }.pc-resident-card p { min-height:0; }.pc-event-choices { grid-template-columns:1fr; } }

/* Portfolio City — open-world RPG layer */
.pc-game-shell { background: #f2eadc; color: #203b48; }
.pc-game-shell.pc-world-active .pc-layout { display:none; }
.pc-game-shell .pc-world-view { animation: pcRise .35s ease both; }
@keyframes pcRise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.pc-world-view { padding: 1.2rem; border-top: 1px solid #d9c9b2; }
.pc-world-heading, .pc-life-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:1rem; }
.pc-world-heading h2, .pc-life-heading h2 { color:#19364a; font:700 clamp(1.45rem,3vw,2.15rem) Georgia,serif; letter-spacing:-.02em; }
.pc-world-heading p, .pc-life-heading p { max-width:590px; margin-top:.35rem; color:#68766f; font-size:.78rem; line-height:1.5; }
.pc-world-layout { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(260px,.72fr); gap:1rem; }
.pc-map-panel-world { padding:0; overflow:hidden; border:1px solid #c9b89d; background:#dbe1d0; box-shadow:4px 4px 0 #c8b79d; }
.pc-world-map { position:relative; min-height:470px; overflow:hidden; isolation:isolate; background:linear-gradient(145deg,#d8e2d0 0 33%,#cad7c5 33% 62%,#e2d9c3 62%); }
.pc-map-water { position:absolute; inset:-10% 62% 43% -8%; z-index:-1; background:#a9ccd0; border-radius:45% 60% 55% 40%; opacity:.8; transform:rotate(-12deg); }
.pc-world-map::before { content:""; position:absolute; inset:0; opacity:.25; background-image:radial-gradient(#687f72 1px,transparent 1px); background-size:18px 18px; }
.pc-map-label { position:absolute; color:#769078; font:italic 700 .66rem Georgia,serif; letter-spacing:.18em; opacity:.75; }
.pc-map-label.lowwater { left:10%; top:48%; transform:rotate(-15deg); }.pc-map-label.highmere { left:48%; top:8%; transform:rotate(8deg); }.pc-map-label.farfield { right:3%; bottom:8%; transform:rotate(-10deg); }
.pc-map-roads { position:absolute; inset:0; z-index:0; pointer-events:none; }
.pc-map-roads i { position:absolute; height:4px; transform-origin:0 50%; border-top:2px dashed rgba(151,111,70,.6); }
.pc-world-node { position:absolute; z-index:1; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; width:94px; border:0; background:transparent; color:#1f4350; cursor:pointer; text-align:center; transition:transform .2s ease,filter .2s ease; }
.pc-world-node:hover, .pc-world-node.selected { transform:translate(-50%,-50%) scale(1.07); filter:drop-shadow(0 4px 3px rgba(41,58,48,.2)); }
.pc-world-node span { display:grid; place-items:center; width:39px; height:39px; border:3px solid #f8f2e5; border-radius:50%; background:#315c63; color:#fff5dc; box-shadow:0 2px 0 rgba(44,64,55,.35); font:700 1.1rem Georgia,serif; }
.pc-world-node.current span { width:46px; height:46px; background:#b85d45; box-shadow:0 0 0 4px rgba(184,93,69,.22),0 2px 0 rgba(44,64,55,.35); }
.pc-world-node.discovered span { background:#a77739; }.pc-world-node strong { margin-top:4px; padding:2px 4px; color:#244453; background:rgba(246,239,224,.86); font-size:.63rem; line-height:1.1; }.pc-world-node small { color:#6a776e; font-size:.55rem; }
.pc-world-node.marsh span,.pc-world-node.ridge span,.pc-world-node.grove span { background:#607e63; }.pc-world-node.quarry span { background:#796f8d; }
.pc-map-legend { display:flex; gap:1rem; padding:.65rem .8rem; color:#6c766d; font-size:.61rem; background:#ede5d5; border-top:1px solid #c9b89d; }.pc-map-legend span { display:flex; align-items:center; gap:.3rem; }.pc-map-legend i { display:inline-block; width:8px; height:8px; border-radius:50%; background:#315c63; }.pc-map-legend .current-dot { background:#b85d45; }.pc-map-legend .discovered-dot { background:#a77739; }.pc-map-legend .road-dot { width:15px; height:0; border-top:2px dashed #977047; border-radius:0; background:transparent; }
.pc-nearby { display:grid; grid-template-columns:repeat(2,1fr); gap:.45rem; margin-top:.75rem; }.pc-nearby > .pc-kicker { grid-column:1/-1; }.pc-nearby button { display:flex; flex-wrap:wrap; gap:.25rem; align-items:center; padding:.6rem; border:1px solid #ccbca5; border-radius:3px; background:#faf5ea; color:#294b58; cursor:pointer; font:700 .68rem Georgia,serif; text-align:left; }.pc-nearby button:hover { border-color:#b85d45; background:#fff9ed; }.pc-nearby small { display:block; flex-basis:100%; color:#758078; font:400 .58rem system-ui,sans-serif; }
.pc-location-card,.pc-rpg-card,.pc-objectives { padding:1rem; border:1px solid #cfc0aa; background:#fbf5e8; box-shadow:3px 3px 0 #ddcdb5; }.pc-location-title { display:flex; align-items:center; gap:.65rem; }.pc-location-title h3 { margin-top:.2rem; color:#193a4b; font:700 1.22rem Georgia,serif; }.pc-place-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:8px; background:#315c63; color:#fff4d9; font-size:1.3rem; }.pc-place-icon.marsh,.pc-place-icon.grove,.pc-place-icon.ridge { background:#668068; }.pc-place-icon.quarry { background:#796f8d; }.pc-discovered-badge { margin-left:auto; padding:.28rem .42rem; border-radius:2px; background:#e4c983; color:#5c4625; font-size:.56rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }.pc-location-card > p { margin:.85rem 0; color:#536760; font-size:.76rem; line-height:1.55; }.pc-location-choices { padding:.65rem; background:#f0e7d7; }.pc-location-choices > div { display:grid; gap:.35rem; margin-top:.4rem; color:#405b5d; font-size:.68rem; }.pc-location-choices span:not(.pc-kicker)::before { content:"↳ "; color:#b85d45; }.pc-location-actions { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.8rem; }.pc-button { border:1px solid #a98b68; border-radius:3px; padding:.62rem .78rem; cursor:pointer; font:700 .68rem system-ui,sans-serif; }.pc-button.primary { background:#b85d45; border-color:#9d4e3a; color:white; box-shadow:2px 2px 0 #7e4135; }.pc-button.secondary { background:#f8f0e1; color:#315462; }.pc-button:hover:not(:disabled) { transform:translateY(-1px); }.pc-button:disabled { cursor:not-allowed; opacity:.45; box-shadow:none; }
.pc-objectives { margin-top:1rem; }.pc-section-heading { display:flex; justify-content:space-between; align-items:center; gap:.5rem; }.pc-section-heading h3 { margin-top:.2rem; color:#193a4b; font:700 1.02rem Georgia,serif; }.pc-section-heading > b { color:#b85d45; font-size:.72rem; }.pc-objective { display:flex; gap:.55rem; align-items:center; padding:.55rem 0; border-bottom:1px solid #e7dccb; color:#526760; font-size:.68rem; }.pc-objective.done { color:#397253; text-decoration:line-through; }.pc-objective span:first-child { color:#b85d45; font-size:.9rem; }.pc-journal { display:grid; gap:.45rem; margin-top:.8rem; padding-top:.75rem; border-top:1px solid #dfd1be; color:#315462; font-size:.68rem; }.pc-journal strong { font-family:Georgia,serif; }.pc-journal span { padding:.38rem; background:#f0e7d7; }.pc-journal small { color:#788279; line-height:1.4; }
.pc-life-view { padding:1.2rem; }.pc-world-button { background:#315c63; color:#fff5dc; border-color:#284b51; }.pc-life-view .pc-stats { margin-bottom:1rem; }.pc-life-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(230px,.6fr); gap:1rem; margin-top:1rem; }.pc-life-actions { min-width:0; }.pc-life-view .pc-activity-grid { grid-template-columns:repeat(2,1fr); }.pc-business-row { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid #d9c9b2; }.pc-business-row h3 { margin-top:.2rem; font:700 1rem Georgia,serif; color:#193a4b; }.pc-business-actions { display:flex; gap:.4rem; }.pc-business-list { display:grid; grid-template-columns:repeat(2,1fr); gap:.45rem; margin-top:.65rem; }.pc-business-list > div { display:grid; grid-template-columns:32px 1fr; align-items:center; column-gap:.5rem; padding:.55rem; background:#fbf5e8; border:1px solid #d6c6ae; }.pc-business-list strong { font-size:.7rem; }.pc-business-list small { grid-column:2; color:#758078; font-size:.58rem; }.pc-option-icon { display:grid; place-items:center; grid-row:1/3; width:28px; height:28px; border-radius:4px; background:#e8c1a9; color:#784738; }.pc-option-icon.mint { background:#bbd8c2; color:#326348; }.pc-option-icon.gold { background:#e5cb83; color:#725b27; }.pc-option-icon.blue { background:#bfd4df; color:#355b6b; }.pc-empty { grid-column:1/-1; padding:.8rem; color:#788279; font-size:.7rem; }.pc-add-picker { display:grid; grid-template-columns:repeat(2,1fr); gap:.45rem; margin-top:.65rem; padding:.6rem; background:#e9decb; }.pc-add-picker button { padding:.5rem; border:1px solid #c6b395; background:#fffaf0; text-align:left; cursor:pointer; }.pc-add-picker small { display:block; margin-top:.2rem; color:#758078; font-size:.58rem; }
.pc-rpg-card { margin-bottom:1rem; }.pc-rpg-head { display:flex; align-items:center; gap:.6rem; }.pc-rpg-head h3 { color:#193a4b; font:700 1.1rem Georgia,serif; }.pc-rpg-head strong { display:inline-block; margin-right:.4rem; color:#b85d45; font-size:.7rem; }.pc-rpg-head small { color:#788279; font-size:.58rem; }.pc-xp { height:6px; margin:.75rem 0; overflow:hidden; background:#e2d5c1; }.pc-xp i { display:block; height:100%; background:#b85d45; }.pc-attrs { display:grid; grid-template-columns:repeat(4,1fr); gap:.3rem; }.pc-attrs div { padding:.4rem .2rem; text-align:center; background:#f0e7d7; }.pc-attrs b { display:block; color:#315c63; font:700 1rem Georgia,serif; }.pc-attrs span { color:#788279; font-size:.55rem; text-transform:uppercase; letter-spacing:.05em; }.pc-equip { display:grid; gap:.4rem; margin-top:.8rem; padding-top:.7rem; border-top:1px solid #dfd1be; }.pc-equip > span { margin-bottom:.1rem; }.pc-equip div { display:flex; justify-content:space-between; gap:.4rem; padding:.35rem 0; border-bottom:1px solid #eee4d4; }.pc-equip small { color:#9a8266; font-size:.56rem; text-transform:uppercase; }.pc-equip strong { color:#3f5d62; font-size:.62rem; text-align:right; }
@media (max-width:850px) { .pc-world-layout,.pc-life-grid { grid-template-columns:1fr; }.pc-world-map { min-height:420px; }.pc-life-grid aside { display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start; }.pc-life-grid aside .pc-rpg-card,.pc-life-grid aside .pc-objectives { margin:0; } }
@media (max-width:560px) { .pc-world-view,.pc-life-view { padding:.7rem; }.pc-world-heading,.pc-life-heading { align-items:flex-start; flex-direction:column; }.pc-world-heading .pc-button,.pc-life-heading .pc-button { width:100%; }.pc-world-map { min-height:370px; }.pc-world-node { width:74px; }.pc-world-node strong { font-size:.52rem; }.pc-world-node small { font-size:.48rem; }.pc-nearby { grid-template-columns:1fr; }.pc-life-view .pc-activity-grid,.pc-business-list,.pc-add-picker { grid-template-columns:1fr; }.pc-life-grid aside { display:flex; flex-direction:column; }.pc-business-row { align-items:flex-start; flex-direction:column; }.pc-business-actions,.pc-location-actions { width:100%; }.pc-business-actions .pc-button,.pc-location-actions .pc-button { flex:1; }.pc-location-title h3 { font-size:1rem; } }
.pc-rpg-sidebar { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,.7fr); gap:1rem; margin-top:1rem; }
.pc-rpg-sidebar .pc-log { grid-column:1/-1; }
@media (max-width:700px) { .pc-rpg-sidebar { grid-template-columns:1fr; } }
.pc-life-worldbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; padding:.8rem 1rem; border:1px solid #9bb0a0; background:#dbe7d8; }.pc-life-worldbar strong { display:block; margin-top:.2rem; color:#264b51; font:700 .95rem Georgia,serif; }.world-button { background:#315c63; border-color:#284b51; color:#fff5dc; }
@media (max-width:560px) { .pc-life-worldbar { align-items:flex-start; flex-direction:column; }.pc-life-worldbar .pc-button { width:100%; } }

/* Focused exploration layer: route cards, encounters, and the field journal. */
.pc-route-panel,.pc-encounter-card { margin-top:1rem; padding:1rem; border:1px solid #c5b394; background:#f5ecdc; box-shadow:3px 3px 0 #ddcdb5; }
.pc-route-note,.pc-encounter-note { color:#788279; font-size:.62rem; }
.pc-route-grid { display:grid; gap:.55rem; margin-top:.7rem; }
.pc-route-card { display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:.65rem; min-height:74px; padding:.65rem; border:1px solid #cbb99c; border-left:4px solid #6b8c79; background:#fffaf0; color:#254854; text-align:left; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease; }
.pc-route-card:hover,.pc-route-card:focus-visible { transform:translateY(-2px); box-shadow:2px 3px 0 #c8b79d; border-color:#8d7253; outline:none; }
.pc-route-card.medium { border-left-color:#bd9140; }.pc-route-card.high { border-left-color:#b85d45; }
.pc-route-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#d9e4d8; color:#315c63; font:700 1.05rem Georgia,serif; }
.pc-route-card.medium .pc-route-icon { background:#efe0b3; color:#755d2d; }.pc-route-card.high .pc-route-icon { background:#edd0c2; color:#8b493b; }
.pc-route-card strong,.pc-route-card small { display:block; }.pc-route-card strong { font:700 .76rem Georgia,serif; }.pc-route-card small { margin-top:.2rem; color:#738078; font-size:.6rem; line-height:1.3; }.pc-route-card b { min-width:72px; color:#315c63; font-size:.64rem; text-align:right; }.pc-route-card b em { display:block; margin-top:.22rem; color:#6b7b72; font-size:.54rem; font-style:normal; font-weight:500; text-transform:uppercase; letter-spacing:.04em; }
.pc-encounter-card { border-color:#b85d45; background:#fff8ec; box-shadow:4px 4px 0 #dec5ad; animation:pcRise .28s ease both; }.pc-encounter-top { display:flex; align-items:center; gap:.65rem; }.pc-encounter-top h3 { margin-top:.2rem; color:#193a4b; font:700 1.16rem Georgia,serif; }.pc-encounter-card > p { color:#536760; font-size:.74rem; line-height:1.5; }.pc-encounter-choices { display:grid; gap:.5rem; margin-top:.8rem; }.pc-encounter-card .pc-event-choice { min-height:64px; }.pc-encounter-note { margin:.75rem 0 0; font-style:italic; }
.pc-field-stats { display:flex; gap:.4rem; margin-top:.7rem; }.pc-field-stats span { flex:1; padding:.4rem; background:#f0e7d7; color:#788279; font-size:.55rem; text-transform:uppercase; letter-spacing:.04em; }.pc-field-stats b { display:block; margin-top:.16rem; color:#315c63; font:700 .86rem Georgia,serif; text-transform:none; letter-spacing:0; }
.pc-journal article { display:grid; gap:.2rem; padding:.52rem; background:#f0e7d7; border-left:3px solid #a77739; }.pc-journal article small { color:#9a8266; font-size:.5rem; font-weight:800; letter-spacing:.05em; }.pc-journal article span { color:#315462; line-height:1.35; }.pc-journal article em { color:#6b7b72; font-size:.58rem; font-style:normal; line-height:1.35; }
@media (max-width:560px) { .pc-route-card { grid-template-columns:30px 1fr; min-height:78px; }.pc-route-card b { grid-column:2; min-width:0; text-align:left; }.pc-route-card b em { display:inline; margin-left:.35rem; }.pc-encounter-card { padding:.8rem; }.pc-encounter-card .pc-event-choice { min-height:72px; } }

/* Portfolio City combat + loadout slice */
.pc-combat-card { margin: 1.1rem 0; padding: 1.25rem; border: 1px solid #bd886b; background: linear-gradient(135deg,#fff8ed,#f6e4d4); box-shadow: 6px 6px 0 #decbb7; }
.pc-combat-flag { display:flex; align-items:center; gap:.75rem; justify-content:space-between; border-bottom:1px solid #e5cbb6; padding-bottom:.8rem; }
.pc-combat-flag > span { display:grid; place-items:center; width:42px; height:42px; background:#5a3e3a; color:#efbd76; border-radius:50%; font:700 1.45rem Georgia,serif; }
.pc-combat-flag > div { flex:1; }.pc-combat-flag h2 { margin:.25rem 0 0; color:#18334a; font:700 1.5rem Georgia,serif; }.pc-combat-flag > b { color:#a85e37; font:700 .7rem Georgia,serif; text-transform:uppercase; letter-spacing:.08em; }
.pc-combat-card > p { color:#596967; font-size:.8rem; line-height:1.45; }.pc-combat-battle { display:grid; grid-template-columns:1fr auto 1fr; gap:.8rem; align-items:center; margin:1rem 0 .75rem; }.pc-combat-side { padding:.75rem; background:#fffdf8; border:1px solid #d9d1c3; border-radius:4px; }.pc-combat-side-head { display:flex; justify-content:space-between; gap:.5rem; align-items:baseline; color:#18334a; font-size:.75rem; }.pc-combat-side-head span { color:#758078; font-size:.66rem; white-space:nowrap; }.pc-health { height:11px; margin:.5rem 0 .32rem; background:#e3d9d0; border-radius:99px; overflow:hidden; }.pc-health i { display:block; height:100%; background:#4f876f; transition:width .25s ease; }.pc-health.enemy i { background:#b45f4f; }.pc-combat-side small { color:#8a8175; font-size:.62rem; }.pc-combat-vs { color:#a85e37; font:700 .72rem Georgia,serif; letter-spacing:.08em; }.pc-combat-resources { display:flex; flex-wrap:wrap; gap:.5rem; margin:.7rem 0; }.pc-combat-resources span { padding:.42rem .55rem; background:#18334a; color:#dfe9df; border-radius:3px; font-size:.64rem; }.pc-combat-resources b { color:#efbd76; margin-left:.18rem; }.pc-combat-actions { display:grid; grid-template-columns:repeat(5,1fr); gap:.5rem; }.pc-combat-actions button { min-height:78px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; padding:.65rem; text-align:left; background:#fffdf8; color:#18334a; border:1px solid #cdb59d; border-radius:4px; cursor:pointer; box-shadow:2px 2px 0 #ddcdbb; }.pc-combat-actions button:hover:not(:disabled) { transform:translateY(-2px); border-color:#a85e37; }.pc-combat-actions button.soft { background:#f1eee6; }.pc-combat-actions button:disabled { opacity:.42; cursor:not-allowed; box-shadow:none; }.pc-combat-actions strong { font-size:.72rem; }.pc-combat-actions small { color:#7b837b; font-size:.61rem; line-height:1.3; margin-top:.3rem; }.pc-combat-log { margin-top:1rem; padding:.7rem .8rem; background:rgba(255,255,255,.58); border-left:3px solid #a85e37; }.pc-combat-log .pc-kicker { margin-bottom:.35rem; }.pc-combat-log p { margin:.2rem 0; color:#5e6b65; font-size:.68rem; }.pc-combat-note { margin-bottom:0; color:#8c765f!important; font-size:.68rem!important; }
.pc-inventory { margin-top:.9rem; padding:1rem; background:#fffdf8; border:1px solid #d8cbbb; box-shadow:4px 4px 0 #e6dccb; }.pc-inventory h3 { margin-top:.28rem; color:#18334a; font:700 1.22rem Georgia,serif; }.pc-capacity { color:#a85e37; font:700 .72rem Georgia,serif; }.pc-capacity.full { color:#b45f4f; }.pc-capacity-bar { height:6px; margin:.5rem 0 .7rem; background:#e8e0d4; border-radius:99px; overflow:hidden; }.pc-capacity-bar i { display:block; height:100%; background:#8ea58c; }.pc-capacity.full + .pc-capacity-bar i { background:#b45f4f; }.pc-item-list { display:grid; gap:.5rem; }.pc-item { border:1px solid #ded4c6; background:#faf7ef; border-radius:4px; padding:.5rem; }.pc-item.equipped { border-color:#9ab39d; background:#f0f5eb; }.pc-item-main { width:100%; display:grid; grid-template-columns:31px 1fr auto; gap:.5rem; align-items:center; text-align:left; border:0; padding:0; background:transparent; color:#18334a; cursor:pointer; }.pc-item-glyph { display:grid; place-items:center; width:28px; height:28px; background:#ead08e; border-radius:50%; font:700 1rem Georgia,serif; }.pc-item:nth-child(2) .pc-item-glyph { background:#b1d1dc; }.pc-item-main strong,.pc-item-main small,.pc-item-main em { display:block; }.pc-item-main strong { font-size:.72rem; }.pc-item-main small { color:#78847d; font-size:.59rem; margin-top:.15rem; }.pc-item-main em { color:#a85e37; font-size:.59rem; font-style:normal; margin-top:.15rem; }.pc-item-main > b { color:#4f876f; font-size:.58rem; text-transform:uppercase; letter-spacing:.05em; }.pc-item-actions { display:flex; gap:.35rem; margin:.45rem 0 0 2.25rem; }.pc-item-actions button { padding:.3rem .45rem; background:#fffdf8; border:1px solid #cdbfae; border-radius:3px; color:#27465a; font-size:.6rem; font-weight:800; cursor:pointer; }.pc-item-actions button:hover:not(:disabled) { border-color:#a85e37; }.pc-item-actions button:disabled { opacity:.4; cursor:not-allowed; }.pc-item-detail { margin-top:.7rem; padding:.65rem; background:#18334a; color:#fffaf1; }.pc-item-detail .pc-kicker { color:#efbd76; }.pc-item-detail strong { display:block; margin:.25rem 0; font:700 .9rem Georgia,serif; }.pc-item-detail p,.pc-item-detail small { color:rgba(255,250,241,.72); font-size:.66rem; line-height:1.4; }.pc-item-detail p { margin:.25rem 0; }
.combat-entry { background:#5a3e3a!important; border-color:#5a3e3a!important; color:#fffaf1!important; }
@media (max-width:800px) { .pc-combat-actions { grid-template-columns:repeat(2,1fr); }.pc-combat-actions button:last-child { grid-column:span 2; }.pc-combat-flag { align-items:flex-start; }.pc-combat-flag > b { max-width:75px; text-align:right; }.pc-inventory { margin-top:1rem; } }
@media (max-width:560px) { .pc-combat-card { padding:.85rem; box-shadow:4px 4px 0 #decbb7; }.pc-combat-battle { grid-template-columns:1fr; gap:.35rem; }.pc-combat-vs { text-align:center; }.pc-combat-resources { gap:.3rem; }.pc-combat-resources span { flex:1; text-align:center; min-width:calc(50% - .3rem); }.pc-combat-actions { gap:.4rem; }.pc-combat-actions button { min-height:90px; }.pc-item-actions { margin-left:0; }.pc-item-main { grid-template-columns:28px 1fr; }.pc-item-main > b { grid-column:2; justify-self:start; }.pc-section-heading { align-items:start; } }

/* Portfolio City — factions, quests, and branching story */
.pc-story-panel { margin: 1rem 0; padding: 1rem; border: 1px solid #b79b79; background: linear-gradient(135deg,#fffaf0,#f4e8d6); box-shadow: 5px 5px 0 #ddcdb5; }
.pc-story-preview { border-style: dashed; background: #f7efdf; }
.pc-story-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:.45rem; }
.pc-story-head h3 { margin-top:.25rem; color:#193a4b; font:700 1.3rem Georgia,serif; }
.pc-story-status,.pc-story-lock { padding:.3rem .45rem; color:#6d4b2c; background:#ead7a9; font-size:.58rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.pc-story-lock { background:#e8ded0; color:#7b6c5d; }
.pc-story-intro,.pc-story-panel > p { color:#5d6c66; font-size:.73rem; line-height:1.5; }
.pc-story-fine { display:block; margin-top:.8rem; color:#8a7968; font-size:.62rem; line-height:1.45; }
.pc-faction-preview { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.8rem; }
.pc-faction-preview span { padding:.5rem .65rem; border:1px solid #cfbd9e; background:#fffaf0; color:#315462; font:700 .68rem Georgia,serif; }
.pc-faction-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:.85rem; }
.pc-faction-card { min-width:0; padding:.7rem; border:1px solid #cfc0aa; background:#fffdf8; }
.pc-faction-card.tideglass { border-top:3px solid #5d9a91; }.pc-faction-card.ashline { border-top:3px solid #ae6948; }
.pc-faction-card-top { display:flex; align-items:center; gap:.5rem; }
.pc-faction-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#d4e5df; color:#315c63; font:700 1rem Georgia,serif; }
.pc-faction-card.ashline .pc-faction-mark { background:#edd2c0; color:#8c4d3a; }
.pc-faction-card-top > div { min-width:0; flex:1; }.pc-faction-card-top strong,.pc-faction-card-top small { display:block; }.pc-faction-card-top strong { color:#193a4b; font:700 .76rem Georgia,serif; }.pc-faction-card-top small { margin-top:.12rem; color:#7b837b; font-size:.58rem; }.pc-faction-card-top b { color:#a85e37; font:700 1.05rem Georgia,serif; }
.pc-faction-meter { height:6px; margin:.62rem 0 .4rem; background:linear-gradient(90deg,#e7cfc3 0 50%,#d5e2d5 50%); overflow:hidden; }.pc-faction-meter i { display:block; height:100%; background:#5d9a91; transition:width .35s ease; }.ashline .pc-faction-meter i { background:#ae6948; }
.pc-faction-card p { margin:.25rem 0; color:#5d6c66; font-size:.61rem; line-height:1.35; }.pc-faction-card p b { color:#a85e37; }.pc-faction-attitude { display:block; min-height:27px; color:#857867; font-size:.59rem; line-height:1.35; }
.pc-story-button { margin-top:.6rem; border:1px solid #a98b68; border-radius:3px; padding:.48rem .62rem; background:#315c63; color:#fff8e9; cursor:pointer; font:700 .63rem system-ui,sans-serif; box-shadow:2px 2px 0 #24464d; }.pc-story-button:hover { transform:translateY(-1px); }.pc-story-button.tide { background:#4d8b82; border-color:#39756e; }.pc-story-button.ash { background:#a96043; border-color:#8b4f39; }.pc-story-button:disabled { opacity:.45; cursor:not-allowed; }
.pc-quest-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:.8rem; }.pc-quest-card { display:flex; flex-direction:column; justify-content:space-between; gap:.35rem; min-height:126px; padding:.75rem; border:1px solid #cfc0aa; background:#faf4e8; }.pc-quest-card.main { border-left:4px solid #b85d45; }.pc-quest-card.side { border-left:4px solid #6c9c7b; }.pc-quest-type { color:#a85e37; font-size:.57rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.pc-quest-card h4 { margin:.2rem 0 .3rem; color:#193a4b; font:700 .95rem Georgia,serif; }.pc-quest-card p { color:#64736c; font-size:.64rem; line-height:1.4; }.pc-choice-row { display:flex; flex-wrap:wrap; gap:.35rem; }.pc-choice-row .pc-story-button { flex:1; min-width:120px; }
.pc-story-journal { margin-top:.8rem; padding:.75rem; border:1px solid #d1c0a7; background:#f0e5d4; }.pc-story-journal-head { display:flex; justify-content:space-between; align-items:center; gap:.5rem; }.pc-story-journal-head b { color:#8b765b; font-size:.58rem; font-weight:600; }.pc-journal-columns { display:grid; grid-template-columns:1fr 1.4fr; gap:.8rem; margin-top:.55rem; }.pc-journal-columns strong { color:#315462; font:700 .68rem Georgia,serif; }.pc-journal-columns p { margin-top:.35rem; color:#5f7068; font-size:.61rem; line-height:1.4; }.pc-journal-columns p.done { color:#397253; text-decoration:line-through; }.pc-journal-columns .muted { color:#8a8175; }.pc-story-log { display:grid; gap:.25rem; margin-top:.65rem; padding-top:.55rem; border-top:1px solid #ddcdb7; color:#7a7468; font-size:.58rem; line-height:1.35; }
@media (max-width:620px) { .pc-faction-grid,.pc-quest-grid,.pc-journal-columns { grid-template-columns:1fr; }.pc-story-head { flex-direction:column; gap:.35rem; }.pc-story-status,.pc-story-lock { white-space:normal; }.pc-choice-row { flex-direction:column; }.pc-choice-row .pc-story-button { width:100%; } }
.pc-opportunity { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.7rem; padding:.75rem; border:1px solid #9db8a1; background:#e8f0e5; }.pc-opportunity.ashline { border-color:#d1a184; background:#f7e9dd; }.pc-opportunity h4 { margin:.2rem 0 .25rem; color:#315462; font:700 .9rem Georgia,serif; }.pc-opportunity p { max-width:650px; color:#5f7068; font-size:.62rem; line-height:1.4; }.pc-opportunity small { color:#7c796f; font-size:.6rem; text-align:right; }.pc-future-path { display:grid; gap:.22rem; margin-top:.7rem; padding-top:.65rem; border-top:1px dashed #cbb99c; }.pc-future-path strong { color:#315462; font:700 .72rem Georgia,serif; }.pc-future-path small { color:#817c71; font-size:.6rem; line-height:1.4; }
@media (max-width:560px) { .pc-opportunity { align-items:flex-start; flex-direction:column; }.pc-opportunity .pc-story-button { width:100%; } }

/* Inventory management affordances */
.pc-pack-actions { display:flex; align-items:center; gap:.6rem; margin-top:.8rem; padding-top:.7rem; border-top:1px dashed #d6c7b4; }
.pc-item-manage { padding:.42rem .58rem; border:1px solid #a98b68; border-radius:3px; background:#315c63; color:#fff8e9; font-size:.61rem; font-weight:800; cursor:pointer; }
.pc-item-manage:hover:not(:disabled) { transform:translateY(-1px); background:#244c54; }
.pc-item-manage:disabled { opacity:.45; cursor:not-allowed; }
.pc-pack-actions small { color:#7d867f; font-size:.6rem; line-height:1.3; }
.pc-item-drop { color:#8b493b!important; }
@media (max-width:560px) { .pc-pack-actions { align-items:flex-start; flex-direction:column; }.pc-item-manage { width:100%; } }

/* Accessibility refinements */
:root {
  /* Meets readable contrast on the site's light surfaces. */
  --accent: #855c28;
  --focus: #0b63ce;
}

html { scroll-padding-top: 5.5rem; }
body { font-size: 1rem; }
button, input { font: inherit; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed;
  left: 1rem;
  top: .75rem;
  z-index: 100;
  padding: .7rem 1rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
  transform: translateY(-180%);
  transition: transform .15s ease;
}
.skip-link:focus { transform: translateY(0); color: var(--white); }

/* Keep a strong, consistent focus indicator for keyboard users. */
a:focus-visible, button:focus-visible, input:focus-visible, iframe:focus-visible,
.company-card:focus-within {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}
.nav { gap: 1rem; }
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: .65rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--white);
  color: var(--navy);
  cursor: pointer;
}
.nav-toggle:hover { border-color: var(--navy); background: var(--off-white); }
.nav-toggle-icon { display: grid; gap: 4px; }
.nav-toggle-icon span { display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.nav-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.hero .hero-eyebrow { color: #efbd76; }

/* The footer is a dark, high-contrast landmark rather than light text on white. */
.footer { background: var(--navy); border-top-color: var(--navy-2); }
.footer a { color: #f3d5a3; }
.footer a:hover { color: var(--white); }
.footer-heading { color: var(--white); }
.footer-tagline, .footer-bottom { color: #d3dae5; }
.footer-bottom { border-top-color: rgba(255,255,255,.22); }

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.newsletter-form input[type="email"]:focus-visible {
  outline: 3px solid #f3d5a3;
  outline-offset: 3px;
  border-color: #f3d5a3;
}
.newsletter-status { border-radius: 5px; }
.newsletter-status.success, .newsletter-status.error { padding: .45rem .7rem; }
.newsletter-status.error { border: 1px solid #ffb4b4; background: rgba(255,180,180,.12); }
.newsletter-status.success { border: 1px solid #9be3a3; background: rgba(155,227,163,.1); }
.newsletter-form input[aria-invalid="true"] { border-color: #ffb4b4; box-shadow: 0 0 0 2px rgba(255,180,180,.25); }

/* The card title is now a heading, without changing its visual scale. */
.company-name, .follow-along-teaser-title { display: block; }
.preview-subtitle { border: 0; padding: 0; }

@media (max-width: 820px) {
  .nav { flex-wrap: wrap; align-items: center; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .nav-links {
    order: 3;
    flex-basis: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .15rem;
    padding-top: .75rem;
    border-top: 1px solid var(--border);
  }
  .nav-links a { width: 100%; padding: .55rem .25rem; }
  .nav-links a::after { display: none; }
}

@media (max-width: 480px) {
  .nav { padding-left: 1rem; padding-right: 1rem; }
  .logo-img { height: 40px; }
  .hero-title { line-height: 1.12; }
  .newsletter-form { align-items: stretch; }
  .newsletter-form input[type="email"], .newsletter-form button { flex-basis: 100%; min-height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .skip-link, a, button, .nav-toggle { transition: none !important; }
}

/* Give secondary navigation and anchor controls comfortable touch targets. */
.footer-links a, .footer-social a, .portfolio-city-details, .contact-email {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* Portfolio City accessibility layer: readable at a glance, without relying on
   color, hover, or motion to explain the game. */
.portfolio-city-page .pc-game-shell { overflow-x: clip; }
.portfolio-city-page .pc-game-shell button,
.portfolio-city-page .pc-game-shell a { min-height: 44px; }
.portfolio-city-page .pc-game-shell button:focus-visible,
.portfolio-city-page .pc-game-shell a:focus-visible,
.portfolio-city-page .pc-game-shell input:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fffdf8;
  position: relative;
  z-index: 5;
}
.portfolio-city-page .pc-game-shell p,
.portfolio-city-page .pc-game-shell small,
.portfolio-city-page .pc-game-shell em,
.portfolio-city-page .pc-game-shell b,
.portfolio-city-page .pc-game-shell span { line-height: 1.45; }
.portfolio-city-page .pc-game-shell small,
.portfolio-city-page .pc-game-shell em { font-size: max(.7rem, .72em); }
.portfolio-city-page .pc-game-shell .pc-kicker { font-size: .75rem; }
.portfolio-city-page .pc-game-shell .pc-need small,
.portfolio-city-page .pc-game-shell .pc-item-main small,
.portfolio-city-page .pc-game-shell .pc-item-main em,
.portfolio-city-page .pc-game-shell .pc-log p,
.portfolio-city-page .pc-game-shell .pc-journal article { font-size: .75rem; }
.portfolio-city-page .pc-game-shell .pc-social-choice,
.portfolio-city-page .pc-game-shell .pc-item-actions button,
.portfolio-city-page .pc-game-shell .pc-item-manage { min-height: 44px; padding: .55rem .65rem; }
.portfolio-city-page .pc-game-shell .pc-need,
.portfolio-city-page .pc-game-shell .pc-health,
.portfolio-city-page .pc-game-shell .pc-relationship-meter,
.portfolio-city-page .pc-game-shell .pc-capacity-bar,
.portfolio-city-page .pc-game-shell .pc-xp { position: relative; }
.portfolio-city-page .pc-game-shell .pc-meter,
.portfolio-city-page .pc-game-shell .pc-health,
.portfolio-city-page .pc-game-shell .pc-relationship-meter,
.portfolio-city-page .pc-game-shell .pc-capacity-bar,
.portfolio-city-page .pc-game-shell .pc-xp { forced-color-adjust: none; }
.portfolio-city-page .pc-game-shell .pc-lock-actions .pc-button,
.portfolio-city-page .pc-game-shell .pc-location-actions .pc-button { min-height: 48px; }
.portfolio-city-page .pc-game-shell .pc-overlay-panel[role=dialog] { position: relative; }
@media (max-width: 560px) {
  .portfolio-city-page .pc-game-shell .pc-activity-card,
  .portfolio-city-page .pc-game-shell .pc-action-card,
  .portfolio-city-page .pc-game-shell .pc-event-choice,
  .portfolio-city-page .pc-game-shell .pc-route-card,
  .portfolio-city-page .pc-game-shell .pc-combat-actions button { min-height: 74px; }
  .portfolio-city-page .pc-game-shell .pc-avatar,
  .portfolio-city-page .pc-game-shell .pc-trait { min-height: 64px; }
  .portfolio-city-page .pc-game-shell .pc-world-map { min-height: 430px; }
  .portfolio-city-page .pc-game-shell .pc-world-node { min-height: 64px; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-city-page .pc-game-shell *,
  .portfolio-city-page .pc-game-shell *::before,
  .portfolio-city-page .pc-game-shell *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .portfolio-city-page .pc-game-shell button:hover,
  .portfolio-city-page .pc-game-shell a:hover { transform: none !important; }
}

/* Raise secondary copy to a readable contrast level on the warm game surfaces. */
.portfolio-city-page .pc-game-shell .pc-stat small,
.portfolio-city-page .pc-game-shell .pc-map-hint,
.portfolio-city-page .pc-game-shell .pc-tap-note,
.portfolio-city-page .pc-game-shell .pc-map-caption,
.portfolio-city-page .pc-game-shell .pc-helper,
.portfolio-city-page .pc-game-shell .pc-action-sub,
.portfolio-city-page .pc-game-shell .pc-panel-copy,
.portfolio-city-page .pc-game-shell .pc-activity-card small,
.portfolio-city-page .pc-game-shell .pc-action-card small,
.portfolio-city-page .pc-game-shell .pc-business-option small,
.portfolio-city-page .pc-game-shell .pc-event-choice small,
.portfolio-city-page .pc-game-shell .pc-resident-meta,
.portfolio-city-page .pc-game-shell .pc-resident-top small,
.portfolio-city-page .pc-game-shell .pc-resident-card p,
.portfolio-city-page .pc-game-shell .pc-journal small,
.portfolio-city-page .pc-game-shell .pc-journal article em,
.portfolio-city-page .pc-game-shell .pc-item-main small,
.portfolio-city-page .pc-game-shell .pc-item-main em,
.portfolio-city-page .pc-game-shell .pc-pack-actions small,
.portfolio-city-page .pc-game-shell .pc-story-fine,
.portfolio-city-page .pc-game-shell .pc-future-path small { color: #4f5e59; }
.portfolio-city-page .pc-game-shell .pc-needs-note,
.portfolio-city-page .pc-game-shell .pc-needs .pc-need small,
.portfolio-city-page .pc-game-shell .pc-fineprint { color: #d9e3dc; }
.portfolio-city-page .pc-game-shell .pc-setup p,
.portfolio-city-page .pc-game-shell .pc-setup small { color: #4f5e59; }

/* Guide page accessibility refinements. The copy remains the same, but the
   reading measure, spacing, focus treatment, and purchase feedback are
   comfortable at zoom and on narrow screens. */
.guide-detail .guide-card {
  width: min(100%, 760px);
  padding: clamp(1.5rem, 4vw, 2.5rem);
}
.guide-detail .guide-card-copy,
.guide-detail .guide-card-copy p,
.guide-detail .guide-list li {
  max-width: 68ch;
}
.guide-card-copy p,
.guide-list li { line-height: 1.7; }
.guide-list li { padding-left: 1.75rem; }
.guide-list li::before { top: .1em; }
.guide-buy-row { align-items: center; }
.guide-price { min-height: 48px; display: inline-flex; align-items: center; }
.btn-buy { min-height: 48px; }
.guide-purchase-disclosure {
  max-width: 68ch;
  margin-top: .9rem;
  padding: .8rem 1rem;
  border-left: 3px solid var(--accent);
  background: var(--off-white);
  color: var(--charcoal);
  font-size: .9rem;
  line-height: 1.55;
}
.guide-purchase-status {
  min-height: 1.6em;
  margin-top: .75rem;
  color: var(--navy);
  font-size: .95rem;
  font-weight: 600;
}
.btn-buy:focus-visible,
.guide-purchase-status:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
@media (max-width: 560px) {
  .guide-detail .guide-card { padding: 1.35rem 1.15rem; }
  .guide-buy-row { align-items: stretch; flex-direction: column; gap: .7rem; }
  .guide-price { min-height: 0; }
  .guide-buy-row .btn-buy { width: 100%; }
}
/* The focused guide page has no scroll-reveal dependency: its content is
   visible immediately for users with scripts disabled or reduced motion. */
.guide-detail .fade-in { opacity: 1; transform: none; }


/* Expanded editorial detail is deliberately scoped to /guide. */
.guide-detail .section-header { max-width: 780px; margin-bottom: 2.25rem; }
.guide-detail .guide-card { width: min(100%, 960px); }
.guide-detail .guide-card-copy { max-width: none; }
.guide-detail .guide-intro { max-width: 72ch; margin-bottom: 1.4rem; }
.guide-lessons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}
.guide-lesson {
  min-width: 0;
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  border-radius: 8px;
  background: #fbfcfd;
}
.guide-lesson-priority { grid-column: 1 / -1; }
.guide-lesson-kicker {
  margin: 0 0 .55rem !important;
  color: #805b29 !important;
  font-size: .72rem !important;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.35 !important;
  text-transform: uppercase;
}
.guide-lesson h2 {
  margin: 0 0 .55rem;
  color: var(--navy);
  font-size: 1.2rem;
  line-height: 1.3;
  letter-spacing: -.015em;
}
.guide-lesson p:last-child {
  max-width: 65ch;
  margin-bottom: 0;
  color: var(--charcoal);
  font-size: .96rem;
  line-height: 1.68;
}
.guide-detail .guide-fine { max-width: 68ch; }
.guide-faq {
  max-width: 960px;
  margin: 3rem auto 0;
  padding: 0;
  border: 0;
}
.guide-faq .section-eyebrow { margin-bottom: .4rem; }
.guide-faq .section-title { margin-bottom: 1.1rem; }
.guide-faq-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem 1rem;
}
.guide-faq-item {
  min-width: 0;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--white);
}
.guide-faq-item h3 {
  margin: 0 0 .45rem;
  color: var(--navy);
  font-size: 1rem;
  line-height: 1.4;
}
.guide-faq-item p {
  margin: 0;
  color: var(--charcoal);
  font-size: .94rem;
  line-height: 1.62;
  overflow-wrap: anywhere;
}
@media (max-width: 640px) {
  .guide-lessons,
  .guide-faq-list { grid-template-columns: minmax(0, 1fr); }
  .guide-lesson-priority { grid-column: auto; }
  .guide-lesson { padding: 1.05rem 1.1rem; }
  .guide-faq { margin-top: 2.25rem; }
}

/* Membership accessibility and interaction states */
.membership-auth-content,
.membership-content {
  width: min(100%, 860px);
  margin: 0 auto;
}
.membership-cancellation-card {
  max-width: 720px;
  margin: 1.75rem auto 0;
  padding: 1.2rem 1.35rem 1.25rem;
  border: 2px solid #e4c48d;
  border-left: 6px solid #b97822;
  border-radius: 12px;
  background: #fffaf0;
  color: var(--charcoal);
  text-align: left;
  box-shadow: 0 10px 28px rgba(24, 36, 58, .12);
}
.membership-card-label {
  display: block;
  margin-bottom: .4rem;
  color: #795018;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.membership-cancellation-card h2 {
  margin: 0 0 .55rem;
  color: var(--navy);
  font-size: 1.2rem;
  line-height: 1.25;
}
.membership-cancellation-card p {
  margin: .55rem 0 0;
  font-size: .98rem;
  line-height: 1.6;
}
.membership-cancellation-link {
  color: #6f4614;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.membership-cancellation-link:hover { color: var(--navy); }

.membership-auth-intro { text-align: center; }
.membership-auth-intro .hero-subtitle { max-width: 44rem; }
.membership-offer {
  max-width: 720px;
  margin: 1.4rem auto 0;
  padding: 1.6rem 1.8rem 1.75rem;
  border: 1px solid #e4c48d;
  border-left: 6px solid #b97822;
  border-radius: 12px;
  background: #fffaf0;
  color: var(--charcoal);
  text-align: left;
  box-shadow: 0 12px 32px rgba(4, 13, 29, .22);
}
.membership-offer-price {
  display: flex;
  align-items: baseline;
  gap: .65rem;
  flex-wrap: wrap;
  margin: 0 0 .8rem;
  color: #795018;
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.membership-offer-price strong {
  color: var(--navy);
  font-size: 1.4rem;
  letter-spacing: 0;
  white-space: nowrap;
}
.membership-offer h2 {
  margin: 0 0 .55rem;
  color: var(--navy);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  line-height: 1.25;
}
.membership-offer > p:last-child {
  max-width: 62ch;
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.65;
}
.membership-auth-shortcuts {
  display: flex;
  justify-content: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin: 1rem auto 0;
}
.membership-auth-shortcuts a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: .6rem 1rem;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 999px;
  color: #fff;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
}
.membership-auth-shortcuts a:hover { background: rgba(255, 255, 255, .12); }
.membership-auth-shortcuts a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}
.membership-auth-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 2.5rem auto 0;
  border: 2px solid #d5dbe5;
  border-radius: 14px;
  overflow: hidden;
  background: var(--white);
  color: var(--charcoal);
  text-align: left;
  box-shadow: 0 16px 45px rgba(0, 0, 0, .22);
}
.membership-auth-section { padding: 2rem; }
.membership-auth-section + .membership-auth-section { border-left: 1px solid #d5dbe5; }
.membership-auth-section h2,
.membership-state-card h2 {
  color: var(--navy);
  font-size: 1.45rem;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}
.membership-form { display: grid; gap: 1rem; }
.membership-field { display: grid; gap: .4rem; }
.membership-field label {
  color: var(--navy);
  font-weight: 700;
  line-height: 1.3;
}
.membership-field input {
  width: 100%;
  min-height: 48px;
  padding: .7rem .8rem;
  border: 2px solid #64748b;
  border-radius: 7px;
  background: var(--white);
  color: var(--charcoal);
  font-size: 1rem;
}
.membership-field input::placeholder { color: #536173; }
.membership-field input:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  border-color: var(--focus);
}
.membership-field-help { color: #536173; font-size: .9rem; }
.membership-field label .membership-field-help { font-weight: 400; }
.membership-form-submit { width: 100%; min-height: 50px; margin-top: .35rem; }
.membership-form-error {
  max-width: 680px;
  margin: 1.5rem auto -1rem;
  padding: .9rem 1rem;
  border: 2px solid #f2a5a5;
  border-left: 5px solid #b42318;
  border-radius: 7px;
  background: #fff4f3;
  color: #7a1b14;
  text-align: left;
  font-weight: 700;
}
.membership-state-card {
  max-width: 720px;
  margin: 2.25rem auto 0;
  padding: 2rem 2.25rem;
  border: 2px solid #d5dbe5;
  border-radius: 14px;
  background: var(--white);
  color: var(--charcoal);
  text-align: left;
  box-shadow: 0 16px 45px rgba(0, 0, 0, .22);
}
.membership-state-card p { font-size: 1.05rem; line-height: 1.7; }
.membership-state-card a {
  color: #6f4614;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.membership-state-card a:hover { color: var(--navy); }
.membership-purchase-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.membership-purchase-actions .btn-buy { min-width: 230px; }
.membership-purchase-status {
  flex: 1 1 240px;
  min-height: 1.55em;
  color: #334155;
  font-size: .95rem;
  font-weight: 600;
}
.membership-purchase-status--error { color: #a32119; }
.membership-signout-form { margin-top: 1.5rem; }
.membership-secondary-button {
  min-height: 44px;
  padding: .55rem .85rem;
  border: 2px solid #64748b;
  border-radius: 7px;
  background: var(--white);
  color: var(--navy);
  font-weight: 700;
  cursor: pointer;
}
.membership-secondary-button:hover { border-color: var(--navy); background: #f1f5f9; }

@media (max-width: 700px) {
  .membership-auth-panel { grid-template-columns: 1fr; }
  .membership-auth-section + .membership-auth-section { border-left: 0; border-top: 1px solid #d5dbe5; }
}
@media (max-width: 560px) {
  .membership-auth-section,
  .membership-state-card { padding: 1.35rem; }
  .membership-auth-panel,
  .membership-state-card { margin-top: 1.75rem; border-radius: 10px; }
  .membership-purchase-actions { display: block; }
  .membership-purchase-actions .btn-buy { width: 100%; }
  .membership-purchase-status { margin-top: .8rem; }
}

/* Blog accessibility and reading layout. The article copy remains unchanged;
   these classes provide semantic landmarks, readable measure, and high-contrast
   links without relying on hover or color alone. */
.blog-main { overflow-x: clip; }
.blog-container {
  width: min(100%, 74ch);
  margin: 0 auto;
  text-align: left;
}
.blog-index {
  min-height: auto;
  padding: clamp(3rem, 6vw, 5rem) 1.25rem clamp(4rem, 7vw, 6rem);
  text-align: left;
}
.blog-index-header { margin-bottom: 2.5rem; }
.blog-index .hero-title,
.blog-article .hero-title { text-align: left; }
.blog-index .hero-subtitle {
  max-width: 66ch;
  margin: 0;
  text-align: left;
}
.blog-list { margin: 0; }
.blog-card {
  margin: 0 0 1.25rem;
  padding: 1.5rem;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 12px;
  background: rgba(255,255,255,.045);
}
.blog-card:last-child { margin-bottom: 0; }
.blog-card h2 {
  margin: 0 0 .65rem;
  font-size: clamp(1.2rem, 2.4vw, 1.5rem);
  line-height: 1.25;
}
.blog-card h2 a,
.blog-card-read,
.blog-breadcrumb a,
.article-body a { color: #f3d5a3; }
.blog-card h2 a { text-decoration: underline; text-decoration-thickness: .1em; text-underline-offset: .16em; }
.blog-card h2 a:hover,
.blog-card-read:hover,
.blog-breadcrumb a:hover,
.article-body a:hover { color: #fff; }
.blog-card-date {
  margin: 0 0 .45rem;
  color: #d3dae5;
  font-size: .9rem;
}
.blog-card-excerpt {
  margin: 0 0 .9rem;
  color: #edf1f7;
  line-height: 1.7;
}
.blog-card-read {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .16em;
}
.blog-article {
  min-height: auto;
  padding: clamp(3rem, 6vw, 5rem) 1.25rem clamp(4rem, 7vw, 6rem);
  text-align: left;
}
.blog-breadcrumb { margin-bottom: 1.75rem; }
.blog-breadcrumb a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .16em;
}
.article-header { margin-bottom: 2.25rem; }
.article-meta {
  margin: 0;
  color: #d3dae5;
  font-size: 1rem;
  line-height: 1.6;
}
.article-body {
  max-width: 74ch;
  color: #f4f6fa;
  font-size: 1.06rem;
  line-height: 1.8;
}
.article-body p { margin-bottom: 1.15rem; }
.article-body li { margin-bottom: .75rem; }
.article-body a {
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: .16em;
}
.article-body strong { color: #fff; }
.article-faq,
.article-related {
  margin-top: 2.75rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255,255,255,.28);
}
.article-faq h2,
.article-related h2 { margin-top: 0; }
.article-faq-list { display: grid; gap: .7rem; }
.article-faq-item {
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  background: rgba(255,255,255,.045);
}
.article-faq-item summary {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 3.25rem;
  padding: .8rem 1rem;
  color: #fff;
  cursor: pointer;
  font-weight: 700;
  line-height: 1.45;
  list-style: none;
}
.article-faq-item summary::-webkit-details-marker { display: none; }
.article-faq-item summary::before {
  content: "+";
  flex: 0 0 1.1rem;
  color: #f3d5a3;
  font-size: 1.35rem;
  line-height: 1;
  text-align: center;
}
.article-faq-item[open] summary::before { content: "−"; }
.article-faq-item summary:focus-visible {
  outline: 3px solid #8fc5ff;
  outline-offset: -3px;
  border-radius: 7px;
}
.article-faq-answer { padding: 0 1rem .1rem 2.85rem; color: #edf1f7; }
.article-related ul { margin: 0 0 1.1rem; padding-left: 1.35rem; }
.article-related li { padding-left: .15rem; }
.article-related p { margin-bottom: 0; }

@media (max-width: 560px) {
  .blog-index,
  .blog-article { padding-left: 1rem; padding-right: 1rem; }
  .blog-index-header { margin-bottom: 2rem; }
  .blog-card { padding: 1.15rem; }
  .article-body { font-size: 1rem; line-height: 1.75; }
  .article-faq-answer { padding-left: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .blog-card a, .blog-breadcrumb a, .article-body a { transition: none; }
}

/* Privacy Policy accessibility layer. Scoped so the Terms page and other routes
   keep their existing visual treatment. */
.privacy-page {
  animation: none;
  background: var(--navy);
}
.privacy-page::before {
  animation: none;
}
.privacy-page .legal-container {
  width: min(100%, 68ch);
}
.privacy-page .legal-container > .hero-title {
  text-wrap: balance;
}
.privacy-page .legal-container > .hero-subtitle {
  color: #e5eaf2;
}
.privacy-page .legal-body {
  color: #f1f4f8;
  font-size: 1.0625rem;
  line-height: 1.8;
}
.privacy-page .legal-body h2 {
  color: #ffffff;
  font-size: 1.4rem;
  line-height: 1.3;
  margin-top: 2.75rem;
  margin-bottom: .8rem;
  scroll-margin-top: 6.5rem;
  text-wrap: balance;
}
.privacy-page .legal-body p {
  max-width: 68ch;
  margin-bottom: 1.2rem;
}
.privacy-page .legal-body ul {
  margin-bottom: 1.35rem;
  padding-left: 1.35rem;
}
.privacy-page .legal-body li {
  margin-bottom: .8rem;
  padding-left: .2rem;
}
.privacy-page .legal-body a {
  color: #f6c982;
  text-decoration-thickness: .1em;
  text-underline-offset: .18em;
}
.privacy-page .legal-body a:hover {
  color: #ffffff;
}
.privacy-page .legal-notice {
  color: #f4f6fa;
  font-size: 1rem;
  line-height: 1.65;
  border-color: rgba(246, 201, 130, .7);
  background: rgba(183, 136, 70, .16);
}

@media (max-width: 560px) {
  .privacy-page .legal-body {
    font-size: 1rem;
    line-height: 1.75;
  }
  .privacy-page .legal-body h2 {
    font-size: 1.25rem;
    margin-top: 2.25rem;
  }
  .privacy-page .legal-body li {
    margin-bottom: .7rem;
  }
}

/* Terms of Service accessibility layout: the legal copy stays intact while
   the document gains a comfortable reading measure and a usable section index. */
.terms-page::before { animation: none; }
.terms-page .legal-container { width: min(100%, 68ch); }
.terms-page .legal-container > .hero-title { text-wrap: balance; }
.terms-page .legal-container > .hero-subtitle { color: #e5eaf2; }
.terms-page .legal-body {
  color: #f1f4f8;
  font-size: 1.0625rem;
  line-height: 1.8;
  overflow-wrap: anywhere;
}
.terms-page .legal-body h2 {
  color: #ffffff;
  font-size: 1.4rem;
  line-height: 1.3;
  margin-top: 2.75rem;
  margin-bottom: .8rem;
  scroll-margin-top: 6.5rem;
  text-wrap: balance;
}
.terms-page .legal-body p { max-width: 68ch; margin-bottom: 1.2rem; }
.terms-page .legal-body ul { margin-bottom: 1.35rem; padding-left: 1.35rem; }
.terms-page .legal-body li { margin-bottom: .8rem; padding-left: .2rem; }
.terms-page .legal-body a {
  color: #f6c982;
  text-decoration: underline;
  text-decoration-thickness: .1em;
  text-underline-offset: .18em;
}
.terms-page .legal-body a:hover { color: #ffffff; }
.terms-page .legal-notice {
  color: #f4f6fa;
  font-size: 1rem;
  line-height: 1.65;
  border-color: rgba(246, 201, 130, .7);
  background: rgba(183, 136, 70, .16);
}
.legal-toc {
  margin: 0 0 2rem;
  padding: 1.1rem 1.25rem 1.2rem;
  border: 1px solid rgba(246, 201, 130, .55);
  border-radius: 4px;
  background: rgba(255, 255, 255, .06);
  scroll-margin-top: 6.5rem;
}
.legal-toc h2 {
  color: #ffffff;
  font-size: 1.15rem;
  line-height: 1.3;
  margin: 0 0 .65rem;
}
.legal-toc ol {
  margin: 0;
  padding-left: 1.35rem;
  columns: 2;
  column-gap: 2rem;
}
.legal-toc li {
  margin: 0 0 .35rem;
  padding-left: .15rem;
  break-inside: avoid;
}
.legal-toc a {
  color: #f6c982;
  text-decoration: underline;
  text-decoration-thickness: .1em;
  text-underline-offset: .18em;
}
.legal-toc a:hover { color: #ffffff; }

@media (max-width: 560px) {
  .terms-page .legal-body { font-size: 1rem; line-height: 1.75; }
  .terms-page .legal-body h2 { font-size: 1.25rem; margin-top: 2.25rem; }
  .terms-page .legal-body li { margin-bottom: .7rem; }
  .legal-toc ol { columns: 1; }
  .legal-toc { padding: .9rem 1rem 1rem; }
}

/* Privacy contents and links remain easy to scan and identify as links. */
.privacy-toc { margin-top: 1.5rem; }
.privacy-page .legal-body a { text-decoration: underline; }
.privacy-page .legal-body code {
  padding: .08em .28em;
  border: 1px solid rgba(246, 201, 130, .35);
  border-radius: 3px;
  color: #fff1cf;
  background: rgba(0, 0, 0, .16);
  font-size: .9em;
  overflow-wrap: anywhere;
}
@media (max-width: 560px) {
  .privacy-toc ol { columns: 1; }
  .privacy-toc { padding: .9rem 1rem 1rem; }
}

/* Packd portfolio profile — a compact editorial record that keeps the
   Linkedd navy/bronze system while making source limits easy to scan. */
.packd-profile-hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem;
  color: var(--white);
  background: linear-gradient(145deg, var(--navy) 0%, var(--navy-2) 62%, #243856 100%);
}
.packd-profile-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -170px;
  top: -180px;
  border: 1px solid rgba(183,136,70,.45);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(183,136,70,.06), 0 0 0 58px rgba(183,136,70,.035);
  pointer-events: none;
}
.packd-profile-hero .container { position: relative; z-index: 1; }
.packd-back-link {
  display: inline-block;
  margin-bottom: 3.5rem;
  color: #f6c982;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.packd-back-link:hover { color: var(--white); }
.packd-profile-hero .hero-eyebrow { margin-bottom: .8rem; }
.packd-profile-title {
  max-width: 720px;
  margin: 0 0 .9rem;
  color: var(--white);
  font-size: clamp(3.2rem, 9vw, 6.5rem);
  line-height: .95;
  letter-spacing: -.055em;
}
.packd-profile-lead {
  max-width: 650px;
  color: rgba(255,255,255,.84);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.45;
}
.packd-status-card {
  display: grid;
  gap: .25rem;
  max-width: 560px;
  margin-top: 2.5rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(246,201,130,.48);
  border-left: 4px solid var(--accent);
  background: rgba(255,255,255,.07);
}
.packd-status-label {
  color: #f6c982;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.packd-status-card strong { font-size: 1.1rem; }
.packd-status-card p { margin-top: .2rem; color: rgba(255,255,255,.77); font-size: .94rem; }
.packd-profile-section { padding: 5.5rem 0; }
.packd-profile-section--tinted { background: linear-gradient(180deg, var(--off-white) 0%, #eef1f5 100%); }
.packd-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}
.packd-profile-copy { max-width: 680px; }
.packd-profile-copy .section-title { margin-top: .65rem; }
.packd-profile-copy .section-title + p { margin-bottom: 2.6rem; }
.packd-profile-copy p,
.packd-narrow-content > p { max-width: 68ch; color: var(--charcoal); font-size: 1.04rem; }
.packd-fact-rail {
  padding: 1.6rem;
  border: 1px solid var(--border);
  border-top: 4px solid var(--accent);
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(15,27,48,.07);
}
.packd-fact-rail h2 { color: var(--navy); font-size: 1.25rem; margin-bottom: 1rem; }
.packd-fact-rail dl { display: grid; gap: 1rem; }
.packd-fact-rail dl > div { padding-top: 1rem; border-top: 1px solid var(--border); }
.packd-fact-rail dl > div:first-child { padding-top: 0; border-top: 0; }
.packd-fact-rail dt { color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.packd-fact-rail dd { margin-top: .25rem; color: var(--navy); font-weight: 700; overflow-wrap: anywhere; }
.packd-fact-rail a { color: var(--navy); text-decoration: underline; text-underline-offset: .15em; }
.packd-fact-rail a:hover { color: var(--accent); }
.packd-narrow-content { max-width: 820px; }
.packd-narrow-content .section-eyebrow { margin-bottom: .7rem; }
.packd-narrow-content .section-title { margin-bottom: 1rem; }
.packd-evidence-list { max-width: 680px; margin: 1.35rem 0 1.35rem; padding-left: 1.35rem; color: var(--charcoal); }
.packd-evidence-list li { margin-bottom: .55rem; padding-left: .2rem; }
.packd-profile-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  margin-top: 1.5rem;
  padding: .75rem 1rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
}
.packd-profile-cta:hover { background: var(--accent); color: var(--white); text-decoration: none; }
.packd-main-cta { margin-top: 1.25rem; }
.packd-disclosure {
  margin-top: 2.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid var(--accent);
  background: var(--off-white);
  color: var(--muted) !important;
  font-size: .91rem !important;
}
.packd-disclosure strong { color: var(--navy); }
.company-profile-link {
  align-self: flex-start;
  color: var(--navy);
  font-size: .88rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.company-profile-link:hover { color: var(--accent); }
@media (max-width: 700px) {
  .packd-profile-hero { padding: 3.25rem 0 3.75rem; }
  .packd-back-link { margin-bottom: 2.75rem; }
  .packd-profile-title { font-size: clamp(3.1rem, 19vw, 5rem); }
  .packd-profile-section { padding: 4rem 0; }
  .packd-profile-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .packd-fact-rail { padding: 1.3rem; }
}
@media (max-width: 390px) {
  .packd-status-card { padding: .95rem; }
  .packd-profile-lead { font-size: 1.05rem; }
  .packd-profile-cta { width: 100%; justify-content: center; text-align: center; }
}

/* I Pet Love portfolio profile — a calm, source-limited record for the
   parent site; it links to the separate storefront without imitating it. */
.ipet-profile-hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem;
  color: var(--white);
  background: linear-gradient(145deg, #112d31 0%, #18434a 62%, #23545a 100%);
}
.ipet-profile-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -170px;
  top: -180px;
  border: 1px solid rgba(195, 222, 190, .48);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(195, 222, 190, .07), 0 0 0 58px rgba(195, 222, 190, .035);
  pointer-events: none;
}
.ipet-profile-hero .container { position: relative; z-index: 1; }
.ipet-back-link {
  display: inline-block;
  margin-bottom: 3.5rem;
  color: #d7efc9;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.ipet-back-link:hover { color: var(--white); }
.ipet-profile-hero .hero-eyebrow { margin-bottom: .8rem; }
.ipet-profile-title {
  max-width: 760px;
  margin: 0 0 .9rem;
  color: var(--white);
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: .98;
  letter-spacing: -.055em;
}
.ipet-profile-lead {
  max-width: 710px;
  color: rgba(255,255,255,.86);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.45;
}
.ipet-status-card {
  display: grid;
  gap: .25rem;
  max-width: 650px;
  margin-top: 2.5rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(215,239,201,.5);
  border-left: 4px solid #c3debe;
  background: rgba(255,255,255,.07);
}
.ipet-status-label {
  color: #d7efc9;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ipet-status-card strong { font-size: 1.1rem; }
.ipet-status-card p { margin-top: .2rem; color: rgba(255,255,255,.78); font-size: .94rem; }
.ipet-profile-section { padding: 5.5rem 0; }
.ipet-profile-section--tinted { background: linear-gradient(180deg, var(--off-white) 0%, #eef3f0 100%); }
.ipet-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}
.ipet-profile-copy { max-width: 680px; }
.ipet-profile-copy .section-title { margin-top: .65rem; }
.ipet-profile-copy .section-title + p { margin-bottom: 2.6rem; }
.ipet-profile-copy p,
.ipet-narrow-content > p { max-width: 70ch; color: var(--charcoal); font-size: 1.04rem; }
.ipet-fact-rail {
  padding: 1.6rem;
  border: 1px solid var(--border);
  border-top: 4px solid #4a8a7d;
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(15,27,48,.07);
}
.ipet-fact-rail h2 { color: var(--navy); font-size: 1.25rem; margin-bottom: 1rem; }
.ipet-fact-rail dl { display: grid; gap: 1rem; }
.ipet-fact-rail dl > div { padding-top: 1rem; border-top: 1px solid var(--border); }
.ipet-fact-rail dl > div:first-child { padding-top: 0; border-top: 0; }
.ipet-fact-rail dt { color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.ipet-fact-rail dd { margin-top: .25rem; color: var(--navy); font-weight: 700; overflow-wrap: anywhere; }
.ipet-fact-rail a { color: var(--navy); text-decoration: underline; text-underline-offset: .15em; }
.ipet-fact-rail a:hover { color: #327568; }
.ipet-narrow-content { max-width: 850px; }
.ipet-narrow-content .section-eyebrow { margin-bottom: .7rem; }
.ipet-narrow-content .section-title { margin-bottom: 1rem; }
.ipet-evidence-note {
  margin-top: 1.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid #4a8a7d;
  background: var(--white);
  color: var(--muted) !important;
  font-size: .94rem !important;
}
.ipet-evidence-note strong { color: var(--navy); }
.ipet-profile-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  margin-top: 1.5rem;
  padding: .75rem 1rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
}
.ipet-profile-cta:hover { background: #327568; color: var(--white); text-decoration: none; }
.ipet-main-cta { margin-top: 1.25rem; }
.ipet-disclosure {
  margin-top: 2.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid #4a8a7d;
  background: var(--off-white);
  color: var(--muted) !important;
  font-size: .91rem !important;
}
.ipet-disclosure strong { color: var(--navy); }
@media (max-width: 700px) {
  .ipet-profile-hero { padding: 3.25rem 0 3.75rem; }
  .ipet-back-link { margin-bottom: 2.75rem; }
  .ipet-profile-title { font-size: clamp(3rem, 18vw, 5rem); }
  .ipet-profile-section { padding: 4rem 0; }
  .ipet-profile-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .ipet-fact-rail { padding: 1.3rem; }
}
@media (max-width: 390px) {
  .ipet-status-card { padding: .95rem; }
  .ipet-profile-lead { font-size: 1.05rem; }
  .ipet-profile-cta { width: 100%; justify-content: center; text-align: center; }
}

/* GrainKit portfolio profile — an agrarian, source-limited record that keeps
   the parent site's editorial system distinct from GrainKit's own site. */
.grainkit-profile-hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem;
  color: var(--white);
  background: linear-gradient(145deg, #173b3a 0%, #1d5148 58%, #326a50 100%);
}
.grainkit-profile-hero::after {
  content: "";
  position: absolute;
  width: 430px;
  height: 430px;
  right: -170px;
  top: -180px;
  border: 1px solid rgba(218, 226, 159, .55);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(218, 226, 159, .08), 0 0 0 58px rgba(218, 226, 159, .04);
  pointer-events: none;
}
.grainkit-profile-hero .container { position: relative; z-index: 1; }
.grainkit-back-link {
  display: inline-block;
  margin-bottom: 3.5rem;
  color: #e4e9ad;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.grainkit-back-link:hover { color: var(--white); }
.grainkit-profile-hero .hero-eyebrow { margin-bottom: .8rem; }
.grainkit-profile-title {
  max-width: 760px;
  margin: 0 0 .9rem;
  color: var(--white);
  font-size: clamp(3rem, 8vw, 6rem);
  line-height: .98;
  letter-spacing: -.055em;
}
.grainkit-profile-lead {
  max-width: 710px;
  color: rgba(255,255,255,.86);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.45;
}
.grainkit-status-card {
  display: grid;
  gap: .25rem;
  max-width: 700px;
  margin-top: 2.5rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(228, 233, 173, .55);
  border-left: 4px solid #dce59a;
  background: rgba(255,255,255,.08);
}
.grainkit-status-label {
  color: #e4e9ad;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.grainkit-status-card strong { font-size: 1.1rem; }
.grainkit-status-card p { margin-top: .2rem; color: rgba(255,255,255,.79); font-size: .94rem; }
.grainkit-profile-section { padding: 5.5rem 0; }
.grainkit-profile-section--tinted { background: linear-gradient(180deg, var(--off-white) 0%, #eef3ec 100%); }
.grainkit-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}
.grainkit-profile-copy { max-width: 680px; }
.grainkit-profile-copy .section-title { margin-top: .65rem; }
.grainkit-profile-copy .section-title + p { margin-bottom: 2.6rem; }
.grainkit-profile-copy p,
.grainkit-narrow-content > p { max-width: 70ch; color: var(--charcoal); font-size: 1.04rem; }
.grainkit-fact-rail {
  padding: 1.6rem;
  border: 1px solid var(--border);
  border-top: 4px solid #8ea24a;
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(15,27,48,.07);
}
.grainkit-fact-rail h2 { color: var(--navy); font-size: 1.25rem; margin-bottom: 1rem; }
.grainkit-fact-rail dl { display: grid; gap: 1rem; }
.grainkit-fact-rail dl > div { padding-top: 1rem; border-top: 1px solid var(--border); }
.grainkit-fact-rail dl > div:first-child { padding-top: 0; border-top: 0; }
.grainkit-fact-rail dt { color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.grainkit-fact-rail dd { margin-top: .25rem; color: var(--navy); font-weight: 700; overflow-wrap: anywhere; }
.grainkit-fact-rail a { color: var(--navy); text-decoration: underline; text-underline-offset: .15em; }
.grainkit-fact-rail a:hover { color: #58713b; }
.grainkit-narrow-content { max-width: 850px; }
.grainkit-narrow-content .section-eyebrow { margin-bottom: .7rem; }
.grainkit-narrow-content .section-title { margin-bottom: 1rem; }
.grainkit-evidence-note {
  margin-top: 1.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid #8ea24a;
  background: var(--white);
  color: var(--muted) !important;
  font-size: .94rem !important;
}
.grainkit-evidence-note strong { color: var(--navy); }
.grainkit-profile-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  margin-top: 1.5rem;
  padding: .75rem 1rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
}
.grainkit-profile-cta:hover { background: #58713b; color: var(--white); text-decoration: none; }
.grainkit-main-cta { margin-top: 1.25rem; }
.grainkit-disclosure {
  margin-top: 2.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid #8ea24a;
  background: var(--off-white);
  color: var(--muted) !important;
  font-size: .91rem !important;
}
.grainkit-disclosure strong { color: var(--navy); }
@media (max-width: 700px) {
  .grainkit-profile-hero { padding: 3.25rem 0 3.75rem; }
  .grainkit-back-link { margin-bottom: 2.75rem; }
  .grainkit-profile-title { font-size: clamp(3rem, 18vw, 5rem); }
  .grainkit-profile-section { padding: 4rem 0; }
  .grainkit-profile-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .grainkit-fact-rail { padding: 1.3rem; }
}
@media (max-width: 390px) {
  .grainkit-status-card { padding: .95rem; }
  .grainkit-profile-lead { font-size: 1.05rem; }
  .grainkit-profile-cta { width: 100%; justify-content: center; text-align: center; }
}



/* Men's Shaver Reviewer portfolio profile — editorial, source-limited snapshot. */
.shaver-profile-hero { position: relative; overflow: hidden; padding: 4.5rem 0 5rem; color: var(--white); background: linear-gradient(140deg, #101b31 0%, #203b51 63%, #35535a 100%); }
.shaver-profile-hero::after { content: ""; position: absolute; width: 420px; height: 420px; right: -165px; top: -190px; border: 1px solid rgba(220,183,113,.5); border-radius: 50%; box-shadow: 0 0 0 26px rgba(220,183,113,.08), 0 0 0 58px rgba(220,183,113,.04); pointer-events: none; }
.shaver-profile-hero .container { position: relative; z-index: 1; }
.shaver-back-link { display: inline-block; margin-bottom: 3.5rem; color: #f6cf91; font-size: .9rem; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.shaver-back-link:hover { color: var(--white); }
.shaver-profile-title { max-width: 820px; margin: 0 0 .4rem; color: var(--white); font-size: clamp(3rem, 8vw, 6.4rem); line-height: .96; letter-spacing: -.055em; }
.shaver-profile-tagline { margin: 0 0 1.2rem; color: #f6cf91; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.25rem, 2.5vw, 1.65rem); font-style: italic; }
.shaver-profile-lead { max-width: 710px; color: rgba(255,255,255,.84); font-size: clamp(1.1rem, 2.2vw, 1.4rem); line-height: 1.45; }
.shaver-status-card { display: grid; gap: .25rem; max-width: 700px; margin-top: 2.5rem; padding: 1.1rem 1.2rem; border: 1px solid rgba(246,207,145,.48); border-left: 4px solid var(--accent); background: rgba(255,255,255,.07); }
.shaver-status-label { color: #f6cf91; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.shaver-status-card strong { font-size: 1.08rem; }
.shaver-status-card p { margin-top: .2rem; color: rgba(255,255,255,.77); font-size: .94rem; }
.shaver-profile-section { padding: 5.5rem 0; }
.shaver-profile-section--tinted { background: linear-gradient(180deg, var(--off-white) 0%, #eef1f5 100%); }
.shaver-profile-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(260px,.8fr); gap: clamp(2rem,7vw,6rem); align-items: start; }
.shaver-profile-copy { max-width: 680px; }
.shaver-profile-copy .section-title { margin-top: .65rem; }
.shaver-profile-copy .section-title + p { margin-bottom: 2.6rem; }
.shaver-profile-copy p, .shaver-narrow-content > p { max-width: 70ch; color: var(--charcoal); font-size: 1.04rem; }
.shaver-fact-rail { padding: 1.6rem; border: 1px solid var(--border); border-top: 4px solid var(--accent); border-radius: 10px; background: var(--white); box-shadow: 0 14px 34px rgba(15,27,48,.07); }
.shaver-fact-rail h2 { color: var(--navy); font-size: 1.25rem; margin-bottom: 1rem; }
.shaver-fact-rail dl { display: grid; gap: 1rem; }
.shaver-fact-rail dl > div { padding-top: 1rem; border-top: 1px solid var(--border); }
.shaver-fact-rail dl > div:first-child { padding-top: 0; border-top: 0; }
.shaver-fact-rail dt { color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.shaver-fact-rail dd { margin-top: .25rem; color: var(--navy); font-weight: 700; overflow-wrap: anywhere; }
.shaver-fact-rail a { color: var(--navy); text-decoration: underline; text-underline-offset: .15em; }
.shaver-fact-rail a:hover { color: var(--accent); }
.shaver-narrow-content { max-width: 850px; }
.shaver-narrow-content .section-eyebrow { margin-bottom: .7rem; }
.shaver-narrow-content .section-title { margin-bottom: 1rem; }
.shaver-update-date { margin: -.4rem 0 1.1rem; color: var(--navy) !important; }
.shaver-evidence-note, .shaver-parent-note { margin-top: 1.5rem; padding: 1rem 1.1rem; border-left: 3px solid var(--accent); background: var(--white); color: var(--muted) !important; font-size: .94rem !important; }
.shaver-evidence-note strong, .shaver-parent-note strong { color: var(--navy); }
.shaver-link-row { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin-top: 1.6rem; }
.shaver-profile-cta { display: inline-flex; align-items: center; gap: .45rem; min-height: 48px; padding: .75rem 1rem; border-radius: 6px; background: var(--navy); color: var(--white); font-weight: 700; }
.shaver-profile-cta:hover { background: var(--accent); color: var(--white); text-decoration: none; }
.shaver-secondary-link { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: .18em; }
.shaver-secondary-link:hover { color: var(--accent); }
.shaver-main-cta { margin-top: 1.25rem; }
.shaver-parent-note { margin-top: 1rem; border-left-color: var(--border); }
@media (max-width: 700px) {
  .shaver-profile-hero { padding: 3.25rem 0 3.75rem; }
  .shaver-back-link { margin-bottom: 2.75rem; }
  .shaver-profile-title { font-size: clamp(3rem,18vw,5rem); }
  .shaver-profile-section { padding: 4rem 0; }
  .shaver-profile-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .shaver-fact-rail { padding: 1.3rem; }
  .shaver-link-row { align-items: stretch; flex-direction: column; }
  .shaver-profile-cta, .shaver-secondary-link { width: 100%; justify-content: center; text-align: center; }
}

/* AnswerBack portfolio profile — a restrained field-note treatment for a
   public-evidence page about an early missed-call-recovery concept. */
.answerback-profile-hero {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem;
  color: var(--white);
  background: linear-gradient(140deg, #071a24 0%, #123a46 62%, #1f5b61 100%);
}
.answerback-profile-hero::after {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  right: -175px;
  top: -190px;
  border: 1px solid rgba(137, 218, 196, .5);
  border-radius: 50%;
  box-shadow: 0 0 0 28px rgba(137, 218, 196, .08), 0 0 0 62px rgba(137, 218, 196, .04);
  pointer-events: none;
}
.answerback-profile-hero .container { position: relative; z-index: 1; }
.answerback-back-link {
  display: inline-block;
  margin-bottom: 3.5rem;
  color: #a8ead7;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.answerback-back-link:hover { color: var(--white); }
.answerback-profile-hero .hero-eyebrow { margin-bottom: .8rem; }
.answerback-profile-title {
  max-width: 800px;
  margin: 0 0 .9rem;
  color: var(--white);
  font-size: clamp(3.4rem, 10vw, 7rem);
  line-height: .92;
  letter-spacing: -.06em;
}
.answerback-profile-lead {
  max-width: 720px;
  color: rgba(255,255,255,.86);
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  line-height: 1.45;
}
.answerback-status-card {
  display: grid;
  gap: .3rem;
  max-width: 700px;
  margin-top: 2.5rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(168,234,215,.5);
  border-left: 4px solid #a8ead7;
  background: rgba(255,255,255,.08);
}
.answerback-status-label {
  color: #a8ead7;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.answerback-status-card strong { font-size: 1.08rem; }
.answerback-status-card p { margin-top: .2rem; color: rgba(255,255,255,.78); font-size: .94rem; }
.answerback-profile-section { padding: 5.5rem 0; }
.answerback-profile-section--tinted { background: linear-gradient(180deg, var(--off-white) 0%, #edf4f3 100%); }
.answerback-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: start;
}
.answerback-profile-copy { max-width: 690px; }
.answerback-profile-copy .section-title { margin-top: .65rem; }
.answerback-profile-copy .section-title + p { margin-bottom: 2.6rem; }
.answerback-profile-copy p,
.answerback-narrow-content > p { max-width: 70ch; color: var(--charcoal); font-size: 1.04rem; }
.answerback-fact-rail {
  padding: 1.6rem;
  border: 1px solid var(--border);
  border-top: 4px solid #327568;
  border-radius: 10px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(15,27,48,.07);
}
.answerback-fact-rail h2 { color: var(--navy); font-size: 1.25rem; margin-bottom: 1rem; }
.answerback-fact-rail dl { display: grid; gap: 1rem; }
.answerback-fact-rail dl > div { padding-top: 1rem; border-top: 1px solid var(--border); }
.answerback-fact-rail dl > div:first-child { padding-top: 0; border-top: 0; }
.answerback-fact-rail dt { color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.answerback-fact-rail dd { margin-top: .25rem; color: var(--navy); font-weight: 700; overflow-wrap: anywhere; }
.answerback-fact-rail a { color: var(--navy); text-decoration: underline; text-underline-offset: .15em; }
.answerback-fact-rail a:hover { color: #327568; }
.answerback-narrow-content { max-width: 850px; }
.answerback-narrow-content .section-eyebrow { margin-bottom: .7rem; }
.answerback-narrow-content .section-title { margin-bottom: 1rem; }
.answerback-evidence-note,
.answerback-parent-note {
  margin-top: 1.5rem;
  padding: 1rem 1.1rem;
  border-left: 3px solid #327568;
  background: var(--white);
  color: var(--muted) !important;
  font-size: .94rem !important;
}
.answerback-evidence-note strong,
.answerback-parent-note strong { color: var(--navy); }
.answerback-link-list { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem 1.15rem; margin-top: 1.55rem; }
.answerback-profile-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  padding: .75rem 1rem;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
  font-weight: 700;
}
.answerback-profile-cta:hover { background: #327568; color: var(--white); text-decoration: none; }
.answerback-secondary-link { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: .18em; }
.answerback-secondary-link:hover { color: #327568; }
.answerback-main-cta { margin-top: 1.25rem; }
.answerback-parent-note { margin-top: 1rem; border-left-color: var(--border); }
@media (max-width: 700px) {
  .answerback-profile-hero { padding: 3.25rem 0 3.75rem; }
  .answerback-back-link { margin-bottom: 2.75rem; }
  .answerback-profile-title { font-size: clamp(3.4rem, 20vw, 5.5rem); }
  .answerback-profile-section { padding: 4rem 0; }
  .answerback-profile-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .answerback-fact-rail { padding: 1.3rem; }
  .answerback-link-list { align-items: stretch; flex-direction: column; }
  .answerback-secondary-link { padding: .35rem 0; }
}
@media (max-width: 390px) {
  .answerback-status-card { padding: .95rem; }
  .answerback-profile-lead { font-size: 1.05rem; }
  .answerback-profile-cta { width: 100%; justify-content: center; text-align: center; }
}


/* Public company-information pages */
.company-info-main { min-height: 60vh; }
.company-info-hero {
  padding: clamp(3.5rem, 8vw, 6.5rem) 1.5rem clamp(3rem, 7vw, 5.5rem);
  color: var(--white);
  background: linear-gradient(145deg, var(--navy) 0%, var(--navy-2) 68%, #243856 100%);
}
.company-info-shell { width: min(100%, 1020px); margin-inline: auto; }
.company-info-hero .section-eyebrow { color: #f6c982; }
.company-info-hero h1 {
  max-width: 900px;
  margin: .55rem 0 1rem;
  color: var(--white);
  font-size: clamp(2.55rem, 7vw, 5rem);
  line-height: 1.04;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
}
.company-info-lead {
  max-width: 760px;
  color: rgba(255,255,255,.86);
  font-size: clamp(1.12rem, 2.4vw, 1.4rem);
  line-height: 1.55;
}
.company-info-intro {
  max-width: 820px;
  margin-top: clamp(2rem, 5vw, 3.5rem);
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid rgba(246,201,130,.32);
  border-left: 4px solid var(--accent);
  background: rgba(255,255,255,.07);
}
.company-info-intro h2 { margin-bottom: .65rem; color: var(--white); font-size: 1.35rem; }
.company-info-intro p { max-width: 72ch; color: rgba(255,255,255,.86); }
.company-info-disambiguation {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.2);
  font-size: .96rem;
}
.company-info-portfolio {
  padding: clamp(3.25rem, 7vw, 5.5rem) 1.5rem;
  background: var(--off-white);
}
.company-info-portfolio h2 { margin: .45rem 0 .5rem; color: var(--navy); font-size: clamp(1.9rem, 4vw, 2.6rem); letter-spacing: -.03em; }
.company-info-section-intro { max-width: 65ch; margin-bottom: 2rem; color: var(--muted); }
.company-info-portfolio-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding: 0;
  list-style: none;
}
.company-info-portfolio-item {
  min-width: 0;
  padding: 1.35rem 1.45rem;
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(15,27,48,.045);
}
.company-info-portfolio-item h3 { margin: 0 0 .45rem; font-size: 1.18rem; line-height: 1.35; }
.company-info-portfolio-item a { color: var(--navy); text-decoration: underline; text-decoration-color: rgba(183,136,70,.72); text-underline-offset: .18em; overflow-wrap: anywhere; }
.company-info-portfolio-item a:hover { color: #805b29; }
.company-info-portfolio-item p { max-width: 60ch; color: var(--muted); font-size: .96rem; }
.company-info-contact-note { margin-top: 2rem; color: var(--charcoal); }
.company-info-contact-note a { font-weight: 700; text-decoration: underline; text-underline-offset: .18em; }
.company-info-contact-card { max-width: 600px; }
.company-info-email {
  display: inline-block;
  max-width: 100%;
  margin: .25rem 0 .7rem;
  color: #f6c982;
  font-size: clamp(1.15rem, 4vw, 1.75rem);
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: .2em;
  overflow-wrap: anywhere;
}
.company-info-email:hover { color: var(--white); }
@media (max-width: 640px) {
  .company-info-hero { padding-inline: 1.1rem; }
  .company-info-portfolio { padding-inline: 1.1rem; }
  .company-info-portfolio-list { grid-template-columns: minmax(0, 1fr); }
  .company-info-portfolio-item { padding: 1.2rem; }
}


/* Oct 2026: newsletter honeypot + Portfolio City member unlock form */
.newsletter-hp { position: absolute !important; left: -10000px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
.pc-unlock-form { max-width: 470px; margin: 1.15rem auto 0; text-align: left; }
.pc-unlock-form label { display: block; font-weight: 700; color: #fffaf1; margin-bottom: .45rem; font-size: .92rem; }
.pc-unlock-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.pc-unlock-row input { flex: 1 1 220px; min-width: 0; padding: .7rem .8rem; border: 1px solid #ad8050; background: #fffaf1; color: #18334a; font: inherit; font-size: 1rem; border-radius: 0; }
.pc-unlock-row input:focus { outline: 3px solid #efbd76; outline-offset: 2px; }
.pc-overlay-panel p.pc-unlock-status { min-height: 1.3em; margin: .5rem 0 0; font-size: .85rem; color: #9be3a3; max-width: none; }
.pc-overlay-panel p.pc-unlock-status.is-error { color: #f6b7a6; }
