/*
Theme Name: Giorgio Bachi Boutique
Description: Adattamento WordPress della boutique Giorgio Bachi, con richiesta guidata WhatsApp ed email. Installare e verificare in anteprima o staging prima dell’attivazione sul sito pubblico.
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
Author: Giorgio Bachi Boutique
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: giorgio-bachi-boutique
*/
:root { --background:#fff;--foreground:#202522;--card:#fff;--card-foreground:#202522;--popover:#fff;--popover-foreground:#202522;--primary:#202522;--primary-foreground:#fff;--secondary:#f2f3f1;--secondary-foreground:#202522;--muted:#f2f3f1;--muted-foreground:#626963;--accent:#f0efec;--accent-foreground:#202522;--destructive:#b42318;--border:#daddd7;--input:#b2b7b0;--ring:#935434;--radius:0.25rem;--brand:#895035; }

* { box-sizing:border-box; }
html { scroll-behavior:smooth;scroll-padding-top:110px; }
body { margin:0;background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.1; }
h1 { font-size:clamp(2.8rem,5.2vw,5.6rem);letter-spacing:-.045em; }
h2 { font-size:clamp(2.25rem,3.6vw,3.9rem);letter-spacing:-.035em; }
h3 { font-size:1.8rem;letter-spacing:-.025em; }
em { color:var(--brand);font-weight:400; }
p { color:#626963; }
a { text-decoration:none;color:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:2px solid var(--brand);outline-offset:5px; }
img { display:block;width:100%;object-fit:cover; }
.wrap { width:min(1280px,calc(100% - 100px));margin-inline:auto; }
.eyebrow { font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;font-weight:600;line-height:1.7;color:var(--brand); }
.site-header { background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30; }
.header-inner { min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px; }
.wordmark { display:block;font-family:Georgia,serif;font-size:1.5rem;letter-spacing:.04em;white-space:nowrap;line-height:1.2; }
.wordmark span { display:block;text-align:center;font-family:Arial,sans-serif;font-size:.65rem;letter-spacing:.29em;margin-top:8px; }
.site-nav { display:flex;align-items:center;gap:30px;font-size:.875rem; }
.site-nav a { padding:8px 0;transition:color .2s; }
.site-nav a:hover,.site-nav a[aria-current=page] { color:var(--brand); }
.site-nav a[aria-current=page] { box-shadow:0 1px var(--brand); }
.site-nav .nav-contact { border:1px solid var(--foreground);padding:11px 18px;margin-left:12px; }
.site-nav .nav-contact:hover { background:var(--foreground);color:#fff; }
.menu-button { display:none; }
.skip-link { position:fixed;top:-100px;left:20px;padding:10px 18px;background:#fff;z-index:100; }
.skip-link:focus { top:10px; }
.hero { display:grid;grid-template-columns:1.05fr 1fr;gap:58px;padding-block:60px;align-items:center; }
.hero-copy .eyebrow { margin-bottom:28px; }
.hero-description { max-width:445px;margin-top:28px;font-size:1.0625rem;line-height:1.8; }
.actions { display:flex;align-items:center;flex-wrap:wrap;gap:25px;margin-top:30px; }
.brand-button { background:#202522;color:#fff;border-radius:0;height:auto;min-height:50px;padding:14px 24px;font-size:.875rem;letter-spacing:.025em;white-space:normal;text-align:center;line-height:1.4; }
.brand-button:hover { background:var(--brand); }
.outline-button { border-radius:0;height:auto;min-height:50px;font-size:.875rem;padding:13px 20px;white-space:normal; }
.text-link { font-size:.875rem;border-bottom:1px solid currentColor;padding-bottom:4px; }
.text-link:hover { color:var(--brand); }
.hero-location { display:flex;align-items:center;gap:8px;margin-top:42px;font-size:.8125rem; }
.hero-image { position:relative; }
.hero-image img { aspect-ratio:1/1.03;object-position:48% center; }
.hero-image figcaption { position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));padding:60px 25px 22px;color:#fff;letter-spacing:.18em;font-size:.75rem;display:flex;justify-content:space-between;gap:15px; }
.hero-image figcaption span { letter-spacing:0;font-family:Georgia,serif;font-style:italic;font-size:.9375rem; }
.service-strip { display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-block:24px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;font-size:.875rem; }
.service-strip span + span { border-left:1px solid var(--border); }
.section { padding-block:100px; }
.offering { display:grid;grid-template-columns:1fr 1fr;gap:50px 36px;align-items:start; }
.offering h2 { margin-top:14px; }
.offering-intro { max-width:500px;align-self:center; }
.offering-intro p { margin-bottom:20px; }
.editorial-card img { aspect-ratio:1.5; }
.editorial-card>div { padding-top:24px; }
.editorial-card h3 { margin-block:8px 12px; }
.visit-band { background:#202522;color:#fff;padding-block:64px; }
.visit-band .eyebrow { color:#dca788;margin-bottom:15px; }
.visit-inner { display:flex;align-items:center;justify-content:space-between;gap:40px; }
.visit-inner p:not(.eyebrow) { color:#d6dad4;margin-bottom:22px; }
.light { background:#fff;color:#202522; }
.light:hover { background:#e7e9e4;color:#202522; }
.site-footer { background:#f4f5f2;padding-top:46px; }
.footer-top { display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:start;padding-bottom:40px; }
.footer-top .wordmark { justify-self:start; }
.footer-top p,.footer-top>div { font-size:.875rem; }
.footer-top>div { display:flex;flex-direction:column;align-items:flex-end;gap:7px; }
.footer-top a:hover { color:var(--brand); }
.footer-bottom { display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--border);padding-block:20px;font-size:.75rem;color:#626963; }
.page-heading { padding-block:65px 58px; }
.page-heading h1 { max-width:960px;margin-top:18px; }
.page-heading>p:last-child { max-width:650px;margin-top:28px;font-size:1.0625rem; }
.story-grid { display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center; }
.story-grid img { aspect-ratio:1; }
.story-grid h2 { margin-block:15px 25px; }
.story-grid p:not(.eyebrow) { margin-bottom:22px; }
.section-heading { margin-bottom:38px;max-width:700px; }
.section-heading h2 { margin-top:12px; }
.section-heading>p:last-child:not(.eyebrow) { margin-top:18px; }
.three-columns { display:grid;grid-template-columns:repeat(3,1fr);gap:36px; }
.three-columns article { border-top:1px solid var(--border);padding-top:24px; }
.item-number { color:var(--brand);font-size:.875rem; }
.three-columns h3 { margin-block:25px 16px; }
.tailoring-intro { display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:75px; }
.tailoring-intro img { aspect-ratio:1.35; }
.detail-list { margin:30px 0 0; }
.detail-list>div { border-top:1px solid var(--border);padding-block:18px;display:grid;grid-template-columns:110px 1fr;gap:20px; }
.detail-list dt { font-size:.9375rem;font-weight:600; }
.detail-list dd { margin:0;color:#626963;font-size:.9375rem; }
.request-section { background:#f4f5f2;padding-block:75px; }
.request-builder { background:#fff;border:1px solid var(--border); }
.request-steps { display:flex;gap:40px;padding:24px 34px;border-bottom:1px solid var(--border); }
.request-steps>span { display:flex;align-items:center;gap:10px;color:#626963;font-size:.875rem; }
.request-steps b { width:25px;height:25px;display:flex;align-items:center;justify-content:center;border:1px solid #b7bcb5;border-radius:50%;font-size:.75rem;font-weight:400; }
.request-steps .current { color:var(--brand);font-weight:600; }
.request-steps .current b,.request-steps .complete b { background:var(--brand);color:#fff;border-color:var(--brand); }
.request-content { padding:36px; }
.request-content h3 { margin-bottom:25px; }
.garment-options { grid-template-columns:repeat(3,1fr);gap:16px; }
.garment-option { display:flex;gap:14px;align-items:flex-start;border:1px solid var(--border);padding:23px;cursor:pointer; }
.garment-option:hover { background:#f7f8f5; }
.garment-option.selected { border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:#fbf8f5; }
.garment-option [data-slot=radio-group-item] { margin-top:5px; }
.garment-option strong { display:block;font-family:Georgia,serif;font-weight:400;font-size:1.375rem;line-height:1.3;margin-bottom:12px; }
.garment-option span span { display:block;color:#626963;font-size:.875rem;line-height:1.6; }
.builder-actions { display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:30px; }
.builder-actions p { font-size:.875rem; }
.request-fields { max-width:700px;display:grid;gap:22px; }
.request-fields label { display:block;font-size:.9375rem;margin-bottom:10px; }
.request-fields label span { color:#626963;font-size:.875rem; }
.occasion-trigger { width:100%;height:50px;border-radius:0;font-size:1rem; }
.occasion-item { font-size:1rem;padding-block:12px; }
textarea { width:100%;border:1px solid var(--input);border-radius:0;padding:14px;font:inherit;resize:vertical;min-height:125px;background:#fff;color:#202522; }
textarea::placeholder { color:#6c736d; }
.field-note,.small-note { font-size:.8125rem;color:#626963;margin-top:10px; }
.summary-intro { margin-top:-8px;margin-bottom:24px; }
.message-preview { white-space:pre-wrap;overflow-wrap:anywhere;padding:25px;background:#f4f5f2;border-left:2px solid var(--brand);line-height:1.8; }
.send-actions { display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:24px; }
.copy-button { min-height:48px;font-size:.875rem; }
.copy-status { font-size:.875rem;margin-top:15px;color:var(--brand); }
.copy-status:empty { display:none; }
.edit-button { font-size:.875rem;padding:0;margin-top:20px; }
.contact-grid { display:grid;grid-template-columns:1.2fr 1fr;gap:70px;padding-bottom:30px; }
.contact-panel { background:#f4f5f2;padding:40px; }
.contact-panel h2 { font-size:2rem;margin-bottom:30px; }
.contact-row { display:flex;align-items:flex-start;gap:18px;margin-top:25px; }
.contact-row>svg { width:19px;margin-top:3px;color:var(--brand);flex-shrink:0; }
.contact-row h3 { font:600 .9375rem Arial,sans-serif;margin-bottom:6px; }
.contact-panel .actions { gap:20px; }
.channel { display:flex;align-items:center;gap:20px;padding:24px 0;border-bottom:1px solid var(--border); }
.channel:first-child { border-top:1px solid var(--border); }
.channel>svg { width:23px;color:var(--brand);flex-shrink:0; }
.channel span { display:block;color:#626963;font-size:.875rem; }
.channel strong { display:block;font-weight:400;font-size:1.125rem;overflow-wrap:anywhere; }
.channel:hover strong { color:var(--brand); }
.contact-channels>p { margin-top:24px;font-size:.875rem; }
.faq-section { display:grid;grid-template-columns:1fr 1.5fr;gap:70px; }
.faq-section h2 { margin-top:14px; }
.faq-trigger { font-size:1rem;line-height:1.5;padding-block:22px; }
.faq-answer { font-size:.9375rem;line-height:1.7;color:#626963; }
.legal-page { max-width:800px;padding-block:70px 100px; }
.legal-page h1 { font-size:clamp(2.6rem,5vw,4.5rem);margin-top:15px; }
.legal-page h2 { font-size:1.8rem;margin-block:36px 15px; }
.legal-page p { margin-top:15px; }
@media(prefers-color-scheme:dark) { :root { color-scheme:light; } }
@media(max-width:1100px) { .wrap{width:calc(100% - 60px)}.site-nav{gap:20px}.site-nav .nav-contact{display:none}.hero{gap:36px}.hero h1{font-size:clamp(2.8rem,5.1vw,5rem)}.hero .actions{gap:20px}.story-grid,.tailoring-intro{gap:35px}.contact-grid{gap:35px} }
@media(max-width:760px) { html{scroll-padding-top:95px}.wrap{width:calc(100% - 40px)}.header-inner{min-height:80px}.wordmark{font-size:1.25rem}.wordmark span{font-size:.625rem}.menu-button{display:inline-flex;width:48px;height:48px}.site-nav{display:none;position:absolute;left:0;top:80px;width:100%;padding:12px 20px 25px;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 20px 30px #2025220d}.site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-nav a{padding:14px 10px;min-height:48px}.site-nav a[aria-current=page]{box-shadow:none;background:#f4f5f2}.site-nav .nav-contact{display:block;margin:12px 0 0;text-align:center}.hero{grid-template-columns:1fr;padding-block:38px 32px;gap:35px}.hero-copy .eyebrow{font-size:.6875rem;margin-bottom:22px;letter-spacing:.11em}.hero h1{font-size:clamp(2.65rem,9vw,4.8rem)}.hero-description{margin-top:22px;font-size:1rem}.hero-location{margin-top:25px}.hero-image img{aspect-ratio:1.35;object-position:center}.hero-image figcaption{padding:45px 20px 18px}.service-strip{grid-template-columns:1fr 1fr;gap:16px 12px;font-size:.8125rem;padding-block:23px}.service-strip span:nth-child(3){border-left:0}.section{padding-block:60px}.offering{grid-template-columns:1fr;gap:32px}.offering h2 br{display:none}.offering-intro{max-width:none}.editorial-card>div{padding-top:20px}.visit-band{padding-block:45px}.visit-inner{display:block}.visit-inner>div+div{margin-top:28px}.footer-top{grid-template-columns:1fr;gap:25px}.footer-top>div{align-items:flex-start}.footer-bottom{font-size:.75rem}.page-heading{padding-block:40px}.page-heading h1{font-size:clamp(2.6rem,9vw,4.5rem)}.page-heading>p:last-child{font-size:1rem;margin-top:22px}.story-grid,.tailoring-intro,.contact-grid,.faq-section{grid-template-columns:1fr;gap:35px}.story-grid img{aspect-ratio:1.2}.three-columns{grid-template-columns:1fr;gap:30px}.three-columns h3{margin-top:18px}.tailoring-intro{margin-bottom:45px}.detail-list>div{grid-template-columns:85px 1fr;gap:12px}.request-section{padding-block:50px}.request-steps{padding:20px;gap:20px;justify-content:space-between}.request-steps>span{font-size:.8125rem;gap:6px}.request-steps b{width:22px;height:22px}.request-content{padding:25px 20px}.garment-options{grid-template-columns:1fr;gap:12px}.garment-option{padding:18px}.garment-option strong{margin-bottom:7px}.builder-actions{align-items:flex-start;gap:20px}.builder-actions p{max-width:180px}.builder-actions .brand-button{min-width:105px}.send-actions{align-items:stretch;flex-direction:column}.send-actions>a,.send-actions>button{width:100%}.message-preview{padding:20px;font-size:.9375rem}.contact-panel{padding:25px}.contact-panel .actions{align-items:flex-start;flex-direction:column}.contact-grid{padding-bottom:0}.faq-section{gap:22px}.legal-page{padding-block:40px 60px} }
@media(max-width:370px) { .request-steps{gap:10px;padding:18px 15px;flex-wrap:wrap}.request-steps>span{gap:4px;font-size:.75rem}.request-content{padding:22px 16px}.hero .actions{align-items:flex-start;flex-direction:column}.builder-actions{flex-direction:column;align-items:stretch}.builder-actions p{max-width:none}.builder-actions button{width:100%} }
@media(prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important} }

[hidden] { display:none !important; }
button,select { font:inherit; } button { border:0; }
.brand-button,.outline-button,.copy-button,.edit-button { display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;max-width:100%; }
.outline-button { background:#fff;color:#202522;border:1px solid var(--input); }
.outline-button:hover { background:#f4f5f2; }
.copy-button,.edit-button { background:transparent;color:#202522;padding:12px; }
.edit-button { padding:0;text-decoration:underline;text-underline-offset:4px; }
button:disabled { opacity:.45;cursor:not-allowed; }
button:focus-visible,select:focus-visible,input:focus-visible { outline:2px solid var(--brand);outline-offset:4px; }
.menu-button { background:transparent;color:#202522;cursor:pointer;font-size:1.65rem;align-items:center;justify-content:center; }
.garment-options { display:grid;border:0;padding:0;margin:0;min-width:0; }
.garment-option input { margin:7px 0 0;accent-color:var(--brand);flex-shrink:0; }
.occasion-trigger { border:1px solid var(--input);padding:10px 14px;background:#fff;color:#202522; }
.screen-reader-text { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.faq-list details { border-bottom:1px solid var(--border); }
.faq-trigger { cursor:pointer; }
.faq-answer { padding-bottom:22px; }
.gb-page-content { margin-top:30px; }
.gb-page-content p { margin-block:1em; }
.gb-page-content h2,.gb-page-content h3 { margin-block:1em .5em; }
.gb-page-content a { text-decoration:underline;text-underline-offset:3px; }
.gb-page-content img { max-width:100%;height:auto; }
.gb-page-content ul,.gb-page-content ol { padding-left:1.5em; }
.gb-post { margin-block:40px; }
.additional-menu { padding-bottom:20px; }
.additional-menu ul { display:flex;flex-wrap:wrap;gap:20px;list-style:none;padding:0;margin:0;font-size:.875rem; }
.admin-bar .site-header { top:32px; }
.gb-reviews { background:#faf8f5;border-top:1px solid var(--border);padding-block:76px; }
.gb-reviews-inner { display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:70px; }
.gb-reviews h2 { margin-top:14px; }
.gb-reviews-copy p { max-width:440px;line-height:1.8;margin-bottom:26px; }
.gb-reviews-copy .brand-button { gap:14px; }
.gb-reviews-copy .brand-button span { font-size:1.125rem; }
.gb-review-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start;margin-top:44px; }
.gb-review-card { padding:30px;background:#fff;border:1px solid var(--border);min-width:0; }
.gb-review-author { display:flex;align-items:center;gap:13px;min-height:52px; }
.gb-review-avatar { flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#ede7df;color:var(--brand);font-family:Georgia,serif;font-size:1rem; }
.gb-review-author h3 { font-family:Arial,Helvetica,sans-serif;font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:0; }
.gb-review-platform { font-size:.75rem;margin-top:4px; }
.gb-review-rating { color:#a66b26;font-size:1.125rem;letter-spacing:3px;margin-block:21px 16px; }
.gb-review-excerpt { margin:0;min-height:180px; }
.gb-review-excerpt p { font-family:Georgia,'Times New Roman',serif;font-size:1.125rem;line-height:1.65;color:#202522; }
.gb-review-details { margin-top:23px;border-top:1px solid var(--border);padding-top:18px; }
.gb-review-details summary { cursor:pointer;font-size:.8125rem;color:var(--brand);min-height:34px; }
.gb-review-details summary:focus-visible { outline:2px solid var(--brand);outline-offset:5px; }
.gb-review-close { display:none; }
.gb-review-details[open] .gb-review-close { display:inline; }
.gb-review-details[open] .gb-review-read { display:none; }
.gb-review-full { margin:17px 0 0; }
.gb-review-full p { font-size:.875rem;line-height:1.8;overflow-wrap:anywhere; }
.gb-review-full p + p { margin-top:16px; }
.gb-review-source { margin-top:24px; }
.site-nav.gb-no-js { display:flex; }
@media(max-width:782px) { .admin-bar .site-header { top:46px; } }
@media(max-width:760px) { .site-nav.gb-no-js { position:static;box-shadow:none;flex-wrap:wrap;flex-direction:row;padding:0;border:0;font-size:.75rem; } .header-inner:has(.gb-no-js) { flex-wrap:wrap;padding-block:15px;gap:15px; } }
@media(max-width:600px) { .admin-bar .site-header { top:0; } }
@media(max-width:1100px) { .gb-review-grid { gap:16px; }.gb-review-card { padding:23px; }.gb-review-excerpt { min-height:230px; } }
@media(max-width:760px) { .gb-reviews { padding-block:50px; }.gb-reviews-inner { grid-template-columns:1fr;gap:26px; }.gb-reviews h2 br { display:none; }.gb-review-grid { grid-template-columns:1fr;margin-top:30px;gap:18px; }.gb-review-card { padding:25px; }.gb-review-excerpt { min-height:0; } }
