
.dionisia-flavour-profile {
  --dfp-green:#173f35;
  --dfp-gold:#c49a43;
  --dfp-cream:#fcfaf4;
  --dfp-ink:#243b34;
  width:100%;
  margin:1.75rem 0;
  padding:clamp(1.4rem,3vw,2.15rem);
  box-sizing:border-box;
  color:var(--dfp-ink);
  background:linear-gradient(135deg,rgba(252,250,244,.99),rgba(255,255,255,.97));
  border:1px solid rgba(196,154,67,.42);
  border-radius:20px;
  box-shadow:0 12px 34px rgba(29,50,43,.055);
}
.dfp-title{
  margin:0 0 1.35rem!important;
  color:var(--dfp-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.65rem,3vw,2.25rem);
  font-weight:400; line-height:1.1; letter-spacing:.01em;
}
.dfp-title::after{
  content:""; display:block; width:78px; height:1px; margin-top:.72rem;
  background:linear-gradient(90deg,var(--dfp-gold),rgba(196,154,67,0));
}
.dfp-section{padding:.25rem 0 1.35rem}
.dfp-section + .dfp-section{border-top:1px solid rgba(196,154,67,.28);padding-top:1.4rem}
.dfp-section-title{
  margin:0 0 .8rem!important;
  text-align:left;
  color:var(--dfp-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1rem,2vw,1.22rem);
  font-weight:400; letter-spacing:.13em; text-transform:uppercase;
}

/* Structure profile */
.dfp-ratings{display:grid}
.dfp-row{
  display:grid; grid-template-columns:minmax(120px,175px) auto auto;
  justify-content:start; align-items:center;
  column-gap:clamp(1rem,3vw,2rem); min-height:70px; padding:.45rem 0;
}
.dfp-row + .dfp-row{border-top:1px solid rgba(196,154,67,.20)}
.dfp-label{
  color:var(--dfp-green); font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(.9rem,1.7vw,1.08rem); letter-spacing:.10em; text-transform:uppercase;
}
.dfp-pods{display:flex;align-items:center;gap:clamp(7px,1.2vw,12px)}
.dfp-pod{
  position:relative;display:inline-block;width:clamp(24px,3.7vw,35px);
  aspect-ratio:52/82;transform-origin:50% 86%;
}
.dfp-pod-ghost-layer,.dfp-pod-fill-layer{
  position:absolute;inset:0;display:block;overflow:hidden;
}
.dfp-pod-ghost-layer{opacity:.14;filter:grayscale(.68) sepia(.24) saturate(.55) brightness(1.18)}
.dfp-pod-fill-layer{width:0;opacity:1}
.dfp-pod.is-filled .dfp-pod-fill-layer{width:100%}
.dfp-pod.is-half .dfp-pod-fill-layer{width:50%}
.dfp-pod.is-ghost .dfp-pod-fill-layer{width:0}
.dfp-pod-ghost-layer img,.dfp-pod-fill-layer img,
.dfp-pod-ghost-layer svg,.dfp-pod-fill-layer svg{
  position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;
  display:block;object-fit:contain;
}
.dfp-pod-fill-layer img,.dfp-pod-fill-layer svg{width:var(--dfp-pod-full-width,100%)}

.dfp-score{
  min-width:55px;color:var(--dfp-green);font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1rem,1.9vw,1.2rem);font-variant-numeric:tabular-nums;white-space:nowrap
}
.dfp-score span{margin-left:.18em;font-size:.78em;opacity:.72}

/* Flavour Character compass */
.dfp-character-section .dfp-section-title{
  text-align:center;
  margin-bottom:.7rem!important;
}

.dfp-character-compass{
  position:relative;
  width:min(100%,560px);
  aspect-ratio:1/1;
  margin:0 auto;
  box-sizing:border-box;
}

.dfp-compass-chart{
  position:absolute;
  inset:15%;
  width:70%;
  height:70%;
  overflow:visible;
}

.dfp-compass-axis{
  stroke:rgba(196,154,67,.66);
  stroke-width:.34;
  vector-effect:non-scaling-stroke;
}

.dfp-compass-centre{
  fill:#c49a43;
  stroke:#fffaf0;
  stroke-width:.5;
  vector-effect:non-scaling-stroke;
}

.dfp-compass-shape{
  stroke:rgba(138,88,48,.42);
  stroke-width:.52;
  vector-effect:non-scaling-stroke;
  transform-origin:50% 50%;
}

.dfp-compass-character{
  position:absolute;
  width:29%;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  color:var(--dfp-green);
  pointer-events:none;
}

.dfp-compass-title{
  margin-bottom:.22rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(.72rem,1.6vw,.96rem);
  line-height:1.1;
  letter-spacing:.10em;
  text-transform:uppercase;
  white-space:nowrap;
}

.dfp-compass-character img{
  display:block;
  width:auto;
  max-width:100%;
  height:clamp(62px,10vw,98px);
  object-fit:contain;
}

.dfp-compass-nw{left:0;top:2%}
.dfp-compass-ne{right:0;top:2%}
.dfp-compass-sw{left:0;bottom:1%}
.dfp-compass-se{right:0;bottom:1%}

/* Compass animation */
.dfp-animate.dfp-js .dfp-compass-character{
  opacity:0;
  transform:translateY(7px);
}
.dfp-animate.dfp-js .dfp-compass-shape{
  opacity:0;
  transform:scale(.55);
}
.dfp-animate.dfp-js.is-visible .dfp-compass-shape{
  animation:dfpCompassBloom .72s cubic-bezier(.2,.82,.2,1) .46s forwards;
}
.dfp-animate.dfp-js.is-visible .dfp-compass-character{
  animation:dfpFadeUp .46s ease forwards;
}
.dfp-animate.dfp-js.is-visible .dfp-compass-nw{animation-delay:.54s}
.dfp-animate.dfp-js.is-visible .dfp-compass-ne{animation-delay:.62s}
.dfp-animate.dfp-js.is-visible .dfp-compass-sw{animation-delay:.70s}
.dfp-animate.dfp-js.is-visible .dfp-compass-se{animation-delay:.78s}

@keyframes dfpCompassBloom{
  0%{opacity:0;transform:scale(.55)}
  72%{opacity:1;transform:scale(1.035)}
  100%{opacity:1;transform:scale(1)}
}

@media(max-width:700px){
  .dfp-character-compass{
    width:min(100%,430px);
  }
  .dfp-compass-chart{
    inset:17%;
    width:66%;
    height:66%;
  }
  .dfp-compass-character{
    width:31%;
  }
  .dfp-compass-character img{
    height:clamp(54px,18vw,78px);
  }
  .dfp-compass-title{
    font-size:.68rem;
    letter-spacing:.055em;
  }
}

@media(max-width:420px){
  .dfp-character-compass{
    aspect-ratio:1/1.04;
  }
  .dfp-compass-chart{
    inset:19%;
    width:62%;
    height:62%;
  }
  .dfp-compass-character{
    width:33%;
  }
  .dfp-compass-title{
    font-size:.61rem;
  }
}

@media(prefers-reduced-motion:reduce){
  .dfp-animate.dfp-js .dfp-compass-character,
  .dfp-animate.dfp-js .dfp-compass-shape{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
}

/* Flavour notes */
.dfp-notes-section .dfp-section-title{text-align:center;margin-bottom:1rem!important}
.dfp-notes-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:0;
}
.dfp-note{
  position:relative;text-align:center;padding:.45rem clamp(.65rem,1.7vw,1.15rem) .75rem;
}
.dfp-note + .dfp-note{border-left:1px solid rgba(196,154,67,.26)}
.dfp-note-art{height:clamp(88px,13vw,132px);display:grid;place-items:end center;margin-bottom:.2rem}
.dfp-note-art img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.dfp-note-primary .dfp-note-art img{
  transform:scale(1);
  opacity:1;
}
.dfp-note-secondary .dfp-note-art img{
  transform:scale(.88);
  opacity:.78;
}
.dfp-note-subtle .dfp-note-art img{
  transform:scale(.74);
  opacity:.52;
}
.dfp-note h5{
  margin:.25rem 0 .18rem!important;color:var(--dfp-green);
  font-family:Georgia,"Times New Roman",serif;font-size:clamp(.82rem,1.45vw,1rem);
  font-weight:400;letter-spacing:.08em;text-transform:uppercase
}
.dfp-note-prominence{
  color:#a36e19;font-family:Georgia,"Times New Roman",serif;
  font-size:.68rem;letter-spacing:.11em;text-transform:uppercase
}
.dfp-note p{
  margin:.45rem auto 0!important;max-width:22ch;
  font-family:Georgia,"Times New Roman",serif;font-size:.84rem;line-height:1.45;font-style:italic;color:#3c4c46
}

/* Viewport animation */
.dfp-animate.dfp-js .dfp-title,
.dfp-animate.dfp-js .dfp-section-title,
.dfp-animate.dfp-js .dfp-row,
.dfp-animate.dfp-js .dfp-note{opacity:0;transform:translateY(9px)}
.dfp-animate.dfp-js .dfp-pod{opacity:0;transform:translateY(8px) scale(.78)}
.dfp-animate.dfp-js.is-visible .dfp-title,
.dfp-animate.dfp-js.is-visible .dfp-section-title{animation:dfpFadeUp .48s cubic-bezier(.2,.8,.2,1) forwards}
.dfp-animate.dfp-js.is-visible .dfp-section-title{animation-delay:100ms}
.dfp-animate.dfp-js.is-visible .dfp-row{
  animation:dfpFadeUp .5s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:calc(140ms + (var(--dfp-row-index) * 105ms))
}
.dfp-animate.dfp-js.is-visible .dfp-pod{
  animation:dfpPodIn .55s cubic-bezier(.18,.89,.32,1.22) forwards;
  animation-delay:calc(230ms + (var(--dfp-row-index) * 105ms) + (var(--dfp-pod-index) * 58ms))
}
.dfp-animate.dfp-js.is-visible .dfp-pod.is-ghost{animation-name:dfpGhostIn}
.dfp-animate.dfp-js.is-visible .dfp-note{
  animation:dfpNoteIn .58s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:calc(680ms + (var(--dfp-note-index) * 105ms))
}
@keyframes dfpFadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes dfpPodIn{0%{opacity:0;transform:translateY(8px) scale(.78)}70%{opacity:1;transform:translateY(-2px) scale(1.05)}100%{opacity:1;transform:none}}
@keyframes dfpGhostIn{0%{opacity:0;transform:translateY(8px) scale(.78)}70%{opacity:.17;transform:translateY(-1px) scale(1.03)}100%{opacity:.14;transform:none}}
@keyframes dfpNoteIn{0%{opacity:0;transform:translateY(12px) scale(.97)}100%{opacity:1;transform:none}}

@media(max-width:700px){
  .dionisia-flavour-profile{padding:1.25rem 1rem;border-radius:16px}
  .dfp-row{grid-template-columns:1fr auto;grid-template-areas:"label score" "pods pods";row-gap:.5rem;min-height:0;padding:.82rem 0}
  .dfp-label{grid-area:label}.dfp-pods{grid-area:pods}.dfp-score{grid-area:score;text-align:right}
  .dfp-pod{width:clamp(24px,8vw,33px)}
  .dfp-notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dfp-note:nth-child(odd){border-left:0}
  .dfp-note:nth-child(n+3){border-top:1px solid rgba(196,154,67,.22);padding-top:1rem}
}
@media(max-width:420px){
  .dfp-notes-grid{grid-template-columns:1fr}
  .dfp-note + .dfp-note{border-left:0;border-top:1px solid rgba(196,154,67,.22);padding-top:1rem}
}
@media(prefers-reduced-motion:reduce){
  .dfp-animate.dfp-js *{animation:none!important;transform:none!important}
  .dfp-animate.dfp-js .dfp-title,.dfp-animate.dfp-js .dfp-section-title,.dfp-animate.dfp-js .dfp-row,.dfp-animate.dfp-js .dfp-note,    .dfp-animate.dfp-js .dfp-pod.is-filled{opacity:1!important}
  .dfp-animate.dfp-js .dfp-pod.is-ghost{opacity:.14!important}
}


/* v1.5 — half-step cacao-pod ratings */
.dfp-pod.is-half .dfp-pod-fill-layer {
  width: 50%;
}
.dfp-pod.is-half .dfp-pod-fill-layer img,
.dfp-pod.is-half .dfp-pod-fill-layer svg {
  width: 200%;
  max-width: none;
}
.dfp-pod.is-filled .dfp-pod-fill-layer img,
.dfp-pod.is-filled .dfp-pod-fill-layer svg {
  width: 100%;
}
.dfp-pod.is-ghost .dfp-pod-fill-layer {
  display: none;
}
.dfp-animate.dfp-js.is-visible .dfp-pod.is-half {
  animation-name: dfpPodIn;
}
@media(prefers-reduced-motion:reduce){
  .dfp-animate.dfp-js .dfp-pod.is-half{opacity:1!important}
}


/* v1.9.1 — hierarchy applies to artwork, never to the text label */
.dfp-note h5,
.dfp-note-prominence,
.dfp-note p {
  opacity: 1 !important;
  visibility: visible !important;
}
.dfp-note h5 {
  display: block !important;
  color: var(--dfp-green) !important;
}

/* Keep selected artwork contained while preserving the hierarchy opacity. */
.dfp-note-art {
  overflow: hidden;
}
.dfp-note-art img {
  width: auto;
  height: auto;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  margin-inline: auto;
}
.dfp-note-primary .dfp-note-art img { opacity:1 !important; }
.dfp-note-secondary .dfp-note-art img { opacity:.78 !important; }
.dfp-note-subtle .dfp-note-art img { opacity:.52 !important; }
