/* Brand homepage only; application panel layout remains independent. */
.fv-public-home {
  --ph-paper: #faf8f2;
  --ph-green: #084a3b;
  --ph-gold: #8a5e24;
  background: var(--ph-paper);
  color: #183f35;
}
.fv-public-home .ph-container { width: min(100% - 80px, 1320px); margin-inline: auto; }
.fv-public-home :is(h1, h2, h3) { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.fv-public-home h1 { font-size: clamp(2.5rem, 4.1vw, 3.75rem); line-height: 1.08; margin: 18px 0; }
.fv-public-home h2 { font-size: clamp(1.85rem, 2.3vw, 2.25rem); line-height: 1.14; margin: 0 0 16px; }
.fv-public-home h3 { font-size: 1.2rem; line-height: 1.25; margin: 0 0 8px; }
.fv-public-home p { line-height: 1.55; margin-top: 0; }
.fv-public-home :is(section, details) { scroll-margin-top: calc(var(--fv-public-bar-height, 90px) + 24px); }
.fv-public-home .ph-header { border-bottom: 1px solid #e7e5dc; background: #fffefa; }
.fv-public-home .ph-header-inner { display: flex; align-items: center; gap: 30px; min-height: 86px; }
.fv-public-home .ph-brand { flex-shrink: 0; padding: 0; }
.fv-public-home .ph-brand .fv-wordmark { font-size: 2.65rem; font-weight: 500; letter-spacing: -0.065em; }
.fv-public-home .ph-brand .fv-tagline { font-size: 0.56rem; letter-spacing: 0.21em; margin-top: 5px; }
.fv-public-home .ph-navigation { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 18px;
  }
.fv-public-home .ph-section-links { display: flex; align-items: center; gap: 18px; }
.fv-public-home .ph-section-links a { font-size: 0.875rem; text-decoration: none; padding-block: 14px; }
.fv-public-home .ph-section-links a:hover { text-decoration: underline; }
.fv-public-home .ph-header-actions { display: flex; gap: 10px; align-items: center; }
.fv-public-home .ph-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-align: center;
  background: linear-gradient(110deg, #07503f, #043d30); color: #fff; border: 1px solid #084a3b;
  border-radius: 11px; min-height: 52px; padding: 13px 23px; font-weight: 600; text-decoration: none;
  line-height: 1.35;
}
.fv-public-home .ph-button:hover { background: #07382d; }
.fv-public-home .ph-button-outline { background: #fffefaab; color: #133f34; }
.fv-public-home .ph-button-outline:hover { background: #eaf0e7; }
.fv-public-home .ph-header-actions .ph-button { min-height: 46px; font-size: 0.81rem; padding: 11px 14px; }
.fv-public-home .ph-header-actions .language-switch { gap: 3px; flex-wrap: nowrap; }
.fv-public-home .ph-header-actions .language-switch button { font-size: 0.75rem; padding-inline: 7px; }
.fv-public-home .ph-menu-toggle {
  background: transparent; border: 1px solid #d8ddcf; border-radius: 10px; align-items: center;
  gap: 8px; color: #133f34; padding: 8px 12px; margin-left: auto;
}
.fv-public-home .ph-menu-toggle[hidden] { display: none; }
.fv-public-home .ph-hero {
  background: radial-gradient(ellipse at 82% 44%, #dfd0b5aa, transparent 54%),
              linear-gradient(100deg, #faf8f2 38%, #efe8da);
  border-bottom: 1px solid #eee8dc;
}
.fv-public-home .ph-hero-grid {
  display: grid; grid-template-columns: minmax(0, 44fr) minmax(0, 56fr); gap: 26px 40px;
  align-items: center; min-height: 570px; padding-block: 46px 34px;
}
.fv-public-home .ph-hero-copy { align-self: end; }
.fv-public-home .ph-eyebrow {
  color: var(--ph-gold); font-size: 0.71rem; line-height: 1.65; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase; margin: 0 0 16px;
}
.fv-public-home .ph-lead { color: #50665e; font-size: 1.05rem; margin-bottom: 26px; }
.fv-public-home .ph-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.fv-public-home .ph-text-link { font-weight: 600; display: inline-flex; align-items: center; min-height: 48px; }
.fv-public-home .ph-product { grid-column: 2; grid-row: 1 / 3; margin: 0; min-width: 0; }
.fv-public-home .ph-product-scene { position: relative; padding: 34px 46px 52px 0; }
.fv-public-home .ph-product-scene::before {
  content: ""; position: absolute; inset: 0; opacity: 0.18;
  background: image-set(url("img/public-home/interior-480.b83c2d80dd39.webp") 1x,
                         url("img/public-home/interior-780.0ff044817bff.webp") 2x) center / cover;
  filter: blur(12px); border-radius: 80px;
}
.fv-public-home .ph-laptop { position: relative; padding-bottom: 16px; }
.fv-public-home .ph-laptop-screen {
  background: #101611; border: 2px solid #595950; padding: 11px; border-radius: 17px 17px 4px 4px;
  box-shadow: 0 17px 25px #332a2433;
}
.fv-public-home .ph-laptop-screen img { display: block; width: 100%; height: auto; border-radius: 4px; }
.fv-public-home .ph-laptop-base {
  position: absolute; bottom: 0; left: -6%; width: 112%; height: 18px; border-radius: 2px 2px 55% 55%;
  background: linear-gradient(#bfc0b7, #e5e4db 38%, #787b70 55%, #4d5149);
  box-shadow: 0 15px 12px -10px #342e2466;
}
.fv-public-home .ph-laptop-base::after {
  content: ""; position: absolute; height: 5px; width: 18%; left: 41%; top: 0;
  background: #74786e; border-radius: 0 0 8px 8px;
}
.fv-public-home .ph-phone {
  position: absolute; width: 28%; right: 0; top: 28%; padding: 7px; border: 2px solid #66695f;
  background: #101610; border-radius: 24px; box-shadow: 0 14px 22px #352a2333;
}
.fv-public-home .ph-phone::before {
  content: ""; width: 40%; height: 10px; background: #101610; position: absolute;
  left: 30%; top: 7px; border-radius: 0 0 8px 8px;
}
.fv-public-home .ph-phone img { width: 100%; height: auto; display: block; border-radius: 16px; }
.fv-public-home .ph-product figcaption { text-align: center; color: #53685c; font-size: 0.75rem; margin-top: 8px; }
.fv-public-home .ph-features {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none;
  padding: 0; margin: 2px 0 0; gap: 16px; align-self: start;
}
.fv-public-home .ph-features li { display: flex; gap: 11px; align-items: flex-start; font-size: 0.76rem; }
.fv-public-home .ph-features strong { display: block; font-weight: 600; line-height: 1.3; margin-bottom: 6px; }
.fv-public-home .ph-features .ui-icon { width: 30px; height: 34px; flex-shrink: 0; color: var(--ph-gold); }
.fv-public-home .ph-content { padding-block: 18px 28px; }
.fv-public-home .ph-audiences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.fv-public-home .ph-audience { position: relative; isolation: isolate; border-radius: 18px; overflow: hidden; }
.fv-public-home .ph-audience-photo { position: absolute; inset: 0 0 0 40%; z-index: -2; }
.fv-public-home .ph-audience-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fv-public-home .ph-customers .ph-audience-photo img { object-fit: contain; object-position: right center; }
.fv-public-home .ph-businesses .ph-audience-photo { left: 52%; }
.fv-public-home .ph-businesses .ph-audience-photo img { object-position: right center; }
.fv-public-home .ph-audience::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, #f0f0e7 0%, #f4f1e8 45%, #f4f1e8eb 55%, #f4f1e800 88%);
}
.fv-public-home .ph-audience-copy { width: 78%; padding: 28px; min-height: 340px; }
.fv-public-home .ph-audience h2 { max-width: 310px; }
.fv-public-home .ph-audience p:not(.ph-eyebrow) { max-width: 330px; font-size: 1rem; }
.fv-public-home .ph-audience .ph-actions { gap: 2px 17px; }
.fv-public-home .ph-audience .ph-button { padding-inline: 19px; font-size: 0.93rem; }
.fv-public-home .ph-audience .ph-text-link { font-size: 0.9rem; }
.fv-public-home .ph-how { background: #edf0e6; border-radius: 18px; padding: 26px 30px; margin-block: 18px; }
.fv-public-home .ph-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.fv-public-home .ph-steps { padding: 0; margin: 24px 0 20px; list-style: none; }
.fv-public-home .ph-steps li { display: grid; grid-template-columns: 23px 36px 1fr; gap: 12px; }
.fv-public-home .ph-step-number {
  width: 23px; height: 23px; border-radius: 50%; background: var(--ph-gold); color: #fff;
  display: grid; place-items: center; font-family: Georgia, serif; font-size: 0.88rem;
}
.fv-public-home .ph-steps .ui-icon { width: 36px; height: 40px; color: var(--ph-gold); }
.fv-public-home .ph-steps p { font-size: 0.9rem; margin-bottom: 0; }
.fv-public-home .ph-programme-note {
  border-top: 1px solid #d3dacb; margin-bottom: 0; padding-top: 16px; font-size: 0.93rem; font-weight: 600;
}
.fv-public-home .ph-bottom-grid { display: grid; grid-template-columns: 1fr 1.35fr 0.7fr; gap: 18px; }
.fv-public-home .ph-bottom-grid > * { border: 1px solid #e3e5dc; border-radius: 16px; padding: 24px; min-width: 0; }
.fv-public-home .ph-pocket { background: radial-gradient(ellipse at top left, #ded8c7, #f1efe5 70%); }
.fv-public-home .ph-pocket h2 { font-size: 1.65rem; }
.fv-public-home .ph-pocket p { font-size: 0.94rem; margin-bottom: 0; }
.fv-public-home .ph-decorative-card {
  color: #fff; background: linear-gradient(135deg, #195c48, #03392b); border-radius: 10px;
  width: min(100%, 205px); aspect-ratio: 1.6; display: flex; flex-direction: column; justify-content: center;
  align-items: center; transform: rotate(-8deg); margin: 8px auto 28px; box-shadow: 0 12px 14px #39362622;
}
.fv-public-home .ph-decorative-card .fv-tagline { color: #ebd8b6; }
.fv-public-home .ph-faq { background: #fffefa; }
.fv-public-home .ph-faq h2 { font-size: 1.4rem; }
.fv-public-home .ph-faq details { border: 1px solid #e4e6dc; background: #faf9f5; border-radius: 9px; margin: 7px 0; }
.fv-public-home .ph-faq summary {
  cursor: pointer; padding: 12px 32px 12px 13px; min-height: 48px; font-size: 0.87rem;
  position: relative; list-style: none; line-height: 1.4;
}
.fv-public-home .ph-faq summary::-webkit-details-marker { display: none; }
.fv-public-home .ph-faq summary::after {
  content: ""; width: 7px; height: 7px; border-right: 1px solid; border-bottom: 1px solid;
  transform: rotate(45deg); position: absolute; right: 14px; top: 18px;
}
.fv-public-home .ph-faq details[open] summary::after { transform: rotate(225deg); top: 22px; }
.fv-public-home .ph-faq details p { font-size: 0.9rem; padding: 0 13px 12px; margin: 0; }
.fv-public-home .ph-brand-note {
  background: linear-gradient(140deg, #ececdf, #e5eadb); display: flex; flex-direction: column;
  align-items: center; justify-content: center; color: var(--ph-gold); overflow: hidden;
}
.fv-public-home .ph-brand-note span { font: italic 1.8rem/1.3 Georgia, serif; text-align: center; }
.fv-public-home .ph-brand-note svg { width: 135px; height: 180px; fill: none; stroke: #9b9e79; stroke-width: 1.3; }
.fv-public-home .ph-contact { text-align: center; padding: 38px 0 10px; }
.fv-public-home .ph-contact h2 { font-size: 1.6rem; margin-bottom: 12px; }
.fv-public-home .ph-contact p { margin-bottom: 8px; }
.fv-public-home .ph-contact-pending { color: #657164; font-size: 0.9rem; }
.fv-public-home .ph-footer { background: #fffefa; border-top: 1px solid #e3e5db; }
.fv-public-home .ph-footer-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-block: 25px;
}
.fv-public-home .ph-footer nav { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.fv-public-home .ph-footer nav a { font-size: 0.82rem; min-height: 44px; display: inline-flex; align-items: center; }
.fv-public-home .ph-footer small { color: #657164; font-size: 0.75rem; }
@media (max-width: 89rem) {
  .fv-public-home .ph-header-inner { flex-wrap: wrap; padding-block: 16px; gap: 16px; }
  .fv-public-home .ph-menu-toggle:not([hidden]) { display: inline-flex; }
  .fv-public-home .ph-navigation { flex-basis: 100%; flex-direction: column; align-items: stretch; }
  .fv-public-home .ph-navigation[data-collapsed="true"] { display: none; }
  .fv-public-home .ph-section-links { justify-content: space-between; }
  .fv-public-home .ph-header-actions { justify-content: flex-end; flex-wrap: wrap; }
}
@media (min-width: 89.001rem) {
  .fv-public-home .ph-menu-toggle { display: none; }
}
@media (max-width: 63.99rem) {
  .fv-public-home .ph-container { width: calc(100% - 40px); }
  .fv-public-home .ph-hero-grid { gap: 26px; }
  .fv-public-home h1 { font-size: 2.7rem; }
  .fv-public-home .ph-features { grid-column: 1 / -1; }
  .fv-public-home .ph-product { grid-row: 1; }
  .fv-public-home .ph-product-scene { padding: 20px 28px 35px 0; }
  .fv-public-home .ph-audience-copy { padding: 24px; width: 90%; }
  .fv-public-home .ph-audience h2 { font-size: 1.8rem; }
  .fv-public-home .ph-bottom-grid { grid-template-columns: 1fr 1.4fr; }
  .fv-public-home .ph-brand-note { grid-column: 1 / -1; flex-direction: row; gap: 30px; max-height: 140px; }
  .fv-public-home .ph-steps { gap: 20px; }
  .fv-public-home .ph-steps li { grid-template-columns: 24px 1fr; }
  .fv-public-home .ph-steps li > .ui-icon { display: none; }
}
@media (max-width: 47.99rem) {
  .fv-public-home .ph-container { width: calc(100% - 36px); }
  .fv-public-home .ph-header-inner { min-height: 86px; padding-block: 15px; }
  .fv-public-home .ph-brand .fv-wordmark { font-size: 2.1rem; }
  .fv-public-home .ph-brand .fv-tagline { font-size: 0.48rem; }
  .fv-public-home .ph-section-links { flex-direction: column; align-items: stretch; gap: 0; }
  .fv-public-home .ph-section-links a { font-size: 1rem; border-bottom: 1px solid #e3e5db; padding: 12px 4px; }
  .fv-public-home .ph-header-actions { justify-content: flex-start; gap: 10px; }
  .fv-public-home .ph-header-actions .ph-button { font-size: 0.88rem; flex: 1; }
  .fv-public-home .ph-header-actions .language-switch { flex-basis: 100%; }
  .fv-public-home .ph-header-actions .language-switch button { font-size: 0.9rem; }
  .fv-public-home .ph-hero-grid { grid-template-columns: minmax(0, 1fr); padding-block: 30px; gap: 26px; }
  .fv-public-home .ph-hero h1 { font-size: clamp(2.1rem, 9.5vw, 2.375rem); max-width: 380px; line-height: 1.12; }
  .fv-public-home .ph-eyebrow { font-size: 0.65rem; }
  .fv-public-home .ph-lead { font-size: 1rem; margin-bottom: 20px; }
  .fv-public-home .ph-hero .ph-actions { flex-direction: column; align-items: stretch; gap: 12px; }
  .fv-public-home .ph-product { grid-column: 1; grid-row: auto; }
  .fv-public-home .ph-product-scene { padding: 22px 30px 36px 10px; }
  .fv-public-home .ph-laptop-screen { padding: 6px; border-radius: 12px 12px 3px 3px; }
  .fv-public-home .ph-laptop-base { height: 12px; }
  .fv-public-home .ph-laptop { padding-bottom: 10px; }
  .fv-public-home .ph-phone { padding: 4px; border-radius: 17px; width: 29%; }
  .fv-public-home .ph-phone img { border-radius: 10px; }
  .fv-public-home .ph-phone::before { height: 6px; top: 4px; }
  .fv-public-home .ph-product figcaption { font-size: 0.75rem; }
  .fv-public-home .ph-features { gap: 14px; }
  .fv-public-home .ph-features li { flex-direction: column; gap: 7px; font-size: 1rem; }
  .fv-public-home .ph-features strong { font-size: 1rem; }
  .fv-public-home .ph-content { padding-top: 18px; }
  .fv-public-home .ph-audiences { grid-template-columns: minmax(0, 1fr); }
  .fv-public-home .ph-audience-copy { width: 91%; padding: 26px 22px; min-height: 350px; }
  .fv-public-home .ph-audience h2 { font-size: 2rem; max-width: 240px; }
  .fv-public-home .ph-audience p:not(.ph-eyebrow) { max-width: 240px; font-size: 1rem; }
  .fv-public-home .ph-audience .ph-button { font-size: 0.94rem; padding-inline: 15px; }
  .fv-public-home .ph-audience::after {
    background: linear-gradient(90deg, #f1f0e8 0%, #f4f1e8 43%, #f4f1e8ed 60%, #f4f1e842 100%);
  }
  .fv-public-home .ph-how { padding: 25px 22px; }
  .fv-public-home .ph-steps { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .fv-public-home .ph-steps li { grid-template-columns: 23px 32px 1fr; gap: 10px; }
  .fv-public-home .ph-steps li > .ui-icon { display: block; width: 32px; }
  .fv-public-home .ph-steps p, .fv-public-home .ph-programme-note { font-size: 1rem; }
  .fv-public-home .ph-bottom-grid { grid-template-columns: minmax(0, 1fr); }
  .fv-public-home .ph-bottom-grid > * { padding: 24px 22px; }
  .fv-public-home .ph-pocket { display: grid; grid-template-columns: 1fr; gap: 4px; }
  .fv-public-home .ph-pocket p, .fv-public-home .ph-faq details p { font-size: 1rem; }
  .fv-public-home .ph-faq summary { font-size: 1rem; }
  .fv-public-home .ph-brand-note { max-height: 160px; gap: 15px; }
  .fv-public-home .ph-brand-note span { font-size: 1.7rem; }
  .fv-public-home .ph-contact { text-align: left; padding: 28px 4px 5px; }
  .fv-public-home .ph-contact-pending { font-size: 1rem; }
  .fv-public-home .ph-footer-inner { flex-direction: column; align-items: flex-start; gap: 18px; }
  .fv-public-home .ph-footer nav { gap: 6px 20px; }
  .fv-public-home .ph-footer nav a { font-size: 0.9rem; }
}

.fv-public-home .ph-features li { min-width: 0; overflow-wrap: anywhere; }
