/* Additive styles for the approved Italy / family and business update. */
body > header { background:#faf8f1; position:relative; z-index:101; }
body > header > #nav { color:#51432e; }
body > header > #nav .ob-nav-group { position:relative; margin:0; padding:0; border:0; min-width:0; }
body > header > #nav summary { display:flex; align-items:center; justify-content:space-between; gap:9px; min-height:44px; padding:10px 0; margin:0; font:inherit; color:inherit; cursor:pointer; list-style:none; line-height:1.4; }
body > header > #nav summary::-webkit-details-marker { display:none; }
body > header > #nav summary::after { content:'+'; font:20px/1 system-ui,sans-serif; flex:none; }
body > header > #nav details[open] > summary::after { content:'−'; }
body > header > #nav .ob-nav-panel { position:absolute; top:100%; left:0; z-index:110; width:270px; max-width:85vw; max-height:min(70vh,550px); overflow-y:auto; overscroll-behavior:contain; background:#faf8f1; border:1px solid #d8c49c; border-radius:0 0 10px 10px; padding:8px; box-shadow:0 10px 28px #51432e20; }
body > header > #nav .ob-nav-group:last-of-type .ob-nav-panel { left:auto; right:0; }
body > header > #nav details:not([open]) > .ob-nav-panel { display:none; }
body > header > #nav .ob-nav-panel a { display:block; min-height:44px; padding:11px 12px; font-size:14px; line-height:1.5; white-space:normal; overflow-wrap:anywhere; border-radius:5px; }
body > header > #nav a:hover, body > header > #nav summary:hover { color:#71521f; }
body > header > #nav .ob-nav-panel a:hover { background:#f0e5cf; }
body > header > #nav a:focus-visible, body > header > #nav summary:focus-visible { outline:2px solid #71521f; outline-offset:2px; border-radius:4px; }
@media(min-width:1051px) {
  body > header { height:auto; min-height:100px; flex-wrap:wrap; gap:6px 20px; padding-top:12px; padding-bottom:9px; }
  body > header .header-quote { display:inline-flex; margin-left:auto; font-size:13px; padding:12px 18px; }
  body > header > #nav { position:static; display:flex; flex:0 0 100%; width:100%; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 17px; font-size:13px; border-top:1px solid #e6ddca; padding:5px 0 0; }
  body > header > #nav > a { display:flex; align-items:center; min-height:44px; padding:10px 0; line-height:1.4; }
}
@media(max-width:1050px) {
  body > header > #nav.open > .ob-nav-group { flex:0 0 auto; }
  body > header > #nav.open summary { padding:12px 10px; font-size:15px; border-radius:6px; }
  body > header > #nav.open summary:hover { background:#f0e5cf; }
  body > header > #nav.open .ob-nav-panel { position:static; width:100%; max-width:none; max-height:none; overflow:visible; margin:0; padding:0 0 6px 12px; background:#faf8f1; border:0; border-left:2px solid #d8c49c; border-radius:0; box-shadow:none; }
  body > header > #nav.open .ob-nav-panel a { min-height:44px; padding:12px; }
}
@media(max-width:360px) {
  body > header .brand-image { max-width:40vw; }
  body > header .menu span { display:none; }
  body > header .menu { min-width:44px; }
  body > header .menu svg { margin:0; }
}
.ob-section-intro { max-width:780px; margin-bottom:38px; }
.ob-section-intro h2,.ob-national h2 { font-size:clamp(34px,4.5vw,60px); font-weight:400; letter-spacing:-1px; line-height:1.1; margin:12px 0 22px; }
.ob-section-intro p,.ob-national p { font-size:18px; line-height:1.8; }
.ob-audience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.ob-audience { border:1px solid #d8c49c; border-radius:14px; overflow:hidden; display:flex; flex-direction:column; background:#fffaf1; }
.ob-audience figure { margin:0; aspect-ratio:3/2; overflow:hidden; }
.ob-audience figure img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 26%; }
.ob-audience > div { display:flex; flex:1; flex-direction:column; align-items:stretch; padding:30px; }
.ob-audience h3 { font-size:clamp(25px,2.8vw,36px); font-weight:500; letter-spacing:-.6px; line-height:1.15; margin:0 0 18px; }
.ob-audience p { font-size:17px; line-height:1.75; margin:0 0 24px; flex:1; }
.ob-cta { display:inline-flex; justify-content:space-between; align-items:center; gap:24px; padding:15px 22px; min-height:48px; max-width:100%; border-radius:8px; text-decoration:none; font:500 15px/1.5 'DM Sans',sans-serif; white-space:normal; }
.ob-cta span { flex:none; }
.ob-cta:focus-visible { outline:3px solid #71521f; outline-offset:4px; }
.ob-audience .ob-cta + .ob-cta { margin-top:10px; }
.ob-audience .ob-cta:last-child { background:transparent; color:#694b16; border:1px solid #a5844e; box-shadow:none; }
.ob-quick-links,.ob-link-list { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.ob-quick-links a,.ob-link-list a { display:inline-flex; align-items:center; min-height:44px; padding:12px 18px; border:1px solid #d8c49c; border-radius:30px; color:#61491f; background:#fffaf1; line-height:1.5; }
.ob-quick-links a:hover,.ob-link-list a:hover { background:#f0e5cf; }
.ob-national { background:#eee5d4; border-block:1px solid #d8c49c; text-align:center; }
.ob-national p { max-width:920px; margin:24px auto 30px; }
.ob-national strong { color:#514020; }
.ob-national .ob-cta { display:inline-flex; padding:15px 22px; }
.ob-new-page .ob-service-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; padding-top:45px; padding-bottom:65px; }
.ob-new-page h1 { font-size:clamp(38px,4.6vw,64px); line-height:1.08; font-weight:400; letter-spacing:-1.3px; margin:16px 0 25px; }
.ob-new-page h2,.ob-related h2,.ob-nation-compact h2 { font-size:clamp(28px,3.2vw,42px); line-height:1.2; font-weight:400; margin:0 0 24px; }
.ob-new-page h3 { font-size:23px; line-height:1.25; font-weight:500; margin:0 0 15px; }
.ob-new-page p,.ob-nation-compact p { font-size:17px; line-height:1.8; margin:0 0 20px; color:#424238; }
.ob-new-page .ob-lead { font-size:19px; line-height:1.7; }
.ob-new-page p a,.ob-nation-compact > a:not(.ob-cta),.ob-photo a { color:#694b16; text-decoration:underline; text-underline-offset:3px; }
.ob-photo { margin:0; width:100%; }
.ob-photo > img { width:100%; height:auto; display:block; border-radius:12px; }
.ob-photo figcaption { padding:12px 0 0; font:12px/1.6 'DM Sans',sans-serif; color:#5e5749; }
.ob-content,.ob-inspiration { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:65px; align-items:start; }
.ob-content { border-top:1px solid #e1d6c2; }
.ob-inspiration { align-items:center; }
.ob-soft { background:#f1eadc; border-block:1px solid #e1d6c2; }
.ob-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:35px 0; }
.ob-step { display:block; color:#896931; font-size:15px; letter-spacing:2px; margin:0 0 16px; }
.ob-age-grid,.ob-city-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:30px 0; }
.ob-age-grid article,.ob-city-grid article { border:1px solid #d8c49c; border-radius:12px; padding:28px; background:#fffaf1; }
.ob-age-grid article:last-child { grid-column:1/-1; }
.ob-age-grid p,.ob-city-grid p { margin-bottom:0; }
.ob-note { padding:20px; background:#fffaf1; border-left:3px solid #a5844e; border-radius:0 6px 6px 0; }
.ob-nation-compact { background:#f4eee2; }
.ob-nation-compact p { max-width:900px; }
.ob-related { border-top:1px solid #d8c49c; }
.ob-new-page .ob-photo-license { padding:0 6% 32px; font-size:12px; }
.ob-zone-intro { background:#eee5d4; border:1px solid #d8c49c; padding:40px; border-radius:16px; }
.ob-new-page .ob-cities { font-size:clamp(26px,3vw,38px); line-height:1.5; color:#514020; margin:22px 0; }
@media(max-width:900px) {
  .ob-content,.ob-inspiration { gap:32px; }
  .ob-new-page .ob-service-hero { gap:30px; }
  .ob-three { gap:22px; }
}
@media(max-width:700px) {
  .ob-audience-grid,.ob-new-page .ob-service-hero,.ob-content,.ob-inspiration,.ob-three,.ob-age-grid,.ob-city-grid { grid-template-columns:1fr; }
  .ob-audience > div { padding:24px; }
  .ob-audience h3 { font-size:29px; }
  .ob-audience p { font-size:16px; }
  .ob-new-page .ob-service-hero { padding-top:32px; padding-bottom:48px; }
  .ob-new-page h1 { font-size:40px; }
  .ob-zone-intro { padding:26px; }
  .ob-age-grid article,.ob-city-grid article { padding:24px; }
  .ob-national .ob-cta { width:100%; text-align:left; }
}
