/* Jardim do logo: shared visual theme, independent of portfolio behavior. */
:root {
  --cream: #fff9f4;
  --wine: #9c405a;
  --muted: #655e59;
  --rose: #eca9b8;
  --sage: #a8b598;
  --gold: #b78a42;
  --line: #dfd7c8;
  --ink: #35422f;
}
body { color: var(--ink); }
h1, h2, h3, .brand { color: var(--wine); }
em { color: #ad526b; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: var(--wine); }
.header { min-height: 152px; gap: 30px; }
.header .brand { font-size: 42px; gap: 22px; }
.header .brand-logo { width: 112px; height: 112px; }
.header .brand > span { border-left: 1px solid var(--gold); padding-left: 22px; }
.brand small { color: #946b29; letter-spacing: 5px; font-size: 10px; }
.header nav { font-size: 14px; gap: 25px; }
.header .nav-contact { border-color: var(--gold); }
.hero { position: relative; isolation: isolate; grid-template-columns: 1.08fr 1fr; gap: 44px; padding-top: 20px; padding-bottom: 60px; }
.hero::before { content: ''; position: absolute; pointer-events: none; z-index: -1; width: 170px; height: 450px; left: 0; bottom: 0; background: url('/img/garden-floral.png') left bottom / contain no-repeat; opacity: .45; }
.hero-copy { padding-block: 18px; }
.hero h1 { font-size: clamp(42px, 4.7vw, 66px); line-height: 1.12; letter-spacing: -2px; }
.hero h1 em { white-space: normal; }
.hero .intro { max-width: 470px; font-size: 16px; line-height: 1.8; }
.hero-photo { max-width: 490px; border: 1px solid var(--gold); border-radius: 36px; box-shadow: 0 12px 30px #b78a4212; }
.eyebrow { color: #866020; letter-spacing: 2.6px; }
.eyebrow > span { background: var(--gold); }
.garden-divider { display: flex; align-items: center; gap: 14px; max-width: 240px; color: #946b29; margin: 0 0 25px; font: 30px Georgia, serif; }
.garden-divider::before, .garden-divider::after { content: ''; height: 1px; background: var(--gold); flex: 1; }
.button { border-radius: 999px; padding: 16px 27px; background: var(--wine); font-size: 13px; }
.button:hover { background: #7f3047; }
.ribbon { background: #f8e6e9; border-color: #ecd5d8; color: #793c50; padding-block: 18px; }
.ribbon b { color: #946b29; }
.essence { padding-block: 65px; }
.possibilities { position: relative; isolation: isolate; background: linear-gradient(130deg,#f8dce3,#f4ccd7); padding-block: 80px 65px; }
.possibilities::before { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 26px; background: var(--cream); border-radius: 0 0 50% 50%; z-index: -1; }
.possibilities .section-top { display: block; text-align: center; }
.possibilities .section-top h2 { font-size: clamp(35px,4vw,48px); margin-bottom: 16px; }
.possibilities .section-top h2 br { display: none; }
.possibilities .section-top h2 em { color: inherit; }
.possibilities .section-top > p { margin-bottom: 30px; }
.cards article, .featured-card { background: var(--cream); border: 1px solid var(--sage); border-radius: 20px; padding: 16px; overflow: hidden; }
.cards .card-art { height: 150px; border-radius: 14px; background: #e4e9dc; color: #687d59; }
.cards .card-art span { font-size: 90px; }
.card-title h3 { font-size: 23px; }
.featured-card img { border-radius: 12px; }
.featured-card h3 { color: var(--ink); font-size: 24px; }
.carousel-track { padding-bottom: 16px; scrollbar-color: var(--wine) #f1bdcb; }
.carousel-controls button { background: var(--cream); border: 1px solid #798a69; border-radius: 50%; width: 46px; height: 46px; padding: 0; color: var(--wine); }
.carousel-controls button:hover:not(:disabled) { background: #e4e9dc; }
.carousel-controls button:disabled { opacity: .4; cursor: default; }
.portfolio-action { text-align: center; margin-top: 28px; }
.possibilities .small-note { text-align: center; color: #6c4e57; }
.process li > span { color: #946b29; }
.faq details { border-color: #cfd7c5; }
.faq summary { color: var(--ink); }
.contact { background: #9c405a; position: relative; overflow: hidden; }
.contact::before { content: ''; position: absolute; width: 260px; height: 320px; left: -60px; bottom: -60px; background: url('/img/garden-floral.png') left bottom / contain no-repeat; opacity: .7; pointer-events: none; }
.contact-inner { position: relative; }
.contact h2, .contact .eyebrow { color: #fff9f4; }
.contact em { color: #f7d6df; }
.contact-flower { color: #f3dab5; }
.contact p:not(.eyebrow) { color: #fff0f3; }
.button.light { background: var(--cream); color: var(--wine); }
.button.light:hover { background: #f8dce3; }
footer { border-top: 1px solid var(--line); }
.editor, .admin-photos article { background: #f6e9e9; border-radius: 16px; }
.notice { background: #edf0e7; color: var(--ink); border-left: 3px solid var(--sage); }
.dashboard input, .dashboard textarea, .dashboard select { color: var(--ink); border-color: #a8b598; border-radius: 8px; }
.admin-utility, .admin-icon-button { color: var(--wine); }
.admin-icon-button.is-featured { background: #f6d8e1; border-color: var(--rose); color: var(--wine); }
.portfolio-card { border: 1px solid var(--sage); padding: 16px; border-radius: 20px; }
.portfolio-card img, .photo-gallery img { border-radius: 12px; }
.home-service-links { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 32px; scroll-margin-top: 24px; }
.home-service-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 16px; border: 1px solid #d9b9bf; border-radius: 14px; color: #85364d; background: #fff9f4; text-decoration: none; font-weight: 600; }
.home-service-links a:hover { background: #f7e5e9; border-color: #9c405a; }
.home-service-links a:focus-visible { outline: 3px solid #9c405a; outline-offset: 3px; }
@media(max-width:1000px) { .home-service-links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media(max-width:650px) { .home-service-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .home-service-links a { padding: 16px 12px; font-size: 14px; } }
@media(min-width:1500px) { .hero { padding-top: 30px; padding-bottom: 65px; } }
@media(max-width:1000px) {
  .header .brand { font-size: 30px; gap: 14px; }
  .header .brand-logo { width: 88px; height: 88px; }
  .header .brand > span { padding-left: 14px; }
  .header nav { gap: 16px; font-size: 12px; }
  .hero { gap: 28px; }
  .hero::before { opacity: .25; }
}
@media(max-width:650px) {
  .header { min-height: 112px; gap: 12px; }
  .header .brand { font-size: 23px; gap: 9px; }
  .header .brand-logo { width: 68px; height: 68px; }
  .header .brand > span { padding-left: 9px; }
  .brand small { font-size: 8px; letter-spacing: 2.5px; }
  .header nav { font-size: 11px; }
  .header .nav-contact { max-width: 96px; }
  .nav-contact span { margin-left: 0; }
  .hero { grid-template-columns: 1fr; padding-top: 5px; padding-bottom: 40px; gap: 18px; }
  .hero::before { display: none; }
  .hero h1 { font-size: clamp(39px,10vw,52px); letter-spacing: -1.5px; }
  .hero .intro { font-size: 14px; }
  .hero-photo { max-width: 430px; border-radius: 26px; }
  .button { gap: 15px; padding: 15px 20px; }
  .essence { padding-block: 45px; }
  .possibilities { padding-block: 60px 45px; }
  .contact::before { opacity: .2; }
  .cards article, .featured-card { padding: 12px; }
}
