/* Targeted repairs layered after the approved page styles. */
.visually-hidden,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:100;background:#050403;color:#f7f0e5;padding:14px 20px;border:1px solid #c69a4c}
a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #c69a4c;outline-offset:4px}
.topbar .back,.topbar .home{min-height:44px;display:flex;align-items:center}
.topbar .home{grid-column:3;min-width:44px;justify-content:center}
/* Keep sticky headers in the document scroll container. */
.site{overflow:clip}
.cards,.reading-grid,.ritual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards>*,.reading-grid>*,.ritual-grid>*{min-width:0}
.select,.choose-link{gap:8px;line-height:1.5}
.select span:first-child,.choose-link span:first-child{overflow-wrap:anywhere}
.page-readings h1{font-weight:400}
/* Text and labels may wrap instead of being cut off at the card border. */
body:not(.page-index) h1,body:not(.page-index) h2,body:not(.page-index) h3,body:not(.page-index) p{overflow-wrap:break-word}
.page-index #sec-social .go,.page-index #sec-social .arrow{min-width:44px;min-height:44px;flex-shrink:0}
.page-index #sec-social .card{height:auto;min-height:174px}
.page-index #sec-social .channel{min-width:0}
.page-index #sec-social .channel>div:nth-child(2){min-width:0}
.page-index #sec-social .cname{overflow-wrap:anywhere}
.page-index #sec-social .social-title{font-size:clamp(36px,5vw,72px);line-height:1.08}
@media(max-width:1180px){
/* Preserve all of these portraits, rather than enlarging them beyond their frame.
   The existing dark overlays, serif text and black containers remain in place. */
.page-readings .photo-break.banner img,.page-energy .hero img,.page-rituals .hero img{object-fit:contain;object-position:center top !important;transform:none !important}
.page-rituals .space-photo{height:clamp(420px,100vw,860px) !important;background:#070605}
.page-rituals .space-photo img{object-fit:contain;object-position:center !important}
.page-rituals .process-photo{height:clamp(280px,65vw,520px)}
.page-rituals .process-photo img{object-fit:contain}
.page-rituals .statement-photo img{aspect-ratio:auto;height:auto}
}
/* The rating range inherited the old, hidden radio-button declarations. */
.page-reviews .rating-slider input[type="range"]{position:static;opacity:1;pointer-events:auto}
.page-reviews .rating-slider{min-width:0}
.page-reviews .star-display{font-size:clamp(28px,7vw,46px);letter-spacing:.08em}
.page-reviews .check input{flex-shrink:0}
.page-reviews input:not([type="checkbox"]):not([type="range"]),.page-reviews select,.page-reviews textarea{font-size:16px}
.page-reviews #review-status{font-size:13px;color:#51463b;letter-spacing:0}
.page-reviews button:disabled{opacity:.65;cursor:wait}
@media(max-width:480px){
 .cards,.reading-grid,.ritual-grid{grid-template-columns:minmax(0,1fr)}
 .card.wide .wide-row,.ritual-card.wide .wide-row,.reading-card.featured .feature-row{grid-template-columns:48px minmax(0,1fr);gap:12px}
 .reading-card.featured .symbol{font-size:44px}
 .page-energy .hero h1{font-size:clamp(40px,11vw,52px);line-height:1.02}
 .page-index #sec-social .social-title{font-size:clamp(34px,10vw,46px)}
}
/* This background is a portrait. Contain it on tablets and phones so the face
   stays in frame; the established desktop background treatment is retained. */
@media(max-width:1180px){
 .page-index #sec-experiences .hero{background-size:contain;background-repeat:no-repeat;background-position:center top}
}
@media(min-width:1001px) and (max-width:1250px){
 .page-index #sec-social .youtube{grid-template-columns:1fr}
 .page-index #sec-social .channels{border-top:1px solid rgba(198,154,76,.2)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto !important}
 *,*::before,*::after{animation:none !important;scroll-behavior:auto !important}
}
/* The confirmation card and long Portuguese button exceed the 320px frame. */
.page-thankyou .card{max-width:100%}
.page-thankyou a{max-width:100%;overflow-wrap:break-word}
.page-thankyou main{grid-template-columns:minmax(0,1fr)}

/* Portuguese Home: align the existing header with the 864px hero image.
   Border-box includes the inner padding in that width on phones and tablets. */
body[data-language="pt"] .pt-home-header-final .inner{
  box-sizing:border-box;
  width:min(100%,864px);
  max-width:864px;
}
