/* F10: standard content and remaining native module views.
   Registered globally for not-found/module endpoints; all rules target content. */
:is(#cms,#contact,#sitemap,#stores,#pagenotfound) #wrapper > .container,
#wrapper > .container:has(.brand__list,.supplier__list,[data-ps-ref="emailalerts-account-no-alerts"]) { max-width: var(--to-container-wide); padding-inline: var(--to-gutter); }
:is(#cms,#contact,#sitemap,#stores,#pagenotfound) #center-column { min-width: 0; padding-bottom: 4rem; }
:is(#cms,#contact,#sitemap,#stores) #wrapper .page-header { margin-bottom: 1.75rem; }
:is(#cms,#sitemap,#stores) #wrapper .page-title-section,
#wrapper:has(.brand__list,.supplier__list) .page-title-section { font-size: 3.5rem; font-weight: 300; line-height: 1.08; letter-spacing: -.015em; text-transform: none; overflow-wrap: anywhere; }

/* Editorial content remains the configured CMS HTML, including print/dispute hooks.
   Keep wide tables scrollable without clipping keyboard focus or CMS embeds. */
#cms #content { font-size: 1.0625rem; line-height: 1.65; overflow-wrap: anywhere; }
#cms #content :is(h2,h3,h4) { margin-block: 2rem 1rem; font-weight: 300; line-height: 1.15; letter-spacing: -.015em; }
#cms #content h2 { font-size: 2rem; }
#cms #content h3 { font-size: 1.5rem; }
#cms #content h4 { font-size: 1.25rem; }
#cms #content :is(p,ul,ol) { margin-bottom: 1.25rem; }
#cms #content :is(ul,ol) { padding-inline-start: 1.5rem; }
#cms #content li + li { margin-top: .5rem; }
#cms #content :is(img,video,iframe) { max-width: 100%; }
#cms #content :is(img,video) { height: auto; }
#cms #content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
#cms #content :is(th,td) { padding: .75rem; border: 1px solid var(--to-color-border); }
#cms #content blockquote { margin-inline: 0; padding: 1.5rem; border-inline-start: 3px solid var(--to-color-brand); border-radius: var(--to-radius-control); background: var(--to-color-surface-cool); }

/* Native contact form: do not style hidden traps, tokens or validation states. */
#contact #wrapper .contact-form { padding: 1.75rem; border-radius: var(--to-radius-card); background: var(--to-color-surface); box-shadow: 0 24px 70px rgba(0,0,0,.1); }
#contact #wrapper .contact-form .page-title-section { margin-bottom: 1.75rem; font-size: 3rem; font-weight: 300; line-height: 1.08; letter-spacing: -.015em; }
#contact #wrapper .contact-form :is(.form-control,.form-select) { min-height: 3rem; padding: .75rem .875rem; border-radius: var(--to-radius-control); font-size: 1rem; line-height: 1.4; }
#contact #wrapper .contact-form .form-select { padding-inline-end: 2.75rem; }
#contact #wrapper .contact-form textarea { min-height: 8rem; resize: vertical; }
#contact #wrapper .contact-form input[type="file"] { border-style: dashed; background-color: var(--to-color-surface-cool); font-size: .875rem; }
#contact #wrapper .contact-form .form-label { font-size: .875rem; font-weight: 500; }
#contact #wrapper .contact-form :is(.form-text,.invalid-feedback) { font-size: .875rem; }
#contact #wrapper .contact-form .buttons-wrapper { margin-top: 1.25rem; }
#contact #wrapper .contact-form .buttons-wrapper .btn { width: 100%; padding: .9375rem; font-size: 1.0625rem; }
#contact #wrapper .ps-contactinfo { padding: 1.75rem; border-radius: var(--to-radius-card); background: var(--to-color-surface-cool); font-size: 1rem; overflow-wrap: anywhere; }
#contact #wrapper .ps-contactinfo__title { margin-bottom: 1.5rem; font-size: 2rem; font-weight: 300; }
#contact #wrapper .ps-contactinfo__item { align-items: flex-start; gap: .875rem; }
#contact #wrapper .ps-contactinfo__info { min-width: 0; line-height: 1.55; }
#contact #wrapper .ps-contactinfo a { text-decoration: underline; text-underline-offset: .2em; }

/* Native store disclosure controls and their collapse states stay in charge. */
#stores #wrapper .store__list { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.75rem; }
#stores #wrapper .store { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 1.75rem; border: 1px solid var(--to-color-border); border-radius: var(--to-radius-card); background: var(--to-color-surface); }
#stores #wrapper :is(.store__image,.store__informations) { min-width: 0; width: auto; }
#stores #wrapper .store__img { width: 100%; height: auto; border-radius: .75rem; }
#stores #wrapper .store__name { font-size: 1.5rem; font-weight: 500; }
#stores #wrapper :is(.store__address,.store__contacts,.store__note,.store__opening-times) { font-size: 1rem; line-height: 1.55; overflow-wrap: anywhere; }
#stores #wrapper .store__opening-times { width: 100%; }
#stores #wrapper .store__opening-times :is(th,td) { padding: .5rem; vertical-align: top; }
#stores #wrapper .store__toggle { font-size: 1rem; font-weight: 500; }

#sitemap #wrapper .sitemap { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; margin: 0; }
#sitemap #wrapper .sitemap__block { width: auto; min-width: 0; padding: 0; }
#sitemap #wrapper .sitemap__block h2 { margin-bottom: 1.25rem; font-size: 1.5rem; font-weight: 500; }
#sitemap #wrapper .sitemap__list { padding-inline-start: 0; list-style: none; }
#sitemap #wrapper .sitemap__list--nested { padding-inline-start: 1rem; border-inline-start: 1px solid var(--to-color-border); }
#sitemap #wrapper .sitemap__item { margin-block: .625rem; font-size: 1rem; overflow-wrap: anywhere; }

/* The directory cards are separate from the F6 product listing templates. */
#wrapper :is(.brand__list,.supplier__list) { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .875rem; padding: 0; margin-block: 1.75rem 4rem; list-style: none; }
#wrapper :is(.brand__list > .brand,.supplier__list > .supplier) { position: relative; display: flex; flex-direction: column; align-items: stretch; min-width: 0; padding: 1.5rem; border: 1px solid var(--to-color-border); border-radius: var(--to-radius-card); background: var(--to-color-surface-cool); }
#wrapper :is(.brand__image,.supplier__image) { width: 100%; margin-bottom: 1rem; }
#wrapper :is(.brand__img,.supplier__img) { width: 100%; height: 8rem; object-fit: contain; border-radius: var(--to-radius-control); background: var(--to-color-surface); }
#wrapper :is(.brand__title,.supplier__title) { font-size: 1.0625rem; font-weight: 500; overflow-wrap: anywhere; }
#wrapper :is(.brand__products,.supplier__products) { margin: .5rem 0 0; font-size: .875rem; color: var(--to-color-text-muted); }

/* Standard email-alert module: preserve delete data/actions and empty-state JS. */
#wrapper:has([data-ps-ref="emailalerts-account-no-alerts"]) .page-title-section { font-size: 3rem; font-weight: 300; line-height: 1.08; letter-spacing: -.015em; }
#wrapper:has([data-ps-ref="emailalerts-account-no-alerts"]) .account-menu--sidebar { border: 1px solid var(--to-color-border); border-radius: var(--to-radius-card); padding: 1.25rem; background: var(--to-color-surface); z-index: auto; }
#wrapper:has([data-ps-ref="emailalerts-account-no-alerts"]) .account-menu__link { min-height: 2.75rem; font-size: 1rem; overflow-wrap: anywhere; }
#wrapper .ps-emailalerts__product-list { display: grid; gap: .875rem; padding: 0; list-style: none; }
#wrapper .ps-emailalerts__product { display: flex; align-items: flex-start; gap: 1rem; min-width: 0; padding: 1.5rem; border: 1px solid var(--to-color-border); border-radius: var(--to-radius-card); }
#wrapper .ps-emailalerts__product-image-link { flex: 0 0 5rem; }
#wrapper .ps-emailalerts__product-image { width: 5rem; height: 5rem; object-fit: contain; border-radius: var(--to-radius-control); }
#wrapper .ps-emailalerts__product-content { display: flex; flex-direction: column; gap: .5rem; min-width: 0; font-size: 1rem; overflow-wrap: anywhere; }
#wrapper .ps-emailalerts__product-name { font-weight: 500; }
#wrapper .ps-emailalerts__product-attributes { color: var(--to-color-text-muted); font-size: .875rem; }
#wrapper .ps-emailalerts__product-delete { align-self: flex-start; min-height: 2.75rem; text-decoration: underline; }

#pagenotfound #wrapper > .container { max-width: 760px; }
#pagenotfound #wrapper .page-header .display-1 { margin-block: 1rem; font-family: var(--to-font-mono); font-size: 5rem; font-weight: 400; line-height: 1; color: var(--to-color-brand); }
#pagenotfound #wrapper .page-content--not-found { padding: 1.75rem; border-radius: var(--to-radius-card); background: var(--to-color-surface-cool); }
#pagenotfound #wrapper .page-content--not-found h1 { font-size: 2rem; font-weight: 300; line-height: 1.15; }
#pagenotfound #wrapper .page-content--not-found p { font-size: 1.0625rem; line-height: 1.55; }

@media (min-width: 992px) {
  #wrapper:has([data-ps-ref="emailalerts-account-no-alerts"]) #center-column > .row:has(> .col-lg-3 > .account-menu--sidebar) { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 2.5rem; margin-inline: 0; }
  #wrapper:has([data-ps-ref="emailalerts-account-no-alerts"]) #center-column > .row:has(> .col-lg-3 > .account-menu--sidebar) > :is(.col-lg-3,.col-lg-9) { min-width: 0; width: auto; padding-inline: 0; }
}
@media (max-width: 960px) {
  :is(#cms,#sitemap,#stores) #wrapper .page-title-section,
  #wrapper:has(.brand__list,.supplier__list) .page-title-section { font-size: 2.5rem; }
  #contact #wrapper .contact-form .page-title-section,
  #wrapper:has([data-ps-ref="emailalerts-account-no-alerts"]) .page-title-section { font-size: 2rem; }
  #sitemap #wrapper .sitemap,
  #wrapper :is(.brand__list,.supplier__list) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #stores #wrapper .store { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
}
@media (max-width: 560px) {
  #contact #wrapper :is(.contact-form,.ps-contactinfo),
  #stores #wrapper .store,
  #pagenotfound #wrapper .page-content--not-found { padding: 1.25rem; }
  #sitemap #wrapper .sitemap,
  #wrapper :is(.brand__list,.supplier__list) { grid-template-columns: minmax(0,1fr); }
  #cms #content h2 { font-size: 1.5rem; }
  #pagenotfound #wrapper .page-content--not-found .btn { width: 100%; }
  #wrapper .ps-emailalerts__product { padding: 1rem; flex-wrap: wrap; }
}
