/*
 Theme Name: Astra Child
 Theme URI: https://flusso.jp
 Description: Child theme for Astra
 Author: Flusso
 Author URI: https://flusso.jp
 Template: astra
 Version: 1.0.1
*/

/*
  CSS policy:
  - Do not use @import here. Parent theme CSS is loaded from functions.php.
  - Use WordPress Additional CSS only for temporary tests or emergency patches.
  - Keep permanent Flusso CSS in this child theme style.css.
*/

/* ===================================
Flusso Site CSS (Unified / Child Theme) v3.0

* Gutenberg safe
* fl-top isolated
* fl-page--v1 default template stable
* product pages width balanced
* recipe search adjusted
* Visit LP CSS is NOT included here
* Source of truth: Astra Child style.css
  =================================== */

/* =========================
Variables
========================= */
:root{
--fl-orange:#FF3100;
--fl-orange-dark:#E62A00;
--fl-ink:#1F2D3D;
--fl-ink-dark:#14202D;
--fl-cream:#FBFAF5;

--radius:12px;
--radius-btn:10px;

--btn-pad-y:12px;
--btn-pad-x:18px;

--border:rgba(31,45,61,0.18);
--border-strong:rgba(31,45,61,0.30);

--shadow-soft:0 2px 8px rgba(0,0,0,0.08);
--shadow-card:0 10px 24px rgba(0,0,0,0.10);

--container:min(980px, 92%);

/* スマホ縦並び時のボタン間隔 */
--stack-gap:12px;
}

/* =========================
Base
========================= */
html{
overflow-x:hidden;
}

body{
color:var(--fl-ink);
line-height:1.8;
}

.entry-content p{
font-size:1rem;
}

h2,
h3{
color:var(--fl-ink);
margin-bottom:0.9em;
}

/* =========================
Buttons
========================= */
.fl-btn,
.wp-block-button__link{
display:inline-flex;
align-items:center;
justify-content:center;

font-weight:600;
letter-spacing:0.02em;
text-decoration:none !important;
line-height:1.2;

padding:var(--btn-pad-y) var(--btn-pad-x);
border-radius:var(--radius-btn);
border:1px solid transparent;

transition:
transform 0.12s ease,
opacity 0.12s ease,
background-color 0.18s ease,
border-color 0.18s ease;
}

.fl-btn{
width:auto;
max-width:100%;
}

.fl-btn:hover,
.wp-block-button__link:hover{
transform:translateY(-1px);
opacity:0.95;
}

.fl-btn:focus-visible,
.wp-block-button__link:focus-visible{
outline:3px solid rgba(255,49,0,0.28);
outline-offset:3px;
}

.fl-cta,
p.fl-cta{
margin-top:14px;
margin-bottom:0;
}

/* Button variants */
.fl-btn--primary{
background:var(--fl-orange);
color:#fff !important;
border-color:var(--fl-orange);
}

.fl-btn--primary:hover{
background:var(--fl-orange-dark);
border-color:var(--fl-orange-dark);
}

.fl-btn--secondary{
background:var(--fl-ink);
color:#fff !important;
border-color:var(--fl-ink);
}

.fl-btn--secondary:hover{
background:var(--fl-ink-dark);
border-color:var(--fl-ink-dark);
}

.fl-btn--ghost{
background:#fff;
color:var(--fl-ink) !important;
border-color:var(--border-strong);
}

.fl-btn--ghost:hover{
border-color:rgba(31,45,61,0.45);
}

/* Gutenberg button styles */
.wp-block-button.is-style-fill .wp-block-button__link{
background:var(--fl-orange);
color:#fff !important;
border-color:var(--fl-orange);
}

.wp-block-button.is-style-outline .wp-block-button__link{
background:#fff;
color:var(--fl-ink) !important;
border-color:var(--border-strong);
}

/* 既存インライン色の救済 */
.wp-block-button__link[style*="#FF3100"],
.wp-block-button__link[style*="#ff3100"]{
background:var(--fl-orange) !important;
color:#fff !important;
}

.wp-block-button__link[style*="#1F2D3D"],
.wp-block-button__link[style*="#1f2d3d"]{
background:var(--fl-ink) !important;
color:#fff !important;
}

/* Gutenberg buttons: mobile */
@media (max-width:768px){
.wp-block-buttons,
.wp-block-button{
width:100%;
}

.wp-block-button__link{
width:100%;
}
}

/* =========================
Gutenberg: Safe helpers
========================= */
.wp-block-cover,
.wp-block-cover__image-background,
.wp-block-cover video{
object-fit:cover !important;
}

.wp-block-cover__image-background{
width:100% !important;
height:100% !important;
}

.wp-block-gallery img{
border-radius:8px;
box-shadow:var(--shadow-soft);
transition:transform 0.25s ease;
}

.wp-block-gallery img:hover{
transform:scale(1.01);
}

.wp-block-columns img{
border-radius:8px;
box-shadow:var(--shadow-soft);
}

.wp-block-group.has-background{
padding:56px 0;
}

@media (max-width:768px){
.wp-block-group.has-background{
padding:40px 0;
}
}

/* =========================
Page title hidden
========================= */
.page .entry-title,
.home .entry-title{
display:none !important;
}

/* Blog readability */
.single-post article .entry-content{
max-width:720px;
margin:0 auto;
font-size:17px;
line-height:1.85;
}

/* =========================
Flusso Fixed Pages
Legacy base
========================= */
.fl-page{
max-width:860px;
margin:0 auto;
padding:18px 16px;
}

.fl-hero img{
width:100%;
border-radius:var(--radius);
box-shadow:var(--shadow-soft);
}

.fl-head h1{
margin-top:14px;
}

.fl-lead{
margin-top:12px;
font-size:1.02em;
}

.fl-block{
margin-top:26px;
}

.fl-note{
font-size:0.95em;
opacity:0.82;
}

/* =========================
Flusso TOP PAGE
Scoped to .fl-top only
========================= */
.fl-top{
color:var(--fl-ink);
}

.fl-top *{
box-sizing:border-box;
}

.fl-top img{
max-width:100%;
display:block;
}

.fl-top{
width:100vw;
margin-left:calc(50% - 50vw);
margin-right:calc(50% - 50vw);
overflow-x:clip;
}

.fl-section{
padding:72px 0;
}

.fl-inner{
width:var(--container);
margin:0 auto;
}

.fl-center{
text-align:center;
}

.fl-kicker{
font-size:0.82rem;
letter-spacing:0.14em;
opacity:0.85;
margin-bottom:10px;
text-transform:uppercase;
}

.fl-h2{
margin:0 0 12px;
font-size:1.9rem;
line-height:1.35;
font-weight:760;
}

.fl-p{
margin:0 auto;
max-width:56em;
font-size:1rem;
line-height:1.95;
opacity:0.96;
}

.bg-cream{
background:var(--fl-cream);
}

.bg-white{
background:#fff;
}

.fl-btns{
display:flex;
gap:10px;
justify-content:center;
flex-wrap:wrap;
margin-top:22px;
}

/* Hero top */
.fl-hero{
position:relative;
width:100%;
min-height:clamp(420px, 56vh, 600px);
display:grid;
place-items:center;
overflow:hidden;
background:#111;
margin:0;
}

.fl-hero__bg{
position:absolute;
inset:0;
background-image:var(--HERO_IMAGE_PC, none);
background-size:cover;
background-position:center 45%;
transform:scale(1.02);
z-index:0;
}

.fl-hero__shade{
position:absolute;
inset:0;
background:radial-gradient(circle at 50% 52%,
rgba(0,0,0,0.62) 0%,
rgba(0,0,0,0.42) 28%,
rgba(0,0,0,0.20) 55%,
rgba(0,0,0,0.08) 75%,
rgba(0,0,0,0.02) 100%);
z-index:1;
}

.fl-hero__inner{
position:relative;
z-index:2;
width:min(780px, 92%);
text-align:center;
color:#fff;
padding:18px 16px;
}

.fl-hero__title{
color:#fff !important;
margin:0 0 10px;
font-size:clamp(24px, 3.2vw, 40px);
line-height:1.2;
font-weight:860;
text-shadow:0 2px 14px rgba(0,0,0,0.52), 0 8px 28px rgba(0,0,0,0.30);
}

.fl-hero__lead{
margin:0 auto 14px;
max-width:48em;
font-size:1.02rem;
line-height:1.85;
opacity:0.98;
color:#fff;
text-shadow:0 2px 14px rgba(0,0,0,0.45);
}

.fl-hero__cta{
display:flex;
gap:10px;
justify-content:center;
flex-wrap:wrap;
margin-top:10px;
}

/* Cards grid */
.fl-grid{
margin-top:26px;
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:14px;
text-align:left;
}

.fl-card{
background:#fff;
border:1px solid var(--border);
border-radius:var(--radius);
overflow:hidden;
box-shadow:0 2px 10px rgba(0,0,0,0.04);
transition:transform .12s ease, border-color .18s ease, box-shadow .18s ease;
}

.fl-card:hover{
transform:translateY(-2px);
border-color:var(--border-strong);
box-shadow:0 10px 24px rgba(0,0,0,0.08);
}

/* Responsive top */
@media (max-width:900px){
.fl-grid{
grid-template-columns:repeat(2, 1fr);
}
}

@media (max-width:768px){
.fl-section{
padding:58px 0;
}

.fl-h2{
font-size:1.55rem;
}

.fl-hero{
min-height:clamp(420px, 58vh, 540px);
}

.fl-hero__bg{
background-image:var(--HERO_IMAGE_SP, none);
background-position:center 38%;
}

.fl-hero__lead{
font-size:0.98rem;
line-height:1.85;
}

.fl-grid{
grid-template-columns:1fr;
}

.fl-btns,
.fl-hero__cta{
width:100%;
}

.fl-hero__cta .fl-btn{
width:100%;
}
}

/* ===================================
Flusso Page Template v1
Scoped to .fl-page--v1 only
=================================== */
.fl-page--v1{
max-width:860px;
margin:0 auto;
padding:18px 16px;
}

/* Hero v1 */
.fl-page--v1 .fl-hero{
margin:0 0 18px;
}

.fl-page--v1 .fl-hero--cover{
position:relative;
overflow:hidden;
border-radius:var(--radius);
box-shadow:var(--shadow-soft);
background:#111;

display:flex;
align-items:flex-end;
padding:16px;

min-height:clamp(260px, 42vh, 440px);
}

.fl-page--v1 .fl-hero--cover > img{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
object-position:center 55%;
display:block;
z-index:0;
}

.fl-page--v1 .fl-hero--cover::after{
content:"";
position:absolute;
inset:0;
z-index:0;
background:radial-gradient(circle at 50% 50%,
rgba(0,0,0,.26) 0%,
rgba(0,0,0,.16) 45%,
rgba(0,0,0,.08) 70%,
rgba(0,0,0,.02) 100%);
}

.fl-page--v1 .fl-hero__inner{
position:relative;
z-index:1;

width:100%;
max-width:680px;
margin:0 auto;

background:rgba(251,250,245,0.92);
border:1px solid rgba(31,45,61,0.18);
border-radius:12px;
box-shadow:0 10px 24px rgba(0,0,0,0.12);

color:var(--fl-ink);
text-align:center;
padding:18px 16px;
}

.fl-page--v1 .fl-kicker{
font-size:11px;
letter-spacing:.16em;
text-transform:uppercase;
opacity:.80;
margin:0 0 10px;
color:var(--fl-ink) !important;
}

.fl-page--v1 .fl-hero__title{
margin:0 0 10px;
color:var(--fl-ink) !important;
font-weight:820;
line-height:1.18;
font-size:clamp(22px, 2.8vw, 38px);
text-shadow:none;
}

.fl-page--v1 .fl-hero__lead{
margin:0;
color:var(--fl-ink) !important;
opacity:.92;
line-height:1.85;
font-size:1rem;
text-shadow:none;
}

.fl-page--v1 .fl-hero__cta{
display:flex;
justify-content:center;
flex-wrap:wrap;
gap:10px;
margin-top:16px;
}

.fl-page--v1 .fl-btn--ghost-on-hero{
background:#fff;
color:var(--fl-ink) !important;
border:1px solid var(--border-strong);
}

.fl-page--v1 .fl-btn--ghost-on-hero:hover{
border-color:rgba(31,45,61,0.45);
background:#fafafa;
}

/* v1 content width balance */
.fl-page--v1 .fl-head{
text-align:left;
margin:0 auto 20px;
max-width:760px;
}

.fl-page--v1 .fl-lead{
margin-top:14px;
font-size:1rem;
line-height:1.9;
}

.fl-page--v1 .fl-band{
margin-top:22px;
border:1px solid var(--border);
border-radius:var(--radius);
overflow:hidden;
background:#fff;
}

.fl-page--v1 .fl-band--cream{
background:var(--fl-cream);
}

.fl-page--v1 .fl-band__inner{
padding:24px 18px;
text-align:left;
max-width:760px;
margin-left:auto;
margin-right:auto;
}

.fl-page--v1 .fl-band__inner h3{
margin:0 0 12px;
}

.fl-page--v1 .fl-band__inner p{
margin:0 0 12px;
}

.fl-page--v1 .fl-band__inner p:last-child{
margin-bottom:0;
}

.fl-page--v1 .fl-cards{
margin:16px auto 0;
max-width:820px;
display:grid;
grid-template-columns:repeat(3, minmax(0, 1fr));
gap:14px;
align-items:stretch;
}

.fl-page--v1 .fl-card{
background:#fff;
border:1px solid rgba(31,45,61,0.14);
border-radius:12px;
padding:18px 16px;
box-shadow:0 2px 10px rgba(0,0,0,0.03);
}

.fl-page--v1 .fl-card strong{
display:block;
margin:0 0 10px;
line-height:1.35;
}

.fl-page--v1 .fl-card p{
margin:0;
opacity:.90;
line-height:1.8;
font-size:.95rem;
}

.fl-page--v1 .fl-media{
margin:16px auto 0;
max-width:760px;
}

.fl-page--v1 .fl-media img{
width:100%;
display:block;
border-radius:var(--radius);
box-shadow:var(--shadow-soft);
}

.fl-page--v1 .fl-band__inner > img{
display:block;
width:100%;
max-width:760px;
height:auto;
margin:16px auto 20px;
border-radius:var(--radius);
box-shadow:var(--shadow-soft);
}

.fl-page--v1 .fl-awards{
margin:16px auto 0;
max-width:820px;
display:grid;
grid-template-columns:repeat(3, minmax(0, 1fr));
gap:14px;
}

.fl-page--v1 .fl-award{
background:#fff;
border:1px solid rgba(31,45,61,0.14);
border-radius:12px;
overflow:hidden;
box-shadow:0 2px 10px rgba(0,0,0,0.03);
}

.fl-page--v1 .fl-award img{
width:100%;
aspect-ratio:16/10;
object-fit:cover;
display:block;
margin:0 !important;
border-radius:0;
box-shadow:none;
}

.fl-page--v1 .fl-award__body{
padding:14px 14px 16px;
text-align:left;
}

.fl-page--v1 .fl-award__body strong{
display:block;
margin:0 0 8px;
line-height:1.35;
}

.fl-page--v1 .fl-award__body p{
margin:0;
font-size:.95rem;
opacity:.9;
line-height:1.75;
}

.fl-page--v1 .fl-cta{
margin-top:14px;
display:flex;
gap:10px;
flex-wrap:wrap;
align-items:center;
}

.fl-page--v1 .fl-cta--stack{
justify-content:center;
align-items:center;
}

.fl-page--v1 .fl-hero__cta .fl-btn,
.fl-page--v1 .fl-cta--stack .fl-btn{
min-width:240px;
width:auto;
}

.fl-page--v1 .fl-hero__cta .fl-btn,
.fl-page--v1 .fl-cta .fl-btn{
margin:0 !important;
}

.fl-page--v1 .fl-final{
margin:22px auto 0;
padding-top:18px;
border-top:1px solid var(--border);
text-align:left;
max-width:760px;
}

/* v1 Responsive */
@media (max-width:900px){
.fl-page--v1 .fl-cards{
grid-template-columns:repeat(2, minmax(0, 1fr));
}

.fl-page--v1 .fl-awards{
grid-template-columns:repeat(2, minmax(0, 1fr));
}
}

@media (max-width:768px){
.fl-page--v1{
max-width:860px;
padding:16px 14px;
}

.fl-page--v1 .fl-hero--cover{
padding:12px;
min-height:clamp(320px, 56vh, 520px);
}

.fl-page--v1 .fl-head,
.fl-page--v1 .fl-band__inner,
.fl-page--v1 .fl-final{
max-width:none;
}

.fl-page--v1 .fl-media,
.fl-page--v1 .fl-band__inner > img{
max-width:none;
}

.fl-page--v1 .fl-hero__cta{
flex-direction:column;
gap:var(--stack-gap);
}

.fl-page--v1 .fl-cta{
flex-direction:column;
align-items:center;
gap:var(--stack-gap);
}

.fl-page--v1 .fl-hero__cta .fl-btn,
.fl-page--v1 .fl-cta--stack .fl-btn,
.fl-page--v1 .fl-cta .fl-btn{
width:min(420px, 100%);
min-width:0;
margin:0;
}

.fl-page--v1 .fl-cards{
grid-template-columns:1fr;
}

.fl-page--v1 .fl-awards{
grid-template-columns:1fr;
}

.fl-page--v1 .fl-band__inner{
padding:22px 16px;
}
}

/* ===================================
Flucchi page patch

* cancels old page-specific width narrowing
* keeps PC and SP consistent with other v1 pages
  =================================== */
  html body .fl-page.fl-page--v1.fl-flucchi .fl-hero,
  html body .fl-page.fl-page--v1.fl-flucchi .fl-band,
  html body .fl-page.fl-page--v1.fl-flucchi .fl-final{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  border-radius:var(--radius) !important;
  }

html body .fl-page.fl-page--v1.fl-flucchi .fl-hero{
margin-bottom:18px !important;
background-image:none !important;
min-height:clamp(260px, 42vh, 440px) !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-hero.fl-hero--cover > img,
html body .fl-page.fl-page--v1.fl-flucchi .fl-hero.fl-hero--cover > img.fl-hero__bg{
display:block !important;
position:absolute !important;
inset:0 !important;
width:100% !important;
height:100% !important;
object-fit:cover !important;
object-position:center 55% !important;
margin:0 !important;
border-radius:0 !important;
box-shadow:none !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-head,
html body .fl-page.fl-page--v1.fl-flucchi .fl-band__inner,
html body .fl-page.fl-page--v1.fl-flucchi .fl-final,
html body .fl-page.fl-page--v1.fl-flucchi .fl-final__inner{
width:auto !important;
max-width:760px !important;
margin-left:auto !important;
margin-right:auto !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-media{
width:auto !important;
max-width:760px !important;
margin-left:auto !important;
margin-right:auto !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-awards{
width:auto !important;
max-width:820px !important;
grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-award img{
aspect-ratio:16/10 !important;
object-fit:cover !important;
}

@media (max-width:900px){
html body .fl-page.fl-page--v1.fl-flucchi .fl-awards{
grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
}
}

@media (max-width:768px){
html body .fl-page.fl-page--v1.fl-flucchi .fl-hero,
html body .fl-page.fl-page--v1.fl-flucchi .fl-band,
html body .fl-page.fl-page--v1.fl-flucchi .fl-final{
width:100% !important;
max-width:none !important;
margin-left:0 !important;
margin-right:0 !important;
border-radius:var(--radius) !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-head,
html body .fl-page.fl-page--v1.fl-flucchi .fl-band__inner,
html body .fl-page.fl-page--v1.fl-flucchi .fl-final,
html body .fl-page.fl-page--v1.fl-flucchi .fl-final__inner,
html body .fl-page.fl-page--v1.fl-flucchi .fl-media{
width:auto !important;
max-width:none !important;
}

html body .fl-page.fl-page--v1.fl-flucchi .fl-awards{
grid-template-columns:1fr !important;
}
}

/* ===================================
Recipe page

* search field
* navy buttons only on recipe page
* recipe list layout is left to shortcode/default
  =================================== */
  .fl-page.fl-recipe{
  --recipe-navy:#1f3445;
  --recipe-navy-hover:#172837;
  }

.fl-page.fl-recipe .fl-btn.fl-btn--primary,
.fl-page.fl-recipe button.fl-btn.fl-btn--primary{
background:var(--recipe-navy);
border-color:var(--recipe-navy);
color:#fff !important;
}

.fl-page.fl-recipe .fl-btn.fl-btn--primary:hover,
.fl-page.fl-recipe button.fl-btn.fl-btn--primary:hover{
background:var(--recipe-navy-hover);
border-color:var(--recipe-navy-hover);
color:#fff !important;
}

.fl-page.fl-recipe .fl-recipe-search{
width:min(720px, 100%);
margin:24px auto 0;
display:flex;
gap:10px;
align-items:stretch;
}

.fl-page.fl-recipe .fl-recipe-search input[type="search"]{
flex:1;
min-width:0;
padding:12px 14px;
border:1px solid rgba(0,0,0,.16);
border-radius:999px;
font-size:15px;
line-height:1.5;
background:#fff;
}

.fl-page.fl-recipe .fl-recipe-search button{
white-space:nowrap;
border:0;
cursor:pointer;
}

.fl-page.fl-recipe .fl-recipe-list-wrap a,
.fl-page.fl-recipe article a{
position:relative;
z-index:2;
pointer-events:auto;
}

@media (max-width:767px){
.fl-page.fl-recipe .fl-recipe-search{
display:block;
}

.fl-page.fl-recipe .fl-recipe-search input[type="search"]{
width:100%;
margin-bottom:12px;
}

.fl-page.fl-recipe .fl-recipe-search button{
width:100%;
}

.fl-page.fl-recipe .fl-cta.fl-cta--stack{
display:grid;
grid-template-columns:1fr;
gap:12px;
width:100%;
}

.fl-page.fl-recipe .fl-cta.fl-cta--stack .fl-btn{
width:100%;
justify-content:center;
}

.fl-page.fl-recipe .fl-recipe-list-wrap .fl-recipe-list,
.fl-page.fl-recipe .fl-recipe-list-wrap .fl-recipe-grid,
.fl-page.fl-recipe .fl-recipe-list-wrap .fl-post-grid,
.fl-page.fl-recipe .fl-recipe-list-wrap .fl-card-grid,
.fl-page.fl-recipe .fl-recipe-list-wrap .fl-grid,
.fl-page.fl-recipe .fl-recipe-list-wrap .recipe-list,
.fl-page.fl-recipe .fl-recipe-list-wrap .recipe-grid{
grid-template-columns:1fr !important;
}
}

/* ===================================
Patch: Block image spacing

* keep image spacing
* avoid extra gap inside product cards
  =================================== */
  .fl-page--v1 .fl-media img{
  margin-bottom:18px;
  }

.fl-page--v1 .fl-award img{
margin-bottom:0 !important;
}

@media (max-width:768px){
.fl-page--v1 .fl-media img{
margin-bottom:14px;
}

.fl-page--v1 .fl-award img{
margin-bottom:0 !important;
}
}

/* ===================================
Recipe page layout patch

* PC: keep bands boxed and centered
* SP: keep natural full-width within page padding
  =================================== */

.fl-page.fl-page--v1.fl-recipe {
max-width: none;
width: 100%;
padding-left: 0;
padding-right: 0;
}

.fl-page.fl-page--v1.fl-recipe .fl-head,
.fl-page.fl-page--v1.fl-recipe .fl-band,
.fl-page.fl-page--v1.fl-recipe .fl-final,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap {
width: min(860px, calc(100% - 32px));
margin-left: auto;
margin-right: auto;
}

.fl-page.fl-page--v1.fl-recipe .fl-head,
.fl-page.fl-page--v1.fl-recipe .fl-band__inner,
.fl-page.fl-page--v1.fl-recipe .fl-final {
text-align: center;
}

.fl-page.fl-page--v1.fl-recipe .fl-band__inner {
max-width: 760px;
margin-left: auto;
margin-right: auto;
}

.fl-page.fl-page--v1.fl-recipe .fl-recipe-search {
margin-left: auto;
margin-right: auto;
}

.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap {
margin-top: 22px;
margin-bottom: 22px;
}

/* レシピ一覧のタイトルやページ送りが左寄りになる場合の補正 */
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap h2,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap h3,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap .pagination,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap .nav-links {
text-align: center;
}

/* 記事カード内の本文まで中央寄せになりすぎる場合は、カード内だけ左寄せに戻す */
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap article,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap .fl-recipe-card,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap .fl-post-card,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap .recipe-card {
text-align: left;
}

@media (max-width: 768px) {
.fl-page.fl-page--v1.fl-recipe {
padding-left: 14px;
padding-right: 14px;
}

.fl-page.fl-page--v1.fl-recipe .fl-head,
.fl-page.fl-page--v1.fl-recipe .fl-band,
.fl-page.fl-page--v1.fl-recipe .fl-final,
.fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap {
width: 100%;
}

.fl-page.fl-page--v1.fl-recipe .fl-band__inner {
max-width: none;
}
}

/* ===================================
Layout Guard: fl-page--v1 layout reset

* Fixes wide PC bands / left-shifted content
* Keeps mobile layout natural
* Keep this near the end of style.css
  =================================== */

body .fl-page.fl-page--v1 {
width: min(900px, calc(100% - 32px)) !important;
max-width: 900px !important;
margin-left: auto !important;
margin-right: auto !important;
padding: 18px 0 !important;
box-sizing: border-box !important;
}

body .fl-page.fl-page--v1 .fl-hero,
body .fl-page.fl-page--v1 .fl-band,
body .fl-page.fl-page--v1 .fl-final {
width: 100% !important;
max-width: 100% !important;
margin-left: 0 !important;
margin-right: 0 !important;
box-sizing: border-box !important;
}

body .fl-page.fl-page--v1 .fl-head,
body .fl-page.fl-page--v1 .fl-band__inner,
body .fl-page.fl-page--v1 .fl-final {
max-width: 760px !important;
margin-left: auto !important;
margin-right: auto !important;
}

body .fl-page.fl-page--v1 .fl-band {
margin-top: 22px !important;
}

body .fl-page.fl-page--v1 .fl-media,
body .fl-page.fl-page--v1 .fl-band__inner > img {
max-width: 760px !important;
margin-left: auto !important;
margin-right: auto !important;
}

body .fl-page.fl-page--v1 .fl-awards,
body .fl-page.fl-page--v1 .fl-cards {
max-width: 820px !important;
margin-left: auto !important;
margin-right: auto !important;
}

body .fl-page.fl-page--v1 .fl-cta,
body .fl-page.fl-page--v1 .fl-hero__cta {
gap: 12px !important;
}

/* Recipe page: keep list layout default, only center the page shell */
body .fl-page.fl-page--v1.fl-recipe .fl-recipe-list-wrap {
width: 100% !important;
max-width: 900px !important;
margin-left: auto !important;
margin-right: auto !important;
}

/* Cancel old Flucchi page-specific narrowing on mobile */
body .fl-page.fl-page--v1.fl-flucchi .fl-band,
body .fl-page.fl-page--v1.fl-flucchi .fl-final,
body .fl-page.fl-page--v1.fl-flucchi .fl-hero {
width: 100% !important;
max-width: 100% !important;
}

body .fl-page.fl-page--v1.fl-flucchi .fl-band__inner,
body .fl-page.fl-page--v1.fl-flucchi .fl-final__inner,
body .fl-page.fl-page--v1.fl-flucchi .fl-media {
width: auto !important;
max-width: 760px !important;
}

@media (max-width: 768px) {
body .fl-page.fl-page--v1 {
width: calc(100% - 24px) !important;
max-width: none !important;
padding: 16px 0 !important;
}

body .fl-page.fl-page--v1 .fl-head,
body .fl-page.fl-page--v1 .fl-band__inner,
body .fl-page.fl-page--v1 .fl-final,
body .fl-page.fl-page--v1 .fl-media,
body .fl-page.fl-page--v1 .fl-band__inner > img,
body .fl-page.fl-page--v1.fl-flucchi .fl-band__inner,
body .fl-page.fl-page--v1.fl-flucchi .fl-final__inner,
body .fl-page.fl-page--v1.fl-flucchi .fl-media {
max-width: none !important;
width: auto !important;
}

body .fl-page.fl-page--v1 .fl-hero__cta,
body .fl-page.fl-page--v1 .fl-cta {
gap: 12px !important;
}

body .fl-page.fl-page--v1 .fl-awards,
body .fl-page.fl-page--v1 .fl-cards {
grid-template-columns: 1fr !important;
}
}

/* ===================================
Flusso Post CTA / 投稿末尾CTA

* Inserted by functions.php for single posts
* Soft tone, not a hard sales block
=================================== */
.flusso-cta-block{
  margin:56px auto 32px;
  padding:28px 22px;
  max-width:720px;
  border:1px solid rgba(255,49,0,0.16);
  border-radius:var(--radius);
  background:#FFF7F3;
  text-align:center;
}

.flusso-cta-title{
  margin:0 0 10px;
  font-size:1.25rem;
  line-height:1.45;
  font-weight:700;
  color:var(--fl-ink);
}

.flusso-cta-text{
  margin:0 auto 18px;
  max-width:34em;
  font-size:0.98rem;
  line-height:1.8;
  color:rgba(31,45,61,0.86);
}

.flusso-cta-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:var(--btn-pad-y) var(--btn-pad-x);
  border:1px solid var(--fl-orange);
  border-radius:var(--radius-btn);
  background:var(--fl-orange);
  color:#fff !important;
  font-weight:600;
  line-height:1.2;
  text-decoration:none !important;
}

.flusso-cta-button:hover{
  background:var(--fl-orange-dark);
  border-color:var(--fl-orange-dark);
  color:#fff !important;
}

@media (max-width:768px){
  .flusso-cta-block{
    margin-top:42px;
    padding:24px 18px;
  }

  .flusso-cta-button{
    width:100%;
  }
}

/* ===================================
Flusso Journal / 読みものページ

* Non-clickable cards with small text links
* Supports older .fl-button markup as alias to .fl-btn
=================================== */
.fl-info-grid{
  display:grid;
  gap:1.25rem;
  margin-top:1.5rem;
}

.fl-info-grid--2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.fl-info-card{
  padding:1.5rem;
  border:1px solid rgba(80,60,40,0.16);
  border-radius:16px;
  background:rgba(255,252,246,0.72);
}

.fl-info-card__label{
  display:inline-block;
  margin-bottom:0.65rem;
  font-size:0.78rem;
  letter-spacing:0.08em;
  color:rgba(80,60,40,0.72);
}

.fl-info-card h3{
  margin-top:0;
  margin-bottom:0.65rem;
}

.fl-info-card p{
  margin-bottom:0;
}

.fl-card-link{
  margin-top:1rem;
}

.fl-card-link a{
  text-decoration:underline;
  text-underline-offset:0.18em;
}

.fl-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:var(--btn-pad-y) var(--btn-pad-x);
  border:1px solid var(--fl-orange);
  border-radius:var(--radius-btn);
  background:var(--fl-orange);
  color:#fff !important;
  font-weight:600;
  line-height:1.2;
  text-decoration:none !important;
}

.fl-button:hover{
  background:var(--fl-orange-dark);
  border-color:var(--fl-orange-dark);
  color:#fff !important;
}

.fl-button--secondary{
  background:var(--fl-ink);
  border-color:var(--fl-ink);
}

.fl-button--secondary:hover{
  background:var(--fl-ink-dark);
  border-color:var(--fl-ink-dark);
}

@media (max-width:760px){
  .fl-info-grid--2{
    grid-template-columns:1fr;
  }

  .fl-info-card{
    padding:1.25rem;
  }

  .fl-button{
    width:100%;
  }
}

/* ===================================
Recipe list shortcode / [fl_recipe_list]
=================================== */
.fl-recipe-list .fl-awards{
  gap:14px;
}

.fl-recipe-list .fl-award{
  padding:0;
  overflow:hidden;
}

.fl-recipe-list .fl-award img{
  width:100%;
  display:block;
  aspect-ratio:1 / 1;
  object-fit:cover;
}

.fl-recipe-list .fl-award__body{
  padding:12px 14px;
}

.fl-recipe-list .fl-award__body strong a{
  text-decoration:none;
}

.fl-recipe-date{
  margin:6px 0 0;
  opacity:.75;
  font-size:.92em;
}

.fl-pagination{
  margin-top:18px;
}

.fl-pagination ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
}

.fl-pagination li{
  margin:0;
}

.fl-pagination a,
.fl-pagination span{
  display:inline-block;
  padding:8px 10px;
  border:1px solid rgba(31,45,61,0.18);
  border-radius:10px;
  text-decoration:none;
}

.fl-pagination .current{
  font-weight:700;
}

/* FLUSSO_SINGLE_PRODUCT_CLEANUP_V2 */

/* Internal WooCommerce metadata is not useful to customers. */
.single-product .product_meta {
	display: none !important;
}

/*
 * Only the description tab remains, so remove the tab-style navigation
 * and show the description itself as normal page content.
 */
.single-product .woocommerce-tabs ul.tabs {
	display: none !important;
}

.single-product .woocommerce-tabs .woocommerce-Tabs-panel,
.single-product .woocommerce-tabs .wc-tab {
	display: block !important;
	margin-top: 0;
}

/* =========================================================
   FLUSSO_SHOP_ARCHIVE_STYLE_V2
   Editorial shop top with a quiet WooCommerce archive UI
   ========================================================= */

body.woocommerce-shop,
body.tax-product_cat {
	--fl-shop-accent: #ff3100;
	--fl-shop-ink: #241f1b;
	--fl-shop-muted: #6f6861;
	--fl-shop-warm: #f7f2ea;
	--fl-shop-line: #ebe7e3;
}

/* ---------- Header ---------- */

body.woocommerce-shop .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-products-header__title {
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.12;
	letter-spacing: -0.035em;
	margin-bottom: 0.65em;
}

/* ---------- Shop top ---------- */

body.woocommerce-shop .fl-shop-top {
	--fl-shop-orange: #ff3100;
	--fl-shop-paper: #fffdfa;
	color: var(--fl-shop-ink);
	margin: 0 0 clamp(64px, 10vw, 160px);
	overflow: hidden;
}

body.woocommerce-shop .fl-shop-top img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
}

body.woocommerce-shop .fl-shop-top__hero {
	display: grid;
	grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
	align-items: end;
	gap: clamp(24px, 4vw, 84px);
	margin: 0 0 clamp(92px, 13vw, 220px);
}

body.woocommerce-shop .fl-shop-top__hero-copy {
	padding: clamp(24px, 5vw, 96px) 0 clamp(8px, 2vw, 36px);
}

body.woocommerce-shop .fl-shop-top__eyebrow {
	margin: 0 0 .6em;
	color: var(--fl-shop-orange);
	font-size: clamp(.72rem, .8vw, .92rem);
	font-weight: 800;
	letter-spacing: .15em;
	line-height: 1.3;
}

body.woocommerce-shop .fl-shop-top__title,
body.woocommerce-shop .fl-shop-top h2 {
	margin: 0;
	color: var(--fl-shop-ink);
	font-weight: 800;
	letter-spacing: -.065em;
	line-height: .92;
}

body.woocommerce-shop .fl-shop-top__title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(4.4rem, 10.5vw, 13rem);
	font-weight: 400;
	letter-spacing: -.09em;
	word-break: normal;
}

body.woocommerce-shop .fl-shop-top__japanese-label {
	margin: clamp(20px, 2.5vw, 42px) 0 0;
	font-size: clamp(.85rem, 1vw, 1.05rem);
	font-weight: 700;
	letter-spacing: .08em;
}

body.woocommerce-shop .fl-shop-top__lead {
	margin: clamp(20px, 3vw, 48px) 0 0;
	font-size: clamp(1rem, 1.25vw, 1.35rem);
	font-weight: 700;
	line-height: 1.85;
}

body.woocommerce-shop .fl-shop-top__hero-image {
	height: clamp(360px, 48vw, 820px);
}

body.woocommerce-shop .fl-shop-top__hero-image img {
	object-position: 62% center;
}

body.woocommerce-shop .fl-shop-top__feature {
	display: grid;
	grid-template-columns: minmax(0, 1.32fr) minmax(220px, .68fr);
	align-items: center;
	gap: clamp(28px, 7vw, 140px);
	margin: 0 0 clamp(92px, 13vw, 220px);
}

body.woocommerce-shop .fl-shop-top__feature--fruit-curd {
	grid-template-columns: minmax(220px, .68fr) minmax(0, 1.32fr);
}

body.woocommerce-shop .fl-shop-top__feature--seasoning {
	grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr);
}

body.woocommerce-shop .fl-shop-top__feature--fruit-curd .fl-shop-top__feature-image {
	order: 2;
}

body.woocommerce-shop .fl-shop-top__feature-image {
	height: clamp(390px, 53vw, 920px);
}

body.woocommerce-shop .fl-shop-top__feature--fruit-curd .fl-shop-top__feature-image img {
	object-position: center 42%;
}

body.woocommerce-shop .fl-shop-top__feature-copy,
body.woocommerce-shop .fl-shop-top__treats-copy {
	position: relative;
	z-index: 1;
}

body.woocommerce-shop .fl-shop-top__number {
	display: block;
	margin: 0 0 -.09em;
	color: var(--fl-shop-orange);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(6rem, 12vw, 16rem);
	font-weight: 400;
	letter-spacing: -.1em;
	line-height: .72;
}

body.woocommerce-shop .fl-shop-top h2 {
	font-size: clamp(2.4rem, 4.3vw, 6rem);
}

body.woocommerce-shop .fl-shop-top__feature h2,
body.woocommerce-shop .fl-shop-top__treats h2 {
	word-break: keep-all;
	overflow-wrap: normal;
}

body.woocommerce-shop .fl-shop-top__feature--seasoning h2 span {
	display: block;
	white-space: nowrap;
}

body.woocommerce-shop .fl-shop-top__link,
body.woocommerce-shop .fl-shop-top__small-link {
	display: inline-flex;
	gap: .55em;
	margin-top: clamp(22px, 2.5vw, 42px);
	border-bottom: 1px solid currentColor;
	color: var(--fl-shop-ink);
	font-size: clamp(.85rem, .95vw, 1rem);
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.5;
	padding-bottom: .2em;
	text-decoration: none;
}

body.woocommerce-shop .fl-shop-top__link::after {
	content: "→";
	color: var(--fl-shop-orange);
}

body.woocommerce-shop .fl-shop-top__link:hover,
body.woocommerce-shop .fl-shop-top__link:focus-visible,
body.woocommerce-shop .fl-shop-top__small-category:hover .fl-shop-top__small-link,
body.woocommerce-shop .fl-shop-top__small-category:focus-visible .fl-shop-top__small-link {
	color: var(--fl-shop-orange);
}

body.woocommerce-shop .fl-shop-top__treats {
	display: grid;
	grid-template-columns: minmax(220px, .62fr) minmax(0, 1.38fr);
	align-items: center;
	gap: clamp(30px, 7vw, 140px);
	margin: 0 0 clamp(92px, 13vw, 220px);
}

body.woocommerce-shop .fl-shop-top__treats-images {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(110px, .7fr);
	gap: clamp(14px, 2.2vw, 42px);
	align-items: end;
}

body.woocommerce-shop .fl-shop-top__treats-image--large {
	aspect-ratio: 1.08 / 1;
}

body.woocommerce-shop .fl-shop-top__treats-image--small {
	aspect-ratio: .74 / 1;
	margin-bottom: clamp(18px, 5vw, 110px);
}

body.woocommerce-shop .fl-shop-top__small-categories {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(24px, 5vw, 90px);
	margin: 0 0 clamp(72px, 10vw, 160px);
}

body.woocommerce-shop .fl-shop-top__small-category {
	display: block;
	color: var(--fl-shop-ink);
	padding-bottom: clamp(8px, 1vw, 16px);
	text-decoration: none;
}

body.woocommerce-shop .fl-shop-top__small-category img {
	height: auto;
	aspect-ratio: 1.6 / 1;
}

body.woocommerce-shop .fl-shop-top__small-category .fl-shop-top__number {
	margin: clamp(20px, 2.4vw, 36px) 0 0;
	font-size: clamp(4.5rem, 8vw, 9rem);
}

body.woocommerce-shop .fl-shop-top__small-category .fl-shop-top__eyebrow {
	display: block;
	margin: 0;
}

body.woocommerce-shop .fl-shop-top__small-category .fl-shop-top__small-link {
	display: flex;
	margin-top: 16px;
	width: fit-content;
}

body.woocommerce-shop .fl-shop-top__gift {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 clamp(92px, 13vw, 220px);
	padding: clamp(34px, 5vw, 96px);
	background: var(--fl-shop-orange);
	color: #fff;
	font-size: clamp(1rem, 1.2vw, 1.35rem);
	font-weight: 700;
	letter-spacing: -.02em;
	text-decoration: none;
}

body.woocommerce-shop .fl-shop-top__gift > :first-child {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(3.4rem, 7vw, 9rem);
	font-weight: 400;
	letter-spacing: -.08em;
	line-height: .8;
}

body.woocommerce-shop .fl-shop-top__gift:hover,
body.woocommerce-shop .fl-shop-top__gift:focus-visible {
	background: var(--fl-shop-ink);
}

body.woocommerce-shop .fl-shop-top__all-products {
	padding-top: clamp(20px, 3vw, 54px);
	border-top: 1px solid var(--fl-shop-line);
}

body.woocommerce-shop .fl-shop-top__all-products h2 {
	font-size: clamp(2.2rem, 4vw, 5.4rem);
}

/* ---------- Category navigation ---------- */

body.woocommerce-shop .fl-shop-category-nav,
body.tax-product_cat .fl-shop-category-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: clamp(20px, 3vw, 42px) 0 34px;
}

body.woocommerce-shop .fl-shop-category-chip,
body.tax-product_cat .fl-shop-category-chip {
	display: inline-flex;
	color: var(--fl-shop-ink);
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none !important;
	white-space: nowrap;
}

body.woocommerce-shop .fl-shop-category-chip {
	font-size: .95rem;
}

body.woocommerce-shop .fl-shop-category-chip:hover,
body.woocommerce-shop .fl-shop-category-chip:focus-visible,
body.tax-product_cat .fl-shop-category-chip:hover,
body.tax-product_cat .fl-shop-category-chip:focus-visible {
	color: var(--fl-shop-accent);
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: .25em;
}

body.woocommerce-shop .fl-shop-category-chip.is-active,
body.tax-product_cat .fl-shop-category-chip.is-active {
	color: var(--fl-shop-accent);
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: .25em;
}

/* ---------- Archive controls ---------- */

body.woocommerce-shop .woocommerce-result-count,
body.tax-product_cat .woocommerce-result-count {
	color: var(--fl-shop-muted);
	font-size: 0.82rem;
	margin-top: 10px;
}

body.woocommerce-shop .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select {
	min-width: 190px;
	border: 1px solid var(--fl-shop-line);
	border-radius: 1px;
	background-color: #fff;
	box-shadow: none;
	font-size: 0.85rem;
}

/* ---------- Product grid ---------- */

body.woocommerce-shop ul.products,
body.tax-product_cat ul.products {
	column-gap: 24px;
	row-gap: 44px;
}

body.woocommerce-shop ul.products li.product,
body.tax-product_cat ul.products li.product {
	margin-bottom: 0;
}

/* ---------- Product image ---------- */

body.woocommerce-shop .astra-shop-thumbnail-wrap,
body.tax-product_cat .astra-shop-thumbnail-wrap {
	overflow: hidden;
	border-radius: 1px;
	background: var(--fl-shop-warm);
}

body.woocommerce-shop .astra-shop-thumbnail-wrap img,
body.tax-product_cat .astra-shop-thumbnail-wrap img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* Astra already provides the normal "商品を見る" button below.
   Remove the duplicate floating bag action from the image. */
body.woocommerce-shop .ast-on-card-button.ast-select-options-trigger,
body.tax-product_cat .ast-on-card-button.ast-select-options-trigger {
	display: none !important;
}

/* ---------- Product copy ---------- */

body.woocommerce-shop .astra-shop-summary-wrap,
body.tax-product_cat .astra-shop-summary-wrap {
	padding-top: 13px;
}

body.woocommerce-shop .ast-woo-product-category,
body.tax-product_cat .ast-woo-product-category {
	display: block;
	color: var(--fl-shop-accent) !important;
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.4;
	margin-bottom: 5px;
}

body.woocommerce-shop .woocommerce-loop-product__title,
body.tax-product_cat .woocommerce-loop-product__title {
	color: var(--fl-shop-ink);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: -0.015em;
	margin-bottom: 6px;
}

body.woocommerce-shop ul.products li.product .price,
body.tax-product_cat ul.products li.product .price {
	color: var(--fl-shop-ink);
	font-size: 0.92rem;
	font-weight: 500;
	margin-bottom: 11px;
}

/* ---------- Product button ---------- */

body.woocommerce-shop ul.products li.product .button,
body.tax-product_cat ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 9px 15px !important;
	margin-top: 2px;
	border: 1px solid var(--fl-shop-ink) !important;
	border-radius: 1px !important;
	background: transparent !important;
	color: var(--fl-shop-ink) !important;
	box-shadow: none !important;
	font-size: 0.82rem !important;
	font-weight: 500;
	line-height: 1;
	transition:
		background-color .18s ease,
		border-color .18s ease,
		color .18s ease;
}

body.woocommerce-shop ul.products li.product .button:hover,
body.woocommerce-shop ul.products li.product .button:focus,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product .button:focus {
	background: var(--fl-shop-accent) !important;
	border-color: var(--fl-shop-accent) !important;
	color: #fff !important;
}

/* ---------- Mobile ---------- */

@media (max-width: 544px) {

	body.woocommerce-shop .fl-shop-top__hero {
		grid-template-columns: 1fr;
		gap: 22px;
		margin-bottom: 84px;
	}

	body.woocommerce-shop .fl-shop-top__hero-copy {
		padding: 8px 0 0;
	}

	body.woocommerce-shop .fl-shop-top__hero-image {
		height: min(112vw, 560px);
	}

	body.woocommerce-shop .fl-shop-top__lead br {
		display: none;
	}

	body.woocommerce-shop .fl-shop-top__feature,
	body.woocommerce-shop .fl-shop-top__feature--fruit-curd,
	body.woocommerce-shop .fl-shop-top__treats {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-bottom: 92px;
	}

	body.woocommerce-shop .fl-shop-top__feature--fruit-curd .fl-shop-top__feature-image {
		order: 0;
	}

	body.woocommerce-shop .fl-shop-top__feature-image {
		height: min(116vw, 610px);
	}

	body.woocommerce-shop .fl-shop-top__treats-copy {
		order: 0;
	}

	body.woocommerce-shop .fl-shop-top__treats-images {
		grid-template-columns: minmax(0, 1.2fr) minmax(80px, .8fr);
	}

	body.woocommerce-shop .fl-shop-top__small-categories {
		grid-template-columns: 1fr;
		gap: 54px;
	}

	body.woocommerce-shop .fl-shop-top__gift {
		align-items: flex-start;
		flex-direction: column;
		gap: 22px;
	}

	body.woocommerce-shop .fl-shop-category-nav,
	body.tax-product_cat .fl-shop-category-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 8px;
		margin-left: -1em;
		margin-right: -1em;
		padding: 0 1em 10px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	body.woocommerce-shop .fl-shop-category-nav::-webkit-scrollbar,
	body.tax-product_cat .fl-shop-category-nav::-webkit-scrollbar {
		display: none;
	}

	body.woocommerce-shop .fl-shop-category-chip,
	body.tax-product_cat .fl-shop-category-chip {
		flex: 0 0 auto;
		font-size: 0.8rem;
	}

	body.woocommerce-shop .fl-shop-category-chip {
		font-size: .86rem;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products {
		column-gap: 12px;
		row-gap: 32px;
	}

	body.woocommerce-shop .woocommerce-loop-product__title,
	body.tax-product_cat .woocommerce-loop-product__title {
		font-size: 0.9rem;
		line-height: 1.45;
	}

	body.woocommerce-shop ul.products li.product .price,
	body.tax-product_cat ul.products li.product .price {
		font-size: 0.86rem;
	}

	body.woocommerce-shop ul.products li.product .button,
	body.tax-product_cat ul.products li.product .button {
		min-height: 36px;
		padding: 8px 9px !important;
		font-size: 0.78rem !important;
	}

	body.woocommerce-shop .woocommerce-ordering,
	body.tax-product_cat .woocommerce-ordering {
		width: 100%;
	}

	body.woocommerce-shop .woocommerce-ordering select,
	body.tax-product_cat .woocommerce-ordering select {
		width: 100%;
	}
}

/* =========================================================
   FLUSSO_SHOP_ARCHIVE_STYLE_V12
   Product-card alignment and mobile archive refinement
   ========================================================= */

/* Shop header current state: keep it within the orange/white site palette. */
body.woocommerce-shop .ast-builder-menu-1 .current-menu-item > .menu-link,
body.tax-product_cat .ast-builder-menu-1 .current-menu-item > .menu-link,
body.tax-product_cat .ast-builder-menu-1 .current-menu-ancestor > .menu-link {
	color: #fff !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
}

/* Product cards should finish at a consistent vertical position. */
body.woocommerce-shop ul.products li.product,
body.tax-product_cat ul.products li.product {
	display: flex;
	flex-direction: column;
}

body.woocommerce-shop .astra-shop-summary-wrap,
body.tax-product_cat .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

body.woocommerce-shop ul.products li.product .button,
body.tax-product_cat ul.products li.product .button {
	margin-top: auto !important;
	align-self: flex-start;
}

@media (max-width: 544px) {

	/* Keep the first screen lighter and faster to scan. */
	body.woocommerce-shop .woocommerce-products-header__title,
	body.tax-product_cat .woocommerce-products-header__title {
		font-size: 2rem;
		margin-bottom: 0.7em;
	}

	/* Result count is low-value on a small screen. */
	body.woocommerce-shop .woocommerce-result-count,
	body.tax-product_cat .woocommerce-result-count {
		display: none;
	}

	/* Keep sorting available, but visually secondary. */
	body.woocommerce-shop .woocommerce-ordering,
	body.tax-product_cat .woocommerce-ordering {
		display: flex;
		justify-content: flex-end;
		width: 100%;
		float: none;
		margin: 8px 0 25px;
	}

	body.woocommerce-shop .woocommerce-ordering select,
	body.tax-product_cat .woocommerce-ordering select {
		width: auto;
		min-width: 150px;
		max-width: 180px;
		height: 36px;
		padding-top: 4px;
		padding-bottom: 4px;
		font-size: 0.78rem;
	}

	/* Keep long titles from making one card dramatically taller. */
	body.woocommerce-shop .woocommerce-loop-product__title,
	body.tax-product_cat .woocommerce-loop-product__title {
		display: -webkit-box;
		min-height: 4.2em;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		line-clamp: 3;
		font-size: 0.86rem;
		line-height: 1.4;
	}

	body.woocommerce-shop .ast-woo-product-category,
	body.tax-product_cat .ast-woo-product-category {
		font-size: 0.68rem;
	}

	body.woocommerce-shop ul.products li.product .price,
	body.tax-product_cat ul.products li.product .price {
		font-size: 0.82rem;
	}

	body.woocommerce-shop ul.products li.product .button,
	body.tax-product_cat ul.products li.product .button {
		align-self: stretch;
		width: 100%;
		min-height: 34px;
		padding: 7px 7px !important;
		font-size: 0.74rem !important;
	}
}

/* =========================================================
   FLUSSO_CART_CHECKOUT_UI_V1
   Refine classic WooCommerce cart / checkout presentation.
   No pricing, payment or order logic is changed.
   ========================================================= */

/* Purchase flow should end cleanly without the long site navigation footer. */
body.woocommerce-cart .site-primary-footer-wrap,
body.woocommerce-checkout .site-primary-footer-wrap {
	display: none !important;
}

/* Cart: shipping is fixed, so the full destination sentence is unnecessary. */
body.woocommerce-cart .woocommerce-shipping-destination {
	display: none !important;
}

/* Keep cart / checkout panels visually closer to the shop design. */
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review {
	border-radius: 14px;
	overflow: hidden;
}

body.woocommerce-cart .cart_totals > h2,
body.woocommerce-checkout #order_review_heading {
	font-weight: 600;
}

/* Privacy line: quiet supporting information, not a headline. */
body.woocommerce-checkout .woocommerce-privacy-policy-text {
	font-size: 0.88rem;
	line-height: 1.65;
	margin: 18px 0;
}

body.woocommerce-checkout .woocommerce-privacy-policy-text p {
	margin-bottom: 0;
}

/* Payment area */
body.woocommerce-checkout #payment {
	border-radius: 12px;
}

body.woocommerce-checkout #payment div.payment_box {
	border-radius: 10px;
}

/* Order summary rows */
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
	vertical-align: top;
}

/* Mobile */
@media (max-width: 544px) {

	/* Reduce the large default WooCommerce outer padding. */
	body.woocommerce-cart .ast-woocommerce-container,
	body.woocommerce-checkout .ast-woocommerce-container {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	/* Cart notification */
	body.woocommerce-cart .woocommerce-message {
		padding: 18px !important;
		gap: 12px;
		border-radius: 12px;
	}

	body.woocommerce-cart .woocommerce-message .button {
		width: auto !important;
		margin-top: 8px !important;
	}

	/* Mobile cart item: reduce the heavy boxed-table impression. */
	body.woocommerce-cart table.shop_table_responsive {
		border: 0;
	}

	body.woocommerce-cart table.shop_table_responsive tr.cart_item {
		border: 1px solid var(--ast-border-color);
		border-radius: 14px;
		overflow: hidden;
		margin-bottom: 18px;
	}

	body.woocommerce-cart table.shop_table_responsive tr.cart_item td {
		padding: 13px 14px;
	}

	body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-thumbnail {
		padding-top: 16px;
		padding-bottom: 16px;
	}

	body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-name {
		line-height: 1.55;
	}

	body.woocommerce-cart table.shop_table_responsive tr.cart_item dl.variation {
		margin-top: 9px;
		font-size: 0.9rem;
	}

	/* Cart totals */
	body.woocommerce-cart .cart_totals {
		margin-top: 22px;
	}

	body.woocommerce-cart .cart_totals h2 {
		font-size: 1.35rem;
		padding: 16px;
	}

	body.woocommerce-cart .cart_totals table th,
	body.woocommerce-cart .cart_totals table td {
		padding: 12px 10px;
	}

	/* Checkout: use almost the full mobile width. */
	body.woocommerce-checkout form.checkout #customer_details,
	body.woocommerce-checkout form.checkout #order_review,
	body.woocommerce-checkout form.checkout #order_review_heading {
		width: 100% !important;
		float: none !important;
		margin-right: 0 !important;
	}

	body.woocommerce-checkout form #order_review_heading {
		padding: 18px 16px 8px !important;
		border-width: 1px 1px 0 !important;
		border-radius: 14px 14px 0 0;
	}

	body.woocommerce-checkout form #order_review {
		padding: 0 16px 18px !important;
		border-width: 0 1px 1px !important;
		border-radius: 0 0 14px 14px;
	}

	body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
	body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
		padding: 12px 8px;
		font-size: 0.92rem;
		line-height: 1.5;
	}

	/* Keep totals and tax note from breaking into awkward vertical fragments. */
	body.woocommerce-checkout .order-total td {
		white-space: normal;
	}

	body.woocommerce-checkout .order-total .includes_tax {
		display: block;
		margin-top: 4px;
		font-size: 0.75rem;
		line-height: 1.4;
	}

	/* Payment box was visually oversized on mobile. */
	body.woocommerce-checkout #payment ul.payment_methods {
		padding: 14px 0;
	}

	body.woocommerce-checkout #payment div.payment_box {
		padding: 16px !important;
		margin-top: 12px;
	}

	body.woocommerce-checkout #payment .form-row.place-order {
		padding: 16px 0 0 !important;
	}

	body.woocommerce-checkout #place_order {
		width: 100%;
		min-height: 48px;
		border-radius: 8px;
	}

	body.woocommerce-checkout .woocommerce-privacy-policy-text {
		font-size: 0.82rem;
		margin: 14px 0;
	}
}

/* =========================================================
   FLUSSO_RELATED_PRODUCTS_STYLE_V1
   ========================================================= */

.single-product .related.products {
	margin-top: clamp(64px, 8vw, 108px);
	padding-top: clamp(30px, 4vw, 48px);
	border-top: 1px solid #e8e4de;
}

.single-product .related.products > h2 {
	margin: 0 0 30px;
	font-size: clamp(1.55rem, 2.2vw, 2rem);
	line-height: 1.25;
	font-weight: 700;
	letter-spacing: .01em;
}

.single-product .related.products > h2::before {
	content: "";
	display: block;
	width: 34px;
	height: 3px;
	margin-bottom: 14px;
	border-radius: 999px;
	background: #ff3b0a;
}

.single-product .related.products li.product {
	display: flex;
	flex-direction: column;
}

.single-product .related.products .astra-shop-thumbnail-wrap,
.single-product .related.products
	.woocommerce-loop-product__link img {
	overflow: hidden;
	border-radius: 14px;
}

.single-product .related.products
	.woocommerce-loop-product__link img {
	transition: transform .22s ease;
}

@media (hover: hover) {
	.single-product .related.products
		.woocommerce-loop-product__link:hover img {
		transform: scale(1.02);
	}
}

.single-product .related.products
	.ast-woo-product-category {
	margin-top: 12px;
	color: #ff3b0a;
	font-size: .76rem;
	letter-spacing: .02em;
}

.single-product .related.products
	.woocommerce-loop-product__title {
	margin-top: 6px;
	line-height: 1.45;
}

.single-product .related.products
	.button {
	margin-top: auto;
	border-radius: 999px;
	padding-left: 1.2em;
	padding-right: 1.2em;
}

@media (max-width: 544px) {

	.single-product .related.products {
		margin-top: 56px;
		padding-top: 28px;
	}

	.single-product .related.products > h2 {
		margin-bottom: 22px;
		font-size: 1.45rem;
	}

	.single-product .related.products
		.woocommerce-loop-product__title {
		font-size: .92rem;
	}
}

/* =========================================================
   FLUSSO_CART_NOTICE_UI_V1
   Clean WooCommerce cart notices on desktop and mobile.
   Focus semantics are retained; only the decorative ring/icon
   are removed.
   ========================================================= */

body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-message:focus,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-message:focus-visible,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-info:focus,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-info:focus-visible,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-error:focus,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-error:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

/* Astra / Woo decorative icons overlap long Japanese copy on mobile. */
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-message::before,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-info::before,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-error::before,
body.woocommerce-cart
.wc-empty-cart-message
.woocommerce-info::before {
	display: none !important;
	content: none !important;
}

/* Remove the empty space originally reserved for those icons. */
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-message,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-info,
body.woocommerce-cart
.woocommerce-notices-wrapper
.woocommerce-error,
body.woocommerce-cart
.wc-empty-cart-message
.woocommerce-info {
	padding-left: 1.2rem !important;
	padding-right: 1.2rem !important;
}

/* Keep the undo / continue-shopping actions readable. */
@media (max-width: 544px) {

	body.woocommerce-cart
	.woocommerce-message {
		line-height: 1.65;
	}

	body.woocommerce-cart
	.woocommerce-message
	.button {
		margin-top: 14px;
		margin-left: 0;
	}

	body.woocommerce-cart
	.return-to-shop {
		margin-top: 24px;
	}
}

/* =========================================================
   FLUSSO_PRODUCT_DESCRIPTION_UI_V2

   Editorial product description:
   one emphasized introduction, restrained sections,
   minimal decorative treatment.
   ========================================================= */

.single-product
.woocommerce-Tabs-panel--description {
	max-width: 820px;
	margin-top: clamp(62px, 8vw, 100px);
	line-height: 1.9;
}

/* Main introduction title */
.single-product
.woocommerce-Tabs-panel--description > h2:first-child {
	max-width: 760px;
	margin: 0 0 22px;
	font-size: clamp(1.7rem, 2.6vw, 2.15rem);
	line-height: 1.4;
	letter-spacing: .01em;
}

/* Opening paragraph gets slightly more presence */
.single-product
.woocommerce-Tabs-panel--description > h2:first-child + p {
	max-width: 720px;
	font-size: 1.04em;
	line-height: 1.95;
	color: #334054;
}

/* Ordinary paragraphs */
.single-product
.woocommerce-Tabs-panel--description p {
	max-width: 720px;
	margin: 0 0 1.45em;
}

/*
 * First bullet list = quick product characteristics.
 * This is the only "panel-like" treatment.
 */
.single-product
.woocommerce-Tabs-panel--description > ul:first-of-type {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 22px;
	max-width: 760px;
	margin: 30px 0 52px;
	padding: 22px 24px;
	list-style: none;
	border-radius: 16px;
	background: #faf8f5;
}

.single-product
.woocommerce-Tabs-panel--description > ul:first-of-type > li {
	position: relative;
	margin: 0;
	padding-left: 16px;
	line-height: 1.65;
}

.single-product
.woocommerce-Tabs-panel--description > ul:first-of-type > li::before {
	content: "";
	position: absolute;
	top: .72em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #ff3b0a;
}

/* Subsequent section titles */
.single-product
.woocommerce-Tabs-panel--description > h2:not(:first-child),
.single-product
.woocommerce-Tabs-panel--description > h3 {
	max-width: 720px;
	margin: 54px 0 20px;
	font-size: clamp(1.35rem, 2vw, 1.62rem);
	line-height: 1.4;
	letter-spacing: .01em;
}

/* Normal lists remain simple */
.single-product
.woocommerce-Tabs-panel--description > ul:not(:first-of-type),
.single-product
.woocommerce-Tabs-panel--description > ol {
	max-width: 700px;
	margin: 20px 0 36px;
	padding-left: 1.35em;
}

.single-product
.woocommerce-Tabs-panel--description > ul:not(:first-of-type) li,
.single-product
.woocommerce-Tabs-panel--description > ol li {
	margin-bottom: .55em;
	padding-left: .1em;
}

/* Give images breathing room without turning them into cards */
.single-product
.woocommerce-Tabs-panel--description figure {
	margin-top: 32px;
	margin-bottom: 44px;
}

.single-product
.woocommerce-Tabs-panel--description img {
	height: auto;
	border-radius: 12px;
}

/* Bold text should remain editorial, not heavy */
.single-product
.woocommerce-Tabs-panel--description strong {
	font-weight: 650;
}

@media (max-width: 544px) {

	.single-product
	.woocommerce-Tabs-panel--description {
		margin-top: 56px;
		line-height: 1.85;
	}

	.single-product
	.woocommerce-Tabs-panel--description > h2:first-child {
		margin-bottom: 18px;
		font-size: 1.5rem;
	}

	.single-product
	.woocommerce-Tabs-panel--description > h2:first-child + p {
		font-size: 1em;
		line-height: 1.85;
	}

	.single-product
	.woocommerce-Tabs-panel--description > ul:first-of-type {
		grid-template-columns: 1fr;
		gap: 8px;
		margin: 26px 0 46px;
		padding: 19px 18px;
		border-radius: 14px;
	}

	.single-product
	.woocommerce-Tabs-panel--description > h2:not(:first-child),
	.single-product
	.woocommerce-Tabs-panel--description > h3 {
		margin-top: 46px;
		margin-bottom: 17px;
		font-size: 1.32rem;
	}
}


/* =========================================================
   FLUSSO_PRODUCT_DESCRIPTION_UI_V3
   Add a small playful layer without turning sections into cards.
   ========================================================= */

/* Soft marker behind the opening title. */
.single-product
.woocommerce-Tabs-panel--description > h2:first-child {
	display: inline;
	padding: 0 .05em;
	background:
		linear-gradient(
			transparent 68%,
			rgba(255, 59, 10, .14) 68%
		);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/*
 * Section titles get one small playful mark.
 * No horizontal rule, no card treatment.
 */
.single-product
.woocommerce-Tabs-panel--description > h2:not(:first-child),
.single-product
.woocommerce-Tabs-panel--description > h3 {
	position: relative;
	padding-left: 18px;
}

.single-product
.woocommerce-Tabs-panel--description > h2:not(:first-child)::before,
.single-product
.woocommerce-Tabs-panel--description > h3::before {
	content: "";
	position: absolute;
	left: 0;
	top: .52em;
	width: 8px;
	height: 8px;
	border-radius: 3px;
	background: #ff3b0a;
	transform: rotate(10deg);
}

/* Make the introductory feature panel slightly warmer / softer. */
.single-product
.woocommerce-Tabs-panel--description > ul:first-of-type {
	border: 1px solid rgba(255, 59, 10, .08);
	border-radius: 20px;
	background:
		linear-gradient(
			135deg,
			#fffaf6 0%,
			#faf8f5 100%
		);
}

/* Normal bullet lists get only a small orange accent. */
.single-product
.woocommerce-Tabs-panel--description > ul:not(:first-of-type) {
	list-style: disc;
}

.single-product
.woocommerce-Tabs-panel--description > ul:not(:first-of-type) li::marker {
	color: #ff3b0a;
	font-size: .8em;
}

/* Slightly lighten the rhythm between individual list items. */
.single-product
.woocommerce-Tabs-panel--description > ul:not(:first-of-type) li {
	margin-bottom: .72em;
}

/* Flavor names and other bold labels get a touch more definition. */
.single-product
.woocommerce-Tabs-panel--description li strong {
	font-weight: 700;
	letter-spacing: .01em;
}

/* Keep notes / delivery section calmer than the product-story sections. */
.single-product
.woocommerce-Tabs-panel--description > h2:last-of-type {
	margin-top: 56px;
}

@media (max-width: 544px) {

	.single-product
	.woocommerce-Tabs-panel--description > h2:not(:first-child),
	.single-product
	.woocommerce-Tabs-panel--description > h3 {
		padding-left: 16px;
	}

	.single-product
	.woocommerce-Tabs-panel--description > h2:not(:first-child)::before,
	.single-product
	.woocommerce-Tabs-panel--description > h3::before {
		width: 7px;
		height: 7px;
	}

	.single-product
	.woocommerce-Tabs-panel--description > ul:first-of-type {
		border-radius: 18px;
	}
}

/* =========================================================
   FLUSSO_PRODUCT_STORY_MEDIA_STYLE_V1
   ========================================================= */

.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media {
	max-width: 720px;
	margin: 34px 0 52px;
}

.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media figure {
	margin: 0;
}

.single-product
.woocommerce-Tabs-panel--description
.flusso-story-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
}

/* One image as a visual pause between text sections. */
.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media--single {
	max-width: 560px;
}

/* Two usage images create a lighter, more playful rhythm. */
.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media--pair {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media--pair
.flusso-story-image {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

@media (max-width: 544px) {

	.single-product
	.woocommerce-Tabs-panel--description
	.flusso-story-media {
		margin-top: 28px;
		margin-bottom: 44px;
	}

	.single-product
	.woocommerce-Tabs-panel--description
	.flusso-story-media--single {
		max-width: 100%;
	}

	.single-product
	.woocommerce-Tabs-panel--description
	.flusso-story-media--pair {
		gap: 8px;
	}

	.single-product
	.woocommerce-Tabs-panel--description
	.flusso-story-image {
		border-radius: 14px;
	}
}

/* =========================================================
   FLUSSO_PRODUCT_STORY_CORNER_FIX_V1
   Story photographs use square corners.
   ========================================================= */

.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media figure,
.single-product
.woocommerce-Tabs-panel--description
.flusso-story-image {
	border-radius: 0 !important;
}


/* =========================================================
   FLUSSO_PRODUCT_IMAGE_RADIUS_V1
   Consistent image rounding across WooCommerce product pages.
   ========================================================= */

/* Main product gallery image */
.single-product
.woocommerce-product-gallery
.woocommerce-product-gallery__image {
	border-radius: 14px;
	overflow: hidden;
}

.single-product
.woocommerce-product-gallery
.woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	border-radius: 0 !important;
}

/* Gallery thumbnails */
.single-product
.woocommerce-product-gallery
.flex-control-thumbs li {
	border-radius: 8px;
	overflow: hidden;
}

.single-product
.woocommerce-product-gallery
.flex-control-thumbs img {
	display: block;
	border-radius: 0 !important;
}

/* Editorial images inside product descriptions */
.single-product
.woocommerce-Tabs-panel--description
.flusso-story-media figure {
	border-radius: 14px !important;
	overflow: hidden;
}

.single-product
.woocommerce-Tabs-panel--description
.flusso-story-image {
	display: block;
	width: 100%;
	border-radius: 0 !important;
}

/* Other images that already exist inside product descriptions */
.single-product
.woocommerce-Tabs-panel--description
figure:not(.flusso-story-media figure) {
	overflow: hidden;
	border-radius: 14px;
}

.single-product
.woocommerce-Tabs-panel--description
figure:not(.flusso-story-media figure) img {
	display: block;
	border-radius: 0 !important;
}

/* Related products */
.single-product
.related.products
.astra-shop-thumbnail-wrap,
.single-product
.related.products
.woocommerce-loop-product__link img {
	border-radius: 14px;
	overflow: hidden;
}

/* Keep Woo zoom / gallery controls untouched. */

/* =========================================================
   FLUSSO_PAGE_V2_EDITORIAL_V1
   Editorial / slightly analog product-guide layout
   Scoped to .fl-page--v2 only.
   ========================================================= */

.fl-page--v2 {
	--v2-paper: #f6f2e9;
	--v2-paper-deep: #ece5d9;
	--v2-ink: #1f2d3d;
	--v2-muted: #6f6a61;
	--v2-accent: #ff3100;
	--v2-rule: rgba(31, 45, 61, 0.22);

	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);

	background: var(--v2-paper);
	color: var(--v2-ink);

	padding: clamp(42px, 6vw, 84px) 0
		clamp(72px, 9vw, 120px);

	box-sizing: border-box;
}

.fl-page--v2 *,
.fl-page--v2 *::before,
.fl-page--v2 *::after {
	box-sizing: border-box;
}

.fl-page--v2 .flv2-shell {
	width: min(1100px, calc(100% - 48px));
	margin: 0 auto;
}


/* ---------- Hero ---------- */

.fl-page--v2 .flv2-hero {
	display: grid;
	grid-template-columns:
		minmax(260px, 0.72fr)
		minmax(0, 1.28fr);

	gap: clamp(36px, 6vw, 86px);
	align-items: end;

	margin-bottom: clamp(80px, 10vw, 140px);
}

.fl-page--v2 .flv2-hero__copy {
	padding-bottom: clamp(4px, 2vw, 28px);
}

.fl-page--v2 .flv2-meta {
	margin: 0 0 22px;

	font-size: 0.72rem;
	line-height: 1;
	letter-spacing: 0.18em;
	text-transform: uppercase;

	color: var(--v2-muted);
}

.fl-page--v2 .flv2-meta span {
	color: var(--v2-accent);
}

.fl-page--v2 .flv2-title {
	margin: 0 0 24px;

	font-size: clamp(3rem, 6.6vw, 6.4rem);
	font-weight: 600;
	line-height: 0.94;
	letter-spacing: -0.045em;

	color: var(--v2-ink);
}

.fl-page--v2 .flv2-lead {
	max-width: 32em;
	margin: 0;

	font-size: clamp(1rem, 1.4vw, 1.15rem);
	line-height: 1.95;
}

.fl-page--v2 .flv2-hero__image {
	margin: 0;
}

.fl-page--v2 .flv2-hero__image img {
	display: block;
	width: 100%;
	height: auto;

	border: 0;
	border-radius: 0;
	box-shadow: none;
}


/* ---------- Sections ---------- */

.fl-page--v2 .flv2-section {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);

	gap: clamp(20px, 4vw, 54px);

	padding:
		clamp(42px, 6vw, 74px)
		0;

	border-top: 1px solid var(--v2-rule);
}

.fl-page--v2 .flv2-index {
	padding-top: 0.35em;

	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: var(--v2-accent);
}

.fl-page--v2 .flv2-index::after {
	content: "";
	display: block;
	width: 18px;
	margin-top: 9px;
	border-top: 1px solid currentColor;
	transform: rotate(-6deg);
}

.fl-page--v2 .flv2-content {
	max-width: 760px;
}

.fl-page--v2 .flv2-content h2 {
	margin: 0 0 24px;

	font-size: clamp(1.75rem, 3vw, 2.55rem);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -0.02em;
}

.fl-page--v2 .flv2-content h3 {
	margin: 42px 0 14px;

	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.fl-page--v2 .flv2-content p {
	max-width: 680px;
	margin: 0 0 1.4em;

	font-size: 1rem;
	line-height: 2;
}

.fl-page--v2 .flv2-content strong {
	font-weight: 650;
}


/* ---------- Editorial images ---------- */

.fl-page--v2 .flv2-figure {
	margin:
		clamp(32px, 5vw, 58px)
		0;
}

.fl-page--v2 .flv2-figure img {
	display: block;
	width: 100%;
	height: auto;

	border-radius: 0;
	box-shadow: none;
}

.fl-page--v2 .flv2-figure--offset {
	width: min(820px, 92%);
	margin-left: auto;
}

.fl-page--v2 .flv2-figure--small {
	width: min(560px, 78%);
}


/* ---------- Simple facts ---------- */

.fl-page--v2 .flv2-facts {
	max-width: 700px;

	margin: 34px 0 0;
	padding: 0;

	list-style: none;
	border-top: 1px solid var(--v2-rule);
}

.fl-page--v2 .flv2-facts li {
	margin: 0;
	padding: 14px 0;

	border-bottom: 1px solid var(--v2-rule);

	line-height: 1.75;
}


/* ---------- Links ---------- */

.fl-page--v2 .flv2-link {
	display: inline-block;

	margin-top: 20px;

	color: var(--v2-ink);
	font-weight: 600;
	text-decoration: none;

	border-bottom: 1px solid currentColor;

	padding-bottom: 3px;
	background: linear-gradient(
		to bottom,
		transparent 62%,
		rgba(255, 49, 0, 0.16) 62%
	);

	transition:
		color 0.18s ease,
		border-color 0.18s ease;
}

.fl-page--v2 .flv2-link:hover,
.fl-page--v2 .flv2-link:focus {
	color: var(--v2-accent);
	border-color: var(--v2-accent);
}


/* ---------- Closing ---------- */

.fl-page--v2 .flv2-closing {
	max-width: 760px;

	margin:
		clamp(58px, 8vw, 100px)
		0 0 auto;

	padding-top: 28px;

	border-top: 1px solid var(--v2-rule);
}

.fl-page--v2 .flv2-closing p {
	margin: 0;
	max-width: 34em;

	line-height: 1.9;
}


/* ---------- Business pages ---------- */

.fl-page--v2.fl-business .flv2-hero {
	grid-template-columns: minmax(0, 760px);
}

.fl-page--v2 .fl-business__account {
	margin-top: 22px;
}

.fl-page--v2 .fl-business__account a {
	color: var(--v2-ink);
	text-decoration: underline;
	text-underline-offset: 0.22em;
}

/* ---------- Wholesale application form ---------- */

.fl-page--v2.fl-business-apply #wpforms-form-38166 input.wpforms-field-medium[type="text"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 input.wpforms-field-medium[type="email"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 input.wpforms-field-medium[type="tel"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 input.wpforms-field-medium[type="url"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 textarea.wpforms-field-medium {
	max-width: 100%;
}

.fl-page--v2.fl-business-apply #wpforms-form-38166 input[type="text"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 input[type="email"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 input[type="tel"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 input[type="url"],
.fl-page--v2.fl-business-apply #wpforms-form-38166 textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.fl-page--v2.fl-business-apply #wpforms-form-38166 .wpforms-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: var(--btn-pad-y) 22px;
	border: 1px solid var(--fl-orange);
	border-radius: var(--radius-btn);
	background: var(--fl-orange);
	color: #fff;
	font-weight: 600;
	line-height: 1.2;
	transition: background-color 0.18s ease, border-color 0.18s ease;
}

.fl-page--v2.fl-business-apply #wpforms-form-38166 .wpforms-submit:hover,
.fl-page--v2.fl-business-apply #wpforms-form-38166 .wpforms-submit:focus {
	border-color: var(--fl-orange-dark);
	background: var(--fl-orange-dark);
	color: #fff;
}

.fl-page--v2.fl-business-apply #wpforms-form-38166 .wpforms-submit:focus-visible {
	outline: 3px solid rgba(255, 49, 0, 0.28);
	outline-offset: 3px;
}

/* ---------- Business order page ---------- */

@media (min-width: 769px) {
	.fl-page--v2.fl-business-index .flv2-title {
		font-size: clamp(3rem, 5vw, 5rem);
		word-break: keep-all;
	}

	.fl-page--v2.fl-business-order .flv2-title {
		font-size: clamp(3rem, 5.5vw, 5.4rem);
	}
}

.fl-page--v2.fl-business-order .flv2-hero {
	margin-bottom: clamp(64px, 8vw, 104px);
}

.fl-page--v2.fl-business-order .fl-business-order__catalogue {
	padding-top: clamp(34px, 4.5vw, 56px);
}

.fl-page--v2.fl-business-order .fl-business-order__catalogue .flv2-content {
	max-width: 880px;
}

.fl-page--v2 .flusso-b2b-order {
	max-width: 100%;
}

.fl-page--v2 .flusso-b2b-order__notice,
.fl-page--v2 .flusso-b2b-order__empty {
	margin: 0;
	padding: 18px 0;
	border-top: 1px solid var(--v2-rule);
	border-bottom: 1px solid var(--v2-rule);
	line-height: 1.9;
}

.fl-page--v2 .flusso-b2b-order__notice a {
	margin-left: 0.75em;
	color: var(--v2-ink);
	text-decoration: underline;
	text-underline-offset: 0.22em;
}

.fl-page--v2 .flusso-b2b-order__table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border-top: 1px solid var(--v2-rule);
	color: var(--v2-ink);
	font-size: 0.94rem;
}

.fl-page--v2 .flusso-b2b-order__table th,
.fl-page--v2 .flusso-b2b-order__table td {
	padding: 16px 12px;
	border-bottom: 1px solid var(--v2-rule);
	vertical-align: middle;
	line-height: 1.55;
	text-align: left;
}

.fl-page--v2 .flusso-b2b-order__table th {
	font-size: 0.71rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.fl-page--v2 .flusso-b2b-order__table td:first-child {
	min-width: 12em;
	font-weight: 600;
}

.fl-page--v2 .flusso-b2b-order__table input[type="number"] {
	width: 4.5em;
	min-height: 42px;
	margin: 0;
	padding: 6px 8px;
	border: 1px solid var(--v2-rule);
	border-radius: 0;
	background: transparent;
	color: inherit;
}

.fl-page--v2 .flusso-b2b-order__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0;
	padding: 22px 0;
	border-bottom: 1px solid var(--v2-rule);
}

.fl-page--v2 .flusso-b2b-order__actions p {
	margin: 0;
	line-height: 1.7;
}

.fl-page--v2 .flusso-b2b-order__actions .button {
	min-height: 42px;
	margin: 0;
	padding: 9px 14px;
	border: 1px solid var(--v2-accent);
	border-radius: 0;
	background: var(--v2-accent);
	color: #fff;
	font-size: 0.86rem;
	font-weight: 600;
	white-space: nowrap;
}

.fl-page--v2 .flusso-b2b-order__actions .button:hover,
.fl-page--v2 .flusso-b2b-order__actions .button:focus {
	border-color: var(--fl-orange-dark);
	background: var(--fl-orange-dark);
	color: #fff;
}

.fl-page--v2 .flusso-b2b-order__status {
	margin: 36px 0 0;
}

.fl-page--v2 .flusso-b2b-order__status h3 {
	margin: 0 0 14px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--v2-muted);
}

.fl-page--v2 .flusso-b2b-order__status dl {
	margin: 0;
	border-top: 1px solid var(--v2-rule);
}

.fl-page--v2 .flusso-b2b-order__status dl > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	padding: 11px 0;
	border-bottom: 1px solid var(--v2-rule);
	line-height: 1.7;
}

.fl-page--v2 .flusso-b2b-order__status dt,
.fl-page--v2 .flusso-b2b-order__status dd {
	margin: 0;
}

.fl-page--v2 .flusso-b2b-order__status dt {
	color: var(--v2-muted);
}

.fl-page--v2 .flusso-b2b-order__status dd {
	font-weight: 600;
	text-align: right;
}

.fl-page--v2 .flusso-b2b-order__next-actions {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 24px;
}

.fl-page--v2 .flusso-b2b-order__next-actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 14px;
	border: 1px solid var(--v2-ink);
	border-radius: 0;
	font-size: 0.86rem;
	font-weight: 600;
	text-decoration: none;
}

.fl-page--v2 .flusso-b2b-order__next-actions .flusso-b2b-order__secondary {
	background: transparent;
	color: var(--v2-ink);
}

.fl-page--v2 .flusso-b2b-order__next-actions .flusso-b2b-order__primary {
	border-color: var(--v2-accent);
	background: var(--v2-accent);
	color: #fff;
}

.fl-page--v2 .flusso-b2b-order__next-actions .flusso-b2b-order__secondary:hover,
.fl-page--v2 .flusso-b2b-order__next-actions .flusso-b2b-order__secondary:focus {
	border-color: var(--v2-accent);
	color: var(--v2-accent);
}

.fl-page--v2 .flusso-b2b-order__next-actions .flusso-b2b-order__primary:hover,
.fl-page--v2 .flusso-b2b-order__next-actions .flusso-b2b-order__primary:focus {
	border-color: var(--fl-orange-dark);
	background: var(--fl-orange-dark);
	color: #fff;
}


/* ---------- Mobile ---------- */

@media (max-width: 768px) {

	.fl-page--v2 {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		overflow-x: clip;

		padding-top: 34px;
		padding-bottom: 72px;
	}

	.fl-page--v2 .flv2-shell {
		width: calc(100% - 32px);
	}

	.fl-page--v2 .flv2-hero {
		grid-template-columns: 1fr;
		gap: 32px;

		margin-bottom: 72px;
	}

	.fl-page--v2 .flv2-title {
		font-size: clamp(3.2rem, 17vw, 5rem);
	}

	.fl-page--v2.fl-business-order .flv2-hero {
		margin-bottom: 56px;
	}

	.fl-page--v2.fl-business-order .fl-business-order__catalogue {
		padding-top: 36px;
	}

	.fl-page--v2.fl-business-apply #wpforms-form-38166 .wpforms-submit {
		width: 100%;
	}

	.fl-page--v2 .flv2-hero__image {
		width: 100%;
	}

	.fl-page--v2 .flv2-section {
		grid-template-columns: 1fr;
		gap: 15px;

		padding: 44px 0;
	}

	.fl-page--v2 .flv2-index {
		padding-top: 0;
	}

	.fl-page--v2 .flv2-content h2 {
		font-size: 1.75rem;
	}

	.fl-page--v2 .flv2-figure--offset,
	.fl-page--v2 .flv2-figure--small {
		width: 100%;
	}

	.fl-page--v2 .flv2-content p {
		line-height: 1.9;
	}

	.fl-page--v2 .flusso-b2b-order__table,
	.fl-page--v2 .flusso-b2b-order__table tbody,
	.fl-page--v2 .flusso-b2b-order__table tr,
	.fl-page--v2 .flusso-b2b-order__table td {
		display: block;
		width: 100%;
	}

	.fl-page--v2 .flusso-b2b-order__table thead {
		display: none;
	}

	.fl-page--v2 .flusso-b2b-order__table tr {
		padding: 18px 0;
		border-bottom: 1px solid var(--v2-rule);
	}

	.fl-page--v2 .flusso-b2b-order__table td {
		display: grid;
		grid-template-columns: minmax(6.5em, 0.8fr) minmax(0, 1.2fr);
		gap: 12px;
		padding: 7px 0;
		border: 0;
	}

	.fl-page--v2 .flusso-b2b-order__table td::before {
		font-size: 0.7rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		color: var(--v2-muted);
	}

	.fl-page--v2 .flusso-b2b-order__table td:nth-child(1)::before { content: "商品名"; }
	.fl-page--v2 .flusso-b2b-order__table td:nth-child(2)::before { content: "発注単位"; }
	.fl-page--v2 .flusso-b2b-order__table td:nth-child(3)::before { content: "B2B価格"; }
	.fl-page--v2 .flusso-b2b-order__table td:nth-child(4)::before { content: "注文数"; }
	.fl-page--v2 .flusso-b2b-order__table td:nth-child(5)::before { content: "合計数量"; }

	.fl-page--v2 .flusso-b2b-order__actions .button {
		width: 100%;
	}

	.fl-page--v2 .flusso-b2b-order__actions {
		display: block;
	}

	.fl-page--v2 .flusso-b2b-order__actions p {
		margin-bottom: 14px;
	}

	.fl-page--v2 .flusso-b2b-order__status dl > div {
		gap: 12px;
	}

	.fl-page--v2 .flusso-b2b-order__next-actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.fl-page--v2 .flusso-b2b-order__next-actions .button {
		width: 100%;
	}

	.fl-page--v2 .flusso-b2b-order__table td:first-child {
		min-width: 0;
	}

	.fl-page--v2 .flusso-b2b-order__table td[colspan]::before {
		content: "";
	}
}

/* flusso-product-details:start */
/*
 * Product description accordions
 * Native <details> only. No JavaScript.
 */
.woocommerce-Tabs-panel--description details {
	margin: 28px 0;
	padding: 0 20px 18px;
	border: 1px solid rgba(31, 45, 61, 0.16);
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.woocommerce-Tabs-panel--description details > summary {
	position: relative;
	display: block;
	margin: 0 -20px;
	padding: 17px 58px 17px 20px;
	cursor: pointer;
	font-size: 1.05em;
	font-weight: 600;
	line-height: 1.5;
	list-style: none;
}

.woocommerce-Tabs-panel--description details > summary::-webkit-details-marker {
	display: none;
}

.woocommerce-Tabs-panel--description details > summary::marker {
	content: "";
}

.woocommerce-Tabs-panel--description details > summary::after {
	content: "＋";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	font-size: 1.25em;
	font-weight: 400;
	line-height: 1;
}

.woocommerce-Tabs-panel--description details[open] > summary {
	margin-bottom: 18px;
	border-bottom: 1px solid rgba(31, 45, 61, 0.12);
}

.woocommerce-Tabs-panel--description details[open] > summary::after {
	content: "−";
}

.woocommerce-Tabs-panel--description details > :last-child {
	margin-bottom: 0;
}

@media (max-width: 600px) {
	.woocommerce-Tabs-panel--description details {
		margin: 22px 0;
		padding-right: 16px;
		padding-left: 16px;
	}

	.woocommerce-Tabs-panel--description details > summary {
		margin-right: -16px;
		margin-left: -16px;
		padding: 15px 52px 15px 16px;
	}

	.woocommerce-Tabs-panel--description details > summary::after {
		right: 16px;
	}
}
/* flusso-product-details:end */


/* flusso-product-info-readability:start */

.flusso-product-info__body {
	padding: 0 2px 2px;
}

.flusso-product-info__text {
	margin: 0 0 10px;
	line-height: 1.75;
}

.flusso-product-info__section {
	margin: 24px 0 7px;
	padding-top: 16px;
	border-top: 1px solid rgba(31,45,61,.10);
	font-size: 1em;
	font-weight: 700;
	line-height: 1.5;
}

.flusso-product-info__section:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.flusso-product-info__row {
	display: grid;
	grid-template-columns: minmax(125px, 190px) 1fr;
	gap: 20px;
	padding: 10px 0;
	border-top: 1px solid rgba(31,45,61,.08);
	line-height: 1.65;
}

.flusso-product-info__label {
	font-weight: 600;
}

.flusso-product-info__value {
	min-width: 0;
}

.flusso-product-info__note {
	margin: 12px 0 0;
	font-size: .92em;
	line-height: 1.7;
	opacity: .82;
}

@media (max-width: 600px) {

	.flusso-product-info__row {
		grid-template-columns: 1fr;
		gap: 3px;
		padding: 10px 0;
	}

	.flusso-product-info__label {
		font-weight: 700;
	}

	.flusso-product-info__section {
		margin-top: 20px;
	}
}

/* flusso-product-info-readability:end */


/* =========================
Flusso global footer
Source: Astra Above Footer > HTML 1
========================= */
.fl-global-footer {
	--fl-global-footer-ink: #241f1b;
	--fl-global-footer-warm: #f7f2ea;
	--fl-global-footer-rule: rgba(36, 31, 27, 0.24);

	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	overflow: clip;
	background: var(--fl-global-footer-warm);
	color: var(--fl-global-footer-ink);
}

.fl-global-footer *,
.fl-global-footer *::before,
.fl-global-footer *::after {
	box-sizing: border-box;
}

.fl-global-footer__inner {
	width: min(92vw, 2200px);
	margin: 0 auto;
	padding: clamp(38px, 4.5vw, 82px) 0 clamp(26px, 3vw, 52px);
}

.fl-global-footer__top {
	display: grid;
	grid-template-columns: minmax(180px, 1fr) minmax(0, 2.2fr);
	gap: clamp(28px, 5vw, 100px);
	align-items: start;
}

.fl-global-footer__name {
	margin: 0;
	color: var(--fl-global-footer-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 3.5vw, 4.5rem);
	font-weight: 400;
	letter-spacing: -0.07em;
	line-height: 0.9;
}

.fl-global-footer__utility,
.fl-global-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fl-global-footer__utility {
	display: grid;
	gap: 8px;
	margin-top: 24px;
}

.fl-global-footer__utility a {
	color: var(--fl-global-footer-ink);
	font-size: clamp(0.76rem, 0.8vw, 0.9rem);
	line-height: 1.45;
	text-decoration: none;
}

.fl-global-footer__utility a:hover,
.fl-global-footer__utility a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.fl-global-footer__nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 72px);
}

.fl-global-footer__label {
	margin: 0 0 14px;
	color: rgba(36, 31, 27, 0.64);
	font-size: clamp(0.68rem, 0.72vw, 0.8rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.45;
}

.fl-global-footer__links {
	display: grid;
	gap: 12px;
}

.fl-global-footer__links a {
	border-bottom: 1px solid var(--fl-global-footer-rule);
	color: var(--fl-global-footer-ink);
	font-size: clamp(0.82rem, 0.95vw, 1.05rem);
	font-weight: 500;
	line-height: 1.45;
	padding-bottom: 0.25em;
	text-decoration: none;
}

.fl-global-footer__links a:hover,
.fl-global-footer__links a:focus-visible {
	border-color: var(--fl-global-footer-ink);
	color: var(--fl-global-footer-ink);
}

.fl-global-footer__copyright {
	margin: clamp(30px, 4vw, 72px) 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--fl-global-footer-rule);
	color: var(--fl-global-footer-ink);
	font-size: clamp(0.72rem, 0.75vw, 0.86rem);
	line-height: 1.5;
}

@media (max-width: 600px) {
	.fl-global-footer {
		width: 100%;
	}

	.fl-global-footer__inner {
		width: calc(100% - 32px);
	}

	.fl-global-footer__top {
		display: block;
	}

	.fl-global-footer__nav {
		grid-template-columns: 1fr;
		gap: 30px;
		margin-top: 34px;
	}

	.fl-global-footer__links {
		gap: 14px;
	}

	.fl-global-footer__links a {
		display: inline-block;
		font-size: 0.9rem;
	}

	.fl-global-footer__copyright {
		margin-top: 32px;
	}
}

/* Flusso HOME v4 */
.fl-home-v4 { --fl-v4-orange:#ff3100; --fl-v4-ink:#241f1b; --fl-v4-cream:#f7f2ea; --fl-v4-paper:#fffdfa; width:100%; overflow:hidden; background:var(--fl-v4-paper); color:var(--fl-v4-ink); }
.fl-home-v4 *, .fl-home-v4 *::before, .fl-home-v4 *::after { box-sizing:border-box; }
.fl-home-v4 img { display:block; width:100%; max-width:100%; height:auto; }
.fl-home-v4 a { color:inherit; }
.fl-home-v4 .fl-v4-frame { width:min(92vw,2200px); margin-inline:auto; }
.fl-home-v4 .fl-v4-link { display:inline-flex; align-items:center; gap:.55em; border-bottom:1px solid currentColor; color:var(--fl-v4-ink); font-size:clamp(.9rem,1vw,1.05rem); font-weight:700; letter-spacing:.04em; line-height:1.5; padding-bottom:.2em; text-decoration:none; }
.fl-home-v4 .fl-v4-link::after { content:"→"; color:var(--fl-v4-orange); }
.fl-home-v4 .fl-v4-link:hover { color:var(--fl-v4-orange); }
.fl-home-v4 .fl-v4-hero { padding:clamp(20px,2vw,42px) 0 clamp(72px,9vw,180px); }
.fl-home-v4 .fl-v4-hero__image { position:relative; min-height:clamp(520px,62vw,1180px); overflow:hidden; background:#7c5c43; }
.fl-home-v4 .fl-v4-hero__image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(29,20,15,.47),rgba(29,20,15,.04) 58%,rgba(29,20,15,.1)); }
.fl-home-v4 .fl-v4-hero__image img { height:100%; min-height:inherit; object-fit:cover; object-position:center; }
.fl-home-v4 .fl-v4-hero__copy { position:absolute; z-index:1; left:clamp(24px,6vw,130px); bottom:clamp(28px,7vw,150px); max-width:min(60vw,1080px); color:#fff; }
.fl-home-v4 .fl-v4-hero__name { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(5rem,15.5vw,20rem); font-weight:400; letter-spacing:-.075em; line-height:.74; }
.fl-home-v4 .fl-v4-hero__lead { max-width:30em; margin:clamp(22px,3vw,54px) 0 0; font-size:clamp(1rem,1.5vw,1.6rem); font-weight:700; line-height:1.75; }
.fl-home-v4 .fl-v4-hero__link { margin-top:clamp(18px,2vw,34px); color:#fff; }
.fl-home-v4 .fl-v4-hero__link::after { color:#fff; }
.fl-home-v4 .fl-v4-food { padding:clamp(68px,9vw,176px) 0; background:var(--fl-v4-cream); }
.fl-home-v4 .fl-v4-food__grid { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(270px,.58fr); grid-template-rows:auto 1fr; column-gap:clamp(22px,3.5vw,76px); row-gap:clamp(22px,3vw,62px); align-items:end; }
.fl-home-v4 .fl-v4-food__intro { grid-column:1 / -1; display:flex; justify-content:space-between; gap:40px; align-items:end; }
.fl-home-v4 .fl-v4-eyebrow { margin:0 0 .4em; color:var(--fl-v4-orange); font-size:clamp(.75rem,.8vw,.95rem); font-weight:800; letter-spacing:.15em; }
.fl-home-v4 .fl-v4-heading { margin:0; font-size:clamp(2.2rem,4.7vw,6.5rem); font-weight:800; letter-spacing:-.055em; line-height:1.08; }
.fl-home-v4 .fl-v4-food__body { max-width:33em; margin:0; font-size:clamp(1rem,1.25vw,1.4rem); line-height:1.85; }
.fl-home-v4 .fl-v4-food__large { position:relative; }
.fl-home-v4 .fl-v4-food__large img { aspect-ratio:1.15 / 1; object-fit:cover; }
.fl-home-v4 .fl-v4-food__number { position:absolute; top:-.19em; left:-.08em; color:var(--fl-v4-orange); font-family:Georgia,"Times New Roman",serif; font-size:clamp(7rem,16vw,20rem); font-weight:400; letter-spacing:-.1em; line-height:.75; pointer-events:none; }
.fl-home-v4 .fl-v4-food__small { align-self:center; padding-bottom:clamp(8px,3vw,80px); }
.fl-home-v4 .fl-v4-food__small img { aspect-ratio:.88 / 1; object-fit:cover; transform:translateX(clamp(-12px,-1.6vw,-34px)); }
.fl-home-v4 .fl-v4-food__caption { margin:clamp(20px,2vw,32px) 0 0; }
.fl-home-v4 .fl-v4-store { padding:clamp(72px,10vw,190px) 0; }
.fl-home-v4 .fl-v4-store__image { position:relative; }
.fl-home-v4 .fl-v4-store__image img { min-height:clamp(390px,42vw,900px); object-fit:cover; object-position:center; }
.fl-home-v4 .fl-v4-store__copy { position:relative; z-index:1; width:min(47vw,900px); margin:clamp(-140px,-10vw,-60px) clamp(16px,7vw,150px) 0 auto; padding:clamp(28px,4.5vw,96px); background:var(--fl-v4-paper); }
.fl-home-v4 .fl-v4-store__text { margin:clamp(22px,2vw,36px) 0; font-size:clamp(1rem,1.25vw,1.4rem); line-height:1.85; }
.fl-home-v4 .fl-v4-more { padding:clamp(56px,8vw,150px) 0 clamp(72px,9vw,170px); background:var(--fl-v4-orange); color:#fff; }
.fl-home-v4 .fl-v4-more .fl-v4-heading { max-width:12em; }
.fl-home-v4 .fl-v4-more__list { margin:clamp(32px,5vw,80px) 0 0; border-top:1px solid rgba(255,255,255,.72); }
.fl-home-v4 .fl-v4-more__item { display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid rgba(255,255,255,.72); color:#fff; font-size:clamp(1.35rem,2.7vw,3.8rem); font-weight:800; letter-spacing:-.04em; line-height:1.2; padding:clamp(18px,2.2vw,42px) 0; text-decoration:none; }
.fl-home-v4 .fl-v4-more__item::after { content:"→"; font-size:.75em; font-weight:400; }
.fl-home-v4 .fl-v4-more__item:hover { color:var(--fl-v4-ink); }
@media (max-width:820px) { .fl-home-v4 .fl-v4-frame { width:calc(100% - 32px); } .fl-home-v4 .fl-v4-hero { padding-top:16px; } .fl-home-v4 .fl-v4-hero__image { min-height:min(150vw,680px); } .fl-home-v4 .fl-v4-hero__image::after { background:linear-gradient(0deg,rgba(29,20,15,.62),rgba(29,20,15,.02) 70%); } .fl-home-v4 .fl-v4-hero__copy { right:24px; max-width:none; } .fl-home-v4 .fl-v4-hero__name { font-size:clamp(5.1rem,23vw,10rem); } .fl-home-v4 .fl-v4-food__grid { grid-template-columns:minmax(0,1.3fr) minmax(120px,.7fr); column-gap:18px; } .fl-home-v4 .fl-v4-food__intro { display:block; } .fl-home-v4 .fl-v4-food__body { margin-top:22px; } .fl-home-v4 .fl-v4-food__small { align-self:end; padding-bottom:0; } .fl-home-v4 .fl-v4-food__small img { transform:translateX(-8px); } .fl-home-v4 .fl-v4-store__copy { width:calc(100% - 24px); margin:-60px 0 0 auto; } }
@media (max-width:600px) { .fl-home-v4 .fl-v4-hero__copy { bottom:48px; } .fl-home-v4 .fl-v4-hero__name { font-size:clamp(5.5rem,25vw,10.8rem); } .fl-home-v4 .fl-v4-hero__lead { margin-top:30px; } .fl-home-v4 .fl-v4-store__copy .fl-v4-heading { font-size:clamp(2.55rem,10vw,4.4rem); } .fl-home-v4 .fl-v4-store__text { margin:30px 0 36px; } .fl-home-v4 .fl-v4-more__item { font-size:clamp(1.55rem,6.8vw,2.25rem); padding:25px 0; } }
@media (max-width:420px) { .fl-home-v4 .fl-v4-hero__copy { left:18px; right:18px; bottom:42px; } .fl-home-v4 .fl-v4-hero__name { font-size:clamp(5.5rem,26vw,10.8rem); } .fl-home-v4 .fl-v4-hero__lead { line-height:1.65; } .fl-home-v4 .fl-v4-food__grid { grid-template-columns:minmax(0,1.65fr) minmax(72px,.35fr); column-gap:12px; } .fl-home-v4 .fl-v4-food__number { font-size:7.5rem; } .fl-home-v4 .fl-v4-store__copy { padding:26px 22px; } }


/* flusso-global-footer-shell:start */
.ast-hfb-header .site-footer {
	padding: 0;
	background: transparent;
}

.site-above-footer-wrap[data-section="section-above-footer-builder"] {
	background-color: transparent;
	background-image: none;
}

.site-above-footer-wrap[data-section="section-above-footer-builder"] .ast-builder-grid-row {
	padding-left: 0;
	padding-right: 0;
}
/* flusso-global-footer-shell:end */
