.portal-interior {
  --interior-text: #15243c;
  --interior-muted: #4c5e75;
  --interior-accent: #2052b7;
  --interior-hover: #173e8c;
  --interior-soft: #f1f5fc;
  --interior-line: #dce5f1;
  --interior-strong-line: #b8c8df;
  --interior-shadow: 0 12px 30px rgba(21, 42, 81, .08);
  --gold: var(--interior-accent);
  --gold2: var(--interior-hover);
  --bg: #fff;
  --line: var(--interior-line);
  --muted: var(--interior-muted);
  --card: #fff;
  --panel: #fff;
  --text: var(--interior-text);
  --white: var(--interior-text);
  color: var(--interior-text);
  background: #fff;
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
  color-scheme: light;
}

.portal-interior main { line-height: 1.65; }
.portal-interior main .wrap { width: min(1160px, 91%); }
.portal-interior .portal-header .portal-nav [aria-current="true"] { color: var(--interior-accent); }
.portal-interior main > section[id] { scroll-margin-top: 85px; }
.portal-interior main h1,
.portal-interior main h2,
.portal-interior main h3 { overflow-wrap: break-word; }
.portal-interior main h1 {
  font-size: clamp(36px, 5.2vw, 66px);
  line-height: 1.04;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.portal-interior .eyebrow { color: var(--interior-accent); letter-spacing: .13em; }
.portal-interior main .btn,
.portal-interior.portal-journal main .cta {
  background: var(--interior-accent);
  color: #fff;
  border: 1px solid var(--interior-accent);
  border-radius: 7px;
  min-height: 44px;
  font-weight: 700;
  text-decoration: none;
}
.portal-interior main .btn:is(:hover, :focus-visible),
.portal-interior.portal-journal main .cta:hover {
  background: var(--interior-hover);
  color: #fff;
  border-color: var(--interior-hover);
}
.portal-interior main .btn.ghost {
  background: #fff;
  border-color: var(--interior-strong-line);
  color: var(--interior-hover);
}
.portal-interior main .btn.ghost:hover { background: var(--interior-soft); }
.portal-interior main .btn.whatsapp {
  background: #157648;
  border-color: #157648;
  color: #fff;
}
.portal-interior main .btn.whatsapp:hover { background: #0e5c37; }
.portal-interior :is(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid #4179e3;
  outline-offset: 3px;
}

/* Heading blocks, project photography and page notices. */
.portal-interior main :is(.hero, .jobhero, .about-hero, .faq-hero, .contact-page),
.portal-interior main.hero {
  background: linear-gradient(128deg, #f2f6fd, #eaf1fc);
  border-color: var(--interior-line);
}
.portal-interior main :is(.hero, .jobhero, .about-hero, .faq-hero, .contact-page) > .wrap {
  position: relative;
}
.portal-interior main :is(.hero, .jobhero, .about-hero, .faq-hero) {
  padding-block: clamp(44px, 6vw, 78px);
}
.portal-interior :is(.hero p, .jobcopy > p, .hero-copy p, .faq-hero p, .contact-hero-copy p, .copy > p) {
  color: var(--interior-muted);
}
.portal-interior :is(.back, .crumbs, .signature, .contact-hero-note, .faq-hero-note) {
  color: var(--interior-accent);
}
.portal-interior :is(.job-photo, .photo, .crest-panel, .intro-grid img, .cover) {
  border-color: var(--interior-line);
  border-radius: 16px;
  box-shadow: var(--interior-shadow);
}
.portal-interior :is(.job-photo span, .photo span) {
  background: #15243c;
  color: #fff;
  border-color: #486188;
}
.portal-interior :is(.hero-rate, .badges span, .quick, .quick-contact) {
  background: #f2f6fd;
  color: var(--interior-hover);
  border-color: var(--interior-line);
}
.portal-interior .hero-rate strong,
.portal-interior :is(.trust b, .info b, .quick strong, .quick-contact strong) {
  color: var(--interior-hover);
}
.portal-interior :is(.hero-rate small, .hero-rate p, .trust span, .info span, .quick p, .quick-contact p, .task, .list div) {
  color: var(--interior-muted);
  border-color: var(--interior-line);
}
.portal-interior :is(.facts, .faq-section, .values, .seo-content-section, .seo-links-section, .seo-offer, .projects) {
  background: var(--interior-soft);
  border-color: var(--interior-line);
}
.portal-interior .fact-grid { background: var(--interior-line); border-color: var(--interior-line); }
.portal-interior :is(.card, .fact, .job, .value, .contact-card, .faq-item, .seo-text-card, .seo-faq, .seo-offer-card, .formbox, .side) {
  background: #fff;
  border-color: var(--interior-line);
  border-radius: 12px;
  box-shadow: 0 3px 12px rgba(21, 42, 81, .035);
}
.portal-interior :is(.card, .job, .value, .seo-offer-card):hover { border-color: var(--interior-strong-line); }
.portal-interior :is(.card, .value, .contact-card, .formbox, .seo-offer-card)::before { display: none; }
.portal-interior :is(.card p, .fact small, .job p, .value p, .seo-text-card p, .intro-copy p, .section-head p, .seo-offer-head p, .seo-offer-card p, .seo-offer-trust p, .faq-answer, .missing p) {
  color: var(--interior-muted);
}
.portal-interior :is(.fact strong, .value b, .seo-text-card h3, .faq-answer strong, .seo-offer-card a, .job-link) {
  color: var(--interior-accent);
}
.portal-interior .seo-offer-card a { text-decoration-color: currentColor; }
.portal-interior .seo-offer-trust {
  background: #e7efff;
  border-color: var(--interior-line);
}
.portal-interior :is(.notice.success, .notice.error) { color: #175436; background: #e9f6ee; border-color: #b0d4bf; }
.portal-interior .notice.error { color: #872c26; background: #fff1ee; border-color: #e6bdb6; }

/* Keep project cards legible over editorial photography. */
.portal-offers main .hero::after { content: none; }
.portal-offers .project {
  background-color: #15243c;
  color: #fff;
  border-color: #324968;
}
.portal-offers .project p { color: #eef3fa; }
.portal-offers .project a { color: #dbe9ff; }
.portal-offers .project .status { background: #fff; color: var(--interior-hover); }
.portal-offers .project-grid > [role="status"] {
  margin: 0;
  padding: 22px 24px;
  border: 1px solid var(--interior-line);
  border-radius: 10px;
  background: #fff;
  color: var(--interior-muted);
}
.portal-offers .job {
  min-height: 260px;
  padding: 25px 23px 62px;
}
.portal-offers .job img {
  top: 13px;
  right: 15px;
  height: 75px;
  width: 38%;
}
.portal-offers .job h3 { margin: 68px 0 8px; font-size: 23px; }
.portal-offers .job p { margin: 0; min-height: 0; }
.portal-offers .job-link { left: 23px; right: 23px; bottom: 23px; }

.portal-interior :is(.process, main > .cta, .bottom-cta) {
  background: #162846;
  color: #fff;
  border-color: #20395e;
}
.portal-interior :is(main > .cta, .bottom-cta) { background: #2052b7; }
.portal-interior :is(.process, main > .cta, .bottom-cta) :is(p, .step p, .eyebrow) { color: #e4edfc; }
.portal-interior :is(main > .cta, .bottom-cta)::before,
.portal-interior :is(.values, .faq-section)::after,
.portal-interior .faq-section::before { display: none; }
.portal-interior .process .step { background: #20395e; border-color: #8cb0ff; border-radius: 9px; }
.portal-interior :is(.process .step b, .process .step-num) { color: #c4d8ff; }
.portal-interior :is(main > .cta, .bottom-cta) :is(.btn, .btn:hover) {
  color: #17408f;
  background: #fff;
  border-color: #fff;
}

/* Breadcrumbs, FAQ and related internal links. */
.portal-interior .seo-breadcrumbs {
  display: block;
  height: auto;
  background: #fff;
  border-color: var(--interior-line);
}
.portal-interior .seo-breadcrumbs :is(li, [aria-current="page"], li + li::before) { color: var(--interior-muted); }
.portal-interior :is(.seo-breadcrumbs a, .seo-inline-link, .seo-links-copy small, .seo-content-head small),
.portal-interior .seo-check-list li::before,
.portal-interior .seo-job-links a::after,
.portal-interior .seo-faq summary::after {
  color: var(--interior-accent);
}
.portal-interior :is(.seo-links-copy p, .seo-content-head p, .seo-check-list li, .seo-faq .seo-faq-answer) {
  color: var(--interior-muted);
}
.portal-interior .seo-inline-link { border-color: var(--interior-strong-line); }
.portal-interior .seo-inline-link:hover { color: var(--interior-hover); border-color: currentColor; }
.portal-interior .seo-job-links { height: auto; }
.portal-interior :is(.seo-job-links a, .seo-keyword-links a) {
  background: #fff;
  color: var(--interior-hover);
  border-color: var(--interior-line);
}
.portal-interior :is(.seo-job-links a, .seo-keyword-links a):hover {
  background: #e9f1fe;
  color: var(--interior-hover);
  border-color: var(--interior-strong-line);
}
.portal-interior :is(.faq-item summary, .seo-faq summary) { color: var(--interior-text); }
.portal-interior .seo-faq details { border-color: var(--interior-line); }
.portal-interior .faq-item[open] { background: #fff; border-color: #9bb6e2; }
.portal-interior .faq-item[open] summary::after { background: #e9f1fe; }

/* Application and contact forms use native controls and existing submission routes. */
.portal-interior :is(.contact-hero, .crest-panel) {
  background: #fff;
  border-color: var(--interior-line);
  border-radius: 16px;
  box-shadow: var(--interior-shadow);
}
.portal-interior .contact-hero::after { display: none; }
.portal-interior .contact-logo-wrap {
  min-height: 0;
  width: min(100%, 295px);
  justify-self: center;
  padding: clamp(16px, 2vw, 24px);
  border: 1px solid #283e63;
  border-radius: 14px;
  background: var(--portal-navy);
}
.portal-interior .contact-hero-logo {
  width: 100%;
  height: auto;
  filter: none;
}
.portal-interior .crest-panel { min-height: 0; }
.portal-interior .crest-panel::before { display: none; }
.portal-interior .crest-panel img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 250px;
  max-height: 480px;
  object-fit: cover;
  object-position: center 42%;
  filter: none;
}
.portal-interior .contact-item,
.portal-interior .contact-item b { color: var(--interior-text); border-color: var(--interior-line); }
.portal-interior :is(.contact-item span, .contact-item a, .form-note) { color: var(--interior-muted); }
.portal-interior .contact-item a:hover { color: var(--interior-hover); text-decoration: underline; }
.portal-interior .contact-icon { color: var(--interior-hover); border-color: var(--interior-line); background: #f2f6fd; }
.portal-interior .form-section { background: #eef4fd; border-color: var(--interior-line); }
.portal-interior .form-section::before { display: none; }
.portal-interior :is(.form-copy p, .application-intro p, .formbox .intro p, .privacy-note, .privacy, .checkline, .application-consent, .consent, .upload-zone small, .upload small) {
  color: var(--interior-muted);
}
.portal-interior :is(.formbox label, .application-field, .field, .upload-choice) { color: var(--interior-text) !important; }
.portal-interior :is(.formbox .step, .application-step, .privacy-note strong, .privacy strong, .upload-zone strong, .upload strong) {
  color: var(--interior-hover);
}
.portal-interior :is(.formbox .step, .application-step)::after {
  background: linear-gradient(90deg, var(--interior-strong-line), transparent);
}
.portal-interior :is(.formbox, .application-form) :is(input, textarea, select, select option) {
  color: var(--interior-text) !important;
  border-color: var(--interior-strong-line);
  background: #fff !important;
  accent-color: var(--interior-accent);
}
.portal-interior :is(.formbox, .application-form) :is(input, textarea)::placeholder { color: #5c6d85; }
.portal-interior :is(.formbox, .application-form) :is(input, textarea, select):focus {
  border-color: var(--interior-accent);
  box-shadow: 0 0 0 3px #dbe9ff;
}
.portal-interior :is(.upload-zone, .upload) {
  background: #f3f7fe;
  border-color: var(--interior-strong-line);
}
.portal-interior .upload-zone:is(:hover, :focus-within) { background: #eef4ff; border-color: var(--interior-accent); }
.portal-interior :is(.upload-zone, .upload) input[type="file"]::file-selector-button {
  color: #fff !important;
  background: var(--interior-accent);
  border-color: var(--interior-accent);
}
.portal-interior :is(.upload-zone, .upload) input[type="file"]::-webkit-file-upload-button {
  color: #fff !important;
  background: var(--interior-accent);
}
.portal-interior form > .notice {
  margin: 0 0 18px;
  padding: 13px 15px;
  border: 1px solid;
  border-radius: 8px;
  font-weight: 600;
  line-height: 1.45;
}
.portal-interior form > .notice.success { border-color: #b0d4bf; }
.portal-interior form > .notice.error { border-color: #e6bdb6; }

/* Blog feed, article and missing article pages. */
.portal-journal .hero .crumbs { margin-bottom: 18px; }
.portal-journal .thumb { background-color: #e5edfa; }
.portal-journal .thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portal-journal :is(.meta, .read, .side a, .content a) { color: var(--interior-accent); }
.portal-journal :is(.content p, .content li, .empty) { color: var(--interior-muted); }
.portal-journal .content { overflow-wrap: anywhere; }
.portal-journal .content img { max-width: 100%; height: auto; }
.portal-journal .content blockquote { color: var(--interior-text); background: var(--interior-soft); }
.portal-journal .side a { border-color: var(--interior-line); }
.portal-journal .empty { background: var(--interior-soft); border-radius: 12px; }
.portal-journal .article-grid > * { min-width: 0; }
.portal-journal .article-grid { grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); }

@media (max-width: 850px) {
  .portal-journal .article-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 650px) {
  .portal-interior main h1 { font-size: clamp(34px, 8.6vw, 48px); }
  .portal-interior :is(.project-grid, .job-grid, .content-grid, .hero-grid, .jobhero-grid) > * { min-width: 0; }
  .portal-interior .formbox { min-width: 0; }
  .portal-interior :is(.formbox, .application-form) :is(input, textarea, select) { max-width: 100%; font-size: 16px; }
  .portal-interior .job { min-height: 0; }
  .portal-interior .crest-panel { order: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-interior :is(.card, .job, .value, .seo-job-links a) { transition: none; }
}
