/* Shared responsive presentation. Content, routes and interaction state stay native. */
@media screen and (max-width:1024px){
  body.ft-editorial{--ft-device-gutter:20px}
  body.ft-editorial .ft-main.ft-wrap,
  body.ft-editorial .ft-header>.ft-wrap,
  body.ft-editorial .ft-temple-header .ft-wrap,
  body.ft-editorial .ft-owned-footer>.ft-wrap{
    width:calc(100% - 2 * var(--ft-device-gutter));
    max-width:none;margin-inline:auto;box-sizing:border-box;
  }
  .ft-main :is(article,section,form,fieldset){min-width:0}
  .ft-main :is(h1,h2,h3,p,li,dd,a,summary){overflow-wrap:anywhere}
  .ft-main :is(input,select,textarea){max-width:100%;box-sizing:border-box}
  .ft-main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px;min-height:44px}
  .ft-main :is(button,.ft-button,.ftcat-profile-button){min-height:44px;max-width:100%;white-space:normal}
  .ft-main :is(pre,.wp-block-table){max-width:100%;overflow-x:auto}
  .ft-main :is(video,iframe){max-width:100%}
  /* Public company profiles already sit inside the site's main gutter. */
  body.single-firma .ft-main .ftcp-public.ftpp{width:100%;max-width:100%;margin-inline:0}
  .ftpp :is(.ftpp-contact,.ftpp-hero-copy,.ftpp-card,.ftpp-cta){min-width:0}
  .ftpp-tabs{max-width:100%;overscroll-behavior-x:contain}
  .ftpp-tabs a{min-height:44px}
  .ftpp-inquiry-dialog{box-sizing:border-box;max-width:calc(100% - 24px)}
  .ftpp-dialog-close{width:44px;height:44px}
  .ftcp-shell :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px}
  .ft-rg-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .ft-rg-filter-actions{grid-column:1/-1;flex-direction:row;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .ft-rg-filter-actions a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
  .ft-rg-gallery .ft-rg-filter select{font-size:16px}
  .ft-rg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media screen and (max-width:760px){
  body.ft-editorial{--ft-device-gutter:16px}
  body.ft-editorial .ft-main.ft-wrap{padding-top:16px}
  body.home.ft-editorial .ft-main.ft-wrap{padding-top:8px}
  /* Logo and menu share one row; opened navigation keeps its own full row. */
  body.ft-editorial .ft-portal-header .ft-portal-bar{gap:8px;align-items:center}
  body.ft-editorial .ft-portal-header .ft-portal-brand{font-size:26px;gap:6px;min-width:0}
  .ft-portal-header .ft-brand-cloche{width:32px;flex:0 0 32px}
  .ft-portal-header .ft-menu-toggle:not([hidden]){margin-left:auto;flex:0 0 auto;padding:10px 12px;font-size:14px;min-height:44px}
  .ft-portal-header .ft-portal-nav{flex:0 0 100%;min-width:0}
  .ft-portal-header .ft-portal-root-label{min-width:0}
  .ft-portal-header .ft-portal-root-label>a{white-space:normal}
  .ft-portal-header .ft-portal-root-label>button{min-width:44px;min-height:44px}
  .ft-portal-header .ft-portal-panel{max-width:100%;box-sizing:border-box}
  .ft-temple-header .ft-search-form :is(input,button){font-size:16px;min-height:44px}
  .ft-temple-header .ft-search{min-width:0}
  .ft-main :is(.ft-breadcrumbs,.ftcat-breadcrumbs){line-height:1.55}
  .ft-main :is(.ft-breadcrumbs,.ftcat-breadcrumbs) a{display:inline-flex;align-items:center;min-height:36px}
  .ft-main summary{min-height:44px;box-sizing:border-box}
  .ft-portal-hero{gap:22px;padding-bottom:28px}
  body.ft-editorial .ft-main .ft-portal-hero h1{font-size:clamp(34px,6vw,44px);line-height:1.12}
  .ft-portal-lead{font-size:16px;line-height:1.65}
  .ft-portal-search{padding:16px;margin-block:18px}
  .ft-portal-home .ftcat-section{margin-top:36px}
  .ft-rg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-rg-gallery .ft-rg-card h3{font-size:16px;line-height:1.4}
  .ft-rg-card-copy{padding-right:12px}
  .ft-rg-gallery .ft-rg-search button{font-size:14px;min-height:44px}
  .ft-rg-gallery .ft-rg-filter select{padding-left:10px}
  .ft-rg-results-note{gap:12px;flex-wrap:wrap;font-size:13px}
  .ft-rg-date{font-size:11px}
  /* Recipe steps keep both the number and checklist control without 80px indentation. */
  .ft-rd .ft-rd-instructions li{padding-left:68px!important}
  .ft-rd-instructions .ft-recipe-check{left:36px}
  .ft-rd .ft-rd-quick-stars button{min-width:44px;min-height:44px}
  .ft-rd .ft-rd-tabpanel,.ft-rd .ft-rd-ingredients,.ft-rd .ft-rd-summary{padding:18px}
  .ft-rd-intro{padding:18px}
  .ft-rd-profile>.ft-rd-nutrition{padding:18px}
  .ft-rd :is(.ft-rd-carousel,.ft-rd-related-end){padding:18px}
  .ft-rd .ft-rd-tablist>a{min-height:48px}
  .ft-rd :is(.ft-recipe-reset,.ft-recipe-scale-reset){min-height:44px}
  .ft-native-guide .ft-article-modern .ft-panel{padding:18px}
  .ft-native-guide .ft-article-modern .ft-hero{padding:22px 18px}
  .ft-native-guide .ft-acf-section-text{min-width:0}
  .ft-native-guide table{max-width:100%;display:block;overflow-x:auto}
  .ft-occasion-page :is(.ft-occasion-checklist,.ft-occasion-inquiry,.ft-occasion-next),
  .ft-planning-page :is(.ft-planning-jump,.ft-planning-template,.ft-planning-next){padding:18px}
  .ftpp--basis .ftpp-hero>.ftpp-hero-actions{display:flex;flex-wrap:wrap}
  .ftpp-service-grid>li{font-size:14px;overflow-wrap:anywhere}
  .ftpp-facts dd{min-width:0}
  .ftpp-hours>div{flex-wrap:wrap;gap:4px 12px}
  .ftpp-contact-links{min-width:0}
}
@media screen and (max-width:540px){
  body.ft-editorial{--ft-device-gutter:12px}
  body.ft-editorial .ft-main .ft-portal-home :is(.ft-portal-regions,.ft-portal-band,.ft-portal-advice,.ft-portal-faq,.ft-portal-recipes){padding:18px!important}
  .ft-portal-home .ftcat-map-panel{padding:14px}
  .ft-portal-occasions article,.ft-portal-business-card{padding:20px}
  .ft-portal-search{padding:14px}
  .ft-portal-hero-image{min-height:200px}
  .ft-rg-filters{padding:14px;gap:12px}
  .ft-rg-grid{grid-template-columns:1fr;gap:16px}
  .ft-rg-card-copy{min-height:0;padding:16px 48px 18px 16px}
  .ft-rg-gallery .ft-rg-card h3{font-size:17px}
  .ft-rg-photo{aspect-ratio:16/10}
  .ft-rg-date{font-size:12px}
  .ft-rg-gallery .ft-rg-header h1{font-size:32px}
  .ft-rg-gallery .ft-rg-search{border-radius:14px}
  .ft-rg-gallery .ft-rg-search input{font-size:16px}
  .ft-rd .ft-rd-tablist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-rd .ft-rd-tablist>a,.ft-rd .ft-rd-tablist>a:nth-last-child(-n+2){grid-column:auto}
  .ft-rd .ft-rd-tablist>a:last-child:nth-child(odd){grid-column:1/-1}
  .ft-rd .ft-rd-intro h1{font-size:29px;line-height:1.2}
  .ft-rd .ft-rd-hero-actions{flex-wrap:wrap}
  .ft-rd .ft-rd-hero-actions>*{flex:1 1 120px;min-height:48px}
  .ft-v2-public .ft-v2-panel{padding:18px}
  .ft-native-guide .ft-article-modern .ft-hero p{font-size:16px}
  body.ft-editorial.ft-region-design .ft-main article.ftcat-directory .ft-region-photo-hero{padding:18px 16px}
  body.ft-editorial.ft-region-design .ft-main article.ftcat-directory :is(.ftcat-region-section,.ftcat-planning,.ftcat-compact-checklist){padding:18px 16px}
  .ftpp .ftpp-card,.ftpp .ftpp-hero-copy{padding:18px}
  .ftpp .ftpp-contact-links,.ftpp .ftpp-service-grid{grid-template-columns:1fr}
  .ftpp .ftpp-channel{font-size:14px;min-height:44px}
  .ftpp .ftpp-regions ul{grid-template-columns:1fr}
  .ftpp .ftpp-regions li>a{font-size:14px}
  .ftpp .ftpp-cta{padding:18px}
  .ftpp-inquiry-dialog{padding:20px 16px}
  .ftcp-shell .ftcp-editor-content{padding-inline:12px}
  .ftcp-shell .ftcp-field{padding:12px}
  .ftcp-shell .ftcp-savebar{padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .ftcp-shell .ftcp-sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ftcp-shell .ftcp-sidebar button{font-size:12px;min-height:64px}
  .ft-registration .ft-registration-hero{padding:22px 18px}
  body.ft-editorial .ft-main .ft-registration .ft-registration-hero h1{font-size:32px}
  .ft-registration .ft-registration-form-card,.ft-registration .ft-registration-start{padding:18px}
  .ft-owned-footer nav a{display:inline-flex;align-items:center;min-height:44px}
}
@media screen and (max-width:380px){
  body.ft-editorial .ft-portal-header .ft-portal-brand{font-size:24px}
  .ft-portal-header .ft-brand-cloche{width:28px;flex-basis:28px}
  .ft-rg-filters{grid-template-columns:1fr}
  .ft-rg-gallery .ft-rg-search{flex-wrap:wrap;padding:8px 12px;gap:6px}
  .ft-rg-gallery .ft-rg-search input{flex:1 1 100%}
  .ft-rg-gallery .ft-rg-search button{width:100%;justify-content:center}
  .ft-rg-filter-actions{align-items:stretch;flex-direction:column}
  .ft-rg-filter-actions button{width:100%}
}
