
/* O Espigueiro: identidade, componentes e adaptações de ecrã.
   Cores e fontes editáveis nas variáveis :root. Recursos sempre locais. */
@font-face {
  font-family:Espigueiro;
  src:url('assets/fonts/CormorantGaramond.ttf') format('truetype');
  font-weight:300 700;
  font-display:swap
}

@font-face {
  font-family:Manrope;
  src:url('assets/fonts/Manrope.ttf') format('truetype');
  font-weight:200 800;
  font-display:swap
}
:root {
  --red:#8d3029;
  --red-dark:#68251f;
  --green:#3b4d37;
  --ink:#332d26;
  --muted:#6b6257;
  --paper:#faf6ed;
  --white:#fffdf8;
  --sand:#eee5d5;
  --line:#d9ccb9;
  --display:Espigueiro,Georgia,serif;
  --body:Manrope,Arial,sans-serif;
  --gutter:48px;
  --page:1220px;
  --radius:6px;
  --ease:cubic-bezier(.23,1,.32,1);
  --space-section:80px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:108px;
  scrollbar-color:var(--red) var(--paper)
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font:15px/1.75 var(--body);
  -webkit-font-smoothing:antialiased
}
::selection {
  background:var(--red);
  color:white
}
[hidden] {
  display:none!important
}
img {
  display:block;
  max-width:100%;
  height:auto
}
a {
  color:inherit;
  text-underline-offset:4px;
  text-decoration-thickness:1px
}
p {
  margin:0 0 22px;
  max-width:65ch
}
h1, h2, h3 {
  font-family:var(--display);
  font-weight:650;
  letter-spacing:-.018em;
  line-height:1.08;
  margin:0;
  text-wrap:balance
}
h1 {
  font-size:clamp(44px,4.5vw,62px);
  color:var(--red)
}
h2 {
  font-size:clamp(36px,3.4vw,47px);
  color:var(--red)
}
h3 {
  font-size:36px
}
em {
  font-style:normal;
  font-weight:inherit
}
button, input, select, textarea {
  font:inherit;
  color:inherit
}
button, summary, label {
  cursor:pointer
}
button, a, input, select, textarea, summary {
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent
}
:focus-visible {
  outline:3px solid var(--green);
  outline-offset:4px
}
.wrap {
  width:min(var(--page),calc(100% - var(--gutter)*2));
  margin-inline:auto
}
.section {
  padding-block:var(--space-section)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:13px 20px;
  border:1px solid var(--red);
  border-radius:var(--radius);
  background:var(--red);
  color:var(--white);
  font:700 13px/1.5 var(--body);
  text-decoration:none;
  transition:background-color 160ms ease,transform 120ms var(--ease);
  text-align:center
}
.button img {
  width:20px;
  flex-shrink:0;
  filter:brightness(0) invert(1)
}
.button:active {
  transform:scale(.98)
}
.button:disabled {
  opacity:.65;
  cursor:wait
}
.button-outline {
  background:transparent;
  color:var(--red)
}
.button-outline img {
  filter:none
}
.button-small {
  font-size:12px;
  min-height:46px;
  padding:11px 16px
}
.text-link, .simple-link {
  font-size:13px;
  font-weight:650;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  color:var(--red);
  background:none;
  border:0;
  padding:0;
  text-decoration:underline;
  text-underline-offset:5px
}
.text-link img {
  flex-shrink:0;
  width:19px
}
.fine {
  font-size:12px;
  line-height:1.65;
  color:var(--muted)
}
.skip {
  position:fixed;
  top:8px;
  left:16px;
  z-index:100;
  background:var(--red);
  color:white;
  padding:12px 18px;
  transform:translateY(-160%)
}
.skip:focus {
  transform:none
}
.topline {
  background:var(--green);
  color:var(--white);
  font-size:11px
}
.topline .wrap {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  min-height:34px
}
.topline a {
  text-decoration:none;
  font-weight:650
}
.header {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--paper);
  border-bottom:1px solid var(--line)
}
.nav-shell {
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.brand {
  text-decoration:none;
  display:block;
  flex-shrink:0;
  color:var(--red)
}
.brand span {
  font:650 36px/1 var(--display);
  letter-spacing:-.03em;
  display:block
}
.brand small {
  display:block;
  font-size:11px;
  letter-spacing:.045em;
  font-weight:650;
  margin-top:6px
}
.header nav {
  display:flex;
  align-items:center;
  gap:25px
}
.header nav>a:not(.button) {
  font-size:12px;
  font-weight:650;
  text-decoration:none;
  min-height:44px;
  display:flex;
  align-items:center
}
.nav-cta {
  min-height:44px;
  padding:11px 17px;
  font-size:12px
}
.menu-toggle {
  display:none
}
.hero {
  padding-top:38px;
  padding-bottom:0
}
.hero-heading {
  display:grid;
  grid-template-columns:1fr auto;
  gap:54px;
  align-items:center;
  padding-bottom:28px
}
.hero-heading>div {
  min-width:0
}
.hero-heading p {
  font-size:14px;
  line-height:1.8;
  max-width:62ch;
  margin-top:17px;
  margin-bottom:0;
  color:var(--muted)
}
.hero-actions {
  display:grid;
  gap:10px;
  min-width:208px
}
.hero-actions>span {
  font-size:11px;
  text-align:center;
  color:var(--muted);
  margin-top:2px
}
.hero-mosaic {
  display:grid;
  grid-template-columns:1.75fr 1fr;
  grid-template-rows:205px 205px;
  gap:12px
}
.photo-link {
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--radius)
}
.photo-link>img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 350ms var(--ease)
}
.hero-main {
  grid-row:1/3
}
.hero-main>img {
  object-position:center 48%
}
.hero-mosaic>a:last-child img {
  object-position:50% 58%
}
.photo-link>span {
  display:flex;
  align-items:center;
  gap:24px;
  position:absolute;
  bottom:18px;
  left:18px;
  background:var(--paper);
  border-radius:4px;
  color:var(--red);
  padding:10px 14px;
  font-size:12px;
  font-weight:700
}
.house-highlights {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding-block:26px;
  border-bottom:1px solid var(--line);
  gap:24px
}
.house-highlights>div {
  display:flex;
  align-items:center;
  gap:12px
}
.house-highlights img {
  width:58px;
  height:58px;
  object-fit:contain;
  mix-blend-mode:multiply;
  flex-shrink:0
}
.house-highlights p {
  margin:0;
  font-size:11px;
  line-height:1.7
}
.house-highlights strong {
  display:block;
  font-size:12px
}
.house-highlights span, .house-highlights a {
  display:block;
  color:var(--muted);
  font-size:11px
}
.flavours {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:start
}
.flavours-intro p {
  font-size:14px;
  color:var(--muted);
  max-width:39ch;
  margin-top:22px;
  margin-bottom:22px
}
.flavours-intro .fine {
  font-size:12px;
  margin-top:15px;
  max-width:40ch
}
.file-type {
  font-size:11px;
  font-weight:600;
  line-height:1;
  border:1px solid currentColor;
  padding:4px;
  border-radius:2px
}
.flavour-picker {
  padding:30px 34px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius)
}
.flavour-picker fieldset {
  display:none;
  border:0;
  margin:0;
  padding:0
}
.js .flavour-picker fieldset {
  display:block
}
.flavour-picker legend {
  font-size:12px;
  font-weight:600;
  margin-bottom:14px;
  color:var(--muted)
}
.choices {
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.choices label {
  position:relative
}
.choices input {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%)
}
.choices span {
  display:block;
  min-height:44px;
  padding:10px 17px;
  border:1px solid var(--line);
  border-radius:4px;
  font-size:13px;
  font-weight:600;
  transition:background-color 160ms ease,color 160ms ease
}
.choices input:checked+span {
  background:var(--green);
  color:white;
  border-color:var(--green)
}
.choices input:focus-visible+span {
  outline:3px solid var(--red);
  outline-offset:3px
}
.suggestion {
  padding-top:28px
}
.suggestion+.suggestion {
  border-top:1px solid var(--line);
  margin-top:25px
}
.js .suggestion+.suggestion {
  border:0;
  margin-top:0
}
.suggestion h3 {
  color:var(--ink);
  font-size:39px
}
.suggestion p {
  font-size:13px;
  color:var(--muted);
  margin-top:17px;
  margin-bottom:19px
}
.picker-note {
  font-size:11px;
  color:var(--muted);
  line-height:1.7;
  border-top:1px solid var(--line);
  padding-top:18px;
  margin:24px 0 0
}
.house {
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:64px;
  align-items:center
}
.house-photo img {
  width:100%;
  height:420px;
  object-fit:cover;
  border-radius:var(--radius)
}
.house-copy p {
  font-size:14px;
  color:var(--muted);
  margin-top:20px;
  margin-bottom:0
}
.action-row {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 22px;
  margin-top:25px
}
.section-heading {
  margin-bottom:30px
}
.section-heading p {
  font-size:14px;
  color:var(--muted);
  margin-top:16px;
  margin-bottom:0;
  max-width:65ch
}
.gallery-section {
  border-top:1px solid var(--line)
}
.gallery-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  grid-template-rows:230px 230px;
  gap:14px
}
.gallery-photo {
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--sand)
}
.gallery-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 350ms var(--ease)
}
.gallery-wide {
  grid-row:1/3
}
.gallery-food img {
  object-position:center 60%
}
.gallery-photo span {
  position:absolute;
  bottom:12px;
  left:12px;
  padding:5px 10px;
  border-radius:3px;
  background:var(--paper);
  color:var(--red);
  font-weight:700;
  font-size:11px
}
.gallery-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-top:22px
}
.gallery-bottom>span {
  font-size:12px;
  color:var(--muted)
}
.testimonial {
  border-top:1px solid var(--line);
  padding-block:38px 64px
}
.review-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px
}
.review-heading h2 {
  font:700 14px var(--body);
  color:var(--green);
  letter-spacing:0
}
.review-heading .text-link {
  font-size:12px
}
.testimonial figure {
  margin:24px auto 0;
  max-width:770px;
  text-align:center
}
.testimonial blockquote {
  font:550 clamp(30px,3.2vw,43px)/1.2 var(--display);
  color:var(--ink);
  margin:0 0 19px
}
.testimonial figcaption {
  font-size:12px;
  font-weight:700
}
.testimonial figcaption span {
  display:block;
  font-size:11px;
  font-weight:400;
  color:var(--muted);
  margin-top:4px
}
.visit-intro {
  max-width:720px
}
.visit-intro p {
  margin-top:20px;
  font-size:14px;
  color:var(--muted);
  max-width:62ch
}
.visit-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  margin-top:36px
}
.phone-number {
  font:650 43px/1.1 var(--display);
  color:var(--red);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:14px;
  white-space:nowrap
}
.visit-details>.fine {
  margin-top:7px;
  margin-bottom:26px
}
.visit-details dl {
  margin:0 0 24px
}
.visit-details dl>div {
  margin-bottom:23px
}
.visit-details dt {
  font-size:12px;
  font-weight:750;
  color:var(--green);
  margin-bottom:5px
}
.visit-details dd {
  font-size:13px;
  color:var(--muted);
  margin:0;
  line-height:1.8
}
.visit-details dd a {
  overflow-wrap:anywhere
}
.contact-save {
  margin-top:10px
}
.map-panel {
  position:relative;
  min-height:500px;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--sand)
}
.map-photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.map-cover {
  position:absolute;
  inset:auto 18px 18px;
  background:var(--paper);
  border-radius:var(--radius);
  padding:23px;
  display:grid;
  justify-items:center;
  gap:12px;
  text-align:center
}
.map-cover>span {
  font:650 29px/1.15 var(--display);
  color:var(--red)
}
.map-cover small {
  font-size:11px;
  color:var(--muted)
}
.map-status {
  font-size:12px;
  margin:0;
  color:var(--muted)
}
.map-status:empty {
  display:none
}
.map-panel iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:500px;
  border:0;
  z-index:1
}
.map-fallback {
  position:absolute;
  inset:auto 0 0;
  background:var(--paper);
  padding:20px;
  margin:0;
  z-index:2;
  font-size:12px
}
.faq {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  border-top:1px solid var(--line)
}
.faq h2 {
  max-width:9ch
}
.faq details {
  border-bottom:1px solid var(--line)
}
.faq details:first-child {
  border-top:1px solid var(--line)
}
.faq summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:67px;
  padding:18px 0;
  font-size:13px;
  font-weight:650
}
.faq summary::-webkit-details-marker {
  display:none
}
.faq summary img {
  flex-shrink:0;
  transition:transform 160ms var(--ease)
}
.faq details[open] summary img {
  transform:rotate(45deg)
}
.faq details p {
  font-size:13px;
  color:var(--muted);
  padding-right:30px;
  margin:0 0 24px
}
.closing {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:40px 0 64px
}
.closing p {
  font:650 46px/1.1 var(--display);
  color:var(--green);
  margin:0
}
.footer {
  border-top:2px solid var(--red);
  padding-top:30px
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px
}
.social-links {
  display:flex;
  gap:24px
}
.social-links a {
  font-size:12px;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  text-decoration:none
}
.footer-bottom {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  padding:28px 0;
  font-size:11px;
  color:var(--muted)
}
.footer-bottom a:last-child {
  margin-left:auto
}
.mobile-contact {
  display:none
}
.legal {
  max-width:760px;
  padding-block:64px
}
.legal h1 {
  margin-bottom:30px
}
.legal h2 {
  font-size:31px;
  margin-top:36px;
  margin-bottom:16px
}
.legal p {
  font-size:14px
}
.photo-dialog {
  border:0;
  border-radius:8px;
  background:var(--paper);
  color:var(--ink);
  padding:0;
  width:min(980px,calc(100vw - 40px));
  max-height:92dvh;
  overflow:auto
}
.photo-dialog::backdrop {
  background:rgb(30 25 20 / .88)
}
.photo-dialog-inner {
  padding:16px;
  position:relative
}
.dialog-image {
  width:100%;
  height:calc(85dvh - 100px);
  object-fit:contain;
  background:#251f19;
  border-radius:4px
}
.dialog-close {
  position:absolute;
  right:27px;
  top:27px;
  min-width:44px;
  min-height:44px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:4px;
  background:var(--paper);
  z-index:2
}
.dialog-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 0 0
}
.dialog-bottom>button {
  min-width:44px;
  min-height:44px;
  display:grid;
  place-items:center;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:4px
}
.dialog-bottom #photo-prev img {
  transform:rotate(180deg)
}
.dialog-bottom>div {
  text-align:center
}
.dialog-bottom p {
  font-size:13px;
  font-weight:650;
  margin:0
}
.dialog-bottom span {
  font-size:11px;
  color:var(--muted)
}
.hero>*, .flavours>*, .house>*, .visit-grid>*, .faq>* {
  min-width:0
}

@media(hover:hover) and (pointer:fine) {
.button:hover {
    background:var(--red-dark)
  }
.button-outline:hover {
    background:var(--sand)
  }
.photo-link:hover>img, .gallery-photo:hover>img {
    transform:scale(1.025)
  }
.header nav>a:not(.button):hover, .social-links a:hover {
    text-decoration:underline
  }
.choices span:hover {
    border-color:var(--red)
  }

}

@media(max-width:1100px) {
:root {
    --gutter:32px;
    --space-section:64px
  }
.header nav {
    gap:16px
  }
.brand span {
    font-size:33px
  }
.hero-heading {
    gap:30px
  }
.hero-mosaic {
    grid-template-rows:175px 175px
  }
.house-highlights {
    gap:14px
  }
.house-highlights>div {
    gap:8px
  }
.house-highlights img {
    width:48px;
    height:48px
  }
.house-highlights strong {
    font-size:11px
  }
.house-highlights span, .house-highlights a {
    font-size:11px
  }
.flavours, .house, .visit-grid, .faq {
    gap:44px
  }
.gallery-grid {
    grid-template-rows:200px 200px
  }
.house-photo img {
    height:390px
  }
.phone-number {
    font-size:39px
  }

}

@media(max-width:900px) {
.header nav {
    gap:14px
  }
.brand span {
    font-size:30px
  }
.brand small {
    font-size:11px
  }
.header nav>a:not(.button) {
    font-size:11px
  }
.nav-cta {
    font-size:11px;
    padding:10px 12px
  }
.hero-heading {
    grid-template-columns:1fr auto
  }
.hero-heading h1 {
    font-size:46px
  }
.hero-actions {
    min-width:184px
  }
.hero-actions .button {
    font-size:12px;
    padding-inline:14px
  }
.house-highlights {
    grid-template-columns:1fr 1fr;
    gap:20px
  }
.house-highlights strong {
    font-size:13px
  }
.house-highlights span, .house-highlights a {
    font-size:12px
  }
.flavours {
    gap:36px
  }
.flavour-picker {
    padding:25px
  }
.choices span {
    font-size:12px;
    padding:10px 12px
  }
.suggestion h3 {
    font-size:34px
  }
.phone-number {
    font-size:35px
  }
.visit-grid {
    gap:35px
  }
.visit-details .button {
    font-size:12px;
    padding-inline:15px
  }
.contact-save {
    margin-top:10px
  }
.map-panel {
    min-height:520px
  }

}

@media(max-width:760px) {
:root {
    --gutter:22px;
    --space-section:50px
  }
.topline .wrap {
    justify-content:center;
    min-height:30px;
    font-size:11px
  }
.topline a {
    display:none
  }
.nav-shell {
    min-height:80px;
    flex-wrap:wrap;
    gap:0 14px;
    padding-block:14px
  }
.brand span {
    font-size:32px
  }
.brand small {
    font-size:11px;
    margin-top:7px
  }
.js .menu-toggle {
    display:flex;
    align-items:center;
    gap:8px;
    border:1px solid var(--line);
    padding:8px 11px;
    border-radius:4px;
    min-height:44px;
    background:transparent;
    font-size:12px
  }
.header nav {
    width:100%;
    display:flex;
    flex-wrap:wrap;
    gap:8px 24px;
    margin-top:15px;
    padding-top:12px;
    border-top:1px solid var(--line)
  }
.js .header nav {
    display:none
  }
.js .header nav.is-open {
    display:flex
  }
.header nav>a:not(.button) {
    font-size:13px
  }
.header nav .button {
    width:100%;
    font-size:13px
  }
.hero {
    padding-top:25px
  }
.hero-heading {
    display:block;
    padding-bottom:24px
  }
.hero-heading h1 {
    font-size:clamp(38px,8.9vw,48px);
    line-height:1.08;
    max-width:16ch
  }
.hero-heading p {
    font-size:13px;
    margin-top:15px
  }
.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:20px
  }
.hero-actions .button {
    font-size:12px;
    min-height:47px;
    padding:11px 14px;
    gap:9px
  }
.hero-actions .button img {
    width:18px
  }
.hero-actions>span {
    display:none
  }
.hero-mosaic {
    grid-template-columns:1fr 1fr;
    grid-template-rows:245px 130px;
    gap:8px
  }
.hero-main {
    grid-row:1;
    grid-column:1/-1
  }
.hero-main>img {
    object-position:center 55%
  }
.photo-link>span {
    bottom:12px;
    left:12px;
    font-size:11px;
    padding:8px 11px
  }
.hero-mosaic>a:last-child img {
    object-position:50% 59%
  }
.house-highlights {
    padding-block:22px;
    gap:20px 12px
  }
.house-highlights img {
    width:43px;
    height:43px
  }
.house-highlights>div {
    gap:8px
  }
.house-highlights strong {
    font-size:11px
  }
.house-highlights span, .house-highlights a {
    font-size:11px;
    line-height:1.6
  }
.flavours {
    grid-template-columns:1fr;
    gap:25px
  }
.flavours h2 {
    font-size:39px
  }
.flavours h2 br {
    display:none
  }
.flavours-intro p {
    font-size:14px;
    margin-top:16px;
    margin-bottom:20px;
    max-width:44ch
  }
.flavours-intro .fine {
    font-size:11px;
    margin-top:12px;
    margin-bottom:0;
    max-width:none
  }
.flavour-picker {
    padding:24px 22px
  }
.flavour-picker legend {
    font-size:12px
  }
.choices {
    gap:7px
  }
.choices span {
    font-size:12px;
    padding-inline:14px
  }
.suggestion h3 {
    font-size:37px
  }
.suggestion p {
    font-size:13px
  }
.picker-note {
    font-size:11px
  }
.house {
    grid-template-columns:1fr;
    gap:26px
  }
.house-photo {
    grid-row:2
  }
.house-copy h2 {
    font-size:38px
  }
.house-copy p {
    font-size:14px;
    margin-top:18px
  }
.house-photo img {
    height:295px
  }
.action-row {
    gap:8px 18px;
    margin-top:20px
  }
.action-row .button {
    font-size:12px
  }
.gallery-section {
    padding-top:45px
  }
.section-heading h2 {
    font-size:38px
  }
.section-heading p {
    font-size:13px;
    margin-top:15px
  }
.section-heading {
    margin-bottom:24px
  }
.gallery-grid {
    grid-template-columns:1fr 1fr;
    grid-template-rows:240px 170px 170px;
    gap:9px
  }
.gallery-wide {
    grid-column:1/-1;
    grid-row:1
  }
.gallery-photo span {
    font-size:11px;
    bottom:9px;
    left:9px;
    padding:4px 8px
  }
.gallery-bottom {
    align-items:start;
    gap:14px
  }
.gallery-bottom>span {
    font-size:11px;
    max-width:14ch
  }
.gallery-bottom .button {
    font-size:11px;
    padding:10px 12px;
    min-height:44px;
    gap:8px
  }
.testimonial {
    padding-block:30px 45px
  }
.review-heading {
    display:block
  }
.review-heading h2 {
    font-size:13px
  }
.review-heading .text-link {
    font-size:11px;
    margin-top:5px
  }
.testimonial figure {
    margin-top:21px
  }
.testimonial blockquote {
    font-size:32px;
    line-height:1.18
  }
.testimonial figcaption span {
    font-size:11px
  }
.visit h2 {
    font-size:39px
  }
.visit-intro p {
    font-size:14px;
    margin-top:17px
  }
.visit-grid {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:28px
  }
.phone-number {
    font-size:42px
  }
.visit-details dl {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 22px;
    margin-top:26px;
    margin-bottom:0
  }
.visit-details dl>div:last-child {
    grid-column:1/-1
  }
.visit-details dt {
    font-size:12px
  }
.visit-details dd {
    font-size:13px
  }
.visit-details>.fine {
    margin-bottom:0;
    font-size:11px
  }
.visit-details>.button {
    font-size:12px;
    margin-right:8px;
    margin-top:10px
  }
.map-panel {
    min-height:400px
  }
.map-panel iframe {
    min-height:400px
  }
.map-cover {
    inset:auto 14px 14px;
    padding:22px 16px
  }
.map-cover>span {
    font-size:27px
  }
.map-cover small {
    font-size:11px
  }
.faq {
    grid-template-columns:1fr;
    gap:24px
  }
.faq h2 {
    font-size:38px;
    max-width:none
  }
.faq summary {
    font-size:13px;
    gap:16px
  }
.faq details p {
    font-size:13px;
    padding-right:14px
  }
.closing {
    display:block;
    padding:10px 0 48px
  }
.closing p {
    font-size:39px;
    margin-bottom:22px
  }
.closing .button {
    font-size:12px
  }
.footer-top {
    align-items:start
  }
.footer .brand span {
    font-size:29px
  }
.footer .brand small {
    font-size:11px
  }
.social-links {
    display:block
  }
.social-links a {
    min-height:36px;
    font-size:11px
  }
.footer-bottom {
    gap:9px 18px;
    font-size:11px;
    padding-bottom:108px
  }
.footer-bottom a:last-child {
    margin-left:0
  }
.mobile-contact {
    display:block;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    padding:9px 14px max(9px,env(safe-area-inset-bottom));
    background:var(--paper);
    border-top:1px solid var(--line);
    z-index:35
  }
.mobile-contact a {
    display:flex;
    align-items:center;
    gap:11px;
    background:var(--red);
    color:white;
    text-decoration:none;
    border-radius:5px;
    min-height:50px;
    padding:12px 15px;
    font-size:12px;
    font-weight:700
  }
.mobile-contact img {
    filter:brightness(0) invert(1)
  }
.mobile-contact span {
    margin-left:auto;
    font-size:11px;
    font-weight:500
  }
.photo-dialog {
    width:calc(100vw - 20px);
    max-height:92dvh
  }
.photo-dialog-inner {
    padding:10px
  }
.dialog-image {
    height:calc(77dvh - 75px)
  }
.dialog-close {
    top:19px;
    right:19px
  }
.dialog-bottom p {
    font-size:12px
  }
.legal {
    padding-top:40px
  }
.legal h1 {
    font-size:42px
  }

}

@media(max-width:360px) {
:root {
    --gutter:18px
  }
.topline .wrap {
    font-size:11px
  }
.brand span {
    font-size:29px
  }
.brand small {
    font-size:11px
  }
.hero-heading h1 {
    font-size:36px
  }
.hero-actions .button {
    width:100%;
    font-size:13px
  }
.hero-mosaic {
    grid-template-rows:210px 115px
  }
.house-highlights {
    gap:18px 8px
  }
.house-highlights img {
    width:35px;
    height:35px
  }
.house-highlights strong {
    font-size:11px
  }
.house-highlights span, .house-highlights a {
    font-size:11px
  }
.choices span {
    padding-inline:11px;
    font-size:11px
  }
.flavour-picker {
    padding:22px 18px
  }
.phone-number {
    font-size:38px
  }
.visit-details dl {
    grid-template-columns:1fr
  }
.mobile-contact a {
    font-size:11px;
    padding-inline:12px;
    gap:9px
  }
.mobile-contact span {
    font-size:11px
  }
.gallery-bottom {
    display:block
  }
.gallery-bottom>span {
    display:block;
    max-width:none;
    margin-bottom:12px
  }

}

@media(prefers-reduced-motion:reduce) {
html {
    scroll-behavior:auto
  }
*, *::before, *::after {
    transition:none!important;
    animation:none!important
  }

}

@media print {
.topline, .header, .mobile-contact, .photo-dialog, .map-cover, .hero-actions {
    display:none
  }
.wrap {
    width:100%
  }
.section {
    padding-block:25px
  }
.hero-mosaic {
    grid-template-rows:140px 140px
  }
.gallery-grid {
    grid-template-rows:150px 150px
  }
.footer-bottom {
    padding-bottom:0
  }

}
.location-illustration {
  width:70px;
  height:70px;
  object-fit:contain;
  mix-blend-mode:multiply;
  margin:0 0 16px
}

@media(max-width:760px) {
.footer-top {
    flex-wrap:wrap
  }
.brand small {
    font-size:11px
  }
.house-highlights strong {
    font-size:12px
  }
.house-highlights span, .house-highlights a {
    font-size:11px
  }

}


/* Registo rústico solicitado: madeira real da sala, letras de tabuleta e remates de ponto. */
@font-face {font-family:EspigueiroRustico;src:url('assets/fonts/BreeSerif.ttf') format('truetype');font-weight:400;font-display:swap}
:root {--paper:#f3e8d4;--white:#fffaf0;--sand:#e6d4b5;--line:#c7ad87;--ink:#38291e;--muted:#69543e;--red:#852d24;--red-dark:#662318;--green:#34462e;--display:EspigueiroRustico,Georgia,serif;--radius:2px}
h1,h2,h3 {font-weight:400;letter-spacing:0;line-height:1.18}
h1 {font-size:clamp(37px,4vw,54px)}
h2 {font-size:clamp(31px,3vw,41px)}
.topline {background:#51321f}
.header {border-bottom:0;background:var(--paper)}
.header::after {content:'';display:block;height:12px;background:#5a3822 url('assets/photos/madeira.webp') repeat-x center;background-size:auto 84px}
.brand span {font:400 31px/1.1 var(--display);letter-spacing:0}
.brand small {font-size:11px}
.hero {padding-top:34px}
.hero-heading h1 {max-width:25ch}
.hero-heading p {font-size:15px;max-width:62ch}
.hero-mosaic,.gallery-grid {padding:9px;gap:9px;border:2px solid #5f3e28;background:#63432c url('assets/photos/madeira.webp') repeat;background-size:520px 84px;border-radius:2px}
.hero-mosaic {grid-template-rows:210px 210px}
.photo-link,.gallery-photo {border-radius:0}
.hero-main>span,.gallery-photo span {border-radius:0;border:1px solid var(--line);background:var(--white)}
.house-highlights {padding-block:30px;border-bottom:0;background:none; background-size:120px 20px}
.flavours {padding-block:64px}
.flavour-picker {border:4px double #96744e;border-radius:1px;background:var(--white);padding:30px}
.suggestion h3 {font-size:33px;line-height:1.2}
.house-copy h2 {font-size:37px}
.house-photo {padding:8px;background:#63432c url('assets/photos/madeira.webp') repeat;border:1px solid #5f3e28}
.house-photo img {border-radius:0}
.section-heading h2 {font-size:39px}
.gallery-filters {display:none;gap:9px;flex-wrap:wrap;margin-bottom:24px}
.js .gallery-filters {display:flex}
.gallery-filters button {border:1px solid #90734f;background:var(--white);color:var(--ink);font-size:13px;font-weight:650;border-radius:2px;padding:10px 19px;min-height:44px}
.gallery-filters button[aria-pressed=true] {background:var(--green);border-color:var(--green);color:white}
.gallery-filter-status {font-size:12px;color:var(--muted);margin:0 0 14px}
.gallery-filter-status:empty {display:none}
.gallery-grid.is-filtered {grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:260px}
.gallery-grid.is-filtered .gallery-wide {grid-area:auto}
.testimonial {margin-top:12px;padding-top:44px;border-top:0;background:none;background-size:120px 20px}
.testimonial blockquote {font-family:Espigueiro,Georgia,serif;font-size:42px;line-height:1.18}
.visit h2 {font-size:40px}
.visit-details>.button {margin:10px 8px 0 0}
.share-status {font-size:12px;line-height:1.7;margin:14px 0 0;color:var(--muted)}
.share-status:empty {display:none}
.share-status input {display:block;width:100%;font-size:14px;padding:11px;margin-top:8px;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:2px}
#share-location {display:none}
.js #share-location {display:inline-flex}
.faq h2 {font-size:35px}
.closing {padding-top:35px}
.closing p {font-family:var(--display);font-size:36px;line-height:1.24}
.footer {border-top:0;padding-top:45px;background:none;background-size:120px 20px}
@media (max-width:1100px) {.hero-mosaic{grid-template-rows:180px 180px}.brand span{font-size:29px}.header nav{gap:16px}.hero-heading h1{font-size:45px}.house-copy h2{font-size:33px}}
@media (max-width:900px) {.brand span{font-size:27px}.header nav{gap:12px}.header nav>a:not(.button){font-size:11px}.hero-heading{gap:24px}.hero-heading h1{font-size:40px}.hero-heading p{font-size:14px}.house-copy h2{font-size:30px}.suggestion h3{font-size:29px}}
@media (max-width:760px) {
 .brand span{font-size:28px}.brand small{font-size:11px}.hero{padding-top:27px}.hero-heading h1{font-size:36px;max-width:19ch}.hero-heading p{font-size:14px}.hero-heading h1 br{display:none}
 .hero-mosaic{padding:6px;gap:6px;grid-template-rows:240px 130px}.house-highlights{padding-block:25px 35px}.flavours{padding-block:48px}.flavours h2{font-size:33px}.flavour-picker{padding:24px 20px}.suggestion h3{font-size:30px}.house-copy h2{font-size:32px}.section-heading h2{font-size:33px}.house-photo{padding:6px}
 .gallery-grid{padding:6px;gap:6px;grid-template-rows:240px 165px 165px}.gallery-grid.is-filtered{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:190px;grid-template-rows:auto}.gallery-grid.is-filtered .gallery-photo{height:190px}.gallery-filters{gap:7px;margin-bottom:19px}.gallery-filters button{padding:10px 14px;font-size:12px}
 .testimonial blockquote{font-size:33px}.visit h2{font-size:33px}.faq h2{font-size:31px}.closing p{font-size:32px}.footer .brand span{font-size:27px}.legal h1{font-size:37px}
}
@media(max-width:360px){.brand span{font-size:25px}.hero-heading h1{font-size:32px}.hero-mosaic{grid-template-rows:210px 110px}.gallery-filters button{font-size:11px;padding-inline:12px}.gallery-grid.is-filtered{grid-template-columns:1fr}.suggestion h3{font-size:27px}}

.gallery-grid.is-filtered.single-result{grid-template-columns:1fr;max-width:700px}


/* História em primeiro plano; o ficheiro Santoinho é apresentado integralmente, sem filtros. */
.history {display:grid;grid-template-columns:1fr 1fr;gap:66px;align-items:center;padding-top:66px;padding-bottom:70px}
.history-photo>img {display:block;width:100%;height:500px;object-fit:cover;border:8px solid #63432c;border-image:none;border-radius:1px}
.history-photo>p {font-size:12px;color:var(--muted);margin:12px 0 0}
.history h2 {font-size:39px;line-height:1.2}
.history-copy>p {font-size:14px;line-height:1.85;margin:20px 0 0;color:var(--muted)}
.original-mark {margin:23px 0 25px}
.original-mark img {display:block;width:250px;max-width:100%;height:auto;object-fit:contain;filter:none;mix-blend-mode:normal;opacity:1;clip-path:none;transform:none}
.original-mark figcaption {font-size:11px;line-height:1.65;color:var(--muted);margin-top:3px}
.flavours {border-top:1px solid var(--line)}
@media(max-width:1100px){.history{gap:44px}.history h2{font-size:35px}.history-photo>img{height:470px}}
@media(max-width:900px){.history{gap:32px}.history h2{font-size:32px}.history-copy>p{font-size:13px}.history-photo>img{height:490px}}
@media(max-width:760px){.history{grid-template-columns:1fr;gap:28px;padding-block:48px}.history-copy{grid-row:1}.history-photo{grid-row:2}.history h2{font-size:33px}.history-copy>p{font-size:14px;margin-top:18px}.history-photo>img{height:310px;border-width:6px}.original-mark{margin:18px 0 22px}.original-mark img{width:245px}.original-mark figcaption{font-size:11px}}
@media(max-width:360px){.history h2{font-size:29px}.history-photo>img{height:275px}}


/* Ritmo entre a história, a mesa e a chegada; sem seletor de especialidades. */
.history {width:100%;max-width:none;margin:0;background:var(--green);padding:68px max(var(--gutter),calc((100% - var(--page))/2));gap:70px}
.history h2 {color:var(--white);font-size:43px}
.history-copy>p,.history-photo>p {color:var(--paper)}
.history-photo>img {border:0;height:510px}
.history .original-mark {display:table;background:var(--white);padding:14px 18px 12px;margin-block:24px}
.history .original-mark figcaption {color:var(--muted)}
.history .button-outline {color:var(--white);border-color:var(--paper)}
.history .button-outline img {filter:brightness(0) invert(1)}
.history .button-outline:hover {background:#25351f}
.history :focus-visible {outline-color:var(--white)}
.table-section {display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:center;padding-block:85px;background:var(--paper)}
.table-copy h2 {font-size:42px;margin-bottom:24px}
.table-copy>p {font-size:14px;color:var(--muted)}
.table-actions {display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-block:28px 15px}
.table-actions .text-link {font-size:13px;color:var(--red)}
.table-copy>.fine {font-size:11px}
.table-photos {position:relative;padding:0 0 65px 0}
.table-cozido {display:block;width:81%;height:420px;overflow:hidden;border:7px solid #63432c}
.table-cozido>img {width:100%;height:100%;object-fit:cover;object-position:center 68%}
.table-cozido>span {position:absolute;bottom:14px;left:14px;right:14px;width:auto;background:var(--white);padding:10px 12px;color:var(--ink);font-size:11px}
.table-filetes {position:absolute;width:42%;height:280px;right:0;bottom:0;overflow:hidden;border:7px solid var(--paper)}
.table-filetes>img {width:100%;height:100%;object-fit:cover}
.gallery-section {background:var(--white);width:100%;max-width:none;margin:0;padding-inline:max(var(--gutter),calc((100% - var(--page))/2));border:0;padding-block:65px}
.gallery-grid {background:var(--white);border:0;padding:0;gap:12px}
.gallery-grid.is-filtered {padding:0}
.testimonial {background-image:none;border-top:0;padding-block:48px}
.testimonial figure {text-align:left;max-width:900px;margin:25px 0 0}
.testimonial blockquote {font-size:45px;color:var(--green)}
.visit {border-top:1px solid var(--line)}
.address-status {font-size:12px;color:var(--muted);margin-top:14px}
.address-status:empty {display:none}
.address-status input {display:block;width:100%;border:1px solid var(--line);padding:12px;font-size:14px;background:var(--white);margin-top:8px}
#copy-address {display:none}.js #copy-address {display:inline-flex}
@media(max-width:1100px){.history{gap:40px}.history h2{font-size:36px}.table-section{gap:38px}.table-copy h2{font-size:36px}.table-cozido{height:365px}.table-filetes{height:240px}}
@media(max-width:760px){
 .history{padding-block:45px;gap:32px}.history h2{font-size:33px}.history-photo>img{height:300px}.history .original-mark{padding:12px 15px}
 .table-section{grid-template-columns:1fr;gap:28px;padding-block:48px}.table-copy h2{font-size:34px}.table-photos{padding-bottom:50px}.table-cozido{height:320px;width:83%;border-width:5px}.table-filetes{height:220px;width:43%;border-width:5px}.table-cozido>span{font-size:12px;padding:10px;left:8px;right:8px;top:8px;bottom:auto}
 .gallery-section{padding-block:45px}.testimonial blockquote{font-size:33px}.testimonial{padding-block:35px 45px}
 .mobile-contact{display:grid;grid-template-columns:1.3fr 1fr;gap:8px}.mobile-contact>a{justify-content:center;gap:9px;font-size:12px}.mobile-contact .mobile-directions{background:var(--green)}
}
@media(max-width:360px){.history h2{font-size:29px}.table-copy h2{font-size:30px}.table-cozido{height:285px}.table-filetes{height:190px}.mobile-contact>a{font-size:11px;gap:6px}}


/* Faixas de cor, seleção de especialidades e várias vozes reais. */
:root{--ochre:#dec18d;--reviews:#f7efdf}
.color-ribbon{background:var(--red);color:var(--white)}
.color-ribbon>.wrap{display:grid;grid-template-columns:repeat(3,1fr)}
.color-ribbon a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:23px 26px;font:400 21px/1.3 var(--display);text-decoration:none;min-height:80px}
.color-ribbon a+a{border-left:1px solid #b97566}.color-ribbon img{filter:brightness(0) invert(1);flex-shrink:0}
.color-ribbon a:hover{background:var(--red-dark)}.color-ribbon :focus-visible{outline-color:var(--white);outline-offset:-5px}
.table-section{width:100%;max-width:none;margin:0;padding:74px max(var(--gutter),calc((100% - var(--page))/2));background:var(--ochre);column-gap:65px;row-gap:55px}
.table-copy>p{color:var(--ink)}.table-filetes{border-color:var(--ochre)}
.reviews-band{background:var(--red);color:var(--white);padding:64px 0}
.reviews-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end;margin-bottom:37px}
.reviews-heading h2{color:var(--white);font-size:40px;line-height:1.18}
.reviews-heading p{font-size:14px;color:var(--white);margin:0;max-width:53ch}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.review{margin:0;background:var(--reviews);color:var(--ink);padding:30px;display:flex;flex-direction:column;min-height:280px}
.review blockquote{font:400 27px/1.35 var(--display);margin:0 0 28px;color:var(--red)}
.review figcaption{margin-top:auto}.review strong{display:block;font-size:14px}.review figcaption>span{display:block;font-size:12px;margin-top:5px;color:var(--muted)}
.review a{display:inline-flex;gap:8px;align-items:center;font-size:12px;color:var(--red);margin-top:14px;min-height:30px}
.reviews-bottom{display:flex;gap:35px;justify-content:space-between;align-items:center;margin-top:29px}
.reviews-bottom>span{font-size:12px;max-width:56ch}.reviews-bottom .button{background:var(--white);color:var(--red);border-color:var(--white)}
.reviews-bottom .button img{filter:none}.reviews-band :focus-visible{outline-color:var(--white)}.review :focus-visible{outline-color:var(--red)}
.visit{border:0;padding-top:65px}
.faq{background:var(--green);color:var(--white);width:100%;max-width:none;padding:60px max(var(--gutter),calc((100% - var(--page))/2))}
.faq h2,.faq summary{color:var(--white)}.faq details{border-color:#7f8c70}.faq summary img{filter:brightness(0) invert(1)}.faq details p{color:var(--white)}.faq :focus-visible{outline-color:var(--white)}
.closing{background:var(--ochre);width:100%;max-width:none;margin:0;padding:45px max(var(--gutter),calc((100% - var(--page))/2));gap:30px}
.footer{padding-top:40px;background-image:none}
@media(max-width:1100px){.color-ribbon a{font-size:19px;padding-inline:20px}.table-section{column-gap:38px}.reviews-grid{gap:18px}.review{padding:24px}.review blockquote{font-size:25px}.header nav{gap:13px}.header nav>a:not(.button){font-size:11px}}
@media(max-width:900px){.color-ribbon a{font-size:17px;padding-inline:15px}.reviews-heading{gap:30px}.reviews-heading h2{font-size:34px}.review{padding:21px}.review blockquote{font-size:23px}.header nav{gap:10px}.nav-cta{padding-inline:13px}.brand span{font-size:26px}}
@media(max-width:760px){
 .color-ribbon>.wrap{grid-template-columns:1fr}.color-ribbon a{font-size:19px;min-height:59px;padding:16px 0}.color-ribbon a+a{border-left:0;border-top:1px solid #b97566}
 .table-section{padding-block:47px;row-gap:32px}
 .reviews-band{padding-block:45px}.reviews-heading{grid-template-columns:1fr;gap:19px;margin-bottom:27px}.reviews-heading h2{font-size:33px}.reviews-heading p{font-size:14px}.reviews-grid{grid-template-columns:1fr;gap:14px}.review{padding:25px;min-height:0}.review blockquote{font-size:27px;margin-bottom:23px}.reviews-bottom{flex-direction:column;align-items:flex-start;gap:20px}.review a{min-height:36px}.reviews-bottom>span{font-size:12px}
 .faq{padding-block:44px}.closing{padding-block:35px}.closing p{font-size:30px}.brand span{font-size:28px}
}
@media(max-width:360px){.reviews-heading h2{font-size:29px}.review{padding:22px}.review blockquote{font-size:25px}.brand span{font-size:25px}}


/* Álbum da casa: proporções livres, letras de livro e mudanças de cor suaves. */
@font-face{font-family:EspigueiroTradicao;src:url('assets/fonts/Alegreya.ttf') format('truetype');font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:EspigueiroTradicao;src:url('assets/fonts/Alegreya-Italic.ttf') format('truetype');font-weight:400 900;font-style:italic;font-display:swap}
:root{--display:EspigueiroTradicao,Georgia,serif;--red:#874538;--red-dark:#693328;--green:#48543b;--paper:#f6eddd;--white:#fffaf1;--ochre:#f0dfbf;--sage:#dfe4d2;--rose:#efddd0;--ink:#3c3024;--muted:#665340;--reviews:#f8eee0}
body{font-family:EspigueiroTradicao,Georgia,serif;font-size:18px;line-height:1.65}
button,input,select,.header nav,.topline,.button,.menu-toggle,.mobile-contact,.gallery-filters,.fine,.footer-bottom,.review figcaption,.gallery-photo>span,.gallery-bottom,.house-highlights,.share-status,.address-status{font-family:var(--body)}
h1,h2,h3{font-weight:600;letter-spacing:-.012em;line-height:1.14}
em{font-style:italic;font-weight:500}
.brand span{font-family:var(--display);font-weight:650;font-size:35px;letter-spacing:-.02em}
.brand small{font-family:var(--body)}
.hero-heading h1{font-size:60px;font-weight:600}.hero-heading p{font-size:19px;line-height:1.6}
.header::after{height:3px;background:#ba9e79}
.hero-mosaic{display:grid;grid-template-columns:1.5fr .8fr .8fr;grid-template-rows:auto;align-items:center;gap:25px;background:none;border:0;padding:12px 0 0;border-radius:0}
.hero-mosaic>a{grid-area:auto;display:block;background:transparent;overflow:visible;border:0;min-height:0}
.hero-mosaic .hero-main{grid-row:auto;grid-column:auto}
.hero-mosaic .photo-link>img{height:285px;width:100%;object-fit:cover;border-radius:90px 24px 90px 24px}
.hero-mosaic .hero-main>img{height:405px;border-radius:110px 30px 110px 30px}
.hero-mosaic>a:nth-child(2){align-self:start;margin-top:35px}
.hero-mosaic>a:nth-child(3){margin-top:85px}.hero-mosaic>a:nth-child(3)>img{height:350px;border-radius:110px 110px 28px 28px;object-position:center 65%}
.hero-main>span{position:static;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 5px;background:none;border:0;color:var(--red);font:600 17px/1.3 var(--display)}
.hero-main>span img{width:18px;height:18px}
.house-highlights{background:none;border:0;padding-block:30px}
.color-ribbon{background:linear-gradient(180deg,var(--paper),var(--rose) 45px);color:var(--red);padding-top:45px}
.color-ribbon a{font-size:22px;font-weight:600;padding-block:19px;min-height:73px}
.color-ribbon a+a{border-color:#cbb5a0}.color-ribbon img{filter:none}.color-ribbon a:hover{background:#e8d3c2}.color-ribbon :focus-visible{outline-color:var(--red)}
.history{background:linear-gradient(180deg,var(--rose),var(--sage) 65px);padding-top:110px;padding-bottom:70px}
.history h2{color:var(--red);font-size:48px}.history-copy>p{color:var(--ink);font-size:18px;line-height:1.65;margin-top:20px}
.history-photo>p{color:var(--muted);font-size:14px}
.history-room{display:block;background:none;overflow:visible}
.history-room>img{width:100%;height:auto;border:0;border-radius:170px 170px 32px 32px;object-fit:contain}
.history-room>span{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:13px;color:var(--green);font-size:16px}
.history-room>span img{width:18px;height:18px}
.history .original-mark{background:transparent;padding:0;margin:25px 0;display:block}
.history .original-mark img{width:285px;max-width:100%;height:auto;filter:none;mix-blend-mode:normal;opacity:1;clip-path:none;transform:none}
.history .original-mark figcaption{color:var(--muted);font-size:13px;margin-top:8px}
.history .button-outline{color:var(--red);border-color:var(--red)}.history .button-outline img{filter:none}.history .button-outline:hover{background:#d1d8c3}.history :focus-visible{outline-color:var(--red)}
.table-section{background:linear-gradient(180deg,var(--sage),var(--ochre) 65px);padding-top:110px;padding-bottom:70px}
.table-copy h2{font-size:48px}.table-copy>p{font-size:18px}.table-copy>.fine{font-size:12px}
.table-cozido{border:0;border-radius:140px 140px 30px 30px;height:440px}
.table-filetes{border:0;border-radius:120px 120px 45px 45px;height:285px;bottom:0;right:0}
.table-cozido>span{background:var(--ochre);border-radius:12px;padding:9px 12px;font-family:var(--body);font-size:12px}
.gallery-section{background:linear-gradient(180deg,var(--ochre),var(--white) 65px);padding-top:110px;padding-bottom:70px}
.section-heading h2{font-size:45px}.section-heading p{font-size:18px}
.gallery-grid,.gallery-grid.is-filtered{display:block;columns:3;column-gap:27px;padding:0;background:none;border:0;max-width:none}
.gallery-photo,.gallery-grid.is-filtered .gallery-photo{display:block;break-inside:avoid;margin:0 0 27px;border:0;border-radius:0;overflow:visible;background:none;height:auto;position:relative}
.gallery-photo img,.gallery-grid.is-filtered .gallery-photo img{height:auto;width:100%;object-fit:contain;border-radius:35px}
.gallery-wide img{border-radius:125px 125px 30px 30px}
.gallery-photo:nth-child(even) img{border-radius:65px 22px 65px 22px}
.gallery-photo span{position:static;display:block;padding:9px 2px 0;border:0;background:none;font-size:13px;color:var(--muted);border-radius:0}
.gallery-grid.single-result{columns:1;max-width:650px}
.reviews-band{background:linear-gradient(180deg,var(--white),var(--rose) 65px);color:var(--ink);padding-top:110px;padding-bottom:70px}
.reviews-heading h2{color:var(--red);font-size:46px}.reviews-heading p{color:var(--ink);font-size:18px}
.review{background:transparent;padding:27px 0;min-height:255px;border-top:1px solid #bea28e}
.review blockquote{font-family:var(--display);font-style:italic;font-size:32px;font-weight:500;line-height:1.25;color:var(--red)}
.reviews-grid{gap:35px}.reviews-bottom>span{font-family:var(--body);color:var(--muted);font-size:12px}.reviews-band :focus-visible{outline-color:var(--red)}
.reviews-bottom .button{background:var(--red);border-color:var(--red);color:var(--white)}.reviews-bottom .button img{filter:brightness(0) invert(1)}
.visit{background:linear-gradient(180deg,var(--rose),var(--paper) 65px);width:100%;max-width:none;padding:110px max(var(--gutter),calc((100% - var(--page))/2)) 70px;margin:0}
.visit h2{font-size:46px}.visit-intro p,.visit-details dd{font-size:18px}.visit-details dt{font-family:var(--body)}
.map-panel{border-radius:100px 100px 30px 30px;overflow:hidden}.map-panel .map-photo{border:0;border-radius:100px 100px 30px 30px}
.faq{background:linear-gradient(180deg,var(--paper),var(--sage) 65px);color:var(--ink);padding-top:110px;padding-bottom:60px}
.faq h2{color:var(--red);font-size:40px}.faq summary{color:var(--ink);font-family:var(--display);font-size:21px;font-weight:600}.faq summary img{filter:none}.faq details{border-color:#acb79b}.faq details p{color:var(--ink);font-size:18px}.faq :focus-visible{outline-color:var(--red)}
.closing{background:linear-gradient(180deg,var(--sage),var(--ochre) 65px);padding-top:95px;padding-bottom:50px}.closing p{font:600 43px/1.12 var(--display)}
.footer{background:linear-gradient(180deg,var(--ochre),var(--paper) 65px);width:100%;max-width:none;margin:0;padding:100px max(var(--gutter),calc((100% - var(--page))/2)) 30px}
.photo-link:focus-visible{outline-offset:8px}
@media(hover:hover) and (pointer:fine){.photo-link>img{transition:transform 350ms var(--ease)}.photo-link:hover>img{transform:translateY(-3px)}.gallery-photo img{transition:transform 350ms var(--ease)}.gallery-photo:hover img{transform:translateY(-3px)}}
@media(max-width:1100px){.hero-heading h1{font-size:51px}.hero-mosaic{gap:20px}.hero-mosaic .hero-main>img{height:340px}.hero-mosaic .photo-link>img{height:245px}.hero-mosaic>a:nth-child(3)>img{height:300px}.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:41px}.gallery-grid,.gallery-grid.is-filtered{column-gap:22px}}
@media(max-width:900px){.hero-heading h1{font-size:47px}.hero-heading p{font-size:18px}.brand span{font-size:31px}.history-copy>p{font-size:17px}.hero-mosaic .hero-main>img{height:300px}.hero-mosaic .photo-link>img{height:220px}.hero-mosaic>a:nth-child(3)>img{height:275px}.review blockquote{font-size:28px}}
@media(max-width:760px){
 .brand span{font-size:33px}.hero-heading h1{font-size:43px;max-width:19ch}.hero-heading h1 br{display:block}.hero-heading p{font-size:18px}.hero-mosaic{grid-template-columns:1fr 1fr;gap:18px;align-items:start}.hero-mosaic .hero-main{grid-column:1/-1}.hero-mosaic .hero-main>img{height:auto;border-radius:75px 25px 75px 25px}.hero-mosaic>a:nth-child(2){margin-top:0}.hero-mosaic>a:nth-child(3){margin-top:25px}.hero-mosaic .photo-link>img{height:160px;border-radius:55px 18px 55px 18px}.hero-mosaic>a:nth-child(3)>img{height:200px;border-radius:75px 75px 22px 22px}.hero-main>span{font-size:16px}
 .color-ribbon{padding-top:35px}.color-ribbon a{font-size:21px}.history,.table-section,.gallery-section,.reviews-band,.visit,.faq{padding-top:85px;padding-bottom:45px}.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:37px}.history-copy>p{font-size:18px}.history-room>img{border-radius:110px 110px 25px 25px}.history .original-mark img{width:270px}.history .original-mark{padding:0}.table-cozido{height:330px;border-radius:110px 110px 25px 25px}.table-filetes{height:220px;border-radius:80px 80px 30px 30px}.table-cozido>span{font-size:12px;top:auto;bottom:14px;left:12px;right:12px}.section-heading h2{font-size:37px}.gallery-grid,.gallery-grid.is-filtered{columns:2;column-gap:16px}.gallery-photo,.gallery-grid.is-filtered .gallery-photo{margin-bottom:23px;height:auto}.gallery-photo img{border-radius:25px}.gallery-wide img{border-radius:70px 70px 20px 20px}.gallery-photo:nth-child(even) img{border-radius:45px 18px 45px 18px}.gallery-photo span{font-size:12px}.reviews-heading p{font-size:18px}.reviews-grid{gap:12px}.review{padding:24px 0;min-height:0}.review blockquote{font-size:31px}.visit-intro p{font-size:18px}.faq h2{font-size:35px}.closing{padding-top:80px;padding-bottom:40px}.closing p{font-size:37px}.footer{padding-top:85px}.map-panel,.map-panel .map-photo{border-radius:65px 65px 25px 25px}
}
@media(max-width:360px){.brand span{font-size:29px}.hero-heading h1{font-size:38px}.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:33px}.gallery-grid,.gallery-grid.is-filtered{column-gap:13px}.review blockquote{font-size:29px}}


/* Ilustrações Higgsfield locais, com transparência verdadeira. */
.brand{position:relative;padding-left:62px;min-height:58px}.brand .granary-mark{position:absolute;left:0;top:0;width:54px;height:58px;object-fit:contain;filter:none;mix-blend-mode:normal}
.brand small{margin-top:4px}.footer .brand{padding-left:76px;min-height:70px}.footer .brand .granary-mark{width:67px;height:70px;top:-4px}
.house-signature{display:flex;align-items:center;gap:17px;margin-top:25px}.house-signature>img{width:65px;height:80px;object-fit:contain}.house-signature>p{font:500 italic 26px/1.16 var(--display);color:var(--green);margin:0}.house-signature em{font-weight:500}
@media(min-width:761px) and (max-width:1100px){.header .brand{padding-left:0}.header .brand .granary-mark{display:none}}
@media(max-width:760px){.header .brand{padding-left:48px;min-height:51px}.header .brand .granary-mark{width:42px;height:51px}.header .brand span{font-size:31px}.header .brand small{font-size:10px}.house-signature{margin-top:24px}.house-signature>p{font-size:26px}}
@media(max-width:360px){.header .brand{padding-left:0}.header .brand .granary-mark{display:none}.header .brand span{font-size:29px}}


/* O letreiro fornecido orienta o nome e os títulos; a leitura longa mantém letra de livro. */
@font-face{font-family:EspigueiroLetreiro;src:url('assets/fonts/PirataOne.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--lettering:EspigueiroLetreiro,Georgia,serif}
.brand span{font-family:var(--lettering);font-weight:400;font-size:37px;letter-spacing:0;line-height:1}
h2{font-family:var(--lettering);font-weight:400;letter-spacing:0;line-height:1.16}
h2 em{font-style:normal;font-weight:400}
.hero-heading h1{font-family:var(--lettering);font-weight:400;font-size:76px;line-height:1.07;letter-spacing:0;max-width:none}
.hero-heading h1 small{display:block;font:500 italic 31px/1.3 var(--display);color:var(--green);margin-top:18px;max-width:35ch}
.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:45px}.section-heading h2{font-size:43px}.faq h2{font-size:39px}
.hero-mosaic .hero-main>img{border-radius:130px 130px 14px 14px}.hero-mosaic .photo-link>img{border-radius:90px 90px 14px 14px}.hero-mosaic>a:nth-child(3)>img{border-radius:120px 120px 14px 14px}
.history-room>span{position:static;background:transparent;border:0;padding:0;left:auto;bottom:auto;right:auto;font-size:16px}
.gallery-grid.is-filtered.single-result{columns:1;max-width:650px}
.house-signature>p{font-size:28px}
@media(hover:hover) and (pointer:fine){.photo-link:hover>img,.gallery-photo:hover img{transform:none}}
@media(max-width:1100px){.hero-heading h1{font-size:65px}.hero-heading h1 small{font-size:28px}.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:40px}}
@media(max-width:900px){.brand span{font-size:33px}.hero-heading h1{font-size:58px}.hero-heading h1 small{font-size:26px}}
@media(max-width:760px){.header .brand span{font-size:35px}.hero-heading h1{font-size:60px}.hero-heading h1 small{font-size:25px;max-width:24ch;margin-top:14px}.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:36px}.section-heading h2{font-size:36px}.faq h2{font-size:34px}.hero-mosaic .hero-main>img{border-radius:95px 95px 14px 14px}}
@media(max-width:360px){.header .brand span{font-size:33px}.hero-heading h1{font-size:52px}.hero-heading h1 small{font-size:23px}.history h2,.table-copy h2,.reviews-heading h2,.visit h2{font-size:33px}}


/* Correção do utilizador: três fotografias alinhadas e sem esplanada. */
.hero-mosaic{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;align-items:start;gap:22px}
.hero-mosaic>a,.hero-mosaic .hero-main{grid-column:auto;grid-row:auto;margin:0;align-self:start}
.hero-mosaic>a:nth-child(2),.hero-mosaic>a:nth-child(3){margin:0;align-self:start}
.hero-mosaic .hero-main>img,.hero-mosaic .photo-link>img,.hero-mosaic>a:nth-child(3)>img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:18px}
.house-highlights{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.hero-mosaic{gap:10px}.hero-mosaic .hero-main>img,.hero-mosaic .photo-link>img,.hero-mosaic>a:nth-child(3)>img{border-radius:12px}.hero-main>span{font-size:13px;gap:5px}.hero-main>span img{width:15px;height:15px}.house-highlights{grid-template-columns:1fr 1fr}}

/* Seleção de especialidades: não representa a ementa completa. */
.specialties-selection{grid-column:1/-1;border-top:1px solid #c9b18c;padding-top:37px}
.specialties-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:16px}
.specialties-heading h3{font:600 32px/1.25 var(--display);color:var(--red);margin:0}
.specialties-heading p{font-size:17px;max-width:46ch;margin:0;color:var(--ink)}
.specialties-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:50px}
.specialties-list li{font:600 25px/1.35 var(--display);border-bottom:1px solid #ccb695;padding:24px 0;align-content:center}
.specialties-help{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:25px}
.specialties-help p{font-size:17px;margin:0;max-width:49ch}
.specialties-help a{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:700 13px/1.5 var(--body);color:var(--red);flex-shrink:0}
@media(max-width:760px){.specialties-selection{padding-top:30px}.specialties-heading{display:block}.specialties-heading h3{font-size:29px;margin-bottom:12px}.specialties-list{grid-template-columns:1fr}.specialties-list li{font-size:24px;padding:20px 0}.specialties-help{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:360px){.specialties-list li{font-size:22px}}

/* Quatro fotografias por coluna no álbum completo, com alturas equilibradas. */
@media(min-width:761px){.gallery-grid:not(.is-filtered)>.gallery-photo:nth-child(5),.gallery-grid:not(.is-filtered)>.gallery-photo:nth-child(9){break-before:column}}

/* Idiomas locais e contacto telefónico no final da galeria. */
.topline .wrap{gap:12px}.topline .top-booking{margin-left:auto}
.language-switch{display:flex;align-items:center;gap:2px;flex-shrink:0;font:700 11px/1.4 var(--body)}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:44px;padding:6px;text-decoration:none;border-radius:2px}
.topline .language-switch a{color:var(--white)}.topline .language-switch a[aria-current="page"]{color:var(--red-dark);background:var(--white)}
.language-switch a[aria-current="page"]{text-decoration:underline;text-underline-offset:4px}
.language-switch a:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.gallery-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.gallery-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.gallery-actions .button{max-width:100%;white-space:normal}
.footer .brand{max-width:100%;flex-shrink:1}
@media(max-width:760px){.topline .wrap{justify-content:space-between}.topline .wrap>span{flex:1;min-width:0}.topline .language-switch a{display:inline-flex}.gallery-bottom{align-items:flex-start}.gallery-bottom>span{margin:0;max-width:none}.gallery-actions{justify-content:flex-start;width:100%;gap:10px}.gallery-actions .button{font-size:12px}}

/* Alterações pontuais: logótipo original no cabeçalho e nota junto ao horário. */
.header .brand.brand-logo{padding-left:0}
.header .brand-logo .espigueiro-logo{width:235px;height:auto;object-fit:contain}
.vacation-note{display:block;margin-top:8px;font-size:12px;line-height:1.65;color:var(--muted)}
@media(min-width:761px) and (max-width:1100px){.header .brand-logo .espigueiro-logo{width:195px}}
@media(max-width:760px){.header .brand-logo .espigueiro-logo{width:210px}}
@media(max-width:360px){.header .brand-logo .espigueiro-logo{width:160px}}

/* Horário destacado, casa original no topo e rodapé sem ícone gerado. */
.hero-heading .house-original{width:280px;max-width:100%;height:auto;margin:0 0 20px;object-fit:contain}
.footer .brand.footer-brand-plain{padding-left:0}
.opening-hours{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:64px;margin:34px 0 42px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.opening-hours h3{font:600 32px/1.2 var(--display);color:var(--red);margin:0 0 20px}
.opening-hours table{width:100%;border-collapse:collapse;font-size:18px;line-height:1.5}
.opening-hours th,.opening-hours td{padding:9px 0;border-bottom:1px solid var(--line);vertical-align:top}
.opening-hours th{text-align:left;font-weight:500}
.opening-hours td{text-align:right;font-variant-numeric:tabular-nums}
.opening-hours tr:last-child th,.opening-hours tr:last-child td{border-bottom:0}
.hours-table-head{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.daily-times{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap}
.daily-times>span{white-space:nowrap}
.hours-closed{font-weight:600;color:var(--red)}
.opening-hours .vacation-note{font:400 19px/1.65 var(--display);color:var(--ink);margin:0;max-width:37ch}
.opening-hours .vacation-note a{font-weight:600;color:var(--red)}
@media(max-width:900px){.opening-hours{gap:32px}.daily-times{flex-direction:column;gap:0}}
@media(max-width:760px){.hero-heading .house-original{width:220px;margin-bottom:18px}.opening-hours{grid-template-columns:1fr;gap:28px;margin:26px 0 34px;padding:26px 0}.opening-hours h3{font-size:29px;margin-bottom:16px}.opening-hours table{font-size:18px}.opening-hours .vacation-note{font-size:18px;max-width:none}}

/* Símbolo original apenas junto à marca no cabeçalho e no rodapé. */
.header .brand.brand-logo{display:grid;grid-template-columns:64px 235px;column-gap:12px;align-items:center}
.brand .brand-house{display:block;width:100%;height:auto;object-fit:contain}
.header .brand-logo .brand-house{grid-column:1;grid-row:1}
.header .brand-logo .espigueiro-logo{grid-column:2;grid-row:1;width:100%;height:auto}
.header .brand-logo small{grid-column:1/-1}
.footer .brand.footer-brand-plain{display:grid;grid-template-columns:56px auto;column-gap:10px;align-items:center}
.footer .footer-brand-plain .brand-house{grid-column:1;grid-row:1}
.footer .footer-brand-plain>span{grid-column:2;grid-row:1}
.footer .footer-brand-plain>small{grid-column:1/-1}
@media(min-width:761px) and (max-width:1100px){.header .brand.brand-logo{grid-template-columns:38px 170px;column-gap:8px}}
@media(max-width:760px){.header .brand.brand-logo{grid-template-columns:44px 175px;column-gap:8px}}
@media(max-width:360px){.header .brand.brand-logo{grid-template-columns:32px 145px;column-gap:6px}}

/* Vermelho da marca original; tom escuro para textos pequenos e controlos. */
:root{--logo-red:#ed1c24;--red:#b11219;--red-dark:#8f0e14}
h1,h2,h3,.hero-heading h1,.history h2,.table-copy h2,.section-heading h2,.reviews-heading h2,.visit h2,.faq h2,.opening-hours h3,.specialties-heading h3,.phone-number,.brand>span{color:var(--logo-red)}
