/* Task-first content, guide and lightweight-enquiry pages. */
.ip-content-hero .ip-shell { max-width: 1200px; }
.ip-content-hero .ip-display { max-width: none; }
.ip-content-hero p:last-child { max-width: none; }

.ip-breadcrumbs { padding: 18px 0; border-bottom: 1px solid var(--ip-border); background: var(--ip-white); }
.ip-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 auto; padding: 0; list-style: none; font-size: .9rem; }
.ip-breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 8px; color: var(--ip-muted); }
.ip-breadcrumbs a { color: var(--ip-navy); text-decoration-thickness: 1px; text-underline-offset: 3px; }

.ip-task-grid,
.ip-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ip-task-card,
.ip-guide-card,
.ip-callout-card { display: flex; flex-direction: column; min-height: 100%; padding: clamp(24px, 3vw, 34px); border: 1px solid var(--ip-border); border-radius: 22px; background: var(--ip-white); box-shadow: 0 14px 38px rgba(6, 38, 68, .06); }
.ip-task-card h3,
.ip-guide-card h3,
.ip-callout-card h2 { margin: 6px 0 12px; }
.ip-task-card p,
.ip-guide-card p { margin: 0 0 22px; color: var(--ip-muted); }
.ip-task-card .ip-text-link,
.ip-guide-card .ip-text-link { margin-top: auto; align-self: flex-start; }
.ip-task-number { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--ip-navy); color: #fff; font-weight: 800; }
.ip-task-card.is-primary { background: var(--ip-navy); color: #fff; }
.ip-task-card.is-primary p { color: rgba(255,255,255,.78); }
.ip-task-card.is-primary .ip-text-link { color: #fff; border-color: var(--ip-orange-action); }

.ip-hub-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(34px, 7vw, 90px); align-items: start; }
.ip-hub-intro .ip-copy-prose { max-width: 720px; }
.ip-section-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.ip-section-intro { max-width: 760px; }

.ip-guide-layout { display: grid; grid-template-columns: minmax(210px, .34fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 84px); align-items: start; }
.ip-guide-nav { position: sticky; top: 22px; padding: 24px; border: 1px solid var(--ip-border); border-radius: 18px; background: var(--ip-cream); }
.ip-guide-nav h2 { margin: 0 0 14px; font-size: 1.15rem; }
.ip-guide-nav nav { display: grid; gap: 12px; }
.ip-guide-nav a { position: relative; display: block; padding-left: 16px; color: var(--ip-navy); line-height: 1.4; }
.ip-guide-nav a::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--ip-orange-action); transform: translateY(-50%); }
.ip-guide-body { min-width: 0; max-width: 790px; }
.ip-guide-body > section { scroll-margin-top: 28px; margin-bottom: 52px; }
.ip-guide-body h2 { margin: 0 0 16px; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.ip-guide-body h3 { margin: 26px 0 10px; font-size: 1.25rem; }
.ip-guide-body p,
.ip-guide-body li { line-height: 1.72; }
.ip-guide-body li + li { margin-top: 8px; }
.ip-summary-box,
.ip-source-box,
.ip-important-box { margin: 0 0 30px; padding: 22px 24px; border-radius: 16px; }
.ip-summary-box { background: var(--ip-cream); border-left: 5px solid var(--ip-orange-action); }
.ip-important-box { background: #fff6e8; border: 1px solid #e7b56e; }
.ip-source-box { background: #edf4f8; border: 1px solid var(--ip-border); }
.ip-source-box p:last-child,
.ip-summary-box p:last-child,
.ip-important-box p:last-child { margin-bottom: 0; }
.ip-reviewed { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--ip-border); color: var(--ip-muted); font-size: .88rem; }
.ip-review-note { margin-top: 34px; padding-top: 18px; border-top: 1px solid var(--ip-border); color: var(--ip-muted); font-size: .9rem; }
.ip-official-links { display: grid; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.ip-official-links a::after,
.ip-external::after { content: " \2197"; }

.ip-form-page-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .58fr); gap: clamp(28px, 5vw, 66px); align-items: start; }
.ip-enquiry-panel { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--ip-border); border-radius: 22px; background: #fff; box-shadow: 0 18px 50px rgba(6, 38, 68, .08); }
.ip-enquiry-panel > h2 { margin-top: 0; }
.ip-contact-form { display: grid; gap: 20px; }
.ip-form-aside { display: grid; gap: 18px; }
.ip-form-aside .ip-callout-card { min-height: 0; }
.ip-form-aside ul { margin: 0; padding-left: 20px; }
.ip-form-aside li + li { margin-top: 8px; }
.ip-form-legend { margin: 0; color: var(--ip-muted); font-size: .9rem; }

.ip-application-options { display: grid; gap: 18px; }
.ip-application-option { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 24px; border: 1px solid var(--ip-border); border-radius: 18px; background: #fff; }
.ip-application-option h3,
.ip-application-option p { margin: 0; }
.ip-application-option p { margin-top: 8px; color: var(--ip-muted); }

.ip-fee-table { width: 100%; margin: 22px 0 34px; overflow: hidden; border: 1px solid var(--ip-border); border-radius: 16px; }
.ip-fee-table > div { display: grid; grid-template-columns: minmax(180px, .42fr) minmax(0, 1fr); border-bottom: 1px solid var(--ip-border); }
.ip-fee-table > div:last-child { border-bottom: 0; }
.ip-fee-table > div > strong,
.ip-fee-table > div > span { padding: 14px 16px; }
.ip-fee-table > div > strong { background: var(--ip-cream); }
.ip-fee-table th,
.ip-fee-table td { padding: 14px 16px; border-bottom: 1px solid var(--ip-border); text-align: left; vertical-align: top; }
.ip-fee-table th { width: 42%; background: var(--ip-cream); }

.ip-mortgage-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 58px); align-items: start; }
.ip-mortgage-calculator { display: grid; gap: 22px; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--ip-border); border-radius: 22px; background: #fff; box-shadow: 0 18px 50px rgba(6, 38, 68, .08); }
.ip-mortgage-calculator h2 { margin: 0; }
.ip-mortgage-result { padding: 24px; border-radius: 16px; background: var(--ip-navy); color: #fff; }
.ip-mortgage-result span,
.ip-mortgage-result small { display: block; }
.ip-mortgage-result strong { display: block; margin: 8px 0; font-family: var(--ip-serif); font-size: clamp(1.8rem, 4vw, 3rem); }

.ip-calculator { display: grid; gap: 24px; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--ip-border); border-radius: 22px; background: #fff; }
.ip-calculator-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ip-calculator-result { padding: 24px; border-radius: 16px; background: var(--ip-navy); color: #fff; }
.ip-calculator-result strong { display: block; margin-top: 8px; font-family: var(--ip-serif); font-size: clamp(2rem, 5vw, 3.4rem); }

.ip-page-cta-strip { padding: 38px 0; background: var(--ip-navy); color: #fff; }
.ip-page-cta-strip .ip-shell { display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; align-items: center; }
.ip-page-cta-strip h2,
.ip-page-cta-strip p { margin: 0; }
.ip-button-outline-light { color: #fff; border-color: rgba(255,255,255,.7); background: transparent; }
.ip-button-outline-light:hover { color: var(--ip-navy); background: #fff; }

@media (max-width: 900px) {
  .ip-task-grid,
  .ip-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ip-guide-layout,
  .ip-form-page-layout,
  .ip-mortgage-layout,
  .ip-hub-intro { grid-template-columns: 1fr; }
  .ip-guide-nav { position: static; }
}

@media (max-width: 620px) {
  .ip-task-grid,
  .ip-guide-grid,
  .ip-calculator-fields { grid-template-columns: 1fr; }
  .ip-application-option { grid-template-columns: 1fr; }
  .ip-content-hero .ip-shell { margin-left: auto; }
  .ip-fee-table,
  .ip-fee-table tbody,
  .ip-fee-table tr,
  .ip-fee-table th,
  .ip-fee-table td { display: block; width: 100%; }
  .ip-fee-table th { border-bottom: 0; }
  .ip-fee-table > div { grid-template-columns: 1fr; }
}

@media print {
  .ip-utility, .ip-header, .ip-footer, .ip-guide-nav, .ip-page-cta-strip { display: none !important; }
  .ip-guide-layout { display: block; }
  .ip-guide-body { max-width: none; }
}
