/* Agrandissement des pages clients ; les interfaces de gestion restent distinctes. */
html { scroll-padding-top: 130px; }
body>main, body>footer { font-size: clamp(20px, 1.1vw, 24px); line-height: 1.65; }
.demo-ribbon { padding: 12px 20px; font-size: 16px; letter-spacing: .08em; line-height: 1.5; }
.site-header { height: auto; min-height: 106px; padding-block: 22px; gap: 24px; }
.brand-title { font-size: clamp(26px, 1.9vw, 40px); white-space: normal; line-height: 1.2; }
.brand-title>span { font-size: 16px; }
.header-actions { flex-shrink: 0; }
.lang-button, .icon-button { min-width: 48px; height: 48px; font-size: 18px; }
.site-sections { min-height: 64px; gap: 16px; }
.site-sections a { padding: 14px 22px; font-size: 19px; letter-spacing: .04em; }
.eyebrow { font-size: 17px; line-height: 1.5; }
.hero { width: min(2400px, calc(100% - 64px)); min-height: 650px; }
.hero-content { width: calc(100% - 120px); padding: 70px 0 90px; }
.hero-logo { width: clamp(320px, 29vw, 540px); }
.hero p { font-size: 23px; line-height: 1.6; max-width: 38em; }
.service { font-size: 20px; min-height: 52px; padding: 13px 24px; }
.hero-order-callout { width: min(470px, 38vw); padding: 30px; gap: 12px; }
.hero-call-label, .hero-click-link span { font-size: 17px; line-height: 1.5; }
.hero-phone-link { font-size: clamp(30px, 2.3vw, 46px); }
.hero-click-link { padding: 18px; }
.hero-click-link strong { font-size: 23px; }
.hero-order-or, .hero-status, .hero-status small { font-size: 17px; }
.hero-status { right: 40px; bottom: 25px; }
.menu-shell { width: min(2400px, calc(100% - 96px)); padding: clamp(45px, 4vw, 90px); margin-block: 40px 80px; }
.menu-heading { gap: 36px; margin-bottom: 40px; }
.menu-heading h2 { font-size: clamp(38px, 3.5vw, 74px); line-height: 1.1; }
.search-box { width: min(440px, 100%); min-height: 58px; }
.search-box input { font-size: 20px; }
.content-grid { grid-template-columns: minmax(0, 1fr) minmax(340px, .32fr); gap: 36px; }
.category-nav { top: 106px; }
.kiosk-category-grid { top: auto; gap: 24px; }
.kiosk-category-copy { min-height: 132px; padding: 24px; gap: 16px; }
.kiosk-category-copy strong, .kiosk-category-toolbar>strong { font-size: clamp(23px, 1.3vw, 30px); line-height: 1.2; }
.kiosk-category-copy small { font-size: 18px; line-height: 1.5; }
.kiosk-count { font-size: 16px; min-width: 36px; height: 36px; }
.kiosk-back { font-size: 19px; min-height: 52px; padding: 12px 22px; }
.menu-grid { gap: 26px; }
.menu-item-copy { padding: 26px 26px 16px; }
.menu-item h3 { font-size: clamp(27px, 1.4vw, 34px); line-height: 1.2; margin: 10px 0 14px; }
.menu-item p { display: block; font-size: 21px; line-height: 1.6; overflow: visible; }
.item-category, .item-note, .result-meta { font-size: 17px; line-height: 1.5; }
.menu-item-buy { padding: 12px 26px 26px; }
.menu-item-buy .price { font-size: 27px; }
.menu-item-buy .add-button { width: 52px; height: 52px; font-size: 27px; }
.order-card { padding: 28px; top: 134px; font-size: 20px; }
.order-card-head small, .order-note { font-size: 16px; line-height: 1.5; }
.order-empty p { font-size: 20px; max-width: 26em; }
.cart-line strong, .order-total { font-size: 20px; }
.cart-line small, .qty-control span { font-size: 17px; }
.qty-control button { width: 40px; height: 40px; font-size: 20px; }
.primary-button { min-height: 56px; padding: 12px 20px; font-size: 20px; }
.menu-optimizer-card h3 { font-size: 25px; }
.menu-optimizer-card>p, .optimizer-formula>strong, .optimizer-saving, .optimizer-apply, .optimizer-undo { font-size: 18px; line-height: 1.5; }
.optimizer-formula span, .optimizer-kicker, .optimizer-comparison small, .optimizer-consent { font-size: 16px; line-height: 1.5; }
.optimizer-comparison strong { font-size: 25px; }
.optimizer-comparison del { font-size: 20px; }
.practical, .onsite-payments { padding: 90px max(32px, calc((100% - 2280px)/2)); }
.practical { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.practical-services span, .facade-frame figcaption { font-size: 18px; line-height: 1.5; }
.payment-methods-grid { gap: 24px; }
.payment-section-heading p { font-size: 22px; line-height: 1.6; }
.payment-method-card h3 { font-size: 28px; line-height: 1.2; }
.payment-method-card>p { font-size: 20px; line-height: 1.6; }
footer { padding: 60px max(32px, calc((100% - 2280px)/2)); gap: 28px; }
footer p strong { font-size: 24px; }
footer small { font-size: 17px; }
.mobile-cart>span:first-child { font-size: 18px; }
.drawer-body { font-size: 20px; }
.checkout-body, .info-panel { font-size: 20px; line-height: 1.65; }
.checkout-form label, .summary-line { font-size: 19px; }
.safe-note, .order-reference { font-size: 17px; }
.checkout-progress .progress-step { font-size: 16px; }
.library-hero { width: min(2400px, calc(100% - 64px)); min-height: 780px; margin-top: 28px; }
.library-hero-copy { width: min(950px, calc(100% - 120px)); }
.library-hero h1 { font-size: clamp(64px, 6vw, 138px); line-height: 1; }
.library-hero p { font-size: clamp(23px, 1.3vw, 30px); max-width: 34em; line-height: 1.6; }
.library-hero small { font-size: 17px; line-height: 1.5; }
.parchment-section, .tea-section, .book-section, .catalogue-section { width: min(2280px, calc(100% - 96px)); margin-block: 55px; }
.intro-copy, .private-copy, .book-section p, .catalogue-heading p { font-size: clamp(21px, 1.2vw, 27px); line-height: 1.7; }
.parchment-section h2, .tea-section h2, .book-section h2 { font-size: clamp(38px, 3.5vw, 76px); line-height: 1.12; }
.section-heading-centered { max-width: 1000px; margin-bottom: 45px; }
.offering-grid, .book-grid { gap: 28px; }
.offering-card h3 { font-size: 32px; line-height: 1.2; }
.offering-card li { font-size: 21px; line-height: 1.6; padding-block: 14px; }
.library-button, .catalogue-manage-button { font-size: 20px; min-height: 56px; padding: 14px 24px; }
.catalogue-demo-note { font-size: 18px; line-height: 1.6; padding: 18px 22px; }
.book-filters { gap: 12px; }
.book-filters button { font-size: 20px; min-height: 52px; }
.book-filters b { font-size: 17px; }
.shop-badge { font-size: 16px; }
.shop-book-copy { padding: 28px; }
.shop-book-copy h3 { font-size: 29px; line-height: 1.2; }
.shop-author { font-size: 19px; line-height: 1.5; }
.shop-synopsis { display: block; overflow: visible; font-size: 20px; line-height: 1.65; }
.shop-library-note { font-size: 21px; line-height: 1.6; }
.shop-library-note strong { font-size: 16px; line-height: 1.5; }
.shop-book-footer { flex-wrap: wrap; gap: 18px; }
.shop-price { font-size: 29px; }
.shop-add-button { min-height: 52px; padding: 12px 20px; font-size: 19px; }
.library-cart-bar { font-size: 19px; }
.library-cart-bar button { font-size: 18px; min-height: 48px; }
#libraryCartDialog { font-size: 20px; }
.cart-item h3 { font-size: 22px; }
.cart-item p, .cart-remove { font-size: 17px; }
.cart-qty button { width: 42px; height: 42px; }
@media (max-width: 1400px) {
  .kiosk-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .content-grid { grid-template-columns: minmax(0, 1fr) 340px; }
  .menu-grid { grid-template-columns: 1fr; }
  .book-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .payment-methods-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
  .content-grid { grid-template-columns: 1fr; }
  .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-order-callout { width: 380px; }
  .hero-content { width: calc(100% - 70px); }
  .hero-logo { width: 320px; }
  .hero p { max-width: 45%; }
  .book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-book-card.recommendation { grid-column: 1 / -1; }
  .parchment-section { grid-template-columns: 1fr; gap: 30px; }
  footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 24px; }
  body>main, body>footer { font-size: 18px; }
  .demo-ribbon { font-size: 14px; white-space: normal; }
  .site-header { position: relative; min-height: 92px; padding: 20px; gap: 14px; }
  .brand-title { font-size: 24px; }
  .brand-title>span { display: block; font-size: 14px; margin: 6px 0 0; }
  .header-actions { gap: 8px; }
  .lang-button, .icon-button { min-width: 44px; height: 44px; padding: 0 10px; }
  .site-sections { padding: 8px 12px; gap: 8px; }
  .site-sections a { font-size: 17px; padding: 12px 8px; letter-spacing: 0; flex: 1; text-align: center; justify-content: center; }
  .hero { width: calc(100% - 20px); min-height: 0; }
  .hero-content { width: calc(100% - 48px); padding: 36px 0 90px; }
  .hero-logo { width: min(360px, 100%); margin: 0 auto 20px; }
  .hero p { max-width: none; font-size: 21px; }
  .eyebrow { font-size: 16px; }
  .hero-order-callout { position: static; transform: none; width: 100%; padding: 24px; margin-top: 28px; }
  .hero-status { font-size: 16px; right: 20px; left: 20px; text-align: center; bottom: 20px; }
  .service { font-size: 18px; padding: 12px 18px; }
  .hero-phone-link { font-size: 30px; }
  .hero-click-link strong { font-size: 22px; }
  .menu-shell { width: calc(100% - 20px); padding: 40px 18px; margin-block: 24px 50px; }
  .menu-heading { align-items: stretch; flex-direction: column; gap: 24px; }
  .menu-heading h2 { font-size: 38px; }
  .search-box { width: 100%; }
  .kiosk-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .kiosk-category-copy { min-height: 132px; padding: 18px 14px; }
  .kiosk-category-copy strong { font-size: 22px; }
  .kiosk-category-copy small { font-size: 17px; }
  .kiosk-category-toolbar { top: 0; flex-wrap: wrap; gap: 14px; }
  .kiosk-category-toolbar>strong { font-size: 23px; }
  .menu-grid { grid-template-columns: 1fr; gap: 22px; }
  .menu-item h3 { font-size: 28px; }
  .menu-item p { font-size: 20px; }
  .menu-item-copy { padding: 22px 20px 12px; }
  .menu-item-buy { padding: 10px 20px 22px; }
  .practical, .onsite-payments { padding: 60px 24px; }
  .practical { grid-template-columns: 1fr; gap: 36px; }
  .payment-methods-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .payment-method-card h3 { font-size: 24px; }
  .payment-method-card>p { font-size: 18px; }
  footer { grid-template-columns: 1fr; padding: 44px 24px 110px; }
  .checkout-progress .progress-step { font-size: 0; }
  .library-hero { width: calc(100% - 20px); min-height: 680px; }
  .library-hero-copy { position: relative; left: auto; bottom: auto; width: auto; padding: 200px 28px 45px; }
  .library-hero h1 { font-size: clamp(42px, 11vw, 74px); }
  .library-hero p { font-size: 22px; }
  .library-hero small { font-size: 16px; border-radius: 10px; }
  .parchment-section, .tea-section, .book-section, .catalogue-section { width: calc(100% - 24px); margin-block: 35px; }
  .parchment-section, .book-section { padding: 42px 26px; grid-template-columns: 1fr; }
  .intro-copy, .private-copy, .book-section p, .catalogue-heading p { font-size: 20px; }
  .parchment-section h2, .tea-section h2, .book-section h2 { font-size: 38px; }
  .offering-card li { font-size: 20px; }
  .catalogue-heading { padding-inline: 12px; }
  .book-filters { flex-wrap: wrap; overflow: visible; }
  .book-filters button { font-size: 18px; padding: 10px 16px; }
  .book-grid { grid-template-columns: 1fr; gap: 24px; }
  .shop-book-card.recommendation { display: flex; grid-column: auto; }
  .shop-cover, .recommendation .shop-cover { aspect-ratio: 4 / 4.6; min-height: 0; }
  .shop-cover img { object-fit: contain; }
  .shop-book-copy, .recommendation .shop-book-copy { padding: 26px; }
  .shop-book-copy h3 { font-size: 29px; }
  .shop-synopsis { font-size: 20px; }
  .shop-book-footer, .recommendation .shop-book-footer { flex-direction: row; align-items: center; }
  .shop-add-button, .recommendation .shop-add-button { width: auto; font-size: 19px; }
  .library-cart-bar { gap: 12px; flex-wrap: wrap; }
  .library-cart-bar button { font-size: 18px; }
}
@media (max-width: 430px) {
  .kiosk-category-grid, .payment-methods-grid { grid-template-columns: 1fr; }
  .kiosk-category-photo { aspect-ratio: 16 / 9; }
  .kiosk-category-copy { min-height: 110px; padding: 20px; }
  .brand-title { font-size: 21px; }
  .header-actions { flex-wrap: wrap; justify-content: end; max-width: 46px; }
}
