/* Shared reading and touch scale. Photo frames, SVG coordinates and sliders stay
   owned by their editors; these rules only adjust the surrounding interface. */
:root {
  --form-body-size: 15px;
  --form-action-size: 14px;
  --form-label-size: 13px;
  --form-reading-line: 1.55;
}

.v29-app{
  font-size: var(--form-body-size);
  line-height: var(--form-reading-line);
}

/* Long French labels, names and event titles must have room to grow. */
:is(.v29-page-head,.v30-composer-head,.bw-head,.bw-section-head,.p35-header,
    .partnership-composer header,.partnership-summary header,.form-mission-head) > div,
:is(.v29-form-card,.v29-profile-preview,.v30-composer-controls,.p35-adjustments,
    .p31-onboarding,.p31-next-card,.soc-total,.soc-editor,.cal-month,
    .partnership-row,.partnership-budget,.partnership-summary,.partnership-correspondence),
:is(.bw-form-grid,.bw-two-column,.v29-auth-grid,.cal-search,.cal-form-two,
    .partnership-row-main,.partnership-conditions,.v27-deal-sheet-grid) > * {
  min-width: 0;
}

.v29-page-head,.v30-control-heading,.bw-head-actions,.partnership-thread-toolbar,.partnership-composer header,.partnership-summary header{
  flex-wrap: wrap;
}

.v29-page-head h1{
  font-family: inherit;
  font-size: clamp(30px, 3.8vw, 48px);
  line-height: 1.12;
  letter-spacing: -.035em;
  text-transform: none;
  overflow-wrap: anywhere;
}

.v29-page-head p,.bw-head p,.brand-workspace .v29-page-head p{
  font-size: var(--form-body-size);
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.v29-auth-title strong,.v27-deal-sheet-copy h2 {
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.v29-auth-title > span,.v29-page-head > div > span,.v30-composer-head > div > span,.bw-eyebrow,.p31-next-card > span,.p31-campaign-focus header > span,.form-mission-head > div > span,.soc-eyebrow,.soc-total > div > span,.form-language-card > div > span,.ag-kicker,.ag-top > span,.ag-photo-group > header > span{
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .05em;
  font-weight: 650;
  text-transform: none;
}

/* Text actions share one size; icon buttons keep their visual shape. */
.v29-app .v29-main-btn,.v29-app .v29-ghost-btn,.modal-card .v29-main-btn,.modal-card .v29-ghost-btn,.v29-app-top > div > button,.brand-workspace .bw-top > div > button,.v29-auth-card .demo-access button,.v29-photo-manager button,.v29-photo-manager label,.v30-upload-label,.v30-view-tabs button,.p36-photo-tabs button,.p32-zoom-tools button,.p32-nudge button,.p33-inspect,.v27-filter-pills button,.bw-asset-actions button,.bw-backdrops button,.bw-sections button,.selection-group button,.selection-more button,.cal-scope button,.cal-card-actions button,.cal-card-actions a,.cal-sport-pills button,.cal-month-filter,.partnership-quick button,.partnership-remove,.partnership-correspondence > header button,.partnership-thread-toolbar button,.ag-dialog button,.ag-example-options button,.demo-account-bar button,.demo-signup-entry button{
  min-height: 44px;
  height: auto;
  font-size: var(--form-action-size);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

.v29-app .v29-main-btn,.v29-app .v29-ghost-btn,.modal-card .v29-main-btn,.modal-card .v29-ghost-btn{
  padding: 12px 16px;
}

.v30-view-tabs button,.p36-photo-tabs button,.bw-sections button {
  flex-shrink: 0;
  white-space: nowrap;
}

.v30-heart,.modal-close,.v30-checkout header > button,.v30-crop-modal header > button{
  min-width: 44px;
  min-height: 44px;
  flex-shrink: 0;
}

.v30-switch { position: relative; }
.v30-switch::before { content: ''; position: absolute; inset: -10px -3px; }

.v30-upload-label,.bw-upload{ min-height: 44px; }
.v30-save-bar button { min-height: 44px; font-size: 14px; white-space: normal; }
.v29-app .v30-save-bar { font-size: 13px; line-height: 1.5; }
.bw-table th button { min-height: 44px; }

/* Inputs remain readable on Safari, including compact placement selectors. */
.v29-auth-card :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea),
.v29-form-card :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea),
.p35-placement select,.p36-price-input input,.demo-account-bar select,
.cal-search input,.cal-search select,
.cal-dialog input:not([type=checkbox]),.cal-dialog textarea {
  font-size: 16px;
  line-height: 1.4;
  min-height: 46px;
  max-width: 100%;
}

.v29-auth-card label,.v29-form-card label,.v30-adjustments label,.bw-form label,.bw-toolbar > label,.p35-review > label,.cal-search label,.cal-dialog label,.soc-editor label,.demo-account-bar label,.form-language-card label,.demo-setup label{
  font-size: var(--form-label-size);
  line-height: 1.5;
  letter-spacing: 0;
  font-weight: 600;
}

.cal-dialog label.cal-publish,.v30-roster-count label,.v30-ratio{
  min-height: 44px;
  align-content: center;
}

/* Help,status and saved selections are information,not decoration. */
.v29-photo-manager small,.v29-photo-empty span,.v30-zone-list small,.v29-auth-card .demo-access > span,.v29-role-pick button > small,.v30-preview-head,.v30-preview-foot span,.v30-patch-options small,.v30-review-bar span,.v30-checkout header span,.v30-crop-modal header span,.p33-workspace .v30-composer-head p,.p33-workspace .v30-preview-head,.p35-review small,.p31-stats span,.p31-budget span,.p31-campaign-list span,.p31-campaign-requests small,.bw-metrics small,.bw-secondary-metrics small,.bw-deal-row small,.bw-panel p,.bw-empty p,.bw-context,.bw-asset small,.bw-asset p,.bw-facts dt,.bw-table thead th,.bw-table th small,.bw-table caption,.bw-backdrops legend,.soc-status,.soc-help,.soc-public-list small,.soc-total > p,.soc-save p,.cal-demo,.cal-result-count,.cal-event-copy > p,.cal-event-date small,.cal-dialog > p,.cal-public-count,.cal-publish small,.selection-group small,.selection-copy em,.selection-total > small,.selection-total > p,.selection-empty,.selection-more button small,.partnership-composer small,.partnership-summary > small,.partnership-summary header small,.partnership-row legend,.partnership-thread-toolbar,.partnership-letters header,.partnership-letters time,.partnership-letters article > small,.partnership-correspondence form > small,.partnership-correspondence form p,.partnership-patch-recap small,.partnership-event,.p36-offer-history p,.p36-offer-history time,.dv-gallery > header span,.dv-gallery small,.dv-photo-tabs button > span,.dv-photo-tabs small,.dv-photo-error > span,.dv-photo-loading,.ag-example figcaption,.ag-signup-examples figcaption,.ag-example-options legend,.ag-signup p,.ag-body ol span,.ag-body ul li,.ag-body .ag-note,.ag-footer > span,.demo-account-bar p,.demo-photo-choices small,.demo-setup .demo-ai-note,.form-mission p,.form-mission-head > strong > span,.form-mission-steps small{
  font-size: var(--form-label-size);
  line-height: var(--form-reading-line);
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.soc-roster-count small { font-size: 12px !important; line-height: 1.5; }
.partnership-budget .p36-offer-help,.p36-offer-help{ font-size: 13px !important; line-height: 1.6; }
.p31-demo { font-size: 12px !important; line-height: 1.5; letter-spacing: .03em; }
.partnership-composer p { font-size: 14px; }

.cal-labels span,.v27-status-pill,.partnership-included {
  max-width: 100%;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: .01em;
  text-transform: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

.v27-status-pill { width: fit-content; }
.v27-clean-deal-top { flex-wrap: wrap; }
.v27-clean-deal-copy p,.v27-clean-deal-copy small {
  white-space: normal;
  text-overflow: clip;
  overflow-wrap: anywhere;
  line-height: 1.5;
}
.v27-clean-deal-copy small { font-size: 13px; }
.v27-clean-deal-copy h2 { line-height: 1.3; overflow-wrap: anywhere; }
.v27-deal-sheet-copy > p,.v27-clean-campaign > span{
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0;
  font-weight: 500;
}
.partnership-patch-recap li > span { min-width: 0; overflow-wrap: anywhere; }
.partnership-patch-recap img { flex-shrink: 0; }
.partnership-summary header strong { white-space: normal; overflow-wrap: anywhere; }
.partnership-extra summary,.partnership-counter summary,.partnership-admin summary,
.partnership-finances summary,.partnership-row-date summary,
.p36-offer-history summary,.selection-more summary,.ag-signup summary {
  font-size: 14px;
  line-height: 1.5;
  padding-block: 8px;
}

.v30-logo-options small{
  font-size: 12px;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
}
.p37-summary > .selection-heading span { white-space: normal; }

/* Five destinations remain named in portrait and landscape. */
.v29-app .p34-nav.p36-nav {
  height: calc(76px + env(safe-area-inset-bottom, 0px));
}
.v29-app .p36-nav button {
  height: 68px;
  min-height: 44px;
  grid-template-rows: 27px auto;
  gap: 3px;
  padding: 5px 3px;
}
html[lang] .v29-app .p36-nav .p36-nav-label {
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.v29-app:not(.brand-workspace) .v30-save-bar {
  bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}
.v29-page.p36-placement {
  padding-bottom: calc(196px + env(safe-area-inset-bottom, 0px));
}

/* Seven real touch targets need at least 332px before calendar padding. */
.cal-layout { grid-template-columns: 368px minmax(0, 1fr); }
.cal-month { overflow-x: auto; }
.cal-days { min-width: 332px; }
.cal-days button { min-width: 44px; min-height: 44px; }
.cal-days > span { font-size: 12px; }
.cal-days button b { font-size: 14px; }
.cal-days button small { font-size: 11px; line-height: 1; }
.cal-month header h2 { font-size: 17px; line-height: 1.4; margin: 0; }

@media (max-width: 1100px) {
  .cal-layout { grid-template-columns: minmax(0, 1fr); }
  .cal-month { position: static; width: 100%; max-width: 420px; }
  .p31-receipt .v27-deal-sheet-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 20px;
  }
}

@media (max-width: 960px) {
  .brand-workspace .v30-save-bar {
    bottom: calc(88px + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 760px) {
  .v29-page-head { align-items: flex-start; gap: 16px; }
  .v29-page-head > .v29-main-btn,.v29-page-head > .v29-ghost-btn { max-width: 100%; }
  .v29-app-top { height: auto; min-height: 66px; padding-block: 10px; gap: 10px; }
  .v29-app-top > div { flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
  .brand-workspace .bw-top { height: auto; min-height: 66px; }
  .v29-app-top > div > button,.brand-workspace .bw-top > div > button { padding: 8px 10px; }
  .p31-receipt .v27-deal-sheet-grid { grid-template-columns: minmax(0, 1fr); }
  .soc-public-list a { flex-wrap: wrap; }
  .soc-public-list a > span:last-child { text-align: left; }
  .partnership-row-main { grid-template-columns: 76px minmax(0, 1fr); }
  .partnership-row-main > label:last-child { grid-column: 1 / -1; }
  .partnership-conditions { grid-template-columns: minmax(0, 1fr); }
  .ag-top { flex-wrap: wrap; }
  .ag-body p,.ag-body li { font-size: 14px; }
}

@media (max-width: 480px) {
  .demo-account-bar > div { min-width: 0; }
  .demo-account-bar label,.demo-account-bar select { width: 100%; max-width: 100%; }
  .bw-toolbar > label,.bw-toolbar > label:first-child { min-width: 0; flex-basis: 100%; }
  .v29-profile-preview > div > div { grid-template-columns: auto minmax(0, 1fr); gap: 6px 10px; }
  .v30-crop-modal footer,.v30-checkout dl > div { flex-wrap: wrap; }
  .v30-crop-modal footer > button { flex: 1 1 130px; }
  .v30-checkout dd { text-align: left; overflow-wrap: anywhere; }
  .cal-search { grid-template-columns: minmax(0, 1fr); }
  .cal-event { gap: 12px; }
  .cal-event h2 { font-size: 19px; line-height: 1.35; }
  .cal-event-date { flex-basis: 48px; }
  .cal-card-actions > * { width: 100%; text-align: center; }
  .selection-row { grid-template-columns: 46px minmax(0, 1fr); }
  .selection-actions { grid-column: 2 / -1; justify-content: flex-start; }
  .partnership-thread-toolbar { align-items: flex-start; }
  .form-mission-head { flex-wrap: wrap; }
}
.p31-home .p31-home-grid{grid-template-columns:minmax(0,1fr)}
.p38-open-request{font-size:14px;line-height:1.5;color:var(--text);align-self:center;white-space:normal}
.partnership-review-error{position:static;margin:0;padding:14px 16px;background:#412e20;color:#ffe5c4;border:1px solid #a78352;border-radius:9px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}

/* Directional controls use the same vector drawing as the navigation. */
:is(.athlete-photo-pager,.bt-pager,.cal-month>header,.p32-nudge) button>svg {
  width:20px;
  height:20px;
  display:block;
  flex-shrink:0;
  margin:auto;
}
