/* page-contatti.css — below-the-fold styles for contatti.html
   Loaded async via media="print" / onload trick.
   Above-the-fold (page-hero) styles remain inline in contatti.html. */

.contact-split{position:relative;padding:clamp(4rem,10vh,7rem) 0;background:var(--cream);overflow:hidden}
.contact-split__rings{position:absolute;left:-15vw;top:-10vw;width:50vw;max-width:540px;aspect-ratio:1;color:var(--gold);opacity:.10;pointer-events:none}
.contact-split__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2.5rem,5vw,5rem);align-items:flex-start;position:relative;z-index:1}
@media (max-width:980px){.contact-split__grid{grid-template-columns:1fr;gap:3rem}}

.contact-form{background:var(--ivory);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:clamp(1.8rem,3.5vw,2.8rem);box-shadow:0 24px 60px -30px rgba(0,0,0,.25);position:relative}
.contact-form__head{margin-bottom:2rem}
.contact-form__head h2{font-family:var(--f-display);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1.05;color:var(--bark);font-variation-settings:"opsz" 144,"SOFT" 30;margin-top:.6rem}
.contact-form__head h2 em{font-style:italic;color:var(--gold-deep);font-variation-settings:"opsz" 144,"SOFT" 100}
.contact-form__head p{margin-top:.8rem;color:var(--ink-soft);font-size:.96rem;line-height:1.55}

.field{position:relative;margin-bottom:1.2rem}
.field input,.field textarea,.field select{width:100%;font-family:var(--f-body);font-size:1rem;padding:1.4rem 1rem .6rem;background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-sm);color:var(--bark);transition:border-color .3s var(--ease-out),background .3s var(--ease-out),box-shadow .3s var(--ease-out);outline:none}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold-deep);background:#fff;box-shadow:0 0 0 3px rgba(123,21,39,.18)}
.field textarea{resize:vertical;min-height:140px;line-height:1.55}
.field label{position:absolute;left:1rem;top:1rem;font-size:1rem;color:var(--ink-mute);pointer-events:none;transition:transform .25s var(--ease-out),font-size .25s var(--ease-out),color .25s var(--ease-out);background:transparent}
.field input:focus + label,.field input:not(:placeholder-shown) + label,.field textarea:focus + label,.field textarea:not(:placeholder-shown) + label{transform:translateY(-.5rem);font-size:.74rem;color:var(--gold-deep);letter-spacing:.06em;text-transform:uppercase;font-weight:500}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:0}
.field--row .field{margin-bottom:1.2rem}
@media (max-width:640px){.field--row{grid-template-columns:1fr}}

.field--honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.checkbox-field{display:flex;align-items:flex-start;gap:.75rem;margin:1.2rem 0;padding:.8rem;background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-sm);transition:border-color .3s var(--ease-out)}
.checkbox-field:hover{border-color:var(--line-strong)}
.checkbox-field input{appearance:none;-webkit-appearance:none;width:20px;height:20px;flex-shrink:0;border:1px solid var(--line-strong);border-radius:4px;background:#fff;cursor:pointer;position:relative;transition:background .3s var(--ease-out),border-color .3s var(--ease-out);margin-top:.1rem}
.checkbox-field input:checked{background:var(--bark);border-color:var(--bark)}
.checkbox-field input:checked::after{content:"";position:absolute;left:5px;top:1px;width:6px;height:11px;border:solid var(--gold);border-width:0 2px 2px 0;transform:rotate(45deg)}
.checkbox-field label{font-size:.86rem;color:var(--ink-soft);line-height:1.45;cursor:pointer}
.checkbox-field a{color:var(--bark);text-decoration:underline;text-decoration-color:var(--gold-deep);text-underline-offset:3px}

.contact-form__submit{width:100%;margin-top:.8rem;padding:1.15rem 2rem;font-size:.98rem}
.contact-form__alt{margin-top:1rem;text-align:center;font-size:.86rem;color:var(--ink-soft);line-height:1.55}
.contact-form__alt a{color:var(--bark);font-weight:500;border-bottom:1px solid var(--gold-deep);padding-bottom:1px}
.contact-form__alt a:hover{color:var(--gold-deep)}

.contact-form__error{margin-top:1rem;padding:1rem 1.2rem;background:rgba(123,21,39,.1);border:1px solid var(--terracotta);border-radius:var(--r-sm);color:var(--wine);font-size:.92rem;line-height:1.5;display:none}
.contact-form__error.is-active{display:block}

.contact-info{position:sticky;top:7rem;display:flex;flex-direction:column;gap:1.5rem}
@media (max-width:980px){.contact-info{position:static}}

.info-card{padding:1.7rem 1.6rem;background:var(--ivory);border:1px solid var(--line-soft);border-radius:var(--r-md);display:flex;align-items:flex-start;gap:1.2rem;transition:transform .35s var(--ease-out),border-color .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.info-card:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 18px 40px -20px rgba(0,0,0,.18)}
.info-card__icon{width:36px;height:36px;flex-shrink:0;background:transparent;color:var(--gold);display:grid;place-items:center;border-bottom:1px solid var(--line-soft);padding-bottom:.35rem;transition:color .35s var(--ease-out),border-color .35s var(--ease-out)}
.info-card:hover .info-card__icon{color:var(--gold-deep);border-color:var(--gold)}
.info-card__icon svg{width:22px;height:22px;stroke-width:1.4}
.info-card__body{flex:1}
.info-card__label{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-weight:500}
.info-card__value{display:block;margin-top:.3rem;font-family:var(--f-display);font-weight:400;font-size:1.3rem;color:var(--bark);font-variation-settings:"opsz" 144;letter-spacing:-.005em;line-height:1.2}
.info-card__sub{margin-top:.4rem;font-size:.85rem;color:var(--ink-soft)}
.info-card a{color:var(--bark);transition:color .25s var(--ease-out)}
.info-card a:hover{color:var(--gold-deep)}

/* BRAND CARD — 1:1 method visual (replaces hours-card) */
.brand-card{position:relative;overflow:hidden;isolation:isolate;background:var(--bark);color:var(--ivory);border-radius:var(--r-md);padding:2.4rem 2rem 2rem;min-height:380px;display:flex;flex-direction:column;justify-content:space-between;gap:1rem}
.brand-card__rings{position:absolute;pointer-events:none;color:var(--gold-soft);z-index:0}
.brand-card__rings--a{left:50%;top:50%;transform:translate(-50%,-50%);width:130%;aspect-ratio:1;opacity:.15;animation:ring-spin 220s linear infinite}
.brand-card__rings--b{left:50%;top:50%;transform:translate(-50%,-50%);width:80%;aspect-ratio:1;opacity:.28;animation:ring-spin 90s linear infinite reverse;color:var(--gold-glow)}
.brand-card__rings svg{width:100%;height:100%}
@media (prefers-reduced-motion:reduce){.brand-card__rings--a,.brand-card__rings--b{animation:none}}
.brand-card__pulse{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:999px;background:var(--gold-glow);box-shadow:0 0 0 6px rgba(123,21,39,.32),0 0 30px rgba(123,21,39,.55);z-index:1;animation:brand-pulse 2.8s var(--ease-soft) infinite}
@keyframes brand-pulse{0%,100%{box-shadow:0 0 0 6px rgba(123,21,39,.32),0 0 30px rgba(123,21,39,.55);transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 0 14px rgba(123,21,39,.12),0 0 50px rgba(123,21,39,.8);transform:translate(-50%,-50%) scale(1.15)}}
@media (prefers-reduced-motion:reduce){.brand-card__pulse{animation:none}}
.brand-card__eyebrow{position:relative;z-index:2;display:inline-flex;align-items:center;gap:.6rem;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--gold-glow)}
.brand-card__eyebrow::before{content:"";width:28px;height:1px;background:var(--gold-glow)}
.brand-card__claim{position:relative;z-index:2;text-align:center;margin:1.2rem 0;font-family:var(--f-display);font-weight:300;font-size:clamp(4rem,8vw,5.6rem);line-height:1;color:var(--ivory);font-variation-settings:"opsz" 144,"SOFT" 80;display:flex;align-items:center;justify-content:center;gap:.4rem}
.brand-card__claim em{font-style:italic;color:var(--gold-glow);font-variation-settings:"opsz" 144,"SOFT" 100}
.brand-card__sep{display:inline-block;width:24px;height:1px;background:rgba(239,232,234,.4)}
.brand-card__text{position:relative;z-index:2;font-size:.96rem;line-height:1.55;color:rgba(239,232,234,.85);text-align:center;max-width:24rem;margin:0 auto}
.brand-card__text em{font-family:var(--f-display);font-style:italic;color:var(--gold-glow);font-variation-settings:"opsz" 144}
.brand-card__footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(239,232,234,.14);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(239,232,234,.65);font-weight:500}
.brand-card__dot{width:4px;height:4px;border-radius:999px;background:var(--gold-glow)}

.hours-card{padding:1.6rem;background:var(--bark);color:var(--ivory);border-radius:var(--r-md);position:relative;overflow:hidden;isolation:isolate}
.hours-card__rings{position:absolute;right:-30%;bottom:-30%;width:80%;aspect-ratio:1;color:var(--gold-soft);opacity:.18;pointer-events:none;z-index:-1}
.hours-card h3{font-family:var(--f-display);font-style:italic;font-weight:400;font-size:1.3rem;color:var(--gold-glow);font-variation-settings:"opsz" 144;margin-bottom:1rem}
.hours-card ul{display:grid;gap:.6rem}
.hours-card li{display:flex;justify-content:space-between;font-size:.92rem;padding-bottom:.6rem;border-bottom:1px solid rgba(239,232,234,.12)}
.hours-card li:last-child{border-bottom:0}
.hours-card span:first-child{color:rgba(239,232,234,.85)}
.hours-card span:last-child{color:var(--gold-glow);font-family:var(--f-display);font-style:italic;font-variation-settings:"opsz" 144}

.form-success{display:none;padding:2.5rem 1.5rem;text-align:center;background:linear-gradient(180deg,rgba(123,21,39,.08) 0%,transparent 100%);border-radius:var(--r-md);border:1px solid var(--gold)}
.form-success.is-active{display:block;animation:success-in .55s var(--ease-spring)}
@keyframes success-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.form-success__icon{width:56px;height:56px;border-radius:999px;background:var(--gold);color:var(--bark);display:grid;place-items:center;margin:0 auto 1rem}
.form-success__icon svg{width:28px;height:28px;stroke-width:2.4}
.form-success h3{font-family:var(--f-display);font-style:italic;font-weight:400;font-size:1.6rem;color:var(--bark);font-variation-settings:"opsz" 144}
.form-success p{margin-top:.8rem;color:var(--ink-soft);font-size:.96rem}

@media (max-width:640px){.field--row{grid-template-columns:1fr}.field--row .field{margin-bottom:1.2rem}}

/* Mobile rules for non-hero sections (split from combined hero+sections @media (max-width:600px)) */
@media (max-width:600px){
  .contact-split{padding:3rem 0}
  .contact-form{padding:1.5rem 1.2rem}
  .contact-form__head h2{font-size:1.6rem}
  .field input,.field textarea,.field select{font-size:.95rem;padding:1.3rem .9rem .55rem}
  .field label{font-size:.95rem;left:.9rem}
  .info-card{padding:1.3rem 1.2rem;gap:.85rem}
  .info-card__icon{width:32px;height:32px}
  .info-card__icon svg{width:20px;height:20px}
  .info-card__value{font-size:1.05rem;word-break:break-word;line-height:1.25}
  .info-card__sub{font-size:.8rem}
  .hours-card{padding:1.4rem 1.2rem}
  .hours-card h3{font-size:1.2rem}
  .hours-card li{font-size:.88rem}
}
