/* Shared reading layer. Load after style.css; home, report reader and site chrome own their layouts. */
:is(.page-intro,.page-content,.scope-section,.price-section,.closing,.guide-hub-intro,.guide-feature,.guide-index-group,.article-page,.vvs-form){
  --subpage-text:18px;
  --subpage-lead:21px;
  font-size:var(--subpage-text);
  line-height:1.7;
}

/* Short, useful introductions without decorative labels. */
.page-intro{padding-block:52px 42px}
.page-intro h1,.guide-hub-intro h1,.guide-header h1{
  max-width:1000px;
  font-size:clamp(44px,4.6vw,64px);
  line-height:1.12;
  letter-spacing:-.045em;
  margin:0 0 24px;
}
.page-intro .page-lead,.guide-hub-intro .guide-lead,.guide-header .guide-lead{
  max-width:72ch;
  font-size:var(--subpage-lead);
  line-height:1.65;
  color:var(--muted);
}
.page-content{padding-block:44px 56px}
.page-content>p,.page-content>ul,.two-columns p,.area-callout p,.request-summary p{
  font-size:var(--subpage-text);
  line-height:1.7;
}
.page-content>p,.page-content>ul{max-width:72ch}
.page-content>h2,.page-content .two-columns h2{
  font-size:clamp(30px,3vw,40px);
  line-height:1.2;
  letter-spacing:-.035em;
  margin-block:40px 18px;
}
.page-content>h2:first-child,.page-content .two-columns h2:first-child{margin-top:0}
.page-content h3{font-size:26px;line-height:1.3}
.page-content .two-columns{gap:36px 48px}
.page-content .two-columns>div{min-width:0}
.page-content .hero-actions{gap:18px 24px;flex-wrap:wrap}
.area-callout,.request-summary{padding:28px;margin-block:24px}
.page-content .scope-note,.scope-section .scope-note{padding:24px;margin-block:28px}
.page-content .scope-note p,.scope-section .scope-note p{font-size:var(--subpage-text);line-height:1.7}
:is(.page-intro,.page-content,.scope-section,.price-section,.closing,.guide-hub-intro,.guide-feature,.guide-index-group,.article-page) .wp-block-button__link{
  font-size:16px;
  line-height:1.45;
  min-height:52px;
  padding:15px 22px;
}
:is(.page-intro,.page-content,.closing,.guide-feature,.article-page) .text-link{
  font-size:16px;
  line-height:1.5;
  min-height:44px;
}

/* Service and price information remains readable at the point of decision. */
.scope-section{padding-block:48px}
.scope-section .section-heading h2{font-size:clamp(32px,3.2vw,42px);line-height:1.2}
.scope-section .section-heading>p{font-size:var(--subpage-text);line-height:1.7;margin-top:18px}
.scope-section .scope-item{padding-block:26px}
.scope-section .scope-item h3{font-size:28px;line-height:1.25}
.scope-section .scope-item>p,.scope-section .scope-item li{font-size:var(--subpage-text);line-height:1.65}
.scope-section .scope-item li{margin-block:10px}
.price-section{padding:40px;gap:40px}
.price-section .price-intro h2{font-size:clamp(32px,3vw,42px);line-height:1.2}
.price-section .price-intro>p,.price-section .included-list li{font-size:var(--subpage-text);line-height:1.65}
.price-section .price-tax,.price-section .price-scope,.price-section .price-footnote{font-size:16px;line-height:1.6}
.price-section .main-price{font-size:clamp(40px,4vw,56px);line-height:1.15}
.price-section .main-price>span{font-size:24px}
.price-section .price-detail{min-width:0}
:is(.scope-section,.price-section,.closing) .section-kicker{font-size:16px;letter-spacing:0;text-transform:none}
.closing{gap:32px;padding:40px;margin-bottom:56px}
.closing h2{font-size:clamp(30px,3vw,40px);line-height:1.2}
.closing p{font-size:var(--subpage-text);line-height:1.65;margin-top:18px}

/* Guide overview: categories are section headings, cards start with the topic. */
.guide-hub-intro{padding-block:52px 36px}
.guide-hub-intro>p.guide-lead{font-size:var(--subpage-lead);line-height:1.65}
.guide-hub-intro .guide-topic-links{margin-top:24px;gap:8px 26px}
.guide-topic-links a{font-size:16px;line-height:1.5;min-height:44px;padding-block:10px}
.guide-feature{gap:44px;padding:36px;margin-bottom:48px;align-items:start}
.guide-feature h2{font-size:36px;line-height:1.2;margin-top:0;letter-spacing:-.035em}
.guide-feature h3{font-size:28px;line-height:1.3}
.guide-feature p:not(.guide-category){font-size:var(--subpage-text);line-height:1.7;margin-top:18px}
.guide-feature p.text-link{font-size:16px}
.guide-index-group{padding-bottom:40px}
.guide-index-group>.section-heading{padding-top:24px;gap:16px 36px;margin-bottom:4px}
.guide-index-group .section-heading h2{font-size:36px;line-height:1.2;letter-spacing:-.035em}
.guide-index-group .section-heading>p{font-size:var(--subpage-text);line-height:1.65;margin:0}
.guide-index-group .guide-grid,.guide-related .guide-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.guide-card{padding-block:26px;min-width:0}
.guide-card h3,.guide-related .guide-card h3{font-size:25px;line-height:1.3;letter-spacing:-.025em;margin-bottom:14px}
.guide-card h3 a{display:block}
.guide-card h3 a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.guide-card p:not(.guide-category):not(.guide-number):not(.guide-card-link){font-size:var(--subpage-text);line-height:1.65;margin-bottom:16px}
.guide-card p.guide-card-link{font-size:16px;line-height:1.5;margin-top:auto;margin-bottom:0}
.guide-card .guide-card-link a{font-size:16px;min-height:44px;padding-block:10px}

/* Guide children share one readable article template. */
.article-page{padding-top:32px;padding-bottom:56px}
.guide-header{padding-bottom:32px;margin-bottom:36px}
.guide-header .breadcrumb{font-size:16px;line-height:1.5;gap:10px;margin-bottom:24px;flex-wrap:wrap}
.guide-header .breadcrumb a{display:inline-block;padding-block:10px}
.guide-header .guide-meta,.guide-body .guide-meta{font-size:16px;line-height:1.6;margin-top:20px}
.guide-layout{grid-template-columns:minmax(0,1fr) 280px;gap:48px;align-items:start}
.guide-body{width:100%;max-width:72ch;font-size:var(--subpage-text);line-height:1.75}
.guide-body>p,.guide-body li{font-size:var(--subpage-text);line-height:1.75}
.guide-body>p{margin-bottom:22px}
.guide-body h2{font-size:34px;line-height:1.25;letter-spacing:-.03em;margin-block:40px 20px}
.guide-body h3{font-size:26px;line-height:1.3;margin-block:30px 16px}
.guide-body ul,.guide-body ol{padding-left:24px}
.guide-body li{margin-block:10px}
.guide-summary{padding:28px;margin-bottom:32px}
.guide-summary h2,.guide-summary h3{font-size:28px;line-height:1.25;margin:0 0 16px}
.guide-summary p,.guide-summary ul{font-size:var(--subpage-text);line-height:1.7}
.guide-sidebar{position:static}
.guide-toc h2,.guide-toc h3,.guide-toc>p{font-size:20px;line-height:1.4;letter-spacing:0;text-transform:none;margin-bottom:12px}
.guide-toc a{font-size:16px;line-height:1.5;padding-block:10px;min-height:44px}
.guide-booking{padding:24px}
.guide-booking h2,.guide-booking h3{font-size:26px;line-height:1.25}
.guide-booking p{font-size:var(--subpage-text);line-height:1.65}
.guide-booking .wp-block-button__link{font-size:16px;padding-inline:16px}
.guide-booking .text-link{font-size:16px}
.guide-body .buyer-checklist{padding:26px;margin-block:28px}
.guide-body .buyer-checklist li{font-size:var(--subpage-text);line-height:1.7}
.guide-body .wp-block-details>summary{font-size:var(--subpage-text);line-height:1.5;padding-block:22px}
.guide-body .wp-block-details>p{font-size:var(--subpage-text);line-height:1.7;padding-right:12px}
.guide-body .guide-table{overflow-x:auto;max-width:100%}
.guide-body table{font-size:16px;line-height:1.65;min-width:580px;table-layout:fixed}
.guide-body th,.guide-body td{padding:16px 14px;overflow-wrap:break-word}
.guide-table figcaption{font-size:16px;line-height:1.5;margin-top:12px}
.guide-source-list,.guide-source-list p,.guide-source-list ul,.guide-source-list ol,.guide-source-list li{font-size:16px;line-height:1.65}
.guide-body .guide-source-list a{overflow-wrap:anywhere}
.guide-end-cta{padding:34px;margin-top:40px}
.guide-end-cta h2,.guide-end-cta h3{font-size:34px;line-height:1.25}
.guide-end-cta p{font-size:var(--subpage-text);line-height:1.65}
.guide-related{padding-top:36px;margin-top:40px}
.guide-related>h2{font-size:36px;line-height:1.2}

/* Form plugin keeps its behavior; its text follows the same reading scale. */
.vvs-form .vvs-form__intro p,.vvs-form .vvs-form__required,.vvs-form .vvs-form__hint,
.vvs-form .vvs-form__optional,.vvs-form .vvs-form__privacy,.vvs-form .vvs-form__error,
.vvs-form .vvs-form__scope,.vvs-form .vvs-form__disclaimer p,.vvs-form .vvs-form__notice,
.vvs-form .vvs-form__phone{font-size:var(--subpage-text);line-height:1.65}
.vvs-form .vvs-form__eyebrow{font-size:16px;line-height:1.5;letter-spacing:0}
.vvs-form .vvs-form__field label{font-size:var(--subpage-text);line-height:1.5}
.vvs-form .vvs-form__section legend,.vvs-form .vvs-form__disclaimer h3{font-size:22px;line-height:1.4}
.vvs-form .vvs-form__field input,.vvs-form .vvs-form__field textarea{font-size:18px}
.vvs-form .vvs-form__actions button{font-size:16px;line-height:1.5;min-height:52px}

@media(max-width:1100px){
  .guide-layout{grid-template-columns:minmax(0,1fr) 250px;gap:32px}
  .guide-index-group .guide-grid,.guide-related .guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
  .guide-feature{gap:32px}
}
@media(max-width:760px){
  :is(.page-intro,.page-content,.scope-section,.price-section,.closing,.guide-hub-intro,.guide-feature,.guide-index-group,.article-page,.vvs-form){
    --subpage-text:16px;
    --subpage-lead:18px;
  }
  .page-intro,.guide-hub-intro{padding-block:32px}
  .page-intro h1,.guide-hub-intro h1,.guide-header h1{font-size:40px;line-height:1.14;letter-spacing:-.04em;margin-bottom:20px}
  .page-content{padding-block:32px 40px}
  .page-content>h2,.page-content .two-columns h2{font-size:30px;margin-block:32px 16px}
  .page-content h3{font-size:24px}
  .page-content .two-columns{gap:28px}
  .page-content .hero-actions{align-items:stretch;flex-direction:column;gap:14px}
  .area-callout,.request-summary{padding:24px}
  .scope-section{padding-block:36px}
  .scope-section .section-heading h2{font-size:32px}
  .scope-section .scope-item h3{font-size:26px}
  .scope-section .scope-item{padding-block:24px}
  .page-content .scope-note,.scope-section .scope-note{padding:22px}
  .price-section{padding:28px 24px}
  .price-section .price-intro h2{font-size:32px}
  .price-section .price-detail{padding:24px 0 0;margin-top:24px}
  .closing{padding:28px 24px;margin-bottom:40px}
  .closing h2{font-size:30px}
  .guide-feature{padding:28px 24px;margin-bottom:36px}
  .guide-feature h2,.guide-index-group .section-heading h2{font-size:30px}
  .guide-feature h3{font-size:26px}
  .guide-index-group{padding-bottom:32px}
  .guide-index-group>.section-heading{gap:14px}
  .guide-card h3,.guide-related .guide-card h3{font-size:24px}
  .guide-card h3 a{min-height:44px}
  :is(.page-intro,.page-content,.closing,.guide-feature,.article-page) .text-link a{min-height:44px}
  .guide-card{padding-block:24px}
  .article-page{padding-top:20px;padding-bottom:40px}
  .guide-header{padding-bottom:28px;margin-bottom:28px}
  .guide-layout{display:flex;flex-direction:column;gap:28px}
  .guide-body{max-width:none}
  .guide-body h2{font-size:30px;margin-block:32px 18px}
  .guide-body h3{font-size:24px}
  .guide-sidebar{width:100%;display:block}
  .guide-toc{padding-top:20px}
  .guide-summary,.guide-body .buyer-checklist{padding:24px}
  .guide-summary h2,.guide-summary h3{font-size:26px;margin-top:0}
  .guide-end-cta{padding:28px 24px;margin-top:32px}
  .guide-end-cta h2,.guide-end-cta h3,.guide-related>h2{font-size:30px}
  .guide-related{padding-top:32px;margin-top:32px}
  .vvs-form .vvs-form__field input,.vvs-form .vvs-form__field textarea{font-size:16px}
  .vvs-form .vvs-form__phone{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:600px){
  .guide-index-group .guide-grid,.guide-related .guide-grid{grid-template-columns:minmax(0,1fr)}
}
@media print{
  .page-intro,.page-content,.article-page{padding-block:12px}
  .guide-body{max-width:none}
  .guide-body table{min-width:0;font-size:11pt}
  .guide-body .guide-table{overflow:visible}
}
