/* Manrope is served with the site so every page uses the same real font. */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/manrope-latin-ext-variable.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/manrope-latin-variable.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root { --font-ui: "Manrope", "Helvetica Neue", Arial, sans-serif; }
body, #ouvora-site, .cart-dialog, .concierge-widget {
  font-family: var(--font-ui);
  font-weight: 500;
}
body :is(h1, h2, h3, h4),
body :is(button, input, textarea, select),
.concierge-bubble strong, .concierge-panel-header strong,
.concierge-calendar-link, .concierge-details input, .concierge-details textarea {
  font-family: var(--font-ui);
}
/* Keep the established Ouvora wordmark independent from the text refresh. */
#ouvora-site .ov-wordmark, #ouvora-site .ov-keyring {
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
}
#ouvora-site :is(.ov-hero, .ov-section, .ov-finale, .ov-feature-copy, .ov-feature-care, .ov-contact-panel, .sms-pricing, .ov-phone-overlay) :is(h1, h2, h3, h4):not(.ov-wordmark) {
  font-weight: 700;
}
#ouvora-site .ov-hero h1 {
  font-weight: 750;
  letter-spacing: -.05em;
  line-height: 1.04;
}
#ouvora-site .ov-feature-copy h1 { font-weight: 750; letter-spacing: -.04em; }
#ouvora-site :is(.ov-section-head h2, .ov-photo-copy h2, .ov-finale h2) { letter-spacing: -.035em; }
#ouvora-site :is(.ov-links, .ov-portal-link, .ov-nav-cta, .ov-cart-button, .ov-menu-toggle) { font-weight: 700; }
#ouvora-site :is(button, .ov-primary, .ov-text-button, .ov-docs a, .ov-feature-nav a) { font-weight: 650; }
#ouvora-site :is(.ov-eyebrow, .ov-section-label, .ov-field-label, .ov-controls-top, .ov-faq summary, .ov-feature-table th) { font-weight: 650; }
#ouvora-site :is(.ov-plan-summary strong, .ov-feature-steps strong, .ov-mini-preview strong, .ov-profile-action strong, .ov-early-access strong) { font-weight: 700; }
#ouvora-site :is(.ov-profile-action small, .ov-controls-top span, .ov-flow-button small) { font-weight: 500; }
#ouvora-site :is(.ov-price-number, .sms-pack-price) { font-weight: 750; }
#ouvora-site .ov-intro { font-size: 16px; line-height: 1.75; }
#ouvora-site :is(.ov-section-head p, .ov-flow-description p, .ov-photo-copy p, .ov-business-demo p, .ov-faq p, .ov-feature-care p) {
  font-size: 15px;
  line-height: 1.75;
}
#ouvora-site :is(.ov-price-card > p, .ov-price-card ul, .ov-price-foot) { font-size: 14px; line-height: 1.75; }
#ouvora-site :is(.ov-section-head p, .ov-intro, .ov-docs p) { color: #bac3d6; }
.cart-dialog :is(.button, .cart-remove-item, .cart-keyring-picker label, .cart-onboarding-form label),
.concierge-widget button, .editorial :is(.button, .cart-nav) { font-weight: 700; }
.cart-dialog .cart-totals dd { font-weight: 650; }
.cart-dialog .cart-total dd { font-weight: 750; }
[data-studio-layout="atelier"] :is(.ds-step, .ds-hint, .ds-editor-step summary small, input:not([type="checkbox"]):not([type="range"]), select, textarea) {
  font-family: var(--font-ui);
  font-weight: 500;
}
@media (max-width: 760px) {
  #ouvora-site .ov-hero h1 { font-size: clamp(48px, 15.2vw, 64px); }
}

/* Shared editorial rhythm; the phone previews and Studio controls keep their sizing. */
#ouvora-site {
  --ov-section-space: 72px;
  --ov-heading-one: clamp(48px, 6.4vw, 76px);
  --ov-heading-two: 43px;
  --ov-heading-three: 25px;
}
#ouvora-site [data-home-view] > :is(.ov-hero, .ov-section, .ov-photo-section, .ov-finale, .sms-pricing) {
  padding-top: var(--ov-section-space);
  padding-bottom: var(--ov-section-space);
}
#ouvora-site :is(.ov-hero-copy, .ov-feature-copy) > h1 {
  font-size: var(--ov-heading-one);
  line-height: 1.04;
}
#ouvora-site :is(.ov-section-head, .ov-photo-copy, .ov-finale-top, .sms-pricing, .ov-feature-copy, .ov-feature-care, .ov-contact-panel) h2 {
  font-size: var(--ov-heading-two);
  line-height: 1.12;
}
#ouvora-site :is(.ov-flow-description, .ov-business-demo, .ov-price-card, .sms-pricing, .ov-feature-copy, .ov-feature-care) h3 {
  font-size: var(--ov-heading-three);
  line-height: 1.25;
}
#ouvora-site :is(.ov-section, .ov-photo-section, .ov-finale, .ov-feature-copy, .ov-feature-care, .sms-pricing) p:not(.ov-phone p),
#ouvora-site .ov-price-foot {
  max-width: 60ch;
}
#ouvora-site .ov-section-head p { max-width: 285px; }
#ouvora-site .ov-feature-care {
  margin-top: var(--ov-section-space);
  padding-top: var(--ov-section-space);
}
#ouvora-site .ov-sms-topup-note { margin-top: 18px; max-width: 60ch; font-size: 14px; line-height: 1.75; }
#ouvora-site .ov-sms-topup-note a { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 850px) {
  #ouvora-site { --ov-section-space: 55px; --ov-heading-one: 64px; --ov-heading-two: 37px; }
}
@media (max-width: 640px) {
  #ouvora-site { --ov-section-space: 46px; --ov-heading-one: clamp(48px, 15.2vw, 64px); --ov-heading-two: 37px; }
  #ouvora-site .ov-section-head p { max-width: 330px; }
}
@media (max-width: 370px) {
  #ouvora-site { --ov-heading-two: 33px; }
}
