/* Shared semantic type scale. Logos, SVG/map text, prices/currencies and artwork remain component-owned. */
:root{
 --type-h1:clamp(40px,4.45vw,64px);--type-h2:clamp(28px,2.92vw,42px);--type-h2-compact:clamp(26px,2.22vw,32px);--type-h3:clamp(20px,1.67vw,24px);
 --type-lead:clamp(18px,1.39vw,20px);--type-body:clamp(16px,1.18vw,17px);--type-support:clamp(14px,1.04vw,15px);--type-meta:clamp(12px,.91vw,13px);--type-nav:clamp(15px,1.12vw,16px);
 --weight-h1:650;--weight-h2:550;--weight-h3:550;--weight-body:380;--weight-lead:450;--weight-ui:500;
 --leading-heading:1.45;--leading-body:1.9;--leading-support:1.85;--leading-ui:1.6;
}
.sobati-typography{font-size:var(--type-body);font-weight:var(--weight-body);line-height:var(--leading-body)}
.sobati-typography main h1:not(.hero-brand-title){font-size:var(--type-h1)!important;font-weight:var(--weight-h1)!important;line-height:1.35}
.sobati-typography main h2:not(.van-section__title,.ppf-section__title,.wrap-section__title,.gift-card-section__title,.founder-section__name,.sr-only){font-size:var(--type-h2)!important;font-weight:var(--weight-h2)!important;line-height:var(--leading-heading)}
.sobati-typography main h3{font-size:var(--type-h3)!important;font-weight:var(--weight-h3)!important;line-height:1.6}
.sobati-typography main :is(.hero-heading h2,.feature-scene .feature-panel h2,.film-copy h2){font-size:var(--type-h2-compact)!important;line-height:1.5}
.sobati-typography :is(.recruit-hero h1 span,.recruit-intro__copy h2 span,.recruit-editorial-copy h2 span,.recruit-centered h2 span,.agency-faq h2 span,.recruit-closing h2 span){font-weight:350}
.sobati-typography #partner-locations-title{font-weight:650!important}
/* Main reading paragraphs: no generic p/strong/span rule can touch currency, map labels or wordmark glyphs. */
.sobati-typography :is(.services-intro p,.van-section__copy,.ppf-section__copy p,.wrap-section__copy p,.founder-section__copy p,.editorial-copy p:not(.eyebrow),.split-copy>p:not(.eyebrow,.small-print),.feature-panel>p:not(.eyebrow),.variant-detail-copy>p:not(.eyebrow,.variant-term-note),.mobile-variant-content>p,.service-question p,.recruit-intro__copy>p:not(.recruit-lead),.recruit-editorial-copy>p:not(.recruit-lead),.recruit-centered>p,.recruit-service__body p,.recruit-journey__steps p,.agency-faq__list details p,.site-footer__intro){font-size:var(--type-body);font-weight:var(--weight-body);line-height:var(--leading-body)}
.sobati-typography :is(.hero-description,.hero-intro,.recruit-hero__copy>p,.recruit-lead,.wrap-section__subtitle){font-size:var(--type-lead)!important;font-weight:var(--weight-lead);line-height:1.8}
.sobati-typography :is(.recruit-role-list p,.recruit-editorial-note p,.van-selector__description,.van-selector__subtitle,.small-print,.variant-image-caption,.contact-dialog__copy,.availability-dialog p,.destination-preview p,.agency-form-notice,.agency-form-footnote,.tehran-picker__selection-copy){font-size:var(--type-support)!important;font-weight:var(--weight-body);line-height:var(--leading-support)}
.sobati-typography :is(.recruit-role-list strong,.recruit-editorial-note strong,.process-step strong){font-size:var(--type-body);font-weight:550;line-height:1.8}
/* Navigation and actions are readable UI, not decorative captions. */
.sobati-typography :is(.agency-local-nav a,.local-links a){font-size:var(--type-nav)!important;font-weight:var(--weight-ui);line-height:var(--leading-ui)}
.sobati-typography .local-links a{height:auto;min-height:52px;padding-block:14px}
.sobati-typography :is(.agency-button,.agency-text-link,.solid-button,.outline-button,.hero-cta,.gift-card-section__buy,.van-selector__request,.contact-dialog__call){font-size:var(--type-support)!important;font-weight:var(--weight-ui);line-height:var(--leading-ui);white-space:normal}
.sobati-typography :is(.agency-field>span,.agency-field>small,.agency-dialog-status,.tehran-picker__count,.contact-dialog__status){font-size:var(--type-support);line-height:var(--leading-support)}
.sobati-typography .agency-field :is(input,select,textarea){font-size:16px;line-height:1.7}
.sobati-typography :is(.eyebrow,.contact-dialog__eyebrow,.van-selector__eyebrow,.variant-term-issuer,.variant-term-note,.film-source,.recruit-service__name small,.site-footer__copyright,.site-footer__sitemap-title){font-size:var(--type-meta)!important;line-height:1.75}
.sobati-typography :is(.agency-map-attribution,.tehran-picker__attribution,.recruit-app-credit){font-size:12px;line-height:1.85}
.sobati-typography :is(.agency-map-attribution,.tehran-picker__attribution) [lang=en]{font-size:inherit}
.sobati-typography :is(.contact-dialog h2,.availability-dialog h2,.destination-preview h2){font-size:var(--type-h2-compact);font-weight:550;line-height:1.5}
.sobati-typography .service-question h3{font-size:var(--type-h3);line-height:1.65}
.sobati-typography .agency-faq__list summary{font-size:var(--type-body);font-weight:500;line-height:1.8}
.sobati-typography .recruit-service__name strong{font-size:var(--type-h3);font-weight:550;line-height:1.6}
/* Product collection identity is not USD metadata. Amounts and currency styling are deliberately untouched. */
.sobati-typography .gift-card-section__eyebrow{font-size:clamp(14px,1.12vw,16px);font-weight:550;line-height:1.6;letter-spacing:.15em;color:#b8b8be}
.sobati-typography .gift-card-section__copy{font-size:clamp(16px,1.25vw,18px);font-weight:450;line-height:1.9;color:#c5c5cd}
.sobati-typography .gift-card-section__title{font-size:clamp(21px,1.8vw,26px);font-weight:550;line-height:1.45;letter-spacing:.15em}
/* Bounded reflow accommodations for readable text; photo crops and interactive geometry remain owned by their modules. */
.sobati-typography .gift-card-section{min-height:670px;grid-template-rows:auto minmax(240px,1fr) auto auto}
.sobati-typography .film-labels p{font-size:var(--type-support);line-height:1.75}
.sobati-typography .film-labels h3{font-size:18px!important;line-height:1.6}
.sobati-typography .film-intro{font-size:var(--type-body);line-height:1.8}
@media(max-width:767px){
 .sobati-typography .gift-card-section{min-height:640px;grid-template-rows:auto 215px auto auto}
 .sobati-typography .hero-description{font-size:16px!important;line-height:1.8}
 .sobati-typography .hero:not(.service-hero){height:calc((100vw - 32px)*.75 + 214px)}
 .sobati-typography .slide-visual::before{height:214px}.sobati-typography .hero-image{height:calc(100% - 214px)}
 .sobati-typography .hero-shade{background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,.65) 214px,transparent 270px)}
 .sobati-typography .film-stage{min-height:760px;height:auto;justify-content:flex-start}.sobati-typography .film-labels{min-height:120px}
 .sobati-typography .film-labels li{padding-block:10px}.sobati-typography .film-scroll-area{height:2200px}
}
@media(max-width:380px){.sobati-typography main h1:not(.hero-brand-title){font-size:36px!important}.sobati-typography .hero-copy{bottom:18px}.sobati-typography .hero:not(.service-hero){height:calc((100vw - 32px)*.75 + 236px)}.sobati-typography .slide-visual::before{height:236px}.sobati-typography .hero-image{height:calc(100% - 236px)}}

/* Preserve existing reduced-motion/short-height film flow fallbacks after typography reflow. */
@media(max-height:780px),(prefers-reduced-motion:reduce){.sobati-typography .film-scroll-area{height:auto}.sobati-typography .film-stage{position:relative;top:0;min-height:0;height:auto;overflow:visible}.sobati-typography .film-labels{min-height:0}.sobati-typography .film-labels li{position:relative;inset:auto;opacity:1;pointer-events:auto}}

@media(max-width:767px) and (max-height:950px){.sobati-typography .film-scroll-area{height:auto}.sobati-typography .film-stage{position:relative;top:0;min-height:0;height:auto;overflow:visible}.sobati-typography .film-labels{min-height:0}.sobati-typography .film-labels li{position:relative;inset:auto;opacity:1;pointer-events:auto}}

.sobati-typography .site-header .desktop-nav{font-size:var(--type-nav);font-weight:500;gap:clamp(16px,1.4vw,28px)}
.sobati-typography :is(.menu-toggle,.page-header .header-tools,.page-header .header-consult,.site-footer__sitemap-links a,.site-footer__map-link){font-size:var(--type-support);font-weight:450;line-height:1.7}
@media(max-width:1279px){.sobati-typography .site-header .desktop-nav{display:none}.sobati-typography .site-header .menu-toggle{display:flex}}

@media(max-width:1023px) and (max-height:850px){.sobati-typography .film-scroll-area{height:auto}.sobati-typography .film-stage{position:relative;top:0;min-height:0;height:auto;overflow:visible}.sobati-typography .film-labels{min-height:0}.sobati-typography .film-labels li{position:relative;inset:auto;opacity:1;pointer-events:auto}}

/* Homepage only: give the original mobile photographs more room, below the header.
   Keep the approved copy clearance and cover crops; no image stretching or new art. */
@media(max-width:767px){
 .sobati-typography #home.section-one>main{margin-top:calc(var(--header-gap) + 16px)}
 .sobati-typography #home.section-one .hero:not(.service-hero){height:calc((100vw - 32px)*.90 + 214px)}
}
@media(max-width:380px){
 .sobati-typography #home.section-one .hero:not(.service-hero){height:calc((100vw - 32px)*.90 + 236px)}
}
