/* Shared FREYRAUM sections: offer, development path, company, FAQ and testimonials. */
:root {
  --frey-ink: #010101;
  --frey-gold: #b08d57;
  --frey-gold-dark: #8c6d3f;
  --frey-beige: #f4e9dc;
  --frey-sand: #e6cdb1;
  --frey-teal: #0b2f33;
  --frey-white: #fff;
  --frey-rule: rgb(1 1 1 / .12);
  --frey-star-empty: rgb(1 1 1 / .3);
  --frey-hover: rgb(176 141 87 / .16);
  --frey-gutter: 32px;
  --frey-space: 120px;
}

[id] { scroll-margin-top: 24px; }

.frey-section {
  box-sizing: border-box;
  padding: var(--frey-space) 0;
  color: var(--frey-ink);
  font: 16px/1.5 Lato, sans-serif;
}
.frey-section *,
.frey-section *::before,
.frey-section *::after { box-sizing: border-box; }
.frey-section--white { background: var(--frey-white); }
.frey-section--beige { background: var(--frey-beige); }
.frey-section--teal {
  background: var(--frey-teal);
  color: var(--frey-white);
}
.frey-section--flush-top { padding-top: 48px; }
.frey-section--flush-bottom { padding-bottom: 56px; }

.frey-container {
  width: min(1250px, 100% - 2 * var(--frey-gutter));
  margin-inline: auto;
}
.frey-center { text-align: center; }
.frey-center .frey-intro { margin-inline: auto; }

.frey-label {
  margin: 0 0 20px;
  color: var(--frey-gold);
  font: 400 16px/1.5 Lato, sans-serif;
  text-transform: uppercase;
}
.frey-heading {
  max-width: 1000px;
  margin: 0 0 24px;
  font: 700 37px/1.19 'Cormorant Garamond', serif;
}
.frey-center .frey-heading { margin-inline: auto; }
.frey-intro {
  max-width: 1000px;
  margin: 0 0 48px;
}
.frey-intro p,
.frey-text p { margin: 0 0 16px; }
.frey-intro p:last-child,
.frey-text p:last-child { margin-bottom: 0; }

.frey-panel {
  padding: 56px;
  border-radius: 16px;
  background: var(--frey-beige);
}
.frey-panel--sand { background: var(--frey-sand); }

.frey-grid {
  display: grid;
  gap: 16px;
}
.frey-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frey-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.frey-card {
  padding: 32px;
  border: 1px solid var(--frey-gold);
  border-radius: 16px;
}
.frey-card--white {
  border-color: transparent;
  background: var(--frey-white);
}
.frey-card__title {
  margin: 0 0 16px;
  font: 700 24px/1.2 'Cormorant Garamond', serif;
}
.frey-card p { margin: 0; }

.frey-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 32px;
  margin-top: 40px;
}
.frey-center .frey-actions { justify-content: center; }
.frey-textlink {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Method */
.frey-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
}
.frey-pillars {
  display: grid;
  align-content: start;
  gap: 40px;
}
.frey-pillar {
  padding-top: 24px;
  border-top: 2px solid var(--frey-rule);
}
.frey-pillar__title {
  margin: 0 0 12px;
  font: 700 22px/1.2 'Cormorant Garamond', serif;
  text-transform: uppercase;
}
.frey-pillar p { margin: 0; }

/* Introduction with portrait */
.frey-portrait-split {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: 64px;
}
.frey-portrait {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  object-fit: cover;
}
.frey-section--teal .frey-heading { color: var(--frey-white); }
.frey-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  margin-top: 48px;
  border-radius: 8px;
  object-fit: cover;
}
.frey-portrait-split .frey-brochure {
  margin-left: 0;
  text-align: left;
}

/* Offer */
.frey-offer {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 48px;
  padding: 56px;
  border-radius: 16px;
  background: var(--frey-beige);
  text-align: left;
}
.frey-offer .frey-actions { justify-content: flex-start; }
.frey-offer__title {
  margin: 0 0 12px;
  font: 700 32px/1.2 'Cormorant Garamond', serif;
}
.frey-offer__short {
  margin: 0 0 24px;
  text-transform: uppercase;
}
.frey-offer__subtitle {
  margin: 0 0 16px;
  font: 700 24px/1.2 'Cormorant Garamond', serif;
}
.frey-offer__subtitle--spaced { margin-top: 48px; }
.frey-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.frey-list li {
  position: relative;
  margin: 0 0 12px;
  padding-left: 28px;
}
.frey-list li::before {
  position: absolute;
  left: 0;
  color: var(--frey-gold-dark);
  content: "✦";
}
.frey-deepen {
  max-width: 1000px;
  margin: 64px auto 0;
  text-align: left;
}
.frey-deepen > .frey-offer__subtitle { text-align: center; }
.frey-deepen__closing {
  margin: 24px 0 0;
  text-align: center;
}

/* Accordions: native details/summary, usable without JavaScript */
.frey-accordion {
  border-radius: 4px;
  background: var(--frey-white);
}
.frey-accordion + .frey-accordion { margin-top: 16px; }
.frey-accordion > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  cursor: pointer;
  font: 700 20px/1.3 'Cormorant Garamond', serif;
  list-style: none;
}
.frey-accordion > summary::-webkit-details-marker { display: none; }
.frey-accordion > summary::after {
  flex: 0 0 auto;
  font: 300 28px/1 Lato, sans-serif;
  content: "+";
}
.frey-accordion[open] > summary::after { content: "–"; }
.frey-accordion__body { padding: 0 20px 20px; }
.frey-accordion__body p { margin: 0 0 12px; }
.frey-accordion__body p:last-child { margin-bottom: 0; }
.frey-accordion--beige { background: var(--frey-beige); }
.frey-section--teal .frey-accordion { color: var(--frey-ink); }

.frey-path {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  text-align: left;
}
.frey-path__group-title {
  margin: 0 0 20px;
  font: 700 26px/1.2 'Cormorant Garamond', serif;
}
.frey-path__closing {
  max-width: 1000px;
  margin: 48px auto 0;
  text-align: center;
}

/* FAQ */
.frey-faq {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: start;
  gap: 56px;
}
.frey-faq__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  border-radius: 8px;
  object-fit: cover;
}
.frey-faq .frey-accordion > summary { font-size: 18px; }

/* Testimonials */
.frey-quote {
  margin: 0;
  padding: 32px;
  border-radius: 16px;
  background: var(--frey-white);
}
.frey-quote__stars {
  margin: 0 0 16px;
  font-size: 18px;
  letter-spacing: 4px;
}
.frey-quote__stars .frey-quote__star-empty { color: var(--frey-star-empty); }
.frey-quote__title {
  margin: 0 0 12px;
  font-weight: 700;
}
.frey-quote__text { margin: 0; }
.frey-quote__text p { margin: 0 0 12px; }
.frey-quote__more > summary {
  display: inline-block;
  margin-bottom: 12px;
  cursor: pointer;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.frey-quote__more[open] > summary { display: none; }
.frey-quote__name {
  margin-top: 16px;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.frey-more-quotes { margin-top: 32px; }
.frey-more-quotes > summary {
  display: table;
  margin: 0 auto 32px;
  padding: 12px 28px;
  border: 1px solid var(--frey-gold-dark);
  border-radius: 4px;
  cursor: pointer;
  font-weight: 700;
  list-style: none;
}
.frey-more-quotes > summary::-webkit-details-marker { display: none; }
.frey-more-quotes > summary:hover,
.frey-accordion > summary:hover { background: var(--frey-hover); }

/* Contact links in the existing location block */
.frey-contact-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 992px) {
  .frey-split,
  .frey-portrait-split,
  .frey-offer,
  .frey-path,
  .frey-faq { grid-template-columns: minmax(0, 1fr); }
  .frey-split,
  .frey-portrait-split,
  .frey-faq { gap: 40px; }
  .frey-grid--3 { grid-template-columns: minmax(0, 1fr); }
  .frey-portrait,
  .frey-faq__image { max-width: 480px; }
}

@media (max-width: 768px) {
  :root {
    --frey-gutter: 24px;
    --frey-space: 60px;
  }
  .frey-grid--2 { grid-template-columns: minmax(0, 1fr); }
  .frey-panel,
  .frey-offer { padding: 32px 24px; }
  .frey-card,
  .frey-quote { padding: 24px; }
  .frey-section--flush-top { padding-top: 24px; }
  .frey-section--flush-bottom { padding-bottom: 32px; }
}
