/* Shared components and compatibility mappings. Tokens come from conf_design, never JS. */
:root {
  --ink:var(--conf-heading);--body:var(--conf-body);--text:var(--conf-body);
  --navy:var(--conf-primary);--eyebrow:var(--conf-eyebrow-color);--blue:var(--conf-bright-blue);
  --btn-line:var(--conf-primary);--teal:var(--conf-accent);--green:var(--conf-lime-green);--yellow:var(--conf-golden-yellow);
  --bg:var(--conf-section-primary);--sky:var(--conf-section-alternate);--icon-bg:var(--conf-icon-bg);
  --line:var(--conf-border);--card-line:var(--conf-card-border);--grad-btn:var(--conf-primary);--grad-dark:var(--conf-section-featured);
}
body.conf-design{font-family:var(--conf-font);font-size:var(--conf-body-size);font-weight:var(--conf-body-weight);line-height:var(--conf-body-line);letter-spacing:var(--conf-body-tracking);color:var(--conf-body-color);background:var(--conf-section-primary)}
.conf-design :where(input,select,textarea,button){font-family:var(--conf-font)}
.conf-design .serif{font-family:var(--conf-font)}
.conf-design :where(h1,h2,h3,h4){font-family:var(--conf-font);margin-bottom:var(--conf-heading-gap)}
.conf-design :where(h1){font-size:var(--conf-h1-size);font-weight:var(--conf-h1-weight);line-height:var(--conf-h1-line);letter-spacing:var(--conf-h1-tracking);color:var(--conf-h1-color)}
.conf-design :where(h2){font-size:var(--conf-h2-size);font-weight:var(--conf-h2-weight);line-height:var(--conf-h2-line);letter-spacing:var(--conf-h2-tracking);color:var(--conf-h2-color)}
.conf-design :where(h3){font-size:var(--conf-h3-size);font-weight:var(--conf-h3-weight);line-height:var(--conf-h3-line);letter-spacing:var(--conf-h3-tracking);color:var(--conf-h3-color)}
.conf-design :where(h4){font-size:var(--conf-h4-size);font-weight:var(--conf-h4-weight);line-height:var(--conf-h4-line);letter-spacing:var(--conf-h4-tracking);color:var(--conf-h4-color)}
body.conf-design :is(.eyebrow,.panel_eyebrow,.hero-conf){font-family:var(--conf-font);font-size:var(--conf-eyebrow-size);font-weight:var(--conf-eyebrow-weight);line-height:var(--conf-eyebrow-line);letter-spacing:var(--conf-eyebrow-tracking);color:var(--conf-eyebrow-color)}
body.conf-design :is(.reg_note,.book_note,.addons_note,.conf-secondary-text){font-size:var(--conf-secondary-size);font-weight:var(--conf-secondary-weight);line-height:var(--conf-secondary-line);letter-spacing:var(--conf-secondary-tracking);color:var(--conf-secondary-color)}
body.conf-design :is(.wrap,.common_container,.conf-container){width:100%;max-width:var(--conf-container);padding-left:var(--conf-gutter);padding-right:var(--conf-gutter);margin-left:auto;margin-right:auto}
body.conf-design :is(.conf-section,.pillars,.agenda,.venue,.sponsors,.about_section,.agenda_calendar_details_wrapper,.travel_section,.stay_section,.keynote_section,.takeaway_section,.reg_block,.help_block,.impact_section,.addons_section,.become_sponsor_section,.section_wrap,.faq_section,.addons_info_section,.addons_featured_section,.addons_additional_section,.addons_soon_section,.addons_reserve_section){padding-top:var(--conf-section-space);padding-bottom:var(--conf-section-space)}
body.conf-design :is(.conf-section-primary,.pillars,.agenda,.venue,.keynote_section,.impact_section,.addons_additional_section){background-color:var(--conf-section-primary)}
body.conf-design .venue_info_section{padding-top:var(--conf-section-space);padding-bottom:var(--conf-section-space);background-color:var(--conf-section-primary)}
body.conf-design :is(.conf-section-alternate,.addons_section,.addons_featured_section,.addons_soon_section){background-color:var(--conf-section-alternate)}
.conf-design .conf-section-decorated{background-image:var(--conf-section-decoration);background-repeat:no-repeat;background-position:bottom;background-size:cover}
body.conf-design :is(.stay_section,.addons_section,.addons_featured_section,.addons_soon_section){background:var(--conf-section-alternate)}
body.conf-design .addons_additional_section{background:var(--conf-section-primary)}
body.conf-design :is(.conf-section-featured,.sponsor_cta,.addons_reserve_box){background-color:var(--conf-section-featured);color:var(--conf-section-featured-text)}
body.conf-design :is(.conf-section-featured,.sponsor_cta,.addons_reserve_box) :is(h1,h2,h3,h4,p){color:var(--conf-section-featured-text)}
body.conf-design :is(.conf-card,.info_card,.help_card,.about_section .card,.addon_card,.block_card){padding:var(--conf-card-padding);border-radius:var(--conf-card-radius);background-color:var(--conf-card-bg);border:1px solid var(--conf-card-border)}
body.conf-design :is(.help_grid,.info_grid,.addons_grid,.fee_grid,.tier_grid,.conf-card-grid){gap:var(--conf-card-gap)}
body.conf-design :is(.agenda,.venue,.session_grid,.keynote_grid,.conf-columns){column-gap:var(--conf-column-gap)}
body.conf-design :is(.hero_section,.conf-hero){height:var(--conf-hero); min-height: 1px;}
body.conf-design .hero_section{padding-top:24px;padding-bottom:50px}
body.conf-design .hero_section .hero_img{object-fit:cover}

body.conf-design .hero_section .logo{max-width:280px}
body.conf-design .hero_section .meta{margin:10px 0}
body.conf-design .hero_section .hero_content{max-width:100%}
body.conf-design .hero_section .hero_content .btns{flex-wrap:wrap}

/* Existing CTA names are explicit adapters to reusable primary/secondary components. */
body.conf-design :is(.conf-btn,.btn,.registration_button,.book_btn,.panel_btn,.cta_btn,.fee_btn,.register_now,.tier_feature_btn,.tier_btn,.addons_all_btn,.become_btn,.notice-btn){
  --button-bg:var(--conf-btn-primary-bg);--button-text:var(--conf-btn-primary-text);--button-hover-bg:var(--conf-btn-primary-hover-bg);--button-hover-text:var(--conf-btn-primary-hover-text);--button-border:var(--conf-btn-primary-border);--button-border-width:var(--conf-btn-primary-border-width);--button-height:var(--conf-btn-primary-height);--button-padding:var(--conf-btn-primary-padding);--button-radius:var(--conf-btn-primary-radius);--button-size:var(--conf-btn-primary-size);--button-weight:var(--conf-btn-primary-weight);--button-icon:var(--conf-btn-primary-icon);--button-gap:var(--conf-btn-primary-gap);
  display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height);height:auto;padding:10px var(--button-padding);gap:var(--button-gap);border:var(--button-border-width) solid var(--button-border);border-radius:var(--button-radius);background:var(--button-bg);color:var(--button-text);font-family:var(--conf-font);font-size:var(--button-size);font-weight:var(--button-weight);line-height:var(--conf-button-line);letter-spacing:var(--conf-button-tracking);text-align:center;max-width:100%;white-space:normal;box-shadow:none;transition:background-color .15s,color .15s;
}
body.conf-design :is(.conf-btn-secondary,.btn.line,.btn.white,.cta_btn.outline,.notice-btn){
  --button-bg:var(--conf-btn-secondary-bg);--button-text:var(--conf-btn-secondary-text);--button-hover-bg:var(--conf-btn-secondary-hover-bg);--button-hover-text:var(--conf-btn-secondary-hover-text);--button-border:var(--conf-btn-secondary-border);--button-border-width:var(--conf-btn-secondary-border-width);--button-height:var(--conf-btn-secondary-height);--button-padding:var(--conf-btn-secondary-padding);--button-radius:var(--conf-btn-secondary-radius);--button-size:var(--conf-btn-secondary-size);--button-weight:var(--conf-btn-secondary-weight);--button-icon:var(--conf-btn-secondary-icon);--button-gap:var(--conf-btn-secondary-gap);
}
body.conf-design :is(.conf-btn,.btn,.registration_button,.book_btn,.panel_btn,.cta_btn,.fee_btn,.register_now,.tier_feature_btn,.tier_btn,.addons_all_btn,.become_btn,.notice-btn):is(:hover,:focus-visible){background:var(--button-hover-bg);color:var(--button-hover-text)}
body.conf-design :is(.conf-btn,.btn,.registration_button,.book_btn,.panel_btn,.cta_btn,.fee_btn,.register_now,.tier_feature_btn,.tier_btn,.addons_all_btn,.become_btn,.notice-btn) :is(svg,img){width:var(--button-icon);height:var(--button-icon);object-fit:contain;flex-shrink:0}
body.conf-design :is(.conf-btn,.btn,.panel_btn,.cta_btn,.fee_btn,.tier_feature_btn,.tier_btn,.addons_all_btn,.notice-btn)::after{font-size:var(--button-icon)}
.conf-design p + :is(.conf-btn,.btn){margin-top:var(--conf-button-gap)}
body.conf-design :is(.conf-icon,.ic,.info_icon,.meta_icon,.takeaway_icon,.benefit_icon,.date_icon,.step_icon,.help_icon,.addon_icon,.addons_info_icon, .travel_icon){width:var(--conf-icon-circle);height:var(--conf-icon-circle);min-width:var(--conf-icon-circle);border-radius:var(--conf-icon-radius);background:var(--conf-icon-bg);color:var(--conf-icon-color);display:inline-grid;place-items:center;flex-shrink:0;margin-bottom:var(--conf-icon-gap)}
body.conf-design :is(.conf-icon,.ic,.info_icon,.meta_icon,.takeaway_icon,.benefit_icon,.date_icon,.step_icon,.help_icon,.addon_icon,.addons_info_icon, .travel_icon) :is(img,svg){width:var(--conf-icon-size);height:var(--conf-icon-size);object-fit:contain;color:var(--conf-icon-color)}


body.conf-design :is(.conf-btn,.btn,.book_btn,.registration_button) svg.conf-inline-icon{color:inherit}
body.conf-design :is(.meta,.conf-icon-small) :is(img,svg){width:var(--conf-icon-small);height:var(--conf-icon-small);color:var(--conf-icon-color)}

body.conf-design .nav-links a{font-family:var(--conf-font);font-size:var(--conf-nav-size);font-weight:var(--conf-nav-weight);line-height:var(--conf-nav-line);letter-spacing:var(--conf-nav-tracking);color:var(--conf-nav-color)}
body.conf-design .nav-links a:hover{color:var(--conf-nav-hover)}
body.conf-design > footer{background-color:var(--conf-footer-bg);color:var(--conf-footer-text);padding:var(--conf-footer-space) var(--conf-gutter);background-size:cover;background-position:bottom}
body.conf-design > footer a{color:var(--conf-footer-text)}
body.conf-design > footer a:hover{color:var(--conf-footer-hover)}
.conf-footer-logo{max-width:240px;max-height:120px;object-fit:contain}
body.conf-design .cta{background-color:var(--conf-section-featured);color:var(--conf-section-featured-text);padding-top:var(--conf-section-space);padding-bottom:var(--conf-section-space)}

@media(max-width:600px){body.conf-design :is(.conf-btn,.btn,.registration_button,.book_btn,.panel_btn,.cta_btn,.fee_btn,.register_now,.tier_feature_btn,.tier_btn,.addons_all_btn,.become_btn,.notice-btn){width:var(--conf-mobile-button-width)}body.conf-design .hero_section .hero_content{width:100%}body.conf-design .hero_section .logo{max-width:220px}body.conf-design .hero_section::before{width:100%;background:linear-gradient(to right,rgba(255,255,255,.97),rgba(255,255,255,.8))}}
@media(prefers-reduced-motion:reduce){.conf-design .conf-btn{transition:none}}
