/* Shared type roles. Section colours and compositions remain independent. */
:root{--font-text:'DM Sans',Arial,sans-serif;--font-accent:'Cormorant Garamond',Georgia,serif;--title-size:clamp(40px,4.8vw,64px);--text-size:16px;--subhead-size:24px;--caption-size:12px;--eyebrow-size:11px;--control-size:14px}
body,button,input,textarea,select{font-family:var(--font-text)!important}
body :is(p,a,button,summary,small,span,strong,blockquote,h1,h2,h3,figcaption){font-family:var(--font-text)}
body main:is(main,#type-system):is(main,#type-rules) :is(h1,h2){font-family:var(--font-text)!important;font-size:var(--title-size)!important;font-weight:500!important;line-height:1.02!important;letter-spacing:-.045em!important;text-transform:none!important}
body main:is(main,#type-system):is(main,#type-rules) :is(h1,h2) em{font-family:var(--font-accent)!important;font-size:1em!important;font-weight:500!important;font-style:italic;line-height:inherit!important;letter-spacing:inherit!important}
body main:is(main,#type-system):is(main,#type-rules) :is(h3,.tile-title){font-family:var(--font-text)!important;font-size:var(--subhead-size)!important;font-weight:500!important;line-height:1.1!important;letter-spacing:-.025em!important;text-transform:none!important}
body main:is(main,#type-system):is(main,#type-rules) :is(p,blockquote,.lens-copy,.tile-short){font-family:var(--font-text)!important;font-size:var(--text-size)!important;font-weight:400;line-height:1.2!important;letter-spacing:0!important}
body main:is(main,#type-system):is(main,#type-rules) :is(.eyebrow,.system-kicker,.flow-label,.review-topic,.route-detail-label){font-family:var(--font-text)!important;font-size:var(--eyebrow-size)!important;font-weight:600!important;line-height:1.25!important;letter-spacing:.1em!important}
body main:is(main,#type-system):is(main,#type-rules) :is(small,.stage-art-note,.tile-toggle,.tile-instruction,.tile-use,.lens-mini,.system-bar,.console-footer),body main:is(main,#type-system):is(main,#type-rules) .review-cards footer,body>.site-footer :is(p,.links){font-family:var(--font-text)!important;font-size:var(--caption-size)!important;line-height:1.25!important;letter-spacing:0!important}
body main:is(main,#type-system):is(main,#type-rules) :is(.btn,.textlink,.lens-faux-button),body header .navlinks,body main:is(main,#type-system):is(main,#type-rules) .no-website a,body main:is(main,#type-system):is(main,#type-rules) .service-tile a{font-family:var(--font-text)!important;font-size:var(--control-size)!important;font-weight:500!important;line-height:1.2!important;letter-spacing:0!important}
body main:is(main,#type-system):is(main,#type-rules) summary{font-family:var(--font-text)!important;font-size:var(--text-size)!important;font-weight:500!important;line-height:1.2!important;letter-spacing:0!important}
body main:is(main,#type-system):is(main,#type-rules) .route-tabs button strong{font-size:var(--text-size)!important;line-height:1.2!important;font-weight:500!important}
body main:is(main,#type-system):is(main,#type-rules) .route-tabs button>span:not(.route-dot){font-size:var(--caption-size)!important;line-height:1.25!important}
body main:is(main,#type-system):is(main,#type-rules) .lens-card-top{font-size:var(--text-size)!important;line-height:1.2!important;font-weight:500!important;letter-spacing:0!important}
body main:is(main,#type-system):is(main,#type-rules) .lens-comparison h3{font-size:clamp(28px,2.7vw,36px)!important;line-height:1.05!important}
body main:is(main,#type-system):is(main,#type-rules) .console-head{font-family:var(--font-accent)!important;font-size:30px!important;line-height:1.1!important}
body main:is(main,#type-system):is(main,#type-rules) .console-head>span:first-child{font:inherit!important}
body main:is(main,#type-system):is(main,#type-rules) .review-score>span:not(.review-stars){font-size:var(--text-size)!important;line-height:1.2!important}
body main:is(main,#type-system):is(main,#type-rules) .review-score>strong small{font-size:20px!important}
body main:is(main,#type-system):is(main,#type-rules) .personal-photo figcaption{font-size:var(--subhead-size)!important;line-height:1.1!important}
body main:is(main,#type-system):is(main,#type-rules) .personal-photo figcaption em{font-family:var(--font-accent)!important;font-size:1em!important;line-height:inherit!important}
@media(max-width:760px){:root{--title-size:40px;--text-size:15px;--subhead-size:22px;--caption-size:12px;--eyebrow-size:10px;--control-size:14px}body main:is(main,#type-system):is(main,#type-rules) .lens-comparison h3{font-size:30px!important}}
body main:is(main,#type-system):is(main,#type-rules) .tile-title{hyphens:auto;overflow-wrap:anywhere;min-width:0}
